DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_DEFAULT_LINE_ADJ

Source


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