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 ;