DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_HEADER_SECURITY

Source


1 PACKAGE BODY OE_Header_Security AS
2 /* $Header: OEXXHDRB.pls 120.1.12010000.2 2009/02/11 09:24:57 haagarwa ship $ */
3 
4 
5 --  Global constant holding the package name
6 
7 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'OE_Header_Security';
8 
9 -- LOCAL PROCEDURES
10 
11 
12 FUNCTION Is_Op_Constrained
13 ( p_operation           IN VARCHAR2
14  , p_column_name         IN VARCHAR2 DEFAULT NULL
15  , p_record       IN OE_AK_ORDER_HEADERS_V%ROWTYPE
16 , x_on_operation_action OUT NOCOPY NUMBER
17 
18 ) RETURN NUMBER IS
19 l_constraint_id	NUMBER;
20 l_grp	NUMBER;
21 l_result		NUMBER;
22 l_column_name	VARCHAR2(30);
23 l_audit_trail_enabled VARCHAR2(1) := OE_SYS_PARAMETERS.VALUE('AUDIT_TRAIL_ENABLE_FLAG');
24 l_code_level varchar2(6) := OE_CODE_CONTROL.GET_CODE_RELEASE_LEVEL;
25 --
26 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
27 
28 -- Variables for Integration Event Code
29   l_party_id            Number;
30   l_party_site_id       Number;
31   l_is_delivery_reqd    Varchar2(1);
32   l_return_status       Varchar2(30);
33   l_gen_xml             Varchar2(1) := 'P';
34 --
35 BEGIN
36 
37 l_result := OE_PC_Constraints_Admin_PVT.Is_OP_constrained
38     ( p_responsibility_id     => nvl(fnd_global.resp_id, -1)
39     , p_application_id          => nvl(fnd_global.resp_appl_id,-1) --added for bug3631547
40     , p_operation   => p_operation
41     , p_qualifier_attribute => p_record.transaction_phase_code
42     , p_entity_id   => OE_PC_GLOBALS.G_ENTITY_HEADER
43     , p_column_name => p_column_name
44     , p_check_all_cols_constraint  => g_check_all_cols_constraint
45     , p_is_caller_defaulting  => g_is_caller_defaulting
46     , x_constraint_id    => l_constraint_id
47     , x_constraining_conditions_grp     => l_grp
48     , x_on_operation_action   => x_on_operation_action
49     );
50 
51 if l_result = OE_PC_GLOBALS.YES then
52 
53     IF g_check_all_cols_constraint = 'Y'
54        AND (p_operation = OE_PC_GLOBALS.UPDATE_OP
55             OR p_operation = OE_PC_GLOBALS.CREATE_OP)
56        AND x_on_operation_action = 0
57        AND p_column_name IS NOT NULL THEN
58            SELECT column_name
59            INTO l_column_name
60            FROM oe_pc_constraints
61            WHERE constraint_id = l_constraint_id;
62            if l_column_name is null then
63               IF l_debug_level  > 0 THEN
64                  oe_debug_pub.add('There is an UPDATE constraint on all columns - Error',1);
65               END IF;
66               RAISE FND_API.G_EXC_ERROR;
67            end if;
68     END IF;
69 
70 elsif l_result = OE_PC_GLOBALS.ERROR then
71 
72     raise FND_API.G_EXC_UNEXPECTED_ERROR;
73 
74 end if;
75 
76 g_check_all_cols_constraint := 'N';
77 
78 /* Start Versioning */
79 IF l_code_level >= '110510' AND
80   ( p_column_name = 'TRANSACTION_PHASE_CODE' OR
81     x_on_operation_action IN (.1,.2))THEN
82    OE_Versioning_Util.Check_Security(p_column_name => p_column_name,
83                    p_on_operation_action => x_on_operation_action);
84 END IF;
85 /* End Versioning */
86 
87 
88 --Start Integration Framework Code
89 
90   If l_code_level          >= '110510'          And
91      l_result              = OE_PC_GLOBALS.YES  And
92      x_on_operation_action = 3                  And
93      nvl(p_record.transaction_phase_code,'F') = 'F'
94   Then
95 
96    If p_record.order_source_id = 20 Then
97     OE_Acknowledgment_Pub.Is_Delivery_Required
98                         (
99                          p_customer_id          => p_record.sold_to_org_id,
100                          p_transaction_type     => OE_Acknowledgment_Pub.G_TRANSACTION_TYPE,
101                          p_transaction_subtype  => OE_Acknowledgment_Pub.G_TRANSACTION_SSO,
102                          x_party_id             => l_party_id,
103                          x_party_site_id        => l_party_site_id,
104                          x_is_delivery_required => l_is_delivery_reqd,
105                          x_return_status        => l_return_status
106                         );
107     If l_return_status    = FND_API.G_RET_STS_SUCCESS And
108        l_is_delivery_reqd = 'Y'
109     Then
110       l_gen_xml := 'B';
111     End If;
112    End If;
113         OE_delayed_requests_pvt.log_request
114            (p_entity_code                   => OE_GLOBALS.G_ENTITY_HEADER,
115             p_entity_id                     => p_record.header_id,
116             p_requesting_entity_code        => OE_GLOBALS.G_ENTITY_HEADER,
117             p_requesting_entity_id          => p_record.header_id,
118             p_request_type                  => OE_GLOBALS.G_GENERATE_XML_REQ_HDR,
119             p_request_unique_key1           => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
120             p_param1                        => p_record.header_id,
121             p_param2                        => p_record.order_source_id,
122             p_param3                        => p_record.orig_sys_document_ref,
123             p_param4                        => p_record.sold_to_org_id,
124             p_param5                        => Null,
125             p_param6                        => p_record.org_id,
126             p_param7                        => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
127             p_param8                        => Null,
128             p_param9                        => p_record.sold_to_org_id,
129             p_param10                       => l_party_site_id,
130             p_param11                       => Null,
131             p_param12                       => l_gen_xml,
132             x_return_status                 => l_return_status);
133 
134   End If;
135 
136   If l_code_level          >= '110510'          And
137      l_result              = OE_PC_GLOBALS.YES  And
138      x_on_operation_action = 0.05               And
139      nvl(p_record.transaction_phase_code,'F') = 'F'
140   Then
141 
142     OE_Versioning_Util.Check_Security
143       (p_column_name          => p_column_name,
144        p_on_operation_action  => .1);
145 
146     If p_record.order_source_id = 20 Then
147       OE_Acknowledgment_Pub.Is_Delivery_Required
148                         (
149                          p_customer_id          => p_record.sold_to_org_id,
150                          p_transaction_type     => OE_Acknowledgment_Pub.G_TRANSACTION_TYPE,
151                          p_transaction_subtype  => OE_Acknowledgment_Pub.G_TRANSACTION_SSO,
152                          x_party_id             => l_party_id,
153                          x_party_site_id        => l_party_site_id,
154                          x_is_delivery_required => l_is_delivery_reqd,
155                          x_return_status        => l_return_status
156                         );
157       If l_return_status      = FND_API.G_RET_STS_SUCCESS And
158          l_is_delivery_reqd   = 'Y'
159       Then
160         l_gen_xml := 'B';
161       End If;
162     End If;
163         OE_delayed_requests_pvt.log_request
164            (p_entity_code                   => OE_GLOBALS.G_ENTITY_HEADER,
165             p_entity_id                     => p_record.header_id,
166             p_requesting_entity_code        => OE_GLOBALS.G_ENTITY_HEADER,
167             p_requesting_entity_id          => p_record.header_id,
168             p_request_type                  => OE_GLOBALS.G_GENERATE_XML_REQ_HDR,
169             p_request_unique_key1           => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
170             p_param1                        => p_record.header_id,
171             p_param2                        => p_record.order_source_id,
172             p_param3                        => p_record.orig_sys_document_ref,
173             p_param4                        => p_record.sold_to_org_id,
174             p_param5                        => Null,
175             p_param6                        => p_record.org_id,
176             p_param7                        => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
177             p_param8                        => Null,
178             p_param9                        => p_record.sold_to_org_id,
179             p_param10                       => l_party_site_id,
180             p_param11                       => Null,
181             p_param12                       => l_gen_xml,
182             x_return_status                 => l_return_status);
183 
184   End If;
185 
186   If l_code_level >= '110510'          And
187      l_result = OE_PC_GLOBALS.YES      And
188      x_on_operation_action = 0.5       And
189      nvl(p_record.transaction_phase_code,'F') = 'F'
190   Then
191     If g_is_caller_defaulting = 'N'    And
192        nvl(l_audit_trail_enabled,'D') <> 'D' And
193        not OE_GLOBALS.G_HEADER_CREATED
194     Then
195       If l_audit_trail_enabled = 'B' Then
196         If p_record.booked_flag = 'Y' Then
197           OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG := 'Y';
198           OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'N';
199         End If;
200       Else
201         OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG := 'Y';
202         OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'N';
203       End IF;
204     End If;
205 
206     If p_record.order_source_id = 20 Then
207       OE_Acknowledgment_Pub.Is_Delivery_Required
208                         (
209                          p_customer_id          => p_record.sold_to_org_id,
210                          p_transaction_type     => OE_Acknowledgment_Pub.G_TRANSACTION_TYPE,
211                          p_transaction_subtype  => OE_Acknowledgment_Pub.G_TRANSACTION_SSO,
212                          x_party_id             => l_party_id,
213                          x_party_site_id        => l_party_site_id,
214                          x_is_delivery_required => l_is_delivery_reqd,
215                          x_return_status        => l_return_status
216                         );
217       If l_return_status    = FND_API.G_RET_STS_SUCCESS And
218          l_is_delivery_reqd = 'Y'
219       Then
220         l_gen_xml := 'B';
221       End If;
222     End If;
223 
224         OE_delayed_requests_pvt.log_request
225            (p_entity_code                   => OE_GLOBALS.G_ENTITY_HEADER,
226             p_entity_id                     => p_record.header_id,
227             p_requesting_entity_code        => OE_GLOBALS.G_ENTITY_HEADER,
228             p_requesting_entity_id          => p_record.header_id,
229             p_request_type                  => OE_GLOBALS.G_GENERATE_XML_REQ_HDR,
230             p_request_unique_key1           => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
231             p_param1                        => p_record.header_id,
232             p_param2                        => p_record.order_source_id,
233             p_param3                        => p_record.orig_sys_document_ref,
234             p_param4                        => p_record.sold_to_org_id,
235             p_param5                        => Null,
236             p_param6                        => p_record.org_id,
237             p_param7                        => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
238             p_param8                        => Null,
239             p_param9                        => p_record.sold_to_org_id,
240             p_param10                       => l_party_site_id,
241             p_param11                       => Null,
242             p_param12                       => l_gen_xml,
243             x_return_status                 => l_return_status);
244 
245   End If;
246 
247 --End Integration Event Code
248 
249 
250 /* Start AuditTrail */
251 IF g_is_caller_defaulting = 'N' THEN
252    IF l_code_level >= '110508' and nvl(l_audit_trail_enabled,'D') <> 'D' and
253       nvl(p_record.transaction_phase_code,'F') = 'F' and
254       not OE_GLOBALS.G_HEADER_CREATED THEN
255       IF l_audit_trail_enabled = 'B' THEN  -- capture only for booked orders
256          IF p_record.booked_flag = 'Y' THEN
257             IF l_result = OE_PC_GLOBALS.YES THEN
258                IF x_on_operation_action = 1 THEN
259                   -- set OUT result to NOT CONSTRAINED
260                   IF l_debug_level  > 0 THEN
261                       oe_debug_pub.add(  'HEADER SECURITY , ATTRIBUTE CHANGE REQUIRES REASON' , 1 ) ;
262                   END IF;
263                   OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG := 'Y';
264                   OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'N';
265                ELSIF x_on_operation_action = 2 THEN
266                   -- set OUT result to NOT CONSTRAINED
267                   IF OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG <> 'Y' then
268                      IF l_debug_level  > 0 THEN
269                          oe_debug_pub.add(  'HEADER SECURITY , ATTRIBUTE CHANGE REQUIRES HISTORY' , 1 ) ;
270                      END IF;
271 	             OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'Y';
272                   END IF;
273                END IF;
274             END IF;
275          END IF;
276       ELSE -- capture audit trail for all orders
277          IF l_result = OE_PC_GLOBALS.YES THEN
278             IF x_on_operation_action = 1 THEN
279                -- set OUT result to NOT CONSTRAINED
280                IF l_debug_level  > 0 THEN
281                    oe_debug_pub.add(  'HEADER SECURITY , ATTRIBUTE CHANGE REQUIRES REASON' , 1 ) ;
282                END IF;
283                OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG := 'Y';
284                OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'N';
285             ELSIF x_on_operation_action = 2 THEN
286                -- set OUT result to NOT CONSTRAINED
287                IF OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG <> 'Y' then
288                   IF l_debug_level  > 0 THEN
289                       oe_debug_pub.add(  'HEADER SECURITY , ATTRIBUTE CHANGE REQUIRES HISTORY' , 1 ) ;
290                   END IF;
291 	          OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'Y';
292                END IF;
293             END IF;
294          END IF;
295       END IF;
296    END IF;
297 END IF;
298 
299 
300 IF x_on_operation_action > 0 THEN
301    l_result := OE_PC_GLOBALS.NO;
302 END IF;
303 /* End AuditTrail */
304 RETURN l_result;
305 
306 END Is_Op_Constrained;
307 
308 
309 -- PUBLIC PROCEDURES
310 
311 
312 FUNCTION ACCOUNTING_RULE
313 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
314 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
315 , x_on_operation_action OUT NOCOPY NUMBER
316 
317 ) RETURN NUMBER
318 IS
319 l_result 	NUMBER;
320 BEGIN
321 
322 l_result := Is_OP_constrained
323     (p_operation	=> p_operation
324     ,p_column_name	=> 'ACCOUNTING_RULE_ID'
325     ,p_record	=> p_record
326     ,x_on_operation_action	=> x_on_operation_action
327     );
328 
329 RETURN(l_result);
330 
331 END ACCOUNTING_RULE;
332 
333 FUNCTION ACCOUNTING_RULE_DURATION
334 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
335 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
336 , x_on_operation_action OUT NOCOPY NUMBER
337 
338 ) RETURN NUMBER
339 IS
340 l_result 	NUMBER;
341 BEGIN
342 
343 l_result := Is_OP_constrained
344     (p_operation	=> p_operation
345     ,p_column_name	=> 'ACCOUNTING_RULE_DURATION'
346     ,p_record	=> p_record
347     ,x_on_operation_action	=> x_on_operation_action
348     );
349 
350 RETURN(l_result);
351 
352 END ACCOUNTING_RULE_DURATION;
353 
354 
355  -- Start of fix #1459428  for function definition
356 
357 FUNCTION ATTRIBUTE1
358 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
359 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
360 , x_on_operation_action OUT NOCOPY NUMBER
361 
362 ) RETURN NUMBER
363 IS
364 l_result        NUMBER;
365 BEGIN
366 
367 l_result := Is_OP_constrained
368     (p_operation        => p_operation
369     ,p_column_name      => 'ATTRIBUTE1'
370     ,p_record   => p_record
371     ,x_on_operation_action      => x_on_operation_action
372     );
373 
374 RETURN(l_result);
375 
376 END ATTRIBUTE1;
377 
378 FUNCTION ATTRIBUTE10
379 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
380 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
381 , x_on_operation_action OUT NOCOPY NUMBER
382 
383 ) RETURN NUMBER
384 IS
385 l_result        NUMBER;
386 BEGIN
387 
388 l_result := Is_OP_constrained
389     (p_operation        => p_operation
390     ,p_column_name      => 'ATTRIBUTE10'
391     ,p_record   => p_record
392     ,x_on_operation_action      => x_on_operation_action
393     );
394 
395 RETURN(l_result);
396 
397 END ATTRIBUTE10;
398 
399 FUNCTION ATTRIBUTE11
400 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
401 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
402 , x_on_operation_action OUT NOCOPY NUMBER
403 
404 ) RETURN NUMBER
405 IS
406 l_result        NUMBER;
407 BEGIN
408 
409 l_result := Is_OP_constrained
410     (p_operation        => p_operation
411     ,p_column_name      => 'ATTRIBUTE11'
412     ,p_record   => p_record
413     ,x_on_operation_action      => x_on_operation_action
414     );
415 
416 RETURN(l_result);
417 
418 END ATTRIBUTE11;
419 
420 
421 FUNCTION ATTRIBUTE12
422 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
423 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
424 , x_on_operation_action OUT NOCOPY NUMBER
425 
426 ) RETURN NUMBER
427 IS
428 l_result        NUMBER;
429 BEGIN
430 
431 l_result := Is_OP_constrained
432     (p_operation        => p_operation
433     ,p_column_name      => 'ATTRIBUTE12'
434     ,p_record   => p_record
435     ,x_on_operation_action      => x_on_operation_action
436     );
437 
438 RETURN(l_result);
439 
440 END ATTRIBUTE12;
441 
442 FUNCTION ATTRIBUTE13
443 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
444 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
445 , x_on_operation_action OUT NOCOPY NUMBER
446 
447 ) RETURN NUMBER
448 IS
449 l_result        NUMBER;
450 BEGIN
451 
452 l_result := Is_OP_constrained
453     (p_operation        => p_operation
454     ,p_column_name      => 'ATTRIBUTE13'
455     ,p_record   => p_record
456     ,x_on_operation_action      => x_on_operation_action
457     );
458 
459 RETURN(l_result);
460 
461 END ATTRIBUTE13;
462 
463 
464 FUNCTION ATTRIBUTE14
465 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
466 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
467 , x_on_operation_action OUT NOCOPY NUMBER
468 
469 ) RETURN NUMBER
470 IS
471 l_result        NUMBER;
472 BEGIN
473 
474 l_result := Is_OP_constrained
475     (p_operation        => p_operation
476     ,p_column_name      => 'ATTRIBUTE14'
477     ,p_record   => p_record
478     ,x_on_operation_action      => x_on_operation_action
479     );
480 
481 RETURN(l_result);
482 
483 END ATTRIBUTE14;
484 
485 FUNCTION ATTRIBUTE15
486 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
487 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
488 , x_on_operation_action OUT NOCOPY NUMBER
489 
490 ) RETURN NUMBER
491 IS
492 l_result        NUMBER;
493 BEGIN
494 
495 l_result := Is_OP_constrained
496     (p_operation        => p_operation
497     ,p_column_name      => 'ATTRIBUTE15'
498     ,p_record   => p_record
499     ,x_on_operation_action      => x_on_operation_action
500     );
501 
502 RETURN(l_result);
503 
504 END ATTRIBUTE15;
505 
506 -- For bug 2184255
507 FUNCTION ATTRIBUTE16
508 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
509 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
510 , x_on_operation_action OUT NOCOPY NUMBER
511 
512 ) RETURN NUMBER
513 IS
514 l_result        NUMBER;
515 BEGIN
516 
517 l_result := Is_OP_constrained
518     (p_operation        => p_operation
519     ,p_column_name      => 'ATTRIBUTE16'
520     ,p_record   => p_record
521     ,x_on_operation_action      => x_on_operation_action
522     );
523 
524 RETURN(l_result);
525 
526 END ATTRIBUTE16;
527 
528 
529 FUNCTION ATTRIBUTE17
530 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
531 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
532 , x_on_operation_action OUT NOCOPY NUMBER
533 
534 ) RETURN NUMBER
535 IS
536 l_result        NUMBER;
537 BEGIN
538 
539 l_result := Is_OP_constrained
540     (p_operation        => p_operation
541     ,p_column_name      => 'ATTRIBUTE17'
542     ,p_record   => p_record
543     ,x_on_operation_action      => x_on_operation_action
544     );
545 
546 RETURN(l_result);
547 
548 END ATTRIBUTE17;
549 
550 FUNCTION ATTRIBUTE18
551 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
552 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
553 , x_on_operation_action OUT NOCOPY NUMBER
554 
555 ) RETURN NUMBER
556 IS
557 l_result        NUMBER;
558 BEGIN
559 
560 l_result := Is_OP_constrained
561     (p_operation        => p_operation
562     ,p_column_name      => 'ATTRIBUTE18'
563     ,p_record   => p_record
564     ,x_on_operation_action      => x_on_operation_action
565     );
566 
567 RETURN(l_result);
568 
569 END ATTRIBUTE18;
570 
571 
572 FUNCTION ATTRIBUTE19
573 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
574 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
575 , x_on_operation_action OUT NOCOPY NUMBER
576 
577 ) RETURN NUMBER
578 IS
579 l_result        NUMBER;
580 BEGIN
581 
582 l_result := Is_OP_constrained
583     (p_operation        => p_operation
584     ,p_column_name      => 'ATTRIBUTE19'
585     ,p_record   => p_record
586     ,x_on_operation_action      => x_on_operation_action
587     );
588 
589 RETURN(l_result);
590 
591 END ATTRIBUTE19;
592 
593 
594 FUNCTION ATTRIBUTE2
595 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
596 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
597 , x_on_operation_action OUT NOCOPY NUMBER
598 
599 ) RETURN NUMBER
600 IS
601 l_result        NUMBER;
602 BEGIN
603 
604 l_result := Is_OP_constrained
605     (p_operation        => p_operation
606     ,p_column_name      => 'ATTRIBUTE2'
607     ,p_record   => p_record
608     ,x_on_operation_action      => x_on_operation_action
609     );
610 
611 RETURN(l_result);
612 
613 END ATTRIBUTE2;
614 
615 FUNCTION ATTRIBUTE20
616 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
617 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
618 , x_on_operation_action OUT NOCOPY NUMBER
619 
620 ) RETURN NUMBER
621 IS
622 l_result        NUMBER;
623 BEGIN
624 
625 l_result := Is_OP_constrained
626     (p_operation        => p_operation
627     ,p_column_name      => 'ATTRIBUTE20'
628     ,p_record   => p_record
629     ,x_on_operation_action      => x_on_operation_action
630     );
631 
632 RETURN(l_result);
633 
634 END ATTRIBUTE20;
635 
636 FUNCTION ATTRIBUTE3
637 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
638 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
639 , x_on_operation_action OUT NOCOPY NUMBER
640 
641 ) RETURN NUMBER
642 IS
643 l_result        NUMBER;
644 BEGIN
645 
646 l_result := Is_OP_constrained
647     (p_operation        => p_operation
648     ,p_column_name      => 'ATTRIBUTE3'
649     ,p_record   => p_record
650     ,x_on_operation_action      => x_on_operation_action
651     );
652 
653 RETURN(l_result);
654 
655 END ATTRIBUTE3;
656 
657 
658 FUNCTION ATTRIBUTE4
659 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
660 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
661 , x_on_operation_action OUT NOCOPY NUMBER
662 
663 ) RETURN NUMBER
664 IS
665 l_result        NUMBER;
666 BEGIN
667 
668 l_result := Is_OP_constrained
669     (p_operation        => p_operation
670     ,p_column_name      => 'ATTRIBUTE4'
671     ,p_record   => p_record
672     ,x_on_operation_action      => x_on_operation_action
673     );
674 
675 RETURN(l_result);
676 
677 END ATTRIBUTE4;
678 
679 FUNCTION ATTRIBUTE5
680 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
681 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
682 , x_on_operation_action OUT NOCOPY NUMBER
683 
684 ) RETURN NUMBER
685 IS
686 l_result        NUMBER;
687 BEGIN
688 
689 l_result := Is_OP_constrained
690     (p_operation        => p_operation
691     ,p_column_name      => 'ATTRIBUTE5'
692     ,p_record   => p_record
693     ,x_on_operation_action      => x_on_operation_action
694     );
695 
696 RETURN(l_result);
697 
698 END ATTRIBUTE5;
699 
700 
701 FUNCTION ATTRIBUTE6
702 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
703 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
704 , x_on_operation_action OUT NOCOPY NUMBER
705 
706 ) RETURN NUMBER
707 IS
708 l_result        NUMBER;
709 BEGIN
710 
711 l_result := Is_OP_constrained
712     (p_operation        => p_operation
713     ,p_column_name      => 'ATTRIBUTE6'
714     ,p_record   => p_record
715     ,x_on_operation_action      => x_on_operation_action
716     );
717 
718 RETURN(l_result);
719 
720 END ATTRIBUTE6;
721 
722 FUNCTION ATTRIBUTE7
723 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
724 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
725 , x_on_operation_action OUT NOCOPY NUMBER
726 
727 ) RETURN NUMBER
728 IS
729 l_result        NUMBER;
730 BEGIN
731 
732 l_result := Is_OP_constrained
733     (p_operation        => p_operation
734     ,p_column_name      => 'ATTRIBUTE7'
735     ,p_record   => p_record
736     ,x_on_operation_action      => x_on_operation_action
737     );
738 
739 RETURN(l_result);
740 
741 END ATTRIBUTE7;
742 
743 
744 FUNCTION ATTRIBUTE8
745 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
746 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
747 , x_on_operation_action OUT NOCOPY NUMBER
748 
749 ) RETURN NUMBER
750 IS
751 l_result        NUMBER;
752 BEGIN
753 
754 l_result := Is_OP_constrained
755     (p_operation        => p_operation
756     ,p_column_name      => 'ATTRIBUTE8'
757     ,p_record   => p_record
758     ,x_on_operation_action      => x_on_operation_action
759     );
760 
761 RETURN(l_result);
762 
763 END ATTRIBUTE8;
764 
765 FUNCTION ATTRIBUTE9
766 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
767 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
768 , x_on_operation_action OUT NOCOPY NUMBER
769 
770 ) RETURN NUMBER
771 IS
772 l_result        NUMBER;
773 BEGIN
774 
775 l_result := Is_OP_constrained
776     (p_operation        => p_operation
777     ,p_column_name      => 'ATTRIBUTE9'
778     ,p_record   => p_record
779     ,x_on_operation_action      => x_on_operation_action
780     );
781 
782 RETURN(l_result);
783 
784 END ATTRIBUTE9;
785 
786 FUNCTION CANCELLED
787 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
788 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
789 , x_on_operation_action OUT NOCOPY NUMBER
790 
791 ) RETURN NUMBER
792 IS
793 l_result 	NUMBER;
794 BEGIN
795 
796 l_result := Is_OP_constrained
797     (p_operation	=> OE_PC_GLOBALS.CANCEL_OP
798     ,p_column_name	=> null
799     ,p_record	=> p_record
800     ,x_on_operation_action	=> x_on_operation_action
801     );
802 
803 RETURN(l_result);
804 
805 END CANCELLED;
806 
807 FUNCTION AGREEMENT
808 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
809 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
810 , x_on_operation_action OUT NOCOPY NUMBER
811 
812 ) RETURN NUMBER
813 IS
814 l_result 	NUMBER;
815 BEGIN
816 
817 l_result := Is_OP_constrained
818     (p_operation	=> p_operation
819     ,p_column_name	=> 'AGREEMENT_ID'
820     ,p_record	=> p_record
821     ,x_on_operation_action	=> x_on_operation_action
822     );
823 
824 RETURN(l_result);
825 
826 END AGREEMENT;
827 
828 FUNCTION CONTEXT
829 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
830 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
831 , x_on_operation_action OUT NOCOPY NUMBER
832 
833 ) RETURN NUMBER
834 IS
835 l_result        NUMBER;
836 BEGIN
837 
838 l_result := Is_OP_constrained
839     (p_operation        => p_operation
840     ,p_column_name      => 'CONTEXT'
841     ,p_record   => p_record
842     ,x_on_operation_action      => x_on_operation_action
843     );
844 
845 RETURN(l_result);
846 
847 END CONTEXT;
848 
849 -- End  of fix #1459428  for function definition
850 
851 FUNCTION CONVERSION_RATE
852 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
853 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
854 , x_on_operation_action OUT NOCOPY NUMBER
855 
856 ) RETURN NUMBER
857 IS
858 l_result 	NUMBER;
859 BEGIN
860 
861 l_result := Is_OP_constrained
862     (p_operation	=> p_operation
863     ,p_column_name	=> 'CONVERSION_RATE'
864     ,p_record	=> p_record
865     ,x_on_operation_action	=> x_on_operation_action
866     );
867 
868 RETURN(l_result);
869 
870 END CONVERSION_RATE;
871 
872 
873 FUNCTION CONVERSION_RATE_DATE
874 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
875 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
876 , x_on_operation_action OUT NOCOPY NUMBER
877 
878 ) RETURN NUMBER
879 IS
880 l_result 	NUMBER;
881 BEGIN
882 
883 l_result := Is_OP_constrained
884     (p_operation	=> p_operation
885     ,p_column_name	=> 'CONVERSION_RATE_DATE'
886     ,p_record	=> p_record
887     ,x_on_operation_action	=> x_on_operation_action
888     );
889 
890 RETURN(l_result);
891 
892 END CONVERSION_RATE_DATE;
893 
894 FUNCTION CUSTOMER_PREFERENCE_SET
895 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
896 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
897 , x_on_operation_action OUT NOCOPY NUMBER
898 
899 ) RETURN NUMBER
900 IS
901 l_result 	NUMBER;
902 BEGIN
903 
904 l_result := Is_OP_constrained
905     (p_operation	=> p_operation
906     ,p_column_name	=> 'CUSTOMER_PREFERENCE_SET_CODE'
907     ,p_record	=> p_record
908     ,x_on_operation_action	=> x_on_operation_action
909     );
910 
911 RETURN(l_result);
912 
913 END CUSTOMER_PREFERENCE_SET;
914 
915 FUNCTION CONVERSION_TYPE
916 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
917 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
918 , x_on_operation_action OUT NOCOPY NUMBER
919 
920 ) RETURN NUMBER
921 IS
922 l_result 	NUMBER;
923 BEGIN
924 
925 l_result := Is_OP_constrained
926     (p_operation	=> p_operation
927     ,p_column_name	=> 'CONVERSION_TYPE_CODE'
928     ,p_record	=> p_record
929     ,x_on_operation_action	=> x_on_operation_action
930     );
931 
932 RETURN(l_result);
933 
934 END CONVERSION_TYPE;
935 
936 
937 FUNCTION CREATED_BY
938 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
939 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
940 , x_on_operation_action OUT NOCOPY NUMBER
941 
942 ) RETURN NUMBER
943 IS
944 l_result 	NUMBER;
945 BEGIN
946 
947 l_result := Is_OP_constrained
948     (p_operation	=> p_operation
949     ,p_column_name	=> 'CREATED_BY'
950     ,p_record	=> p_record
951     ,x_on_operation_action	=> x_on_operation_action
952     );
953 
954 RETURN(l_result);
955 
956 END CREATED_BY;
957 
958 
959 FUNCTION CUST_PO_NUMBER
960 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
961 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
962 , x_on_operation_action OUT NOCOPY NUMBER
963 
964 ) RETURN NUMBER
965 IS
966 l_result 	NUMBER;
967 BEGIN
968 
969 l_result := Is_OP_constrained
970     (p_operation	=> p_operation
971     ,p_column_name	=> 'CUST_PO_NUMBER'
972     ,p_record	=> p_record
973     ,x_on_operation_action	=> x_on_operation_action
974     );
975 
976 RETURN(l_result);
977 
978 END CUST_PO_NUMBER;
979 
980 
981 FUNCTION DELIVER_TO_CONTACT
982 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
983 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
984 , x_on_operation_action OUT NOCOPY NUMBER
985 
986 ) RETURN NUMBER
987 IS
988 l_result 	NUMBER;
989 BEGIN
990 
991 l_result := Is_OP_constrained
992     (p_operation	=> p_operation
993     ,p_column_name	=> 'DELIVER_TO_CONTACT_ID'
994     ,p_record	=> p_record
995     ,x_on_operation_action	=> x_on_operation_action
996     );
997 
998 RETURN(l_result);
999 
1000 END DELIVER_TO_CONTACT;
1001 
1002 FUNCTION IB_OWNER
1003 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1004 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1005 , x_on_operation_action OUT NOCOPY NUMBER
1006 
1007 ) RETURN NUMBER
1008 IS
1009 l_result 	NUMBER;
1010 BEGIN
1011 
1012 l_result := Is_OP_constrained
1013     (p_operation	=> p_operation
1014     ,p_column_name	=> 'IB_OWNER'
1015     ,p_record	=> p_record
1016     ,x_on_operation_action	=> x_on_operation_action
1017     );
1018 
1019 RETURN(l_result);
1020 
1021 END IB_OWNER;
1022 
1023 FUNCTION IB_INSTALLED_AT_LOCATION
1024 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1025 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1026 , x_on_operation_action OUT NOCOPY NUMBER
1027 
1028 ) RETURN NUMBER
1029 IS
1030 l_result 	NUMBER;
1031 BEGIN
1032 
1033 l_result := Is_OP_constrained
1034     (p_operation	=> p_operation
1035     ,p_column_name	=> 'IB_INSTALLED_AT_LOCATION'
1036     ,p_record	=> p_record
1037     ,x_on_operation_action	=> x_on_operation_action
1038     );
1039 
1040 RETURN(l_result);
1041 
1042 END IB_INSTALLED_AT_LOCATION;
1043 
1044 FUNCTION IB_CURRENT_LOCATION
1045 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1046 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1047 , x_on_operation_action OUT NOCOPY NUMBER
1048 
1049 ) RETURN NUMBER
1050 IS
1051 l_result 	NUMBER;
1052 BEGIN
1053 
1054 l_result := Is_OP_constrained
1055     (p_operation	=> p_operation
1056     ,p_column_name	=> 'IB_CURRENT_LOCATION'
1057     ,p_record	=> p_record
1058     ,x_on_operation_action	=> x_on_operation_action
1059     );
1060 
1061 RETURN(l_result);
1062 
1063 END IB_CURRENT_LOCATION;
1064 
1065 FUNCTION END_CUSTOMER_CONTACT
1066 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1067 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1068 , x_on_operation_action OUT NOCOPY NUMBER
1069 
1070 ) RETURN NUMBER
1071 IS
1072 l_result 	NUMBER;
1073 BEGIN
1074 
1075 l_result := Is_OP_constrained
1076     (p_operation	=> p_operation
1077     ,p_column_name	=> 'END_CUSTOMER_CONTACT_ID'
1078     ,p_record	=> p_record
1079     ,x_on_operation_action	=> x_on_operation_action
1080     );
1081 
1082 RETURN(l_result);
1083 
1084 END END_CUSTOMER_CONTACT;
1085 
1086 
1087 FUNCTION END_CUSTOMER_SITE_USE
1088 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1089 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1090 , x_on_operation_action OUT NOCOPY NUMBER
1091 
1092 ) RETURN NUMBER
1093 IS
1094 l_result 	NUMBER;
1095 BEGIN
1096 
1097 l_result := Is_OP_constrained
1098     (p_operation	=> p_operation
1099     ,p_column_name	=> 'END_CUSTOMER_SITE_USE_ID'
1100     ,p_record	=> p_record
1101     ,x_on_operation_action	=> x_on_operation_action
1102     );
1103 
1104 RETURN(l_result);
1105 
1106 END END_CUSTOMER_SITE_USE;
1107 
1108 
1109 FUNCTION END_CUSTOMER
1110 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1111 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1112 , x_on_operation_action OUT NOCOPY NUMBER
1113 
1114 ) RETURN NUMBER
1115 IS
1116 l_result 	NUMBER;
1117 BEGIN
1118 
1119 l_result := Is_OP_constrained
1120     (p_operation	=> p_operation
1121     ,p_column_name	=> 'END_CUSTOMER_ID'
1122     ,p_record	=> p_record
1123     ,x_on_operation_action	=> x_on_operation_action
1124     );
1125 
1126 RETURN(l_result);
1127 
1128 END END_CUSTOMER;
1129 
1130 
1131 FUNCTION DELIVER_TO_ORG
1132 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1133 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1134 , x_on_operation_action OUT NOCOPY NUMBER
1135 
1136 ) RETURN NUMBER
1137 IS
1138 l_result 	NUMBER;
1139 BEGIN
1140 
1141 l_result := Is_OP_constrained
1142     (p_operation	=> p_operation
1143     ,p_column_name	=> 'DELIVER_TO_ORG_ID'
1144     ,p_record	=> p_record
1145     ,x_on_operation_action	=> x_on_operation_action
1146     );
1147 
1148 RETURN(l_result);
1149 
1150 END DELIVER_TO_ORG;
1151 
1152 
1153 FUNCTION DEMAND_CLASS
1154 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1155 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1156 , x_on_operation_action OUT NOCOPY NUMBER
1157 
1158 ) RETURN NUMBER
1159 IS
1160 l_result 	NUMBER;
1161 BEGIN
1162 
1163 l_result := Is_OP_constrained
1164     (p_operation	=> p_operation
1165     ,p_column_name	=> 'DEMAND_CLASS_CODE'
1166     ,p_record	=> p_record
1167     ,x_on_operation_action	=> x_on_operation_action
1168     );
1169 
1170 RETURN(l_result);
1171 
1172 END DEMAND_CLASS;
1173 
1174 FUNCTION EARLIEST_SCHEDULE_LIMIT
1175 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1176 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1177 , x_on_operation_action OUT NOCOPY NUMBER
1178 
1179 ) RETURN NUMBER
1180 IS
1181 l_result 	NUMBER;
1182 BEGIN
1183 
1184 l_result := Is_OP_constrained
1185     (p_operation	=> p_operation
1186     ,p_column_name	=> 'EARLIEST_SCHEDULE_LIMIT'
1187     ,p_record	=> p_record
1188     ,x_on_operation_action	=> x_on_operation_action
1189     );
1190 
1191 RETURN(l_result);
1192 
1193 END EARLIEST_SCHEDULE_LIMIT;
1194 
1195 FUNCTION FOB_POINT
1196 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1197 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1198 , x_on_operation_action OUT NOCOPY NUMBER
1199 
1200 ) RETURN NUMBER
1201 IS
1202 l_result 	NUMBER;
1203 BEGIN
1204 
1205 l_result := Is_OP_constrained
1206     (p_operation	=> p_operation
1207     ,p_column_name	=> 'FOB_POINT_CODE'
1208     ,p_record	=> p_record
1209     ,x_on_operation_action	=> x_on_operation_action
1210     );
1211 
1212 RETURN(l_result);
1213 
1214 END FOB_POINT;
1215 
1216 
1217 FUNCTION FREIGHT_CARRIER
1218 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1219 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1220 , x_on_operation_action OUT NOCOPY NUMBER
1221 
1222 ) RETURN NUMBER
1223 IS
1224 l_result 	NUMBER;
1225 BEGIN
1226 
1227 l_result := Is_OP_constrained
1228     (p_operation	=> p_operation
1229     ,p_column_name	=> 'FREIGHT_CARRIER_CODE'
1230     ,p_record	=> p_record
1231     ,x_on_operation_action	=> x_on_operation_action
1232     );
1233 
1234 RETURN(l_result);
1235 
1236 END FREIGHT_CARRIER;
1237 
1238 
1239 FUNCTION FREIGHT_TERMS
1240 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1241 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1242 , x_on_operation_action OUT NOCOPY NUMBER
1243 
1244 ) RETURN NUMBER
1245 IS
1246 l_result 	NUMBER;
1247 BEGIN
1248 
1249 l_result := Is_OP_constrained
1250     (p_operation	=> p_operation
1251     ,p_column_name	=> 'FREIGHT_TERMS_CODE'
1252     ,p_record	=> p_record
1253     ,x_on_operation_action	=> x_on_operation_action
1254     );
1255 
1256 RETURN(l_result);
1257 
1258 END FREIGHT_TERMS;
1259 
1260 FUNCTION INVOICE_TO_CONTACT
1261 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1262 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1263 , x_on_operation_action OUT NOCOPY NUMBER
1264 
1265 ) RETURN NUMBER
1266 IS
1267 l_result 	NUMBER;
1268 BEGIN
1269 
1270 l_result := Is_OP_constrained
1271     (p_operation	=> p_operation
1272     ,p_column_name	=> 'INVOICE_TO_CONTACT_ID'
1273     ,p_record	=> p_record
1274     ,x_on_operation_action	=> x_on_operation_action
1275     );
1276 
1277 RETURN(l_result);
1278 
1279 END INVOICE_TO_CONTACT;
1280 
1281 FUNCTION INVOICE_TO_ORG
1282 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1283 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1284 , x_on_operation_action OUT NOCOPY NUMBER
1285 
1286 ) RETURN NUMBER
1287 IS
1288 l_result 	NUMBER;
1289 BEGIN
1290 
1291 l_result := Is_OP_constrained
1292     (p_operation	=> p_operation
1293     ,p_column_name	=> 'INVOICE_TO_ORG_ID'
1294     ,p_record	=> p_record
1295     ,x_on_operation_action	=> x_on_operation_action
1296     );
1297 
1298 RETURN(l_result);
1299 
1300 END INVOICE_TO_ORG;
1301 
1302 FUNCTION INVOICING_RULE
1303 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1304 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1305 , x_on_operation_action OUT NOCOPY NUMBER
1306 
1307 ) RETURN NUMBER
1308 IS
1309 l_result 	NUMBER;
1310 BEGIN
1311 
1312 l_result := Is_OP_constrained
1313     (p_operation	=> p_operation
1314     ,p_column_name	=> 'INVOICING_RULE_ID'
1315     ,p_record	=> p_record
1316     ,x_on_operation_action	=> x_on_operation_action
1317     );
1318 
1319 RETURN(l_result);
1320 
1321 END INVOICING_RULE;
1322 
1323 FUNCTION LATEST_SCHEDULE_LIMIT
1324 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1325 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1326 , x_on_operation_action OUT NOCOPY NUMBER
1327 
1328 ) RETURN NUMBER
1329 IS
1330 l_result 	NUMBER;
1331 BEGIN
1332 
1333 l_result := Is_OP_constrained
1334     (p_operation	=> p_operation
1335     ,p_column_name	=> 'LATEST_SCHEDULE_LIMIT'
1336     ,p_record	=> p_record
1337     ,x_on_operation_action	=> x_on_operation_action
1338     );
1339 
1340 RETURN(l_result);
1341 
1342 END LATEST_SCHEDULE_LIMIT;
1343 
1344 
1345 FUNCTION ORDERED_DATE
1346 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1347 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1348 , x_on_operation_action OUT NOCOPY NUMBER
1349 
1350 ) RETURN NUMBER
1351 IS
1352 l_result 	NUMBER;
1353 BEGIN
1354 
1355 l_result := Is_OP_constrained
1356     (p_operation	=> p_operation
1357     ,p_column_name	=> 'ORDERED_DATE'
1358     ,p_record	=> p_record
1359     ,x_on_operation_action	=> x_on_operation_action
1360     );
1361 
1362 RETURN(l_result);
1363 
1364 END ORDERED_DATE;
1365 
1366 
1367 FUNCTION ORDER_DATE_TYPE_CODE
1368 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1369 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1370 , x_on_operation_action OUT NOCOPY NUMBER
1371 
1372 ) RETURN NUMBER
1373 IS
1374 l_result 	NUMBER;
1375 BEGIN
1376 
1377 l_result := Is_OP_constrained
1378     (p_operation	=> p_operation
1379     ,p_column_name	=> 'ORDER_DATE_TYPE_CODE'
1380     ,p_record	=> p_record
1381     ,x_on_operation_action	=> x_on_operation_action
1382     );
1383 
1384 RETURN(l_result);
1385 
1386 END ORDER_DATE_TYPE_CODE;
1387 
1388 FUNCTION ORDER_NUMBER
1389 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1390 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1391 , x_on_operation_action OUT NOCOPY NUMBER
1392 
1393 ) RETURN NUMBER
1394 IS
1395 l_result 	NUMBER;
1396 BEGIN
1397 
1398 l_result := Is_OP_constrained
1399     (p_operation	=> p_operation
1400     ,p_column_name	=> 'ORDER_NUMBER'
1401     ,p_record	=> p_record
1402     ,x_on_operation_action	=> x_on_operation_action
1403     );
1404 
1405 RETURN(l_result);
1406 
1407 END ORDER_NUMBER;
1408 
1409 
1410 FUNCTION ORDER_SOURCE
1411 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1412 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1413 , x_on_operation_action OUT NOCOPY NUMBER
1414 
1415 ) RETURN NUMBER
1416 IS
1417 l_result 	NUMBER;
1418 BEGIN
1419 
1420 l_result := Is_OP_constrained
1421     (p_operation	=> p_operation
1422     ,p_column_name	=> 'ORDER_SOURCE_ID'
1423     ,p_record	=> p_record
1424     ,x_on_operation_action	=> x_on_operation_action
1425     );
1426 
1427 RETURN(l_result);
1428 
1429 END ORDER_SOURCE;
1430 
1431 
1432 FUNCTION ORDER_TYPE
1433 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1434 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1435 , x_on_operation_action OUT NOCOPY NUMBER
1436 
1437 ) RETURN NUMBER
1438 IS
1439 l_result 	NUMBER;
1440 BEGIN
1441 
1442 l_result := Is_OP_constrained
1443     (p_operation	=> p_operation
1444     ,p_column_name	=> 'ORDER_TYPE_ID'
1445     ,p_record	=> p_record
1446     ,x_on_operation_action	=> x_on_operation_action
1447     );
1448 
1449 RETURN(l_result);
1450 
1451 END ORDER_TYPE;
1452 
1453 
1454 
1455 FUNCTION ORIG_SYS_DOCUMENT_REF
1456 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1457 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1458 , x_on_operation_action OUT NOCOPY NUMBER
1459 
1460 ) RETURN NUMBER
1461 IS
1462 l_result 	NUMBER;
1463 BEGIN
1464 
1465 l_result := Is_OP_constrained
1466     (p_operation	=> p_operation
1467     ,p_column_name	=> 'ORIG_SYS_DOCUMENT_REF'
1468     ,p_record	=> p_record
1469     ,x_on_operation_action	=> x_on_operation_action
1470     );
1471 
1472 RETURN(l_result);
1473 
1474 END ORIG_SYS_DOCUMENT_REF;
1475 
1476 FUNCTION PACKING_INSTRUCTIONS
1477 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1478 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1479 , x_on_operation_action OUT NOCOPY NUMBER
1480 
1481 ) RETURN NUMBER
1482 IS
1483 l_result 	NUMBER;
1484 BEGIN
1485 
1486 l_result := Is_OP_constrained
1487     (p_operation	=> p_operation
1488     ,p_column_name	=> 'PACKING_INSTRUCTIONS'
1489     ,p_record	=> p_record
1490     ,x_on_operation_action	=> x_on_operation_action
1491     );
1492 
1493 RETURN(l_result);
1494 
1495 END PACKING_INSTRUCTIONS;
1496 
1497 
1498 FUNCTION PAYMENT_TERM
1499 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1500 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1501 , x_on_operation_action OUT NOCOPY NUMBER
1502 
1503 ) RETURN NUMBER
1504 IS
1505 l_result 	NUMBER;
1506 BEGIN
1507 
1508 l_result := Is_OP_constrained
1509     (p_operation	=> p_operation
1510     ,p_column_name	=> 'PAYMENT_TERM_ID'
1511     ,p_record	=> p_record
1512     ,x_on_operation_action	=> x_on_operation_action
1513     );
1514 
1515 RETURN(l_result);
1516 
1517 END PAYMENT_TERM;
1518 
1519 
1520 FUNCTION PRICE_LIST
1521 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1522 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1523 , x_on_operation_action OUT NOCOPY NUMBER
1524 
1525 ) RETURN NUMBER
1526 IS
1527 l_result 	NUMBER;
1528 BEGIN
1529 
1530 l_result := Is_OP_constrained
1531     (p_operation	=> p_operation
1532     ,p_column_name	=> 'PRICE_LIST_ID'
1533     ,p_record	=> p_record
1534     ,x_on_operation_action	=> x_on_operation_action
1535     );
1536 
1537 RETURN(l_result);
1538 
1539 END PRICE_LIST;
1540 
1541 
1542 FUNCTION PRICING_DATE
1543 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1544 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1545 , x_on_operation_action OUT NOCOPY NUMBER
1546 
1547 ) RETURN NUMBER
1548 IS
1549 l_result 	NUMBER;
1550 BEGIN
1551 
1552 l_result := Is_OP_constrained
1553     (p_operation	=> p_operation
1554     ,p_column_name	=> 'PRICING_DATE'
1555     ,p_record	=> p_record
1556     ,x_on_operation_action	=> x_on_operation_action
1557     );
1558 
1559 RETURN(l_result);
1560 
1561 END PRICING_DATE;
1562 
1563 FUNCTION REQUEST_DATE
1564 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1565 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1566 , x_on_operation_action OUT NOCOPY NUMBER
1567 
1568 ) RETURN NUMBER
1569 IS
1570 l_result 	NUMBER;
1571 BEGIN
1572 
1573 l_result := Is_OP_constrained
1574     (p_operation	=> p_operation
1575     ,p_column_name	=> 'REQUEST_DATE'
1576     ,p_record	=> p_record
1577     ,x_on_operation_action	=> x_on_operation_action
1578     );
1579 
1580 RETURN(l_result);
1581 
1582 END REQUEST_DATE;
1583 
1584 
1585 FUNCTION RETURN_REASON
1586 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1587 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1588 , x_on_operation_action OUT NOCOPY NUMBER
1589 
1590 ) RETURN NUMBER
1591 IS
1592 l_result 	NUMBER;
1593 BEGIN
1594 
1595 l_result := Is_OP_constrained
1596     (p_operation	=> p_operation
1597     ,p_column_name	=> 'RETURN_REASON_CODE'
1598     ,p_record	=> p_record
1599     ,x_on_operation_action	=> x_on_operation_action
1600     );
1601 
1602 RETURN(l_result);
1603 
1604 END RETURN_REASON;
1605 
1606 
1607 FUNCTION SALESREP
1608 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1609 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1610 , x_on_operation_action OUT NOCOPY NUMBER
1611 
1612 ) RETURN NUMBER
1613 IS
1614 l_result 	NUMBER;
1615 BEGIN
1616 
1617 l_result := Is_OP_constrained
1618     (p_operation	=> p_operation
1619     ,p_column_name	=> 'SALESREP_ID'
1620     ,p_record	=> p_record
1621     ,x_on_operation_action	=> x_on_operation_action
1622     );
1623 
1624 RETURN(l_result);
1625 
1626 END SALESREP;
1627 
1628 
1629 FUNCTION SHIPMENT_PRIORITY
1630 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1631 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1632 , x_on_operation_action OUT NOCOPY NUMBER
1633 
1634 ) RETURN NUMBER
1635 IS
1636 l_result 	NUMBER;
1637 BEGIN
1638 
1639 l_result := Is_OP_constrained
1640     (p_operation	=> p_operation
1641     ,p_column_name	=> 'SHIPMENT_PRIORITY_CODE'
1642     ,p_record	=> p_record
1643     ,x_on_operation_action	=> x_on_operation_action
1644     );
1645 
1646 RETURN(l_result);
1647 
1648 END SHIPMENT_PRIORITY;
1649 
1650 FUNCTION SHIPPING_INSTRUCTIONS
1651 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1652 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1653 , x_on_operation_action OUT NOCOPY NUMBER
1654 
1655 ) RETURN NUMBER
1656 IS
1657 l_result 	NUMBER;
1658 BEGIN
1659 
1660 l_result := Is_OP_constrained
1661     (p_operation	=> p_operation
1662     ,p_column_name	=> 'SHIPPING_INSTRUCTIONS'
1663     ,p_record	=> p_record
1664     ,x_on_operation_action	=> x_on_operation_action
1665     );
1666 
1667 RETURN(l_result);
1668 
1669 END SHIPPING_INSTRUCTIONS;
1670 
1671 FUNCTION SHIPPING_METHOD
1672 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1673 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1674 , x_on_operation_action OUT NOCOPY NUMBER
1675 
1676 ) RETURN NUMBER
1677 IS
1678 l_result 	NUMBER;
1679 BEGIN
1680 
1681 l_result := Is_OP_constrained
1682     (p_operation	=> p_operation
1683     ,p_column_name	=> 'SHIPPING_METHOD_CODE'
1684     ,p_record	=> p_record
1685     ,x_on_operation_action	=> x_on_operation_action
1686     );
1687 
1688 RETURN(l_result);
1689 
1690 END SHIPPING_METHOD;
1691 
1692 FUNCTION SHIP_FROM_ORG
1693 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1694 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1695 , x_on_operation_action OUT NOCOPY NUMBER
1696 
1697 ) RETURN NUMBER
1698 IS
1699 l_result 	NUMBER;
1700 BEGIN
1701 
1702 l_result := Is_OP_constrained
1703     (p_operation	=> p_operation
1704     ,p_column_name	=> 'SHIP_FROM_ORG_ID'
1705     ,p_record	=> p_record
1706     ,x_on_operation_action	=> x_on_operation_action
1707     );
1708 
1709 RETURN(l_result);
1710 
1711 END SHIP_FROM_ORG;
1712 
1713 
1714 FUNCTION SHIP_TOLERANCE_ABOVE
1715 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1716 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1717 , x_on_operation_action OUT NOCOPY NUMBER
1718 
1719 ) RETURN NUMBER
1720 IS
1721 l_result 	NUMBER;
1722 BEGIN
1723 
1724 l_result := Is_OP_constrained
1725     (p_operation	=> p_operation
1726     ,p_column_name	=> 'SHIP_TOLERANCE_ABOVE'
1727     ,p_record	=> p_record
1728     ,x_on_operation_action	=> x_on_operation_action
1729     );
1730 
1731 RETURN(l_result);
1732 
1733 END SHIP_TOLERANCE_ABOVE;
1734 
1735 
1736 FUNCTION SHIP_TOLERANCE_BELOW
1737 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1738 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1739 , x_on_operation_action OUT NOCOPY NUMBER
1740 
1741 ) RETURN NUMBER
1742 IS
1743 l_result 	NUMBER;
1744 BEGIN
1745 
1746 l_result := Is_OP_constrained
1747     (p_operation	=> p_operation
1748     ,p_column_name	=> 'SHIP_TOLERANCE_BELOW'
1749     ,p_record	=> p_record
1750     ,x_on_operation_action	=> x_on_operation_action
1751     );
1752 
1753 RETURN(l_result);
1754 
1755 END SHIP_TOLERANCE_BELOW;
1756 
1757 
1758 FUNCTION SHIP_TO_CONTACT
1759 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1760 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1761 , x_on_operation_action OUT NOCOPY NUMBER
1762 
1763 ) RETURN NUMBER
1764 IS
1765 l_result 	NUMBER;
1766 BEGIN
1767 
1768 l_result := Is_OP_constrained
1769     (p_operation	=> p_operation
1770     ,p_column_name	=> 'SHIP_TO_CONTACT_ID'
1771     ,p_record	=> p_record
1772     ,x_on_operation_action	=> x_on_operation_action
1773     );
1774 
1775 RETURN(l_result);
1776 
1777 END SHIP_TO_CONTACT;
1778 
1779 
1780 FUNCTION SHIP_TO_ORG
1781 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1782 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1783 , x_on_operation_action OUT NOCOPY NUMBER
1784 
1785 ) RETURN NUMBER
1786 IS
1787 l_result 	NUMBER;
1788 BEGIN
1789 
1790 l_result := Is_OP_constrained
1791     (p_operation	=> p_operation
1792     ,p_column_name	=> 'SHIP_TO_ORG_ID'
1793     ,p_record	=> p_record
1794     ,x_on_operation_action	=> x_on_operation_action
1795     );
1796 
1797 RETURN(l_result);
1798 
1799 END SHIP_TO_ORG;
1800 
1801 
1802 FUNCTION SOLD_TO_CONTACT
1803 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1804 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1805 , x_on_operation_action OUT NOCOPY NUMBER
1806 
1807 ) RETURN NUMBER
1808 IS
1809 l_result 	NUMBER;
1810 BEGIN
1811 
1812 l_result := Is_OP_constrained
1813     (p_operation	=> p_operation
1814     ,p_column_name	=> 'SOLD_TO_CONTACT_ID'
1815     ,p_record	=> p_record
1816     ,x_on_operation_action	=> x_on_operation_action
1817     );
1818 
1819 RETURN(l_result);
1820 
1821 END SOLD_TO_CONTACT;
1822 
1823 
1824 FUNCTION SOLD_TO_ORG
1825 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1826 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1827 , x_on_operation_action OUT NOCOPY NUMBER
1828 
1829 ) RETURN NUMBER
1830 IS
1831 l_result 	NUMBER;
1832 BEGIN
1833 
1834 l_result := Is_OP_constrained
1835     (p_operation	=> p_operation
1836     ,p_column_name	=> 'SOLD_TO_ORG_ID'
1837     ,p_record	=> p_record
1838     ,x_on_operation_action	=> x_on_operation_action
1839     );
1840 
1841 RETURN(l_result);
1842 
1843 END SOLD_TO_ORG;
1844 
1845 
1846 FUNCTION SOURCE_DOCUMENT_TYPE
1847 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1848 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1849 , x_on_operation_action OUT NOCOPY NUMBER
1850 
1851 ) RETURN NUMBER
1852 IS
1853 l_result 	NUMBER;
1854 BEGIN
1855 
1856 l_result := Is_OP_constrained
1857     (p_operation	=> p_operation
1858     ,p_column_name	=> 'SOURCE_DOCUMENT_TYPE_ID'
1859     ,p_record	=> p_record
1860     ,x_on_operation_action	=> x_on_operation_action
1861     );
1862 
1863 RETURN(l_result);
1864 
1865 END SOURCE_DOCUMENT_TYPE;
1866 
1867 
1868 FUNCTION TAX_EXEMPT
1869 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1870 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1871 , x_on_operation_action OUT NOCOPY NUMBER
1872 
1873 ) RETURN NUMBER
1874 IS
1875 l_result 	NUMBER;
1876 BEGIN
1877 
1878 l_result := Is_OP_constrained
1879     (p_operation	=> p_operation
1880     ,p_column_name	=> 'TAX_EXEMPT_FLAG'
1881     ,p_record	=> p_record
1882     ,x_on_operation_action	=> x_on_operation_action
1883     );
1884 
1885 RETURN(l_result);
1886 
1887 END TAX_EXEMPT;
1888 
1889 
1890 FUNCTION TAX_EXEMPT_NUMBER
1891 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1892 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1893 , x_on_operation_action OUT NOCOPY NUMBER
1894 
1895 ) RETURN NUMBER
1896 IS
1897 l_result 	NUMBER;
1898 BEGIN
1899 
1900 l_result := Is_OP_constrained
1901     (p_operation	=> p_operation
1902     ,p_column_name	=> 'TAX_EXEMPT_NUMBER'
1903     ,p_record	=> p_record
1904     ,x_on_operation_action	=> x_on_operation_action
1905     );
1906 
1907 RETURN(l_result);
1908 
1909 END TAX_EXEMPT_NUMBER;
1910 
1911 
1912 FUNCTION TAX_EXEMPT_REASON
1913 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1914 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1915 , x_on_operation_action OUT NOCOPY NUMBER
1916 
1917 ) RETURN NUMBER
1918 IS
1919 l_result 	NUMBER;
1920 BEGIN
1921 
1922 l_result := Is_OP_constrained
1923     (p_operation	=> p_operation
1924     ,p_column_name	=> 'TAX_EXEMPT_REASON_CODE'
1925     ,p_record	=> p_record
1926     ,x_on_operation_action	=> x_on_operation_action
1927     );
1928 
1929 RETURN(l_result);
1930 
1931 END TAX_EXEMPT_REASON;
1932 
1933 
1934 
1935 FUNCTION TRANSACTIONAL_CURR
1936 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1937 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1938 , x_on_operation_action OUT NOCOPY NUMBER
1939 
1940 ) RETURN NUMBER
1941 IS
1942 l_result 	NUMBER;
1943 BEGIN
1944 
1945 l_result := Is_OP_constrained
1946     (p_operation	=> p_operation
1947     ,p_column_name	=> 'TRANSACTIONAL_CURR_CODE'
1948     ,p_record	=> p_record
1949     ,x_on_operation_action	=> x_on_operation_action
1950     );
1951 
1952 RETURN(l_result);
1953 
1954 END TRANSACTIONAL_CURR;
1955 
1956 
1957 FUNCTION CREDIT_CARD_APPROVAL_DATE
1958 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1959 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1960 , x_on_operation_action OUT NOCOPY NUMBER
1961 
1962 ) RETURN NUMBER
1963 IS
1964 l_result 	NUMBER;
1965 BEGIN
1966 
1967 l_result := Is_OP_constrained
1968     (p_operation	=> p_operation
1969     ,p_column_name	=> 'CREDIT_CARD_APPROVAL_DATE'
1970     ,p_record	=> p_record
1971     ,x_on_operation_action	=> x_on_operation_action
1972     );
1973 
1974 RETURN(l_result);
1975 
1976 END CREDIT_CARD_APPROVAL_DATE;
1977 
1978      /* The following Function is added to fix the issue #1651331 to enable
1979 	   the Sales Channel Field be allowed to set the security rules  */
1980 
1981 FUNCTION SALES_CHANNEL_CODE
1982 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1983 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
1984 , x_on_operation_action OUT NOCOPY NUMBER
1985 
1986 ) RETURN NUMBER
1987 IS
1988 l_result  NUMBER;
1989 BEGIN
1990 
1991 l_result := Is_OP_constrained
1992       (p_operation    => p_operation
1993       ,p_column_name  => 'SALES_CHANNEL_CODE'
1994 	 ,p_record  => p_record
1995 	 ,x_on_operation_action    => x_on_operation_action
1996 	 );
1997 
1998 RETURN(l_result);
1999 
2000 END SALES_CHANNEL_CODE;
2001 
2002 /* START PREPAYMENT */
2003 FUNCTION PAYMENT_TYPE
2004 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2005 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2006 , x_on_operation_action OUT NOCOPY NUMBER
2007 
2008 ) RETURN NUMBER
2009 IS
2010 l_result        NUMBER;
2011 BEGIN
2012 
2013 l_result := Is_OP_constrained
2014     (p_operation        => p_operation
2015     ,p_column_name      => 'PAYMENT_TYPE_CODE'
2016     ,p_record   => p_record
2017     ,x_on_operation_action      => x_on_operation_action
2018     );
2019 
2020 RETURN(l_result);
2021 
2022 END PAYMENT_TYPE;
2023 
2024 FUNCTION CREDIT_CARD_HOLDER_NAME
2025 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2026 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2027 , x_on_operation_action OUT NOCOPY NUMBER
2028 
2029 ) RETURN NUMBER
2030 IS
2031 l_result        NUMBER;
2032 BEGIN
2033 
2034 l_result := Is_OP_constrained
2035     (p_operation        => p_operation
2036     ,p_column_name      => 'CREDIT_CARD_HOLDER_NAME'
2037     ,p_record   => p_record
2038     ,x_on_operation_action      => x_on_operation_action
2039     );
2040 
2041 RETURN(l_result);
2042 
2043 END CREDIT_CARD_HOLDER_NAME;
2044 
2045 FUNCTION CREDIT_CARD
2046 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2047 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2048 , x_on_operation_action OUT NOCOPY NUMBER
2049 
2050 ) RETURN NUMBER
2051 IS
2052 l_result        NUMBER;
2053 BEGIN
2054 
2055 l_result := Is_OP_constrained
2056     (p_operation        => p_operation
2057     ,p_column_name      => 'CREDIT_CARD_CODE'
2058     ,p_record   => p_record
2059     ,x_on_operation_action      => x_on_operation_action
2060     );
2061 
2062 RETURN(l_result);
2063 
2064 END CREDIT_CARD;
2065 
2066 FUNCTION CREDIT_CARD_NUMBER
2067 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2068 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2069 , x_on_operation_action OUT NOCOPY NUMBER
2070 
2071 ) RETURN NUMBER
2072 IS
2073 l_result        NUMBER;
2074 BEGIN
2075 
2076 l_result := Is_OP_constrained
2077     (p_operation        => p_operation
2078     ,p_column_name      => 'CREDIT_CARD_NUMBER'
2079     ,p_record   => p_record
2080     ,x_on_operation_action      => x_on_operation_action
2081     );
2082 
2083 RETURN(l_result);
2084 
2085 END CREDIT_CARD_NUMBER;
2086 
2087 FUNCTION CREDIT_CARD_EXPIRATION_DATE
2088 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2089 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2090 , x_on_operation_action OUT NOCOPY NUMBER
2091 
2092 ) RETURN NUMBER
2093 IS
2094 l_result        NUMBER;
2095 BEGIN
2096 
2097 l_result := Is_OP_constrained
2098     (p_operation        => p_operation
2099     ,p_column_name      => 'CREDIT_CARD_EXPIRATION_DATE'
2100     ,p_record   => p_record
2101     ,x_on_operation_action      => x_on_operation_action
2102     );
2103 
2104 RETURN(l_result);
2105 
2106 END CREDIT_CARD_EXPIRATION_DATE;
2107 /* END PREPAYMENT */
2108 
2109 /* For bug 2395032 */
2110 
2111 FUNCTION PAYMENT_AMOUNT
2112 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2113 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2114 , x_on_operation_action OUT NOCOPY NUMBER
2115 
2116 ) RETURN NUMBER
2117 IS
2118 l_result        NUMBER;
2119 BEGIN
2120 
2121 l_result := Is_OP_constrained
2122     (p_operation        => p_operation
2123     ,p_column_name      => 'PAYMENT_AMOUNT'
2124     ,p_record   => p_record
2125     ,x_on_operation_action      => x_on_operation_action
2126     );
2127 
2128 RETURN(l_result);
2129 
2130 END PAYMENT_AMOUNT;
2131 
2132 FUNCTION CHECK_NUMBER
2133 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2134 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2135 , x_on_operation_action OUT NOCOPY NUMBER
2136 
2137 ) RETURN NUMBER
2138 IS
2139 l_result        NUMBER;
2140 BEGIN
2141 
2142 l_result := Is_OP_constrained
2143     (p_operation        => p_operation
2144     ,p_column_name      => 'CHECK_NUMBER'
2145     ,p_record   => p_record
2146     ,x_on_operation_action      => x_on_operation_action
2147     );
2148 
2149 RETURN(l_result);
2150 
2151 END CHECK_NUMBER;
2152 
2153 /* End 2395032 */
2154 
2155 FUNCTION BLANKET_NUMBER
2156 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2157 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2158 , x_on_operation_action OUT NOCOPY NUMBER
2159 
2160 ) RETURN NUMBER
2161 IS
2162 l_result        NUMBER;
2163 BEGIN
2164 
2165 l_result := Is_OP_constrained
2166     (p_operation        => p_operation
2167     ,p_column_name      => 'BLANKET_NUMBER'
2168     ,p_record   => p_record
2169     ,x_on_operation_action      => x_on_operation_action
2170     );
2171 
2172 RETURN(l_result);
2173 
2174 END BLANKET_NUMBER;
2175 
2176 -- QUOTING changes
2177 
2178 FUNCTION QUOTE_NUMBER
2179 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2180 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2181 , x_on_operation_action OUT NOCOPY NUMBER
2182 
2183 ) RETURN NUMBER
2184 IS
2185 l_result        NUMBER;
2186 BEGIN
2187 
2188 l_result := Is_OP_constrained
2189     (p_operation        => p_operation
2190     ,p_column_name      => 'QUOTE_NUMBER'
2191     ,p_record   => p_record
2192     ,x_on_operation_action      => x_on_operation_action
2193     );
2194 
2195 RETURN(l_result);
2196 
2197 END QUOTE_NUMBER;
2198 
2199 FUNCTION QUOTE_DATE
2200 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2201 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2202 , x_on_operation_action OUT NOCOPY NUMBER
2203 
2204 ) RETURN NUMBER
2205 IS
2206 l_result        NUMBER;
2207 BEGIN
2208 
2209 l_result := Is_OP_constrained
2210     (p_operation        => p_operation
2211     ,p_column_name      => 'QUOTE_DATE'
2212     ,p_record   => p_record
2213     ,x_on_operation_action      => x_on_operation_action
2214     );
2215 
2216 RETURN(l_result);
2217 
2218 END QUOTE_DATE;
2219 
2220 FUNCTION SALES_DOCUMENT_NAME
2221 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2222 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2223 , x_on_operation_action OUT NOCOPY NUMBER
2224 
2225 ) RETURN NUMBER
2226 IS
2227 l_result        NUMBER;
2228 BEGIN
2229 
2230 l_result := Is_OP_constrained
2231     (p_operation        => p_operation
2232     ,p_column_name      => 'SALES_DOCUMENT_NAME'
2233     ,p_record   => p_record
2234     ,x_on_operation_action      => x_on_operation_action
2235     );
2236 
2237 RETURN(l_result);
2238 
2239 END SALES_DOCUMENT_NAME;
2240 
2241 FUNCTION TRANSACTION_PHASE
2242 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2243 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2244 , x_on_operation_action OUT NOCOPY NUMBER
2245 
2246 ) RETURN NUMBER
2247 IS
2248 l_result        NUMBER;
2249 BEGIN
2250 
2251 l_result := Is_OP_constrained
2252     (p_operation        => p_operation
2253     ,p_column_name      => 'TRANSACTION_PHASE_CODE'
2254     ,p_record   => p_record
2255     ,x_on_operation_action      => x_on_operation_action
2256     );
2257 
2258 RETURN(l_result);
2259 
2260 END TRANSACTION_PHASE;
2261 
2262 FUNCTION USER_STATUS
2263 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2264 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2265 , x_on_operation_action OUT NOCOPY NUMBER
2266 
2267 ) RETURN NUMBER
2268 IS
2269 l_result        NUMBER;
2270 BEGIN
2271 
2272 l_result := Is_OP_constrained
2273     (p_operation        => p_operation
2274     ,p_column_name      => 'USER_STATUS'
2275     ,p_record   => p_record
2276     ,x_on_operation_action      => x_on_operation_action
2277     );
2278 
2279 RETURN(l_result);
2280 
2281 END USER_STATUS;
2282 
2283 FUNCTION EXPIRATION_DATE
2284 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2285 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2286 , x_on_operation_action OUT NOCOPY NUMBER
2287 
2288 ) RETURN NUMBER
2289 IS
2290 l_result        NUMBER;
2291 BEGIN
2292 
2293 l_result := Is_OP_constrained
2294     (p_operation        => p_operation
2295     ,p_column_name      => 'EXPIRATION_DATE'
2296     ,p_record   => p_record
2297     ,x_on_operation_action      => x_on_operation_action
2298     );
2299 
2300 RETURN(l_result);
2301 
2302 END EXPIRATION_DATE;
2303 
2304 FUNCTION VERSION_NUMBER
2305 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2306 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2307 , x_on_operation_action OUT NOCOPY NUMBER
2308 
2309 ) RETURN NUMBER
2310 IS
2311 l_result        NUMBER;
2312 BEGIN
2313 
2314 l_result := Is_OP_constrained
2315     (p_operation        => p_operation
2316     ,p_column_name      => 'VERSION_NUMBER'
2317     ,p_record   => p_record
2318     ,x_on_operation_action      => x_on_operation_action
2319     );
2320 
2321 RETURN(l_result);
2322 
2323 END VERSION_NUMBER;
2324 
2325 FUNCTION SOLD_TO_SITE_USE
2326 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2327 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2328 , x_on_operation_action OUT NOCOPY NUMBER
2329 
2330 ) RETURN NUMBER
2331 IS
2332 l_result        NUMBER;
2333 BEGIN
2334 
2335 l_result := Is_OP_constrained
2336     (p_operation        => p_operation
2337      -- Bug 3378203 -
2338      -- Correct the column name
2339     ,p_column_name      => 'SOLD_TO_SITE_USE_ID'
2340     ,p_record   => p_record
2341     ,x_on_operation_action      => x_on_operation_action
2342     );
2343 
2344 RETURN(l_result);
2345 
2346 END SOLD_TO_SITE_USE;
2347 
2348 -- Quoting Changes END
2349 
2350 -- Comment Label for procedure added as part of Inline Documentation Drive.
2351 ---------------------------------------------------------------------------------
2352 -- Procedure Name : DEFAULT_FULFILLMENT_SET
2353 -- Input Params   : p_operation          : Operation being performed.
2354 --                  p_record             : Record being processed.
2355 -- Output Params  : x_on_operation_action: operation action output.
2356 -- Description    : This checks if there are any constraints setup on the
2357 --                  attribute DEFAULT_FULFILLMENT_SET field on Order Header.
2358 --                  This Function invokes the Processing Constraint Framework
2359 --                  for this particular attribute, like all others.
2360 --                  Without such a function in place, the Processing Constraint
2361 --                  won't fire even if a setup exists.
2362 --                  This code is called only from the Attributes procedure in
2363 --                  this package if the value of the Default Fulfillment Set
2364 --                  field has changed.
2365 ---------------------------------------------------------------------------------
2366 
2367 -- Bug 8217769 New Function added for Default Fulfillment Set
2368 FUNCTION DEFAULT_FULFILLMENT_SET
2369 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2370 ,   p_record                        IN  OE_AK_ORDER_HEADERS_V%ROWTYPE
2371 ,   x_on_operation_action          OUT  NOCOPY NUMBER
2372 ) RETURN NUMBER
2373 IS
2374 l_result      NUMBER;
2375 BEGIN
2376 l_result := Is_OP_constrained
2377     (p_operation      => p_operation
2378     ,p_column_name    => 'DEFAULT_FULFILLMENT_SET'
2379     ,p_record => p_record
2380     ,x_on_operation_action    => x_on_operation_action
2381     );
2382 RETURN(l_result);
2383 END DEFAULT_FULFILLMENT_SET;
2384 -- Bug 8217769 Function ends.
2385 
2386 PROCEDURE Entity
2387 (   p_HEADER_rec                    IN  OE_Order_PUB.HEADER_Rec_Type
2388 , x_result OUT NOCOPY NUMBER
2389 
2390 , x_return_status OUT NOCOPY VARCHAR2
2391 
2392 ) IS
2393 l_operation	VARCHAR2(1);
2394 l_on_operation_action	NUMBER;
2395 l_rowtype_rec	OE_AK_ORDER_HEADERS_V%ROWTYPE;
2396 --
2397 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2398 --
2399 BEGIN
2400 IF l_debug_level  > 0 THEN
2401     oe_debug_pub.add(  'ENTER OE_HEADER_SECURITY.ENTITY' , 1 ) ;
2402 END IF;
2403 
2404 -- Initializing return status to SUCCESS
2405 x_return_status := FND_API.G_RET_STS_SUCCESS;
2406 
2407 IF p_HEADER_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
2408     l_operation := OE_PC_GLOBALS.CREATE_OP;
2409 ELSIF p_HEADER_rec.operation = OE_GLOBALS.G_OPR_UPDATE THEN
2410     l_operation := OE_PC_GLOBALS.UPDATE_OP;
2411 ELSIF p_HEADER_rec.operation = OE_GLOBALS.G_OPR_DELETE THEN
2412     l_operation := OE_PC_GLOBALS.DELETE_OP;
2413 ELSE
2414     IF l_debug_level  > 0 THEN
2415         oe_debug_pub.add(  'INVALID OPERATION' , 1 ) ;
2416     END IF;
2417     RAISE FND_API.G_EXC_ERROR;
2418 END IF;
2419 
2420 OE_HEADER_UTIL.API_Rec_To_Rowtype_Rec(p_HEADER_rec, l_rowtype_rec);
2421 
2422 -- Initialize security global record
2423 OE_Header_SECURITY.g_record := l_rowtype_rec;
2424 
2425 x_result := Is_OP_constrained
2426     (p_operation	=> l_operation
2427     ,p_record	=> l_rowtype_rec
2428     ,x_on_operation_action	=> l_on_operation_action
2429     );
2430 
2431 IF l_debug_level  > 0 THEN
2432     oe_debug_pub.add(  'EXIT OE_HEADER_SECURITY.ENTITY' , 1 ) ;
2433 END IF;
2434 
2435 EXCEPTION
2436     WHEN OTHERS THEN
2437     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2438     IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2439         OE_MSG_PUB.Add_Exc_Msg
2440         (   G_PKG_NAME
2441         ,   'Entity'
2442         );
2443     END IF;
2444 
2445 END Entity;
2446 
2447 -- Comment Label for procedure added as part of Inline Documentation Drive.
2448 -------------------------------------------------------------------------------------
2449 -- Procedure Name : Attributes
2450 -- Input Params   : p_HEADER_rec         : New/changed Header Record.
2451 --                  p_old_HEADER_rec     : Old Header Record.
2452 -- Output Params  : x_result             : Result out for Attribute Security check.
2453 --                  x_return_status      : Return Status from this Procedure.
2454 -- Description    : This procedure check the Processing Constraints for the various
2455 --                  attributes of the Header Entity, during any operation invoked
2456 --                  for Order Header Entity. If Attribute Security Check is passed,
2457 --                  only then the operation progresses, else if it is constrained,
2458 --                  for any attribute, an Error is raised with appropriate message.
2459 --                  This code calls the various Functions, created for various
2460 --                  attributes of Header Entity, if the value for an attribute has
2461 --                  changed.
2462 --                  This code is called as part of the Process Order Call, whenever
2463 --                  there is any operation on the Header Entity.
2464 -------------------------------------------------------------------------------------
2465 
2466 PROCEDURE Attributes
2467 (   p_HEADER_rec                    IN  OE_Order_PUB.HEADER_Rec_Type
2468 ,   p_old_HEADER_rec                IN  OE_Order_PUB.HEADER_Rec_Type := OE_Order_PUB.G_MISS_HEADER_REC
2469 , x_result OUT NOCOPY NUMBER
2470 
2471 , x_return_status OUT NOCOPY VARCHAR2
2472 
2473 ) IS
2474 l_operation	VARCHAR2(1);
2475 l_on_operation_action  NUMBER;
2476 l_result		NUMBER;
2477 l_rowtype_rec	OE_AK_ORDER_HEADERS_V%ROWTYPE;
2478 l_column_name	VARCHAR2(30);
2479 l_active_flag   VARCHAR2(1);
2480 e_inacitve_pl   EXCEPTION;
2481 l_check_all_cols_constraint VARCHAR2(1);
2482 --
2483 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2484 --
2485 BEGIN
2486 IF l_debug_level  > 0 THEN
2487     oe_debug_pub.add(  'ENTER OE_HEADER_SECURITY.ATTRIBUTES' , 1 ) ;
2488 END IF;
2489 
2490 -- Initializing return status to SUCCESS
2491 x_return_status := FND_API.G_RET_STS_SUCCESS;
2492 
2493 -- Initializing out result to NOT CONSTRAINED
2494 x_result := OE_PC_GLOBALS.NO;
2495 
2496  -- Get the operation code to be passed to the security framework API
2497 IF p_HEADER_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
2498     -- Bug 1987983 : if the order source is Copy then skip the Attribute
2499     -- level check
2500    IF p_HEADER_rec.source_document_type_id = OE_GLOBALS.G_ORDER_SOURCE_COPY
2501       THEN
2502       RETURN;
2503    ELSE
2504     l_operation := OE_PC_GLOBALS.CREATE_OP;
2505    END IF;
2506     -- Bug 1755817: if there are no attribute-specific insert
2507     -- constraints, then no need to go further. Entity level
2508     -- security check for CREATE will be called again from
2509     -- process order after defaulting.
2510     IF NOT OE_PC_Constraints_Admin_PVT.Check_On_Insert_Exists
2511            (p_entity_id   => OE_PC_GLOBALS.G_ENTITY_HEADER
2512            ,p_responsibility_id     => nvl(fnd_global.resp_id, -1)
2513            ,p_application_id        => nvl(fnd_global.resp_appl_id,-1) --added for bug3631547
2514            )
2515     THEN
2516        RETURN;
2517     END IF;
2518 
2519 ELSIF p_HEADER_rec.operation = OE_GLOBALS.G_OPR_UPDATE THEN
2520     l_operation := OE_PC_GLOBALS.UPDATE_OP;
2521 ELSE
2522     IF l_debug_level  > 0 THEN
2523         oe_debug_pub.add(  'INVALID OPERATION' , 1 ) ;
2524     END IF;
2525     RAISE FND_API.G_EXC_ERROR;
2526 END IF;
2527 
2528 OE_HEADER_UTIL.API_Rec_To_Rowtype_Rec(p_HEADER_rec, l_rowtype_rec);
2529 
2530 -- Initialize security global record
2531 OE_Header_SECURITY.g_record := l_rowtype_rec;
2532 
2533 -- Compare the new and old entity records and
2534 -- check constraints for all the changed attributes.
2535 
2536    IF p_header_rec.cancelled_flag <> FND_API.G_MISS_CHAR
2537      AND NOT OE_GLOBALS.Equal(p_header_rec.cancelled_flag,
2538 		 p_old_header_rec.cancelled_flag)
2539             THEN
2540 		IF p_header_rec.cancelled_flag = 'Y' THEN
2541         l_result := CANCELLED
2542             (p_operation => l_operation
2543             ,p_record    => l_rowtype_rec
2544             ,x_on_operation_action => l_on_operation_action
2545             );
2546         IF l_result = OE_PC_GLOBALS.YES THEN
2547             -- set OUT result to CONSTRAINED
2548              x_result := OE_PC_GLOBALS.YES;
2549 		   --RAISE;
2550         END IF;
2551 	     END IF;
2552 
2553     END IF;
2554 
2555     IF ((p_header_rec.price_list_id IS NOT NULL)
2556       AND (NOT oe_globals.equal(p_header_rec.price_list_id,
2557       p_old_HEADER_rec.price_list_id))
2558       AND (p_header_rec.order_category_code IS NOT NULL)
2559       AND (p_header_rec.order_category_code <>
2560                  Oe_Globals.G_RETURN_CATEGORY_CODE)) THEN
2561       BEGIN
2562         SELECT active_flag
2563         INTO l_active_flag
2564         FROM qp_List_headers_vl
2565         WHERE list_header_id = p_header_rec.price_list_id;
2566         IF(nvl(l_active_flag,'N')='N') THEN
2567           RAISE e_inacitve_pl;
2568         END IF;
2569       EXCEPTION
2570         WHEN e_inacitve_pl  THEN
2571           RAISE e_inacitve_pl ;
2572 
2573         WHEN OTHERS THEN
2574           IF l_debug_level  > 0 THEN
2575               oe_debug_pub.add(  'WHEN OTHERS' , 2 ) ;
2576           END IF;
2577       END;
2578     END IF;
2579 
2580     IF p_header_rec.accounting_rule_id = FND_API.G_MISS_NUM THEN NULL;
2581     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.accounting_rule_id,p_old_header_rec.accounting_rule_id) THEN
2582 
2583         l_result := ACCOUNTING_RULE
2584             (p_operation        => l_operation
2585             ,p_record   => l_rowtype_rec
2586             ,x_on_operation_action => l_on_operation_action
2587             );
2588 
2589         IF l_result = OE_PC_GLOBALS.YES THEN
2590             -- set OUT result to CONSTRAINED
2591             x_result := OE_PC_GLOBALS.YES;
2592         END IF;
2593 
2594     END IF;
2595 
2596    IF p_header_rec.IB_OWNER = FND_API.G_MISS_CHAR THEN NULL;
2597     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.IB_OWNER,p_old_header_rec.IB_OWNER) THEN
2598 
2599         l_result := IB_OWNER
2600             (p_operation        => l_operation
2601             ,p_record   => l_rowtype_rec
2602             ,x_on_operation_action => l_on_operation_action
2603             );
2604 
2605         IF l_result = OE_PC_GLOBALS.YES THEN
2606             -- set OUT result to CONSTRAINED
2607             x_result := OE_PC_GLOBALS.YES;
2608         END IF;
2609 
2610     END IF;
2611    IF p_header_rec.IB_INSTALLED_AT_LOCATION = FND_API.G_MISS_CHAR THEN NULL;
2612     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.IB_INSTALLED_AT_LOCATION,p_old_header_rec.IB_INSTALLED_AT_LOCATION) THEN
2613 
2614         l_result := IB_INSTALLED_AT_LOCATION
2615             (p_operation        => l_operation
2616             ,p_record   => l_rowtype_rec
2617             ,x_on_operation_action => l_on_operation_action
2618             );
2619 
2620         IF l_result = OE_PC_GLOBALS.YES THEN
2621             -- set OUT result to CONSTRAINED
2622             x_result := OE_PC_GLOBALS.YES;
2623         END IF;
2624 
2625     END IF;
2626    IF p_header_rec.IB_CURRENT_LOCATION = FND_API.G_MISS_CHAR THEN NULL;
2627     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.IB_CURRENT_LOCATION,p_old_header_rec.IB_CURRENT_LOCATION) THEN
2628 
2629         l_result := IB_CURRENT_LOCATION
2630             (p_operation        => l_operation
2631             ,p_record   => l_rowtype_rec
2632             ,x_on_operation_action => l_on_operation_action
2633             );
2634 
2635         IF l_result = OE_PC_GLOBALS.YES THEN
2636             -- set OUT result to CONSTRAINED
2637             x_result := OE_PC_GLOBALS.YES;
2638         END IF;
2639 
2640     END IF;
2641   IF p_header_rec.END_CUSTOMER_ID = FND_API.G_MISS_NUM THEN NULL;
2642     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.END_CUSTOMER_ID,p_old_header_rec.END_CUSTOMER_ID) THEN
2643 
2644         l_result := END_CUSTOMER
2645             (p_operation        => l_operation
2646             ,p_record   => l_rowtype_rec
2647             ,x_on_operation_action => l_on_operation_action
2648             );
2649 
2650         IF l_result = OE_PC_GLOBALS.YES THEN
2651             -- set OUT result to CONSTRAINED
2652             x_result := OE_PC_GLOBALS.YES;
2653         END IF;
2654 
2655     END IF;
2656   IF p_header_rec.END_CUSTOMER_SITE_USE_ID = FND_API.G_MISS_NUM THEN NULL;
2657     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.END_CUSTOMER_SITE_USE_ID,p_old_header_rec.END_CUSTOMER_SITE_USE_ID) THEN
2658 
2659         l_result := END_CUSTOMER_SITE_USE
2660             (p_operation        => l_operation
2661             ,p_record   => l_rowtype_rec
2662             ,x_on_operation_action => l_on_operation_action
2663             );
2664 
2665         IF l_result = OE_PC_GLOBALS.YES THEN
2666             -- set OUT result to CONSTRAINED
2667             x_result := OE_PC_GLOBALS.YES;
2668         END IF;
2669 
2670     END IF;
2671   IF p_header_rec.END_CUSTOMER_CONTACT_ID = FND_API.G_MISS_NUM THEN NULL;
2672     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.END_CUSTOMER_CONTACT_ID,p_old_header_rec.END_CUSTOMER_CONTACT_ID) THEN
2673 
2674         l_result := END_CUSTOMER_CONTACT
2675             (p_operation        => l_operation
2676             ,p_record   => l_rowtype_rec
2677             ,x_on_operation_action => l_on_operation_action
2678             );
2679 
2680         IF l_result = OE_PC_GLOBALS.YES THEN
2681             -- set OUT result to CONSTRAINED
2682             x_result := OE_PC_GLOBALS.YES;
2683         END IF;
2684 
2685     END IF;
2686 
2687     IF p_header_rec.accounting_rule_duration = FND_API.G_MISS_NUM THEN NULL;
2688     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.accounting_rule_duration,p_old_header_rec.accounting_rule_duration) THEN
2689 
2690         l_result := ACCOUNTING_RULE_DURATION
2691             (p_operation        => l_operation
2692             ,p_record   => l_rowtype_rec
2693             ,x_on_operation_action => l_on_operation_action
2694             );
2695 
2696         IF l_result = OE_PC_GLOBALS.YES THEN
2697             -- set OUT result to CONSTRAINED
2698             x_result := OE_PC_GLOBALS.YES;
2699         END IF;
2700 
2701     END IF;
2702 
2703     IF p_header_rec.agreement_id = FND_API.G_MISS_NUM THEN NULL;
2704     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.agreement_id,p_old_header_rec.agreement_id) THEN
2705 
2706         l_result := AGREEMENT
2707             (p_operation        => l_operation
2708             ,p_record   => l_rowtype_rec
2709             ,x_on_operation_action => l_on_operation_action
2710             );
2711 
2712         IF l_result = OE_PC_GLOBALS.YES THEN
2713             -- set OUT result to CONSTRAINED
2714             x_result := OE_PC_GLOBALS.YES;
2715         END IF;
2716 
2717     END IF;
2718 
2719     IF p_header_rec.conversion_rate = FND_API.G_MISS_NUM THEN NULL;
2720     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.conversion_rate,p_old_header_rec.conversion_rate) THEN
2721 
2722         l_result := CONVERSION_RATE
2723             (p_operation        => l_operation
2724             ,p_record   => l_rowtype_rec
2725             ,x_on_operation_action => l_on_operation_action
2726             );
2727 
2728         IF l_result = OE_PC_GLOBALS.YES THEN
2729             -- set OUT result to CONSTRAINED
2730             x_result := OE_PC_GLOBALS.YES;
2731         END IF;
2732 
2733     END IF;
2734 
2735     IF p_header_rec.conversion_rate_date = FND_API.G_MISS_DATE THEN NULL;
2736     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.conversion_rate_date,p_old_header_rec.conversion_rate_date) THEN
2737 
2738         l_result := CONVERSION_RATE_DATE
2739             (p_operation        => l_operation
2740             ,p_record   => l_rowtype_rec
2741             ,x_on_operation_action => l_on_operation_action
2742             );
2743 
2744         IF l_result = OE_PC_GLOBALS.YES THEN
2745             -- set OUT result to CONSTRAINED
2746             x_result := OE_PC_GLOBALS.YES;
2747         END IF;
2748 
2749     END IF;
2750 
2751     IF p_header_rec.conversion_type_code = FND_API.G_MISS_CHAR THEN NULL;
2752     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.conversion_type_code,p_old_header_rec.conversion_type_code) THEN
2753 
2754         l_result := CONVERSION_TYPE
2755             (p_operation        => l_operation
2756             ,p_record   => l_rowtype_rec
2757             ,x_on_operation_action => l_on_operation_action
2758             );
2759 
2760         IF l_result = OE_PC_GLOBALS.YES THEN
2761             -- set OUT result to CONSTRAINED
2762             x_result := OE_PC_GLOBALS.YES;
2763         END IF;
2764 
2765     END IF;
2766 
2767     IF p_header_rec.created_by = FND_API.G_MISS_NUM THEN NULL;
2768     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.created_by,p_old_header_rec.created_by) THEN
2769 
2770         l_result := CREATED_BY
2771             (p_operation        => l_operation
2772             ,p_record   => l_rowtype_rec
2773             ,x_on_operation_action => l_on_operation_action
2774             );
2775 
2776         IF l_result = OE_PC_GLOBALS.YES THEN
2777             -- set OUT result to CONSTRAINED
2778             x_result := OE_PC_GLOBALS.YES;
2779         END IF;
2780 
2781     END IF;
2782 
2783     IF p_header_rec.cust_po_number = FND_API.G_MISS_CHAR THEN NULL;
2784     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.cust_po_number,p_old_header_rec.cust_po_number) THEN
2785 
2786         l_result := CUST_PO_NUMBER
2787             (p_operation        => l_operation
2788             ,p_record   => l_rowtype_rec
2789             ,x_on_operation_action => l_on_operation_action
2790             );
2791 
2792         IF l_result = OE_PC_GLOBALS.YES THEN
2793             -- set OUT result to CONSTRAINED
2794             x_result := OE_PC_GLOBALS.YES;
2795         END IF;
2796 
2797     END IF;
2798 
2799     IF p_header_rec.deliver_to_contact_id = FND_API.G_MISS_NUM THEN NULL;
2800     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.deliver_to_contact_id,p_old_header_rec.deliver_to_contact_id) THEN
2801 
2802         l_result := DELIVER_TO_CONTACT
2803             (p_operation        => l_operation
2804             ,p_record   => l_rowtype_rec
2805             ,x_on_operation_action => l_on_operation_action
2806             );
2807 
2808         IF l_result = OE_PC_GLOBALS.YES THEN
2809             -- set OUT result to CONSTRAINED
2810             x_result := OE_PC_GLOBALS.YES;
2811         END IF;
2812 
2813     END IF;
2814 
2815     IF p_header_rec.deliver_to_org_id = FND_API.G_MISS_NUM THEN NULL;
2816     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.deliver_to_org_id,p_old_header_rec.deliver_to_org_id) THEN
2817 
2818         l_result := DELIVER_TO_ORG
2819             (p_operation        => l_operation
2820             ,p_record   => l_rowtype_rec
2821             ,x_on_operation_action => l_on_operation_action
2822             );
2823 
2824         IF l_result = OE_PC_GLOBALS.YES THEN
2825             -- set OUT result to CONSTRAINED
2826             x_result := OE_PC_GLOBALS.YES;
2827         END IF;
2828 
2829     END IF;
2830 
2831     IF p_header_rec.demand_class_code = FND_API.G_MISS_CHAR THEN NULL;
2832     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.demand_class_code,p_old_header_rec.demand_class_code) THEN
2833 
2834         l_result := DEMAND_CLASS
2835             (p_operation        => l_operation
2836             ,p_record   => l_rowtype_rec
2837             ,x_on_operation_action => l_on_operation_action
2838             );
2839 
2840         IF l_result = OE_PC_GLOBALS.YES THEN
2841             -- set OUT result to CONSTRAINED
2842             x_result := OE_PC_GLOBALS.YES;
2843         END IF;
2844 
2845     END IF;
2846 
2847     IF p_header_rec.earliest_schedule_limit = FND_API.G_MISS_NUM THEN NULL;
2848     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.earliest_schedule_limit,p_old_header_rec.earliest_schedule_limit) THEN
2849 
2850         l_result := EARLIEST_SCHEDULE_LIMIT
2851             (p_operation        => l_operation
2852             ,p_record   => l_rowtype_rec
2853             ,x_on_operation_action => l_on_operation_action
2854             );
2855 
2856         IF l_result = OE_PC_GLOBALS.YES THEN
2857             -- set OUT result to CONSTRAINED
2858             x_result := OE_PC_GLOBALS.YES;
2859         END IF;
2860 
2861     END IF;
2862 
2863     IF p_header_rec.fob_point_code = FND_API.G_MISS_CHAR THEN NULL;
2864     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.fob_point_code,p_old_header_rec.fob_point_code) THEN
2865 
2866         l_result := FOB_POINT
2867             (p_operation        => l_operation
2868             ,p_record   => l_rowtype_rec
2869             ,x_on_operation_action => l_on_operation_action
2870             );
2871 
2872         IF l_result = OE_PC_GLOBALS.YES THEN
2873             -- set OUT result to CONSTRAINED
2874             x_result := OE_PC_GLOBALS.YES;
2875         END IF;
2876 
2877     END IF;
2878 
2879     IF p_header_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN NULL;
2880     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.freight_terms_code,p_old_header_rec.freight_terms_code) THEN
2881 
2882         l_result := FREIGHT_TERMS
2883             (p_operation        => l_operation
2884             ,p_record   => l_rowtype_rec
2885             ,x_on_operation_action => l_on_operation_action
2886             );
2887 
2888         IF l_result = OE_PC_GLOBALS.YES THEN
2889             -- set OUT result to CONSTRAINED
2890             x_result := OE_PC_GLOBALS.YES;
2891         END IF;
2892 
2893     END IF;
2894 
2895     IF p_header_rec.invoice_to_contact_id = FND_API.G_MISS_NUM THEN NULL;
2896     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.invoice_to_contact_id,p_old_header_rec.invoice_to_contact_id) THEN
2897 
2898         l_result := INVOICE_TO_CONTACT
2899             (p_operation        => l_operation
2900             ,p_record   => l_rowtype_rec
2901             ,x_on_operation_action => l_on_operation_action
2902             );
2903 
2904         IF l_result = OE_PC_GLOBALS.YES THEN
2905             -- set OUT result to CONSTRAINED
2906             x_result := OE_PC_GLOBALS.YES;
2907         END IF;
2908 
2909     END IF;
2910 
2911     IF p_header_rec.invoice_to_org_id = FND_API.G_MISS_NUM THEN NULL;
2912     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.invoice_to_org_id,p_old_header_rec.invoice_to_org_id) THEN
2913 
2914         l_result := INVOICE_TO_ORG
2915             (p_operation        => l_operation
2916             ,p_record   => l_rowtype_rec
2917             ,x_on_operation_action => l_on_operation_action
2918             );
2919 
2920         IF l_result = OE_PC_GLOBALS.YES THEN
2921             -- set OUT result to CONSTRAINED
2922             x_result := OE_PC_GLOBALS.YES;
2923         END IF;
2924 
2925     END IF;
2926 
2927     IF p_header_rec.invoicing_rule_id = FND_API.G_MISS_NUM THEN NULL;
2928     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.invoicing_rule_id,p_old_header_rec.invoicing_rule_id) THEN
2929 
2930         l_result := INVOICING_RULE
2931             (p_operation        => l_operation
2932             ,p_record   => l_rowtype_rec
2933             ,x_on_operation_action => l_on_operation_action
2934             );
2935 
2936         IF l_result = OE_PC_GLOBALS.YES THEN
2937             -- set OUT result to CONSTRAINED
2938             x_result := OE_PC_GLOBALS.YES;
2939         END IF;
2940 
2941     END IF;
2942 
2943     IF p_header_rec.latest_schedule_limit = FND_API.G_MISS_NUM THEN NULL;
2944     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.latest_schedule_limit,p_old_header_rec.latest_schedule_limit) THEN
2945 
2946         l_result := LATEST_SCHEDULE_LIMIT
2947             (p_operation        => l_operation
2948             ,p_record   => l_rowtype_rec
2949             ,x_on_operation_action => l_on_operation_action
2950             );
2951 
2952         IF l_result = OE_PC_GLOBALS.YES THEN
2953             -- set OUT result to CONSTRAINED
2954             x_result := OE_PC_GLOBALS.YES;
2955         END IF;
2956 
2957     END IF;
2958 
2959     IF p_header_rec.ordered_date = FND_API.G_MISS_DATE THEN NULL;
2960     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.ordered_date,p_old_header_rec.ordered_date) THEN
2961 
2962         l_result := ORDERED_DATE
2963             (p_operation        => l_operation
2964             ,p_record   => l_rowtype_rec
2965             ,x_on_operation_action => l_on_operation_action
2966             );
2967 
2968         IF l_result = OE_PC_GLOBALS.YES THEN
2969             -- set OUT result to CONSTRAINED
2970             x_result := OE_PC_GLOBALS.YES;
2971         END IF;
2972 
2973     END IF;
2974 
2975     IF p_header_rec.order_date_type_code = FND_API.G_MISS_CHAR THEN NULL;
2976     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.order_date_type_code,p_old_header_rec.order_date_type_code) THEN
2977 
2978         l_result := ORDER_DATE_TYPE_CODE
2979             (p_operation        => l_operation
2980             ,p_record   => l_rowtype_rec
2981             ,x_on_operation_action => l_on_operation_action
2982             );
2983 
2984         IF l_result = OE_PC_GLOBALS.YES THEN
2985             -- set OUT result to CONSTRAINED
2986             x_result := OE_PC_GLOBALS.YES;
2987         END IF;
2988 
2989     END IF;
2990 
2991     IF p_header_rec.order_number = FND_API.G_MISS_NUM THEN NULL;
2992     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.order_number,p_old_header_rec.order_number) THEN
2993 
2994         l_result := ORDER_NUMBER
2995             (p_operation        => l_operation
2996             ,p_record   => l_rowtype_rec
2997             ,x_on_operation_action => l_on_operation_action
2998             );
2999 
3000         IF l_result = OE_PC_GLOBALS.YES THEN
3001             -- set OUT result to CONSTRAINED
3002             x_result := OE_PC_GLOBALS.YES;
3003         END IF;
3004 
3005     END IF;
3006 
3007     IF p_header_rec.order_type_id = FND_API.G_MISS_NUM THEN NULL;
3008     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.order_type_id,p_old_header_rec.order_type_id) THEN
3009 
3010         l_result := ORDER_TYPE
3011             (p_operation        => l_operation
3012             ,p_record   => l_rowtype_rec
3013             ,x_on_operation_action => l_on_operation_action
3014             );
3015 
3016         IF l_result = OE_PC_GLOBALS.YES THEN
3017             -- set OUT result to CONSTRAINED
3018             x_result := OE_PC_GLOBALS.YES;
3019         END IF;
3020 
3021     END IF;
3022 
3023     IF p_header_rec.packing_instructions = FND_API.G_MISS_CHAR THEN NULL;
3024     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.packing_instructions,p_old_header_rec.packing_instructions) THEN
3025 
3026         l_result := PACKING_INSTRUCTIONS
3027             (p_operation        => l_operation
3028             ,p_record   => l_rowtype_rec
3029             ,x_on_operation_action => l_on_operation_action
3030             );
3031 
3032         IF l_result = OE_PC_GLOBALS.YES THEN
3033             -- set OUT result to CONSTRAINED
3034             x_result := OE_PC_GLOBALS.YES;
3035         END IF;
3036 
3037     END IF;
3038 
3039     IF p_header_rec.payment_term_id = FND_API.G_MISS_NUM THEN NULL;
3040     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.payment_term_id,p_old_header_rec.payment_term_id) THEN
3041 
3042         l_result := PAYMENT_TERM
3043             (p_operation        => l_operation
3044             ,p_record   => l_rowtype_rec
3045             ,x_on_operation_action => l_on_operation_action
3046             );
3047 
3048         IF l_result = OE_PC_GLOBALS.YES THEN
3049             -- set OUT result to CONSTRAINED
3050             x_result := OE_PC_GLOBALS.YES;
3051         END IF;
3052 
3053     END IF;
3054 
3055     IF p_header_rec.price_list_id = FND_API.G_MISS_NUM THEN NULL;
3056     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.price_list_id,p_old_header_rec.price_list_id) THEN
3057 
3058         l_result := PRICE_LIST
3059             (p_operation        => l_operation
3060             ,p_record   => l_rowtype_rec
3061             ,x_on_operation_action => l_on_operation_action
3062             );
3063 
3064         IF l_result = OE_PC_GLOBALS.YES THEN
3065             -- set OUT result to CONSTRAINED
3066             x_result := OE_PC_GLOBALS.YES;
3067         END IF;
3068 
3069     END IF;
3070 
3071     IF p_header_rec.pricing_date = FND_API.G_MISS_DATE THEN NULL;
3072     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.pricing_date,p_old_header_rec.pricing_date) THEN
3073 
3074         l_result := PRICING_DATE
3075             (p_operation        => l_operation
3076             ,p_record   => l_rowtype_rec
3077             ,x_on_operation_action => l_on_operation_action
3078             );
3079 
3080         IF l_result = OE_PC_GLOBALS.YES THEN
3081             -- set OUT result to CONSTRAINED
3082             x_result := OE_PC_GLOBALS.YES;
3083         END IF;
3084 
3085     END IF;
3086 
3087     IF p_header_rec.request_date = FND_API.G_MISS_DATE THEN NULL;
3088     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.request_date,p_old_header_rec.request_date) THEN
3089 
3090         l_result := REQUEST_DATE
3091             (p_operation        => l_operation
3092             ,p_record   => l_rowtype_rec
3093             ,x_on_operation_action => l_on_operation_action
3094             );
3095 
3096         IF l_result = OE_PC_GLOBALS.YES THEN
3097             -- set OUT result to CONSTRAINED
3098             x_result := OE_PC_GLOBALS.YES;
3099         END IF;
3100 
3101     END IF;
3102 
3103     IF p_header_rec.return_reason_code = FND_API.G_MISS_CHAR THEN NULL;
3104     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.return_reason_code,p_old_header_rec.return_reason_code) THEN
3105 
3106         l_result := RETURN_REASON
3107             (p_operation        => l_operation
3108             ,p_record   => l_rowtype_rec
3109             ,x_on_operation_action => l_on_operation_action
3110             );
3111 
3112         IF l_result = OE_PC_GLOBALS.YES THEN
3113             -- set OUT result to CONSTRAINED
3114             x_result := OE_PC_GLOBALS.YES;
3115         END IF;
3116 
3117     END IF;
3118 
3119     IF p_header_rec.salesrep_id = FND_API.G_MISS_NUM THEN NULL;
3120     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.salesrep_id,p_old_header_rec.salesrep_id) THEN
3121 
3122         l_result := SALESREP
3123             (p_operation        => l_operation
3124             ,p_record   => l_rowtype_rec
3125             ,x_on_operation_action => l_on_operation_action
3126             );
3127 
3128         IF l_result = OE_PC_GLOBALS.YES THEN
3129             -- set OUT result to CONSTRAINED
3130             x_result := OE_PC_GLOBALS.YES;
3131         END IF;
3132 
3133     END IF;
3134 
3135     IF p_header_rec.sales_channel_code = FND_API.G_MISS_CHAR THEN NULL;
3136     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.sales_channel_code,p_old_header_rec.sales_channel_code) THEN
3137 
3138         l_result := SALES_CHANNEL_CODE
3139             (p_operation        => l_operation
3140             ,p_record   => l_rowtype_rec
3141             ,x_on_operation_action => l_on_operation_action
3142             );
3143 
3144         IF l_result = OE_PC_GLOBALS.YES THEN
3145             -- set OUT result to CONSTRAINED
3146             x_result := OE_PC_GLOBALS.YES;
3147         END IF;
3148 
3149     END IF;
3150 
3151 /* START PREPAYMENT */
3152     IF p_header_rec.payment_type_code = FND_API.G_MISS_CHAR THEN NULL;
3153     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.payment_type_code, p_old_header_rec.payment_type_code) THEN
3154 
3155         l_result := PAYMENT_TYPE
3156             (p_operation        => l_operation
3157             ,p_record   => l_rowtype_rec
3158             ,x_on_operation_action => l_on_operation_action
3159             );
3160         IF l_result = OE_PC_GLOBALS.YES THEN
3161             -- set OUT result to CONSTRAINED
3162             x_result := OE_PC_GLOBALS.YES;
3163         END IF;
3164 
3165     END IF;
3166 
3167     IF p_header_rec.credit_card_holder_name = FND_API.G_MISS_CHAR THEN NULL;
3168     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.credit_card_holder_name, p_old_header_rec.credit_card_holder_name) THEN
3169 
3170         l_result := CREDIT_CARD_HOLDER_NAME
3171             (p_operation        => l_operation
3172             ,p_record   => l_rowtype_rec
3173             ,x_on_operation_action => l_on_operation_action
3174             );
3175         IF l_result = OE_PC_GLOBALS.YES THEN
3176             -- set OUT result to CONSTRAINED
3177             x_result := OE_PC_GLOBALS.YES;
3178         END IF;
3179 
3180     END IF;
3181 
3182     IF p_header_rec.credit_card_code = FND_API.G_MISS_CHAR THEN NULL;
3183     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.credit_card_code, p_old_header_rec.credit_card_code) THEN
3184 
3185         l_result := CREDIT_CARD
3186             (p_operation        => l_operation
3187             ,p_record   => l_rowtype_rec
3188             ,x_on_operation_action => l_on_operation_action
3189             );
3190         IF l_result = OE_PC_GLOBALS.YES THEN
3191             -- set OUT result to CONSTRAINED
3192             x_result := OE_PC_GLOBALS.YES;
3193         END IF;
3194 
3195     END IF;
3196 
3197     IF p_header_rec.credit_card_number = FND_API.G_MISS_CHAR THEN NULL;
3198     --R12 CC Encryption
3199     --Since the credit card numbers are encrypted, calling
3200     --the function same credit card to determine whether the old
3201     --and new card numbers are equal.
3202     ELSIF NOT OE_GLOBALS.Is_Same_Credit_Card(p_old_header_rec.credit_card_number,
3203 	    p_header_rec.credit_card_number,
3204 	    p_old_header_rec.cc_instrument_id,
3205 	    p_header_rec.cc_instrument_id) THEN
3206         l_result := CREDIT_CARD_NUMBER
3207             (p_operation        => l_operation
3208             ,p_record   => l_rowtype_rec
3209             ,x_on_operation_action => l_on_operation_action
3210             );
3211         IF l_result = OE_PC_GLOBALS.YES THEN
3212             -- set OUT result to CONSTRAINED
3213             x_result := OE_PC_GLOBALS.YES;
3214         END IF;
3215 
3216     END IF;
3217 
3218     IF p_header_rec.credit_card_expiration_date = FND_API.G_MISS_DATE THEN NULL;
3219     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.credit_card_expiration_date, p_old_header_rec.credit_card_expiration_date) THEN
3220 
3221         l_result := CREDIT_CARD_EXPIRATION_DATE
3222             (p_operation        => l_operation
3223             ,p_record   => l_rowtype_rec
3224             ,x_on_operation_action => l_on_operation_action
3225             );
3226         IF l_result = OE_PC_GLOBALS.YES THEN
3227             -- set OUT result to CONSTRAINED
3228             x_result := OE_PC_GLOBALS.YES;
3229         END IF;
3230 
3231     END IF;
3232 /* END PREPAYMENT */
3233 
3234     IF p_header_rec.shipment_priority_code = FND_API.G_MISS_CHAR THEN NULL;
3235     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.shipment_priority_code,p_old_header_rec.shipment_priority_code) THEN
3236 
3237         l_result := SHIPMENT_PRIORITY
3238             (p_operation        => l_operation
3239             ,p_record   => l_rowtype_rec
3240             ,x_on_operation_action => l_on_operation_action
3241             );
3242 
3243         IF l_result = OE_PC_GLOBALS.YES THEN
3244             -- set OUT result to CONSTRAINED
3245             x_result := OE_PC_GLOBALS.YES;
3246         END IF;
3247 
3248     END IF;
3249 
3250     IF p_header_rec.shipping_instructions = FND_API.G_MISS_CHAR THEN NULL;
3251     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.shipping_instructions,p_old_header_rec.shipping_instructions) THEN
3252 
3253         l_result := SHIPPING_INSTRUCTIONS
3254             (p_operation        => l_operation
3255             ,p_record   => l_rowtype_rec
3256             ,x_on_operation_action => l_on_operation_action
3257             );
3258 
3259         IF l_result = OE_PC_GLOBALS.YES THEN
3260             -- set OUT result to CONSTRAINED
3261             x_result := OE_PC_GLOBALS.YES;
3262         END IF;
3263 
3264     END IF;
3265 
3266     IF p_header_rec.shipping_method_code = FND_API.G_MISS_CHAR THEN NULL;
3267     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.shipping_method_code,p_old_header_rec.shipping_method_code) THEN
3268 
3269         l_result := SHIPPING_METHOD
3270             (p_operation        => l_operation
3271             ,p_record   => l_rowtype_rec
3272             ,x_on_operation_action => l_on_operation_action
3273             );
3274 
3275         IF l_result = OE_PC_GLOBALS.YES THEN
3276             -- set OUT result to CONSTRAINED
3277             x_result := OE_PC_GLOBALS.YES;
3278         END IF;
3279 
3280     END IF;
3281 
3282     IF p_header_rec.ship_from_org_id = FND_API.G_MISS_NUM THEN NULL;
3283     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.ship_from_org_id,p_old_header_rec.ship_from_org_id) THEN
3284 
3285         l_result := SHIP_FROM_ORG
3286             (p_operation        => l_operation
3287             ,p_record   => l_rowtype_rec
3288             ,x_on_operation_action => l_on_operation_action
3289             );
3290 
3291         IF l_result = OE_PC_GLOBALS.YES THEN
3292             -- set OUT result to CONSTRAINED
3293             x_result := OE_PC_GLOBALS.YES;
3294         END IF;
3295 
3296     END IF;
3297 
3298     IF p_header_rec.ship_tolerance_above = FND_API.G_MISS_NUM THEN NULL;
3299     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.ship_tolerance_above,p_old_header_rec.ship_tolerance_above) THEN
3300 
3301         l_result := SHIP_TOLERANCE_ABOVE
3302             (p_operation        => l_operation
3303             ,p_record   => l_rowtype_rec
3304             ,x_on_operation_action => l_on_operation_action
3305             );
3306 
3307         IF l_result = OE_PC_GLOBALS.YES THEN
3308             -- set OUT result to CONSTRAINED
3309             x_result := OE_PC_GLOBALS.YES;
3310         END IF;
3311 
3312     END IF;
3313 
3314     IF p_header_rec.ship_tolerance_below = FND_API.G_MISS_NUM THEN NULL;
3315     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.ship_tolerance_below,p_old_header_rec.ship_tolerance_below) THEN
3316 
3317         l_result := SHIP_TOLERANCE_BELOW
3318             (p_operation        => l_operation
3319             ,p_record   => l_rowtype_rec
3320             ,x_on_operation_action => l_on_operation_action
3321             );
3322 
3323         IF l_result = OE_PC_GLOBALS.YES THEN
3324             -- set OUT result to CONSTRAINED
3325             x_result := OE_PC_GLOBALS.YES;
3326         END IF;
3327 
3328     END IF;
3329 
3330     IF p_header_rec.ship_to_contact_id = FND_API.G_MISS_NUM THEN NULL;
3331     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.ship_to_contact_id,p_old_header_rec.ship_to_contact_id) THEN
3332 
3333         l_result := SHIP_TO_CONTACT
3334             (p_operation        => l_operation
3335             ,p_record   => l_rowtype_rec
3336             ,x_on_operation_action => l_on_operation_action
3337             );
3338 
3339         IF l_result = OE_PC_GLOBALS.YES THEN
3340             -- set OUT result to CONSTRAINED
3341             x_result := OE_PC_GLOBALS.YES;
3342         END IF;
3343 
3344     END IF;
3345 
3346     IF p_header_rec.ship_to_org_id = FND_API.G_MISS_NUM THEN NULL;
3347     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.ship_to_org_id,p_old_header_rec.ship_to_org_id) THEN
3348 
3349         l_result := SHIP_TO_ORG
3350             (p_operation        => l_operation
3351             ,p_record   => l_rowtype_rec
3352             ,x_on_operation_action => l_on_operation_action
3353             );
3354 
3355         IF l_result = OE_PC_GLOBALS.YES THEN
3356             -- set OUT result to CONSTRAINED
3357             x_result := OE_PC_GLOBALS.YES;
3358         END IF;
3359 
3360     END IF;
3361 
3362     IF p_header_rec.sold_to_contact_id = FND_API.G_MISS_NUM THEN NULL;
3363     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.sold_to_contact_id,p_old_header_rec.sold_to_contact_id) THEN
3364 
3365         l_result := SOLD_TO_CONTACT
3366             (p_operation        => l_operation
3367             ,p_record   => l_rowtype_rec
3368             ,x_on_operation_action => l_on_operation_action
3369             );
3370 
3371         IF l_result = OE_PC_GLOBALS.YES THEN
3372             -- set OUT result to CONSTRAINED
3373             x_result := OE_PC_GLOBALS.YES;
3374         END IF;
3375 
3376     END IF;
3377 
3378     IF p_header_rec.sold_to_org_id = FND_API.G_MISS_NUM THEN NULL;
3379     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.sold_to_org_id,p_old_header_rec.sold_to_org_id) THEN
3380 
3381         l_result := SOLD_TO_ORG
3382             (p_operation        => l_operation
3383             ,p_record   => l_rowtype_rec
3384             ,x_on_operation_action => l_on_operation_action
3385             );
3386 
3387         IF l_result = OE_PC_GLOBALS.YES THEN
3388             -- set OUT result to CONSTRAINED
3389             x_result := OE_PC_GLOBALS.YES;
3390         END IF;
3391 
3392     END IF;
3393 
3394     IF p_header_rec.tax_exempt_flag = FND_API.G_MISS_CHAR THEN NULL;
3395     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.tax_exempt_flag,p_old_header_rec.tax_exempt_flag) THEN
3396 
3397         l_result := TAX_EXEMPT
3398             (p_operation        => l_operation
3399             ,p_record   => l_rowtype_rec
3400             ,x_on_operation_action => l_on_operation_action
3401             );
3402 
3403         IF l_result = OE_PC_GLOBALS.YES THEN
3404             -- set OUT result to CONSTRAINED
3405             x_result := OE_PC_GLOBALS.YES;
3406         END IF;
3407 
3408     END IF;
3409 
3410     IF p_header_rec.tax_exempt_number = FND_API.G_MISS_CHAR THEN NULL;
3411     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.tax_exempt_number,p_old_header_rec.tax_exempt_number) THEN
3412 
3413         l_result := TAX_EXEMPT_NUMBER
3414             (p_operation        => l_operation
3415             ,p_record   => l_rowtype_rec
3416             ,x_on_operation_action => l_on_operation_action
3417             );
3418 
3419         IF l_result = OE_PC_GLOBALS.YES THEN
3420             -- set OUT result to CONSTRAINED
3421             x_result := OE_PC_GLOBALS.YES;
3422         END IF;
3423 
3424     END IF;
3425 
3426     IF p_header_rec.tax_exempt_reason_code = FND_API.G_MISS_CHAR THEN NULL;
3427     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.tax_exempt_reason_code,p_old_header_rec.tax_exempt_reason_code) THEN
3428 
3429         l_result := TAX_EXEMPT_REASON
3430             (p_operation        => l_operation
3431             ,p_record   => l_rowtype_rec
3432             ,x_on_operation_action => l_on_operation_action
3433             );
3434 
3435         IF l_result = OE_PC_GLOBALS.YES THEN
3436             -- set OUT result to CONSTRAINED
3437             x_result := OE_PC_GLOBALS.YES;
3438         END IF;
3439 
3440     END IF;
3441 
3442     IF p_header_rec.transactional_curr_code = FND_API.G_MISS_CHAR THEN NULL;
3443     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.transactional_curr_code,p_old_header_rec.transactional_curr_code) THEN
3444 
3445         l_result := TRANSACTIONAL_CURR
3446             (p_operation        => l_operation
3447             ,p_record   => l_rowtype_rec
3448             ,x_on_operation_action => l_on_operation_action
3449             );
3450 
3451         IF l_result = OE_PC_GLOBALS.YES THEN
3452             -- set OUT result to CONSTRAINED
3453             x_result := OE_PC_GLOBALS.YES;
3454         END IF;
3455 
3456     END IF;
3457 
3458     -- for bug 2395032
3459     IF p_header_rec.payment_amount = FND_API.G_MISS_NUM THEN NULL;
3460     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.payment_amount,p_old_header_rec.payment_amount) THEN
3461 
3462         l_result := PAYMENT_AMOUNT
3463             (p_operation        => l_operation
3464             ,p_record   => l_rowtype_rec
3465             ,x_on_operation_action => l_on_operation_action
3466             );
3467 
3468         IF l_result = OE_PC_GLOBALS.YES THEN
3469             -- set OUT result to CONSTRAINED
3470             x_result := OE_PC_GLOBALS.YES;
3471         END IF;
3472 
3473     END IF;
3474 
3475     IF p_header_rec.check_number = FND_API.G_MISS_CHAR THEN NULL;
3476     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.check_number,p_old_header_rec.check_number) THEN
3477 
3478         l_result := CHECK_NUMBER
3479             (p_operation        => l_operation
3480             ,p_record   => l_rowtype_rec
3481             ,x_on_operation_action => l_on_operation_action
3482             );
3483 
3484         IF l_result = OE_PC_GLOBALS.YES THEN
3485             -- set OUT result to CONSTRAINED
3486             x_result := OE_PC_GLOBALS.YES;
3487         END IF;
3488 
3489     END IF;
3490     -- end 2395032
3491 
3492     -- BEGIN: Blankets Code Merge
3493     IF p_header_rec.blanket_number = FND_API.G_MISS_NUM THEN NULL;
3494     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.blanket_number,p_old_header_rec.blanket_number) THEN
3495 
3496         l_result := BLANKET_NUMBER
3497             (p_operation        => l_operation
3498             ,p_record   => l_rowtype_rec
3499             ,x_on_operation_action => l_on_operation_action
3500             );
3501 
3502         IF l_result = OE_PC_GLOBALS.YES THEN
3503             -- set OUT result to CONSTRAINED
3504             x_result := OE_PC_GLOBALS.YES;
3505         END IF;
3506 
3507     END IF;
3508     -- END: Blankets Code Merge
3509 
3510     -- Quoting Changes Start
3511 
3512     IF p_header_rec.quote_number = FND_API.G_MISS_NUM THEN NULL;
3513     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.quote_number,p_old_header_rec.quote_number) THEN
3514 
3515         l_result := QUOTE_NUMBER
3516             (p_operation        => l_operation
3517             ,p_record   => l_rowtype_rec
3518             ,x_on_operation_action => l_on_operation_action
3519             );
3520 
3521         IF l_result = OE_PC_GLOBALS.YES THEN
3522             -- set OUT result to CONSTRAINED
3523             x_result := OE_PC_GLOBALS.YES;
3524         END IF;
3525 
3526     END IF;
3527 
3528     IF p_header_rec.quote_date = FND_API.G_MISS_DATE THEN NULL;
3529     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.quote_date,p_old_header_rec.quote_date) THEN
3530 
3531         l_result := QUOTE_DATE
3532             (p_operation        => l_operation
3533             ,p_record   => l_rowtype_rec
3534             ,x_on_operation_action => l_on_operation_action
3535             );
3536 
3537         IF l_result = OE_PC_GLOBALS.YES THEN
3538             -- set OUT result to CONSTRAINED
3539             x_result := OE_PC_GLOBALS.YES;
3540         END IF;
3541 
3542     END IF;
3543 
3544     IF p_header_rec.sales_document_name = FND_API.G_MISS_CHAR THEN NULL;
3545     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.sales_document_name,p_old_header_rec.sales_document_name) THEN
3546 
3547         l_result := SALES_DOCUMENT_NAME
3548             (p_operation        => l_operation
3549             ,p_record   => l_rowtype_rec
3550             ,x_on_operation_action => l_on_operation_action
3551             );
3552 
3553         IF l_result = OE_PC_GLOBALS.YES THEN
3554             -- set OUT result to CONSTRAINED
3555             x_result := OE_PC_GLOBALS.YES;
3556         END IF;
3557 
3558     END IF;
3559 
3560     IF p_header_rec.transaction_phase_code = FND_API.G_MISS_CHAR THEN NULL;
3561     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.transaction_phase_code,p_old_header_rec.transaction_phase_code) THEN
3562 
3563         l_result := TRANSACTION_PHASE
3564             (p_operation        => l_operation
3565             ,p_record   => l_rowtype_rec
3566             ,x_on_operation_action => l_on_operation_action
3567             );
3568 
3569         IF l_result = OE_PC_GLOBALS.YES THEN
3570             -- set OUT result to CONSTRAINED
3571             x_result := OE_PC_GLOBALS.YES;
3572         END IF;
3573 
3574     END IF;
3575 
3576     IF p_header_rec.user_status_code = FND_API.G_MISS_CHAR THEN NULL;
3577     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.user_status_code,p_old_header_rec.user_status_code) THEN
3578 
3579         l_result := USER_STATUS
3580             (p_operation        => l_operation
3581             ,p_record   => l_rowtype_rec
3582             ,x_on_operation_action => l_on_operation_action
3583             );
3584 
3585         IF l_result = OE_PC_GLOBALS.YES THEN
3586             -- set OUT result to CONSTRAINED
3587             x_result := OE_PC_GLOBALS.YES;
3588         END IF;
3589 
3590     END IF;
3591 
3592     IF p_header_rec.expiration_date = FND_API.G_MISS_DATE THEN NULL;
3593     ELSIF NOT OE_GLOBALS.EQUAL(trunc(p_header_rec.expiration_date),trunc(p_old_header_rec.expiration_date)) THEN
3594 
3595         l_result := EXPIRATION_DATE
3596             (p_operation        => l_operation
3597             ,p_record   => l_rowtype_rec
3598             ,x_on_operation_action => l_on_operation_action
3599             );
3600 
3601         IF l_result = OE_PC_GLOBALS.YES THEN
3602             -- set OUT result to CONSTRAINED
3603             x_result := OE_PC_GLOBALS.YES;
3604         END IF;
3605 
3606     END IF;
3607 
3608     IF p_header_rec.version_number = FND_API.G_MISS_NUM THEN NULL;
3609     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.version_number,p_old_header_rec.version_number) THEN
3610 
3611         l_result := VERSION_NUMBER
3612             (p_operation        => l_operation
3613             ,p_record   => l_rowtype_rec
3614             ,x_on_operation_action => l_on_operation_action
3615             );
3616 
3617         IF l_result = OE_PC_GLOBALS.YES THEN
3618             -- set OUT result to CONSTRAINED
3619             x_result := OE_PC_GLOBALS.YES;
3620         END IF;
3621 
3622     END IF;
3623 
3624     IF p_header_rec.sold_to_site_use_id = FND_API.G_MISS_NUM THEN NULL;
3625     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.sold_to_site_use_id,p_old_header_rec.sold_to_site_use_id) THEN
3626 
3627         l_result := SOLD_TO_SITE_USE
3628             (p_operation        => l_operation
3629             ,p_record   => l_rowtype_rec
3630             ,x_on_operation_action => l_on_operation_action
3631             );
3632 
3633         IF l_result = OE_PC_GLOBALS.YES THEN
3634             -- set OUT result to CONSTRAINED
3635             x_result := OE_PC_GLOBALS.YES;
3636         END IF;
3637 
3638     END IF;
3639 
3640     -- Quoting Changes END
3641 
3642     -- Bug 8217769 New IF added for Default Fulfillment Set
3643     IF p_header_rec.DEFAULT_FULFILLMENT_SET = FND_API.G_MISS_CHAR THEN NULL;
3644     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.DEFAULT_FULFILLMENT_SET,p_old_header_rec.DEFAULT_FULFILLMENT_SET) THEN
3645 
3646         l_result := DEFAULT_FULFILLMENT_SET
3647             (p_operation  => l_operation
3648             ,p_record   => l_rowtype_rec
3649             ,x_on_operation_action => l_on_operation_action
3650             );
3651 
3652         IF l_result = OE_PC_GLOBALS.YES THEN
3653             -- set OUT result to CONSTRAINED
3654             x_result := OE_PC_GLOBALS.YES;
3655         END IF;
3656 
3657     END IF;
3658     -- Bug 8217769 End IF
3659 
3660     -- BEGIN: CHECK FOR CONSTRAINTS ON DESC FLEXFIELD ATTRIBUTES
3661     -- Bug 2003823:
3662     -- If profile indicates that generic update constraints (e.g. seeded
3663     -- closed order condition) should not be checked for DFF, then
3664     -- set the global to 'N'.
3665     -- Also, store the current value of global in a local variable and
3666     -- re-set it after DFF check. If DFF were the only fields being
3667     -- updated and profile was set to 'N', global at the end should
3668     -- be re-set to 'Y' - this indicates to process order that no
3669     -- constrainable attributes were updated and thus, it would
3670     -- suppress entity level security check also.
3671     IF OE_PC_GLOBALS.G_CHECK_UPDATE_ALL_FOR_DFF = 'N' THEN
3672        l_check_all_cols_constraint := g_check_all_cols_constraint;
3673        g_check_all_cols_constraint := 'N';
3674     END IF;
3675 
3676     IF p_header_rec.context = FND_API.G_MISS_CHAR THEN NULL;
3677     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.context,p_old_header_rec.context) THEN
3678 
3679         l_result := CONTEXT
3680             (p_operation        => l_operation
3681             ,p_record   => l_rowtype_rec
3682             ,x_on_operation_action => l_on_operation_action
3683             );
3684 
3685         IF l_result = OE_PC_GLOBALS.YES THEN
3686             -- set OUT result to CONSTRAINED
3687             x_result := OE_PC_GLOBALS.YES;
3688         END IF;
3689 
3690     END IF;
3691 
3692     IF p_header_rec.attribute1 = FND_API.G_MISS_CHAR THEN NULL;
3693     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute1,p_old_header_rec.attribute1) THEN
3694 
3695         l_result := ATTRIBUTE1
3696             (p_operation        => l_operation
3697             ,p_record   => l_rowtype_rec
3698             ,x_on_operation_action => l_on_operation_action
3699             );
3700 
3701         IF l_result = OE_PC_GLOBALS.YES THEN
3702             -- set OUT result to CONSTRAINED
3703             x_result := OE_PC_GLOBALS.YES;
3704         END IF;
3705 
3706     END IF;
3707 
3708     IF p_header_rec.attribute10 = FND_API.G_MISS_CHAR THEN NULL;
3709     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute10,p_old_header_rec.attribute10) THEN
3710 
3711         l_result := ATTRIBUTE10
3712             (p_operation        => l_operation
3713             ,p_record   => l_rowtype_rec
3714             ,x_on_operation_action => l_on_operation_action
3715             );
3716 
3717         IF l_result = OE_PC_GLOBALS.YES THEN
3718             -- set OUT result to CONSTRAINED
3719             x_result := OE_PC_GLOBALS.YES;
3720         END IF;
3721 
3722     END IF;
3723 
3724     IF p_header_rec.attribute11 = FND_API.G_MISS_CHAR THEN NULL;
3725     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute11,p_old_header_rec.attribute11) THEN
3726 
3727         l_result := ATTRIBUTE11
3728             (p_operation        => l_operation
3729             ,p_record   => l_rowtype_rec
3730             ,x_on_operation_action => l_on_operation_action
3731             );
3732 
3733         IF l_result = OE_PC_GLOBALS.YES THEN
3734             -- set OUT result to CONSTRAINED
3735             x_result := OE_PC_GLOBALS.YES;
3736         END IF;
3737 
3738     END IF;
3739 
3740     IF p_header_rec.attribute12 = FND_API.G_MISS_CHAR THEN NULL;
3741     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute12,p_old_header_rec.attribute12) THEN
3742 
3743         l_result := ATTRIBUTE12
3744             (p_operation        => l_operation
3745             ,p_record   => l_rowtype_rec
3746             ,x_on_operation_action => l_on_operation_action
3747             );
3748 
3749         IF l_result = OE_PC_GLOBALS.YES THEN
3750             -- set OUT result to CONSTRAINED
3751             x_result := OE_PC_GLOBALS.YES;
3752         END IF;
3753 
3754     END IF;
3755 
3756     IF p_header_rec.attribute13 = FND_API.G_MISS_CHAR THEN NULL;
3757     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute13,p_old_header_rec.attribute13) THEN
3758 
3759         l_result := ATTRIBUTE13
3760             (p_operation        => l_operation
3761             ,p_record   => l_rowtype_rec
3762             ,x_on_operation_action => l_on_operation_action
3763             );
3764 
3765         IF l_result = OE_PC_GLOBALS.YES THEN
3766             -- set OUT result to CONSTRAINED
3767             x_result := OE_PC_GLOBALS.YES;
3768         END IF;
3769 
3770     END IF;
3771 
3772     IF p_header_rec.attribute14 = FND_API.G_MISS_CHAR THEN NULL;
3773     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute14,p_old_header_rec.attribute14) THEN
3774 
3775         l_result := ATTRIBUTE14
3776             (p_operation        => l_operation
3777             ,p_record   => l_rowtype_rec
3778             ,x_on_operation_action => l_on_operation_action
3779             );
3780 
3781         IF l_result = OE_PC_GLOBALS.YES THEN
3782             -- set OUT result to CONSTRAINED
3783             x_result := OE_PC_GLOBALS.YES;
3784         END IF;
3785 
3786     END IF;
3787 
3788     IF p_header_rec.attribute15 = FND_API.G_MISS_CHAR THEN NULL;
3789     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute15,p_old_header_rec.attribute15) THEN
3790 
3791         l_result := ATTRIBUTE15
3792             (p_operation        => l_operation
3793             ,p_record   => l_rowtype_rec
3794             ,x_on_operation_action => l_on_operation_action
3795             );
3796 
3797         IF l_result = OE_PC_GLOBALS.YES THEN
3798             -- set OUT result to CONSTRAINED
3799             x_result := OE_PC_GLOBALS.YES;
3800         END IF;
3801 
3802     END IF;
3803 
3804 --For bug 2184255
3805     IF p_header_rec.attribute16 = FND_API.G_MISS_CHAR THEN NULL;
3806     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute16,p_old_header_rec.attribute16) THEN
3807 
3808         l_result := ATTRIBUTE16
3809             (p_operation        => l_operation
3810             ,p_record   => l_rowtype_rec
3811             ,x_on_operation_action => l_on_operation_action
3812             );
3813 
3814         IF l_result = OE_PC_GLOBALS.YES THEN
3815             -- set OUT result to CONSTRAINED
3816             x_result := OE_PC_GLOBALS.YES;
3817         END IF;
3818 
3819     END IF;
3820 
3821     IF p_header_rec.attribute17 = FND_API.G_MISS_CHAR THEN NULL;
3822     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute17,p_old_header_rec.attribute17) THEN
3823 
3824         l_result := ATTRIBUTE17
3825             (p_operation        => l_operation
3826             ,p_record   => l_rowtype_rec
3827             ,x_on_operation_action => l_on_operation_action
3828             );
3829 
3830         IF l_result = OE_PC_GLOBALS.YES THEN
3831             -- set OUT result to CONSTRAINED
3832             x_result := OE_PC_GLOBALS.YES;
3833         END IF;
3834 
3835     END IF;
3836 
3837     IF p_header_rec.attribute18 = FND_API.G_MISS_CHAR THEN NULL;
3838     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute18,p_old_header_rec.attribute18) THEN
3839 
3840         l_result := ATTRIBUTE18
3841             (p_operation        => l_operation
3842             ,p_record   => l_rowtype_rec
3843             ,x_on_operation_action => l_on_operation_action
3844             );
3845 
3846         IF l_result = OE_PC_GLOBALS.YES THEN
3847             -- set OUT result to CONSTRAINED
3848             x_result := OE_PC_GLOBALS.YES;
3849         END IF;
3850 
3851     END IF;
3852 
3853     IF p_header_rec.attribute19 = FND_API.G_MISS_CHAR THEN NULL;
3854     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute19,p_old_header_rec.attribute19) THEN
3855 
3856         l_result := ATTRIBUTE19
3857             (p_operation        => l_operation
3858             ,p_record   => l_rowtype_rec
3859             ,x_on_operation_action => l_on_operation_action
3860             );
3861 
3862         IF l_result = OE_PC_GLOBALS.YES THEN
3863             -- set OUT result to CONSTRAINED
3864             x_result := OE_PC_GLOBALS.YES;
3865         END IF;
3866 
3867     END IF;
3868 
3869     IF p_header_rec.attribute2 = FND_API.G_MISS_CHAR THEN NULL;
3870     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute2,p_old_header_rec.attribute2) THEN
3871 
3872         l_result := ATTRIBUTE2
3873             (p_operation        => l_operation
3874             ,p_record   => l_rowtype_rec
3875             ,x_on_operation_action => l_on_operation_action
3876             );
3877 
3878         IF l_result = OE_PC_GLOBALS.YES THEN
3879             -- set OUT result to CONSTRAINED
3880             x_result := OE_PC_GLOBALS.YES;
3881         END IF;
3882 
3883     END IF;
3884 
3885     IF p_header_rec.attribute20 = FND_API.G_MISS_CHAR THEN NULL;
3886     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute20,p_old_header_rec.attribute20) THEN
3887 
3888         l_result := ATTRIBUTE20
3889             (p_operation        => l_operation
3890             ,p_record   => l_rowtype_rec
3891             ,x_on_operation_action => l_on_operation_action
3892             );
3893 
3894         IF l_result = OE_PC_GLOBALS.YES THEN
3895             -- set OUT result to CONSTRAINED
3896             x_result := OE_PC_GLOBALS.YES;
3897         END IF;
3898 
3899     END IF;
3900 
3901 --End bug 2184255
3902 
3903     IF p_header_rec.attribute3 = FND_API.G_MISS_CHAR THEN NULL;
3904     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute3,p_old_header_rec.attribute3) THEN
3905 
3906         l_result := ATTRIBUTE3
3907             (p_operation        => l_operation
3908             ,p_record   => l_rowtype_rec
3909             ,x_on_operation_action => l_on_operation_action
3910             );
3911 
3912         IF l_result = OE_PC_GLOBALS.YES THEN
3913             -- set OUT result to CONSTRAINED
3914             x_result := OE_PC_GLOBALS.YES;
3915         END IF;
3916 
3917     END IF;
3918 
3919     IF p_header_rec.attribute4 = FND_API.G_MISS_CHAR THEN NULL;
3920     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute4,p_old_header_rec.attribute4) THEN
3921 
3922         l_result := ATTRIBUTE4
3923             (p_operation        => l_operation
3924             ,p_record   => l_rowtype_rec
3925             ,x_on_operation_action => l_on_operation_action
3926             );
3927 
3928         IF l_result = OE_PC_GLOBALS.YES THEN
3929             -- set OUT result to CONSTRAINED
3930             x_result := OE_PC_GLOBALS.YES;
3931         END IF;
3932 
3933     END IF;
3934 
3935     IF p_header_rec.attribute5 = FND_API.G_MISS_CHAR THEN NULL;
3936     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute5,p_old_header_rec.attribute5) THEN
3937 
3938         l_result := ATTRIBUTE5
3939             (p_operation        => l_operation
3940             ,p_record   => l_rowtype_rec
3941             ,x_on_operation_action => l_on_operation_action
3942             );
3943 
3944         IF l_result = OE_PC_GLOBALS.YES THEN
3945             -- set OUT result to CONSTRAINED
3946             x_result := OE_PC_GLOBALS.YES;
3947         END IF;
3948 
3949     END IF;
3950 
3951     IF p_header_rec.attribute6 = FND_API.G_MISS_CHAR THEN NULL;
3952     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute6,p_old_header_rec.attribute6) THEN
3953 
3954         l_result := ATTRIBUTE6
3955             (p_operation        => l_operation
3956             ,p_record   => l_rowtype_rec
3957             ,x_on_operation_action => l_on_operation_action
3958             );
3959 
3960         IF l_result = OE_PC_GLOBALS.YES THEN
3961             -- set OUT result to CONSTRAINED
3962             x_result := OE_PC_GLOBALS.YES;
3963         END IF;
3964 
3965     END IF;
3966 
3967     IF p_header_rec.attribute7 = FND_API.G_MISS_CHAR THEN NULL;
3968     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute7,p_old_header_rec.attribute7) THEN
3969 
3970         l_result := ATTRIBUTE7
3971             (p_operation        => l_operation
3972             ,p_record   => l_rowtype_rec
3973             ,x_on_operation_action => l_on_operation_action
3974             );
3975 
3976         IF l_result = OE_PC_GLOBALS.YES THEN
3977             -- set OUT result to CONSTRAINED
3978             x_result := OE_PC_GLOBALS.YES;
3979         END IF;
3980 
3981     END IF;
3982 
3983     IF p_header_rec.attribute8 = FND_API.G_MISS_CHAR THEN NULL;
3984     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute8,p_old_header_rec.attribute8) THEN
3985 
3986         l_result := ATTRIBUTE8
3987             (p_operation        => l_operation
3988             ,p_record   => l_rowtype_rec
3989             ,x_on_operation_action => l_on_operation_action
3990             );
3991 
3992         IF l_result = OE_PC_GLOBALS.YES THEN
3993             -- set OUT result to CONSTRAINED
3994             x_result := OE_PC_GLOBALS.YES;
3995         END IF;
3996 
3997     END IF;
3998 
3999     IF p_header_rec.attribute9 = FND_API.G_MISS_CHAR THEN NULL;
4000     ELSIF NOT OE_GLOBALS.EQUAL(p_header_rec.attribute9,p_old_header_rec.attribute9) THEN
4001 
4002         l_result := ATTRIBUTE9
4003             (p_operation        => l_operation
4004             ,p_record   => l_rowtype_rec
4005             ,x_on_operation_action => l_on_operation_action
4006             );
4007 
4008         IF l_result = OE_PC_GLOBALS.YES THEN
4009             -- set OUT result to CONSTRAINED
4010             x_result := OE_PC_GLOBALS.YES;
4011         END IF;
4012 
4013     END IF;
4014 
4015     IF OE_PC_GLOBALS.G_CHECK_UPDATE_ALL_FOR_DFF = 'N' THEN
4016        IF l_debug_level  > 0 THEN
4017            oe_debug_pub.add(  'SETTING CHECK ALL COLS CONSTRAINT TO:'||L_CHECK_ALL_COLS_CONSTRAINT ) ;
4018        END IF;
4019        g_check_all_cols_constraint := l_check_all_cols_constraint;
4020     END IF;
4021 
4022     -- END: CHECK FOR CONSTRAINTS ON DESC FLEXFIELD ATTRIBUTES
4023     -- NOTE: Please add constraints check for new attributes before the
4024     -- descriptive flexfield attributes check.
4025 
4026 IF l_debug_level  > 0 THEN
4027     oe_debug_pub.add(  'EXIT OE_HEADER_SECURITY.ATTRIBUTES' , 1 ) ;
4028 END IF;
4029 
4030 EXCEPTION
4031    WHEN e_inacitve_pl THEN
4032       x_return_status := FND_API.G_RET_STS_ERROR;
4033       FND_MESSAGE.SET_NAME('ONT','OE_INACTIVE_PRICELIST');
4034       OE_MSG_PUB.ADD;
4035 
4036     WHEN FND_API.G_EXC_ERROR THEN
4037     x_return_status := FND_API.G_RET_STS_ERROR;
4038     WHEN OTHERS THEN
4039     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4040     IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4041         OE_MSG_PUB.Add_Exc_Msg
4042         (   G_PKG_NAME
4043         ,   'Attributes'
4044         );
4045     END IF;
4046 
4047 END Attributes;
4048 
4049 /*---------------------------------------------------------------
4050 PROCEDURE Copied_From_Quote
4051 ----------------------------------------------------------------*/
4052 PROCEDURE Copied_From_Quote
4053 (p_application_id                 IN NUMBER
4054 ,p_entity_short_name              IN VARCHAR2
4055 ,p_validation_entity_short_name   IN VARCHAR2
4056 ,p_validation_tmplt_short_name    IN VARCHAR2
4057 ,p_record_set_short_name          IN VARCHAR2
4058 ,p_scope                          IN VARCHAR2
4059 ,x_result                         OUT NOCOPY NUMBER
4060 )
4061 IS
4062   l_phase                              VARCHAR2(30);
4063   l_source_document_id                 NUMBER;
4064   l_source_document_type_id            NUMBER;
4065   l_source_document_ver_num            NUMBER;
4066   CURSOR c_hdr IS
4067          SELECT nvl(transaction_phase_code,'F')
4068            FROM OE_ORDER_HEADERS
4069           WHERE header_id = l_source_document_id
4070             AND version_number = l_source_document_ver_num;
4071   CURSOR c_hdr_hist IS
4072          SELECT nvl(transaction_phase_code,'F')
4073            FROM OE_ORDER_HEADER_HISTORY
4074           WHERE header_id = l_source_document_id
4075             AND version_number = l_source_document_ver_num
4076             AND version_flag = 'Y';
4077 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4078 BEGIN
4079 
4080   if l_debug_level > 0 then
4081      oe_debug_pub.add('Enter Copied_From_Quote');
4082   end if;
4083 
4084   x_result := 0;
4085 
4086   IF p_validation_entity_short_name = 'HEADER' THEN
4087      l_source_document_type_id := oe_header_security.g_record.source_document_type_id;
4088      l_source_document_id := oe_header_security.g_record.source_document_id;
4089      l_source_document_ver_num :=
4090                      oe_header_security.g_record.source_document_version_number;
4091   END IF;
4092 
4093   -- If copied order
4094   IF l_source_document_type_id = 2 THEN
4095 
4096      OPEN c_hdr;
4097      FETCH c_hdr INTO l_phase;
4098         IF c_hdr%NOTFOUND THEN
4099            OPEN c_hdr_hist;
4100            FETCH c_hdr_hist INTO l_phase;
4101            CLOSE c_hdr_hist;
4102         END IF;
4103      CLOSE c_hdr;
4104 
4105      IF l_phase = 'N' THEN
4106         x_result := 1;
4107      END IF;
4108 
4109   END IF;
4110 
4111   if l_debug_level > 0 then
4112      oe_debug_pub.add('Exit Copied_From_Quote');
4113   end if;
4114 
4115 EXCEPTION
4116   WHEN OTHERS THEN
4117      if l_debug_level > 0 then
4118         oe_debug_pub.add('Others error :'||substr(sqlerrm,1,200));
4119      end if;
4120      x_result := 0;
4121 END Copied_From_Quote;
4122 
4123 END OE_Header_Security;