DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_DEFAULT_HEADER_ADJ

Source


1 PACKAGE BODY OE_Default_Header_Adj AS
2 /* $Header: OEXDHADB.pls 120.0 2005/05/31 23:48:47 appldev noship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'OE_Default_Header_Adj';
7 
8 --  Package global used within the package.
9 
10 -- For bug 2155582
11 g_header_adj_rec OE_ORDER_PUB.Header_Adj_Rec_Type;
12 
13 --  Get functions.
14 
15 FUNCTION Get_Price_Adjustment
16 RETURN NUMBER
17   IS
18      l_adjustment_id	NUMBER := NULL;
19 BEGIN
20 
21    SELECT  OE_PRICE_ADJUSTMENTS_S.NEXTVAL
22      INTO  l_adjustment_id
23      FROM  DUAL;
24 
25    RETURN l_adjustment_id;
26 
27 END Get_Price_Adjustment;
28 
29 
30 PROCEDURE Attributes
31 (   p_x_Header_Adj_rec              IN  out nocopy OE_Order_PUB.Header_Adj_Rec_Type
32 ,   p_old_Header_Adj_rec            IN  OE_Order_PUB.Header_Adj_Rec_Type
33 ,   p_iteration                     IN  NUMBER := 1
34 )
35 IS
36 
37 --Commented for bug 2155582
38 --l_old_Header_Adj_rec      OE_AK_HEADER_PRCADJS_V%ROWTYPE;
39 l_operation			 VARCHAR2(30);
40 l_Modifiers_Rec		OE_Order_Cache.Modifiers_Rec_Type;
41 
42 BEGIN
43     oe_debug_pub.add('Enter OE_Default_Header_Adj.Attributes');
44 
45     IF p_x_header_Adj_rec.operation = OE_GLOBALS.G_OPR_CREATE AND
46        p_x_header_Adj_rec.list_line_type_code = 'FREIGHT_CHARGE'
47     THEN
48 	  IF p_x_header_Adj_rec.estimated_flag IS NULL OR
49 	     p_x_header_Adj_rec.estimated_flag = FND_API.G_MISS_CHAR
50        THEN
51 	      p_x_header_Adj_rec.estimated_flag := 'Y';
52        END IF;
53 	  IF p_x_header_Adj_rec.invoiced_flag IS NULL OR
54 	     p_x_header_Adj_rec.invoiced_flag = FND_API.G_MISS_CHAR
55        THEN
56 	      p_x_header_Adj_rec.invoiced_flag := 'N';
57        END IF;
58 	  IF p_x_header_Adj_rec.credit_or_charge_flag IS NULL OR
59 	     p_x_header_Adj_rec.credit_or_charge_flag = FND_API.G_MISS_CHAR
60        THEN
61 	      p_x_header_Adj_rec.credit_or_charge_flag := 'D';
62        END IF;
63     END IF;
64 
65 -- /* Commenting for bug 2155582
66 --     --  Due to incompatibilities in the record type structure
67 --     --  copy the data to a rowtype record format
68 -- 	OE_Header_Adj_UTIL.API_Rec_To_Rowtype_Rec
69 -- 		(p_header_Adj_rec => p_x_header_adj_rec,
70 -- 	     x_rowtype_rec => g_Header_Adj_rec);
71 -- 	 OE_Header_Adj_UTIL.API_Rec_To_Rowtype_Rec
72 -- 		(p_header_Adj_rec => p_old_header_adj_rec,
73 -- 	  x_rowtype_rec => l_old_Header_Adj_rec);
74 --  */
75 
76 	  g_header_adj_rec := p_x_header_adj_rec;
77 
78 --  For some fields, get hardcoded defaults based on the operation
79 	l_operation := p_x_header_Adj_rec.operation;
80 
81 	IF l_operation = OE_GLOBALS.G_OPR_CREATE THEN
82           -- 3709642
83 	  IF nvl(g_header_Adj_rec.price_adjustment_id,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM THEN
84 		g_header_Adj_rec.price_adjustment_id   := Get_Price_Adjustment;
85 	  END IF;
86 
87 	END IF;
88 
89 	If g_header_Adj_rec.list_line_id <> FND_API.G_MISS_NUM and g_header_Adj_rec.list_line_id is not null then
90 
91 	   l_Modifiers_Rec:= OE_Order_Cache.Load_List_Lines(g_header_Adj_rec.list_line_id);
92 
93 	   IF g_header_Adj_rec.AUTOMATIC_FLAG = FND_API.G_MISS_CHAR  or
94 	     g_header_Adj_rec.AUTOMATIC_FLAG is null THEN
95 	      g_header_Adj_rec.AUTOMATIC_FLAG := l_Modifiers_Rec.AUTOMATIC_FLAG;
96 	   End If;
97 
98 	   IF g_header_Adj_rec.List_line_type_code = FND_API.G_MISS_CHAR  or
99 	     g_header_Adj_rec.List_line_type_code is null THEN
100 	      g_header_Adj_rec.List_line_type_code := l_Modifiers_Rec.List_line_type_code;
101 	   End If;
102 
103 	   IF g_header_Adj_rec.update_allowed = FND_API.G_MISS_CHAR  or
104 	     g_header_Adj_rec.update_allowed is null THEN
105 	      g_header_Adj_rec.update_allowed := l_Modifiers_Rec.override_flag;
106 	   End If;
107 
108 	   IF g_header_Adj_rec.operand = FND_API.G_MISS_NUM  or
109 	     g_header_Adj_rec.operand is null THEN
110 	      g_header_Adj_rec.operand := l_Modifiers_Rec.operand;
111 	   End If;
112 
113 	   IF g_header_Adj_rec.Arithmetic_operator = FND_API.G_MISS_CHAR  or
114 	     g_header_Adj_rec.Arithmetic_operator is null THEN
115 	      g_header_Adj_rec.Arithmetic_operator := l_Modifiers_Rec.Arithmetic_operator;
116 	   End If;
117 
118 	   IF g_header_Adj_rec.Pricing_phase_id = FND_API.G_MISS_NUM  or
119 	     g_header_Adj_rec.Pricing_phase_id is null THEN
120 	      g_header_Adj_rec.Pricing_phase_id := l_Modifiers_Rec.Pricing_phase_id;
121 	   End If;
122 
123 	   IF g_header_Adj_rec.charge_type_code = FND_API.G_MISS_CHAR  or
124 	     g_header_Adj_rec.charge_type_code is null THEN
125 	      g_header_Adj_rec.charge_type_code := l_Modifiers_Rec.charge_type_code;
126 	   End If;
127 
128 	   IF g_header_Adj_rec.charge_subtype_code = FND_API.G_MISS_CHAR  or
129 	     g_header_Adj_rec.charge_subtype_code is null THEN
130 	      g_header_Adj_rec.charge_subtype_code := l_Modifiers_Rec.charge_subtype_code;
131 	   End If;
132 
133 	   IF g_header_Adj_rec.list_line_no = FND_API.G_MISS_CHAR  or
134 	     g_header_Adj_rec.list_line_no is null THEN
135 	      g_header_Adj_rec.list_line_no := l_Modifiers_Rec.list_line_no;
136 	   End If;
137 
138 	   IF g_header_Adj_rec.benefit_qty = FND_API.G_MISS_NUM  or
139 	     g_header_Adj_rec.benefit_qty is null THEN
140 	      g_header_Adj_rec.benefit_qty := l_Modifiers_Rec.benefit_qty;
141 	   End If;
142 
143 	   IF g_header_Adj_rec.benefit_uom_code = FND_API.G_MISS_CHAR  or
144 	     g_header_Adj_rec.benefit_uom_code is null THEN
145 	      g_header_Adj_rec.benefit_uom_code := l_Modifiers_Rec.benefit_uom_code;
146 	   End If;
147 
148 	   IF g_header_Adj_rec.Accrual_conversion_rate = FND_API.G_MISS_NUM  or
149 	     g_header_Adj_rec.Accrual_conversion_rate is null THEN
150 	      g_header_Adj_rec.Accrual_conversion_rate := l_Modifiers_Rec.Accrual_conversion_rate;
151 	   End If;
152 
153 	   IF g_header_Adj_rec.pricing_group_sequence = FND_API.G_MISS_NUM  or
154 	     g_header_Adj_rec.pricing_group_sequence is null THEN
155 	      g_header_Adj_rec.pricing_group_sequence := l_Modifiers_Rec.pricing_group_sequence;
156 	   End If;
157 
158 	   IF g_header_Adj_rec.modifier_level_Code = FND_API.G_MISS_CHAR  or
159 	     g_header_Adj_rec.modifier_level_Code is null THEN
160 	      g_header_Adj_rec.modifier_level_Code := l_Modifiers_Rec.modifier_level_Code;
161 	   End If;
162 
163 	   IF g_header_Adj_rec.Price_break_type_code = FND_API.G_MISS_CHAR  or
164 	     g_header_Adj_rec.Price_break_type_code is null THEN
165 	      g_header_Adj_rec.Price_break_type_code := l_Modifiers_Rec.Price_break_type_code;
166 	   End If;
167 
168 	   IF g_header_Adj_rec.substitution_attribute = FND_API.G_MISS_CHAR  or
169 	     g_header_Adj_rec.substitution_attribute is null THEN
170 	      g_header_Adj_rec.substitution_attribute := l_Modifiers_Rec.substitution_attribute;
171 	   End If;
172 
173 	   IF g_header_Adj_rec.proration_type_code = FND_API.G_MISS_CHAR  or
174 	     g_header_Adj_rec.proration_type_code is null THEN
175 	      g_header_Adj_rec.proration_type_code := l_Modifiers_Rec.proration_type_code;
176 	   End If;
177 
178 	   IF g_header_Adj_rec.Include_on_returns_flag = FND_API.G_MISS_CHAR  or
179 	     g_header_Adj_rec.Include_on_returns_flag is null THEN
180 	      g_header_Adj_rec.Include_on_returns_flag := l_Modifiers_Rec.Include_on_returns_flag;
181 	   End If;
182 
183 	End If;
184 
185 
186 --     Commented for bug 2155582
187 -- --  call the default handler framework to default the missing attributes
188 
189 --     ONT_HEADER_ADJ_Def_Hdlr.Default_Record
190 --    		(p_x_rec		=> g_header_Adj_rec
191 -- 		,p_in_old_rec	=>  l_old_header_Adj_rec
192 -- 		);
193 
194 -- --  copy the data back to a format that is compatible with the API architecture
195 
196 -- 	OE_Header_Adj_UTIL.RowType_Rec_to_API_Rec
197 -- 			(p_record => g_header_Adj_rec
198 -- 			,x_api_rec => p_x_header_Adj_rec);
199 
200 	-- Code added for bug 2155582
201 
202 	p_x_header_adj_rec := g_header_adj_rec;
203 
204 	oe_debug_pub.add('call convert_miss_to_null');
205 	OE_HEADER_ADJ_UTIL.Convert_Miss_To_Null( p_x_header_adj_rec );
206 
207 	-- end bug 2155582
208 
209     /* 1581620 start */
210 
211     IF p_x_header_Adj_rec.modifier_mechanism_type_code = FND_API.G_MISS_CHAR THEN
212       p_x_header_Adj_rec.modifier_mechanism_type_code := NULL;
213     END IF;
214 
215     IF p_x_header_Adj_rec.orig_sys_discount_ref = FND_API.G_MISS_CHAR THEN
216       oe_debug_pub.add('discount ref = '||p_x_header_Adj_rec.price_adjustment_id);
217       p_x_header_Adj_rec.orig_sys_discount_ref := 'OE_PRICE_ADJUSTMENTS'||p_x_header_Adj_rec.price_adjustment_id;
218     END IF;
219 
220     IF p_x_header_Adj_rec.invoiced_flag = FND_API.G_MISS_CHAR THEN
221       p_x_header_Adj_rec.invoiced_flag := NULL;
222     END IF;
223 
224     IF p_x_header_Adj_rec.lock_control = FND_API.G_MISS_NUM THEN
225       p_x_header_Adj_rec.lock_control := NULL;
226     END IF;
227 
228     /* 1581620 end */
229 
230     oe_debug_pub.add('Exit OE_Default_Header_Adj.Attributes');
231 
232 END Attributes;
233 
234 END OE_Default_Header_Adj;