[Home] [Help]
PACKAGE BODY: APPS.OE_OE_FORM_AGREEMENT
Source
1 PACKAGE BODY OE_OE_Form_Agreement AS
2 /* $Header: OEXFAGRB.pls 120.2 2005/12/14 16:13:41 shulin noship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_OE_Form_Agreement';
7
8 -- Global variables holding cached record.
9
10 g_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
11 g_db_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
12
13 -- Forward declaration of procedures maintaining entity record cache.
14
15 PROCEDURE Write_Agreement
16 ( p_Agreement_rec IN OE_Pricing_Cont_PUB.Agreement_Rec_Type
17 , p_db_record IN BOOLEAN := FALSE
18 );
19
20 FUNCTION Get_Agreement
21 ( p_db_record IN BOOLEAN := FALSE
22 , p_agreement_id IN NUMBER
23 )
24 RETURN OE_Pricing_Cont_PUB.Agreement_Rec_Type;
25
26 PROCEDURE Clear_Agreement;
27
28 -- Global variable holding performed operations.
29
30 g_opr__tbl OE_Pricing_Cont_PUB.Agreement_Tbl_Type;
31
32 -- Procedure : Default_Attributes
33 --
34
35 PROCEDURE Default_Attributes
36 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
37 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
38 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
39 , x_accounting_rule_id OUT NOCOPY /* file.sql.39 change */ NUMBER
40 , x_agreement_contact_id OUT NOCOPY /* file.sql.39 change */ NUMBER
41 , x_agreement_id OUT NOCOPY /* file.sql.39 change */ NUMBER
42 , x_agreement_num OUT NOCOPY /* file.sql.39 change */ VARCHAR2
43 , x_agreement_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
44 , x_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
45 , x_attribute10 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
46 , x_attribute11 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
47 , x_attribute12 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
48 , x_attribute13 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
49 , x_attribute14 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
50 , x_attribute15 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
51 , x_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
52 , x_attribute3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
53 , x_attribute4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
54 , x_attribute5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
55 , x_attribute6 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
56 , x_attribute7 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
57 , x_attribute8 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
58 , x_attribute9 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
59 , x_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
60 , x_sold_to_org_id OUT NOCOPY /* file.sql.39 change */ NUMBER
61 , x_end_date_active OUT NOCOPY /* file.sql.39 change */ DATE
62 , x_freight_terms_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
63 , x_invoice_contact_id OUT NOCOPY /* file.sql.39 change */ NUMBER
64 , x_invoice_to_org_id OUT NOCOPY /* file.sql.39 change */ NUMBER
65 , x_invoicing_rule_id OUT NOCOPY /* file.sql.39 change */ NUMBER
66 , x_name OUT NOCOPY /* file.sql.39 change */ VARCHAR2
67 , x_override_arule_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
68 , x_override_irule_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
69 , x_price_list_id OUT NOCOPY /* file.sql.39 change */ NUMBER
70 , x_purchase_order_num OUT NOCOPY /* file.sql.39 change */ VARCHAR2
71 , x_revision OUT NOCOPY /* file.sql.39 change */ VARCHAR2
72 , x_revision_date OUT NOCOPY /* file.sql.39 change */ DATE
73 , x_revision_reason_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
74 , x_salesrep_id OUT NOCOPY /* file.sql.39 change */ NUMBER
75 , x_ship_method_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
76 , x_signature_date OUT NOCOPY /* file.sql.39 change */ DATE
77 , x_start_date_active OUT NOCOPY /* file.sql.39 change */ DATE
78 , x_term_id OUT NOCOPY /* file.sql.39 change */ NUMBER
79 , x_accounting_rule OUT NOCOPY /* file.sql.39 change */ VARCHAR2
80 , x_agreement_contact OUT NOCOPY /* file.sql.39 change */ VARCHAR2
81 , x_agreement OUT NOCOPY /* file.sql.39 change */ VARCHAR2
82 , x_agreement_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
83 , x_customer OUT NOCOPY /* file.sql.39 change */ VARCHAR2
84 , x_freight_terms OUT NOCOPY /* file.sql.39 change */ VARCHAR2
85 , x_invoice_contact OUT NOCOPY /* file.sql.39 change */ VARCHAR2
86 , x_invoice_to_site_use OUT NOCOPY /* file.sql.39 change */ VARCHAR2
87 , x_invoicing_rule OUT NOCOPY /* file.sql.39 change */ VARCHAR2
88 , x_override_arule OUT NOCOPY /* file.sql.39 change */ VARCHAR2
89 , x_override_irule OUT NOCOPY /* file.sql.39 change */ VARCHAR2
90 , x_price_list OUT NOCOPY /* file.sql.39 change */ VARCHAR2
91 , x_revision_reason OUT NOCOPY /* file.sql.39 change */ VARCHAR2
92 , x_salesrep OUT NOCOPY /* file.sql.39 change */ VARCHAR2
93 , x_ship_method OUT NOCOPY /* file.sql.39 change */ VARCHAR2
94 , x_term OUT NOCOPY /* file.sql.39 change */ VARCHAR2
95 , x_agreement_source_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2 --added by rchellam for OKC
96 , x_orig_system_agr_id OUT NOCOPY /* file.sql.39 change */ NUMBER --added by rchellam for OKC
97 , x_agreement_source OUT NOCOPY /* file.sql.39 change */ VARCHAR2 --added by rchellam for OKC
98 , x_invoice_to_customer_id OUT NOCOPY NUMBER -- Added for bug#4029589
99 )
100 IS
101 l_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
102 l_Agreement_val_rec OE_Pricing_Cont_PUB.Agreement_Val_Rec_Type;
103 l_control_rec oe_globals.Control_Rec_Type;
104 l_return_status VARCHAR2(1);
105 l_x_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
106 l_x_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
107 l_x_Price_LHeader_rec OE_Price_List_PUB.Price_List_Rec_Type;
108 l_x_Discount_Header_rec OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
109 l_x_Price_LLine_rec OE_Price_List_PUB.Price_List_Line_Rec_Type;
110 l_x_Price_LLine_tbl OE_Price_List_PUB.Price_List_Line_Tbl_Type;
111 l_x_Discount_Cust_rec OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
112 l_x_Discount_Cust_tbl OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
113 l_x_Discount_Line_rec OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
114 l_x_Discount_Line_tbl OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
115 l_x_Price_Break_rec OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
116 l_x_Price_Break_tbl OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
117 BEGIN
118
119 oe_debug_pub.add('Entering OE_OE_Form_Agreement.Default_Attributes');
120
121 -- Set control flags.
122
123 l_control_rec.controlled_operation := TRUE;
124 l_control_rec.default_attributes := TRUE;
125
126 l_control_rec.change_attributes := FALSE;
127 l_control_rec.validate_entity := FALSE;
128 l_control_rec.write_to_DB := FALSE;
129 l_control_rec.process := FALSE;
130
131 -- Instruct API to retain its caches
132
133 l_control_rec.clear_api_cache := FALSE;
134 l_control_rec.clear_api_requests := FALSE;
135
136 -- Load IN parameters if any exist
137
138
139 -- Defaulting of flex values is currently done by the form.
140 -- Set flex attributes to NULL in order to avoid defaulting them.
141 /*
142 l_Agreement_rec.attribute1 := 'NULL';
143 l_Agreement_rec.attribute10 := 'NULL';
144 l_Agreement_rec.attribute11 := 'NULL';
145 l_Agreement_rec.attribute12 := 'NULL';
146 l_Agreement_rec.attribute13 := 'NULL';
147 l_Agreement_rec.attribute14 := 'NULL';
148 l_Agreement_rec.attribute15 := 'NULL';
149 l_Agreement_rec.attribute2 := 'NULL';
150 l_Agreement_rec.attribute3 := 'NULL';
151 l_Agreement_rec.attribute4 := 'NULL';
152 l_Agreement_rec.attribute5 := 'NULL';
153 l_Agreement_rec.attribute6 := 'NULL';
154 l_Agreement_rec.attribute7 := 'NULL';
155 l_Agreement_rec.attribute8 := 'NULL';
156 l_Agreement_rec.attribute9 := 'NULL';
157 l_Agreement_rec.context := 'NULL';
158 */
159 -- Set Operation to Create
160
161 l_Agreement_rec.operation := oe_globals.G_OPR_CREATE;
162
163 -- Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
164
165 OE_Pricing_Cont_PVT.Process_Pricing_Cont
166 ( p_api_version_number => 1.0
167 , p_init_msg_list => FND_API.G_TRUE
168 , x_return_status => l_return_status
169 , x_msg_count => x_msg_count
170 , x_msg_data => x_msg_data
171 , p_control_rec => l_control_rec
172 , p_Agreement_rec => l_Agreement_rec
173 , x_Contract_rec => l_x_Contract_rec
174 , x_Agreement_rec => l_x_Agreement_rec
175 , x_Price_LHeader_rec => l_x_Price_LHeader_rec
176 , x_Discount_Header_rec => l_x_Discount_Header_rec
177 , x_Price_LLine_tbl => l_x_Price_LLine_tbl
178 , x_Discount_Cust_tbl => l_x_Discount_Cust_tbl
179 , x_Discount_Line_tbl => l_x_Discount_Line_tbl
180 , x_Price_Break_tbl => l_x_Price_Break_tbl
181 );
182
183 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
184 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
185 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
186 RAISE FND_API.G_EXC_ERROR;
187 END IF;
188
189
190 -- Load OUT parameters.
191
192 x_accounting_rule_id := l_x_Agreement_rec.accounting_rule_id;
193 x_agreement_contact_id := l_x_Agreement_rec.agreement_contact_id;
194 x_agreement_id := l_x_Agreement_rec.agreement_id;
195 x_agreement_num := l_x_Agreement_rec.agreement_num;
196 x_agreement_type_code := l_x_Agreement_rec.agreement_type_code;
197 x_attribute1 := l_x_Agreement_rec.attribute1;
198 x_attribute10 := l_x_Agreement_rec.attribute10;
199 x_attribute11 := l_x_Agreement_rec.attribute11;
200 x_attribute12 := l_x_Agreement_rec.attribute12;
201 x_attribute13 := l_x_Agreement_rec.attribute13;
202 x_attribute14 := l_x_Agreement_rec.attribute14;
203 x_attribute15 := l_x_Agreement_rec.attribute15;
204 x_attribute2 := l_x_Agreement_rec.attribute2;
205 x_attribute3 := l_x_Agreement_rec.attribute3;
206 x_attribute4 := l_x_Agreement_rec.attribute4;
207 x_attribute5 := l_x_Agreement_rec.attribute5;
208 x_attribute6 := l_x_Agreement_rec.attribute6;
209 x_attribute7 := l_x_Agreement_rec.attribute7;
210 x_attribute8 := l_x_Agreement_rec.attribute8;
211 x_attribute9 := l_x_Agreement_rec.attribute9;
212 x_context := l_x_Agreement_rec.context;
213 x_sold_to_org_id := l_x_Agreement_rec.sold_to_org_id;
214 x_end_date_active := l_x_Agreement_rec.end_date_active;
215 x_freight_terms_code := l_x_Agreement_rec.freight_terms_code;
216 x_invoice_contact_id := l_x_Agreement_rec.invoice_contact_id;
217 x_invoice_to_org_id := l_x_Agreement_rec.invoice_to_org_id;
218 x_invoicing_rule_id := l_x_Agreement_rec.invoicing_rule_id;
219 x_name := l_x_Agreement_rec.name;
220 x_override_arule_flag := l_x_Agreement_rec.override_arule_flag;
221 x_override_irule_flag := l_x_Agreement_rec.override_irule_flag;
222 x_price_list_id := l_x_Agreement_rec.price_list_id;
223 x_purchase_order_num := l_x_Agreement_rec.purchase_order_num;
224 x_revision := l_x_Agreement_rec.revision;
225 x_revision_date := l_x_Agreement_rec.revision_date;
226 x_revision_reason_code := l_x_Agreement_rec.revision_reason_code;
227 x_salesrep_id := l_x_Agreement_rec.salesrep_id;
228 x_ship_method_code := l_x_Agreement_rec.ship_method_code;
229 x_signature_date := l_x_Agreement_rec.signature_date;
230 x_start_date_active := l_x_Agreement_rec.start_date_active;
231 x_term_id := l_x_Agreement_rec.term_id;
232 x_agreement_source_code := l_x_Agreement_rec.agreement_source_code;
233 --added by rchellam for OKC
234 x_orig_system_agr_id := l_x_Agreement_rec.orig_system_agr_id;
235 --added by rchellam for OKC
236 x_invoice_to_customer_id := l_x_Agreement_rec.invoice_to_customer_id;
237 -- Added for bug#4029589
238
239 -- Load display out parameters if any
240
241 l_Agreement_val_rec := OE_Agreement_Util.Get_Values
242 ( p_Agreement_rec => l_x_Agreement_rec
243 );
244 x_accounting_rule := l_Agreement_val_rec.accounting_rule;
245 x_agreement_contact := l_Agreement_val_rec.agreement_contact;
246 x_agreement := l_Agreement_val_rec.agreement;
247 x_agreement_type := l_Agreement_val_rec.agreement_type;
248 x_customer := l_Agreement_val_rec.customer;
249 x_freight_terms := l_Agreement_val_rec.freight_terms;
250 x_invoice_contact := l_Agreement_val_rec.invoice_contact;
251 x_invoice_to_site_use := l_Agreement_val_rec.invoice_to_site_use;
252 /* x_invoice_to_org := l_Agreement_val_rec.invoice_to_org; */
253 x_invoicing_rule := l_Agreement_val_rec.invoicing_rule;
254 x_override_arule := l_Agreement_val_rec.override_arule;
255 x_override_irule := l_Agreement_val_rec.override_irule;
256 x_price_list := l_Agreement_val_rec.price_list;
257 x_revision_reason := l_Agreement_val_rec.revision_reason;
258 x_salesrep := l_Agreement_val_rec.salesrep;
259 x_ship_method := l_Agreement_val_rec.ship_method;
260 x_term := l_Agreement_val_rec.term;
261 x_agreement_source := l_Agreement_val_rec.agreement_source;
262 --added by rchellam for OKC
263
264 -- Write to cache.
265 -- Set db_flag to False before writing to cache
266
267 l_x_Agreement_rec.db_flag := FND_API.G_FALSE;
268
269 Write_Agreement
270 ( p_Agreement_rec => l_x_Agreement_rec
271 );
272
273 -- Set return status.
274
275 x_return_status := FND_API.G_RET_STS_SUCCESS;
276
277 -- Get message count and data
278
279 OE_MSG_PUB.Count_And_Get
280 ( p_count => x_msg_count
281 , p_data => x_msg_data
282 );
283
284 oe_debug_pub.add('Exiting OE_OE_Form_Agreement.Default_Attributes');
285
286 EXCEPTION
287
288 WHEN FND_API.G_EXC_ERROR THEN
289
290 x_return_status := FND_API.G_RET_STS_ERROR;
291
292 -- Get message count and data
293
294 OE_MSG_PUB.Count_And_Get
295 ( p_count => x_msg_count
296 , p_data => x_msg_data
297 );
298
299 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
300
301 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
302
303 -- Get message count and data
304
305 OE_MSG_PUB.Count_And_Get
306 ( p_count => x_msg_count
307 , p_data => x_msg_data
308 );
309
310 WHEN OTHERS THEN
311
312 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
313
314 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
315 THEN
316 OE_MSG_PUB.Add_Exc_Msg
317 ( G_PKG_NAME
318 , 'Default_Attributes'
319 );
320 END IF;
321
322 -- Get message count and data
323
324 OE_MSG_PUB.Count_And_Get
325 ( p_count => x_msg_count
326 , p_data => x_msg_data
327 );
328
329 END Default_Attributes;
330
331 -- Procedure : Change_Attribute
332 --
333
334 PROCEDURE Change_Attribute
335 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
336 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
337 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
338 , p_agreement_id IN NUMBER
339 , p_attr_id IN NUMBER
340 , p_attr_value IN VARCHAR2
341 , p_attribute1 IN VARCHAR2
342 , p_attribute10 IN VARCHAR2
343 , p_attribute11 IN VARCHAR2
344 , p_attribute12 IN VARCHAR2
345 , p_attribute13 IN VARCHAR2
346 , p_attribute14 IN VARCHAR2
347 , p_attribute15 IN VARCHAR2
348 , p_attribute2 IN VARCHAR2
349 , p_attribute3 IN VARCHAR2
350 , p_attribute4 IN VARCHAR2
351 , p_attribute5 IN VARCHAR2
352 , p_attribute6 IN VARCHAR2
353 , p_attribute7 IN VARCHAR2
354 , p_attribute8 IN VARCHAR2
355 , p_attribute9 IN VARCHAR2
356 , p_context IN VARCHAR2
357 , x_accounting_rule_id OUT NOCOPY /* file.sql.39 change */ NUMBER
358 , x_agreement_contact_id OUT NOCOPY /* file.sql.39 change */ NUMBER
359 , x_agreement_id OUT NOCOPY /* file.sql.39 change */ NUMBER
360 , x_agreement_num OUT NOCOPY /* file.sql.39 change */ VARCHAR2
361 , x_agreement_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
362 , x_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
363 , x_attribute10 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
364 , x_attribute11 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
365 , x_attribute12 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
366 , x_attribute13 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
367 , x_attribute14 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
368 , x_attribute15 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
369 , x_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
370 , x_attribute3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
371 , x_attribute4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
372 , x_attribute5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
373 , x_attribute6 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
374 , x_attribute7 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
375 , x_attribute8 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
376 , x_attribute9 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
377 , x_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
378 , x_sold_to_org_id OUT NOCOPY /* file.sql.39 change */ NUMBER
379 , x_end_date_active OUT NOCOPY /* file.sql.39 change */ DATE
380 , x_freight_terms_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
381 , x_invoice_contact_id OUT NOCOPY /* file.sql.39 change */ NUMBER
382 , x_invoice_to_org_id OUT NOCOPY /* file.sql.39 change */ NUMBER
383 , x_invoicing_rule_id OUT NOCOPY /* file.sql.39 change */ NUMBER
384 , x_name OUT NOCOPY /* file.sql.39 change */ VARCHAR2
385 , x_override_arule_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
386 , x_override_irule_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
387 , x_price_list_id OUT NOCOPY /* file.sql.39 change */ NUMBER
388 , x_purchase_order_num OUT NOCOPY /* file.sql.39 change */ VARCHAR2
389 , x_revision OUT NOCOPY /* file.sql.39 change */ VARCHAR2
390 , x_revision_date OUT NOCOPY /* file.sql.39 change */ DATE
391 , x_revision_reason_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
392 , x_salesrep_id OUT NOCOPY /* file.sql.39 change */ NUMBER
393 , x_ship_method_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
394 , x_signature_date OUT NOCOPY /* file.sql.39 change */ DATE
395 , x_start_date_active OUT NOCOPY /* file.sql.39 change */ DATE
396 , x_term_id OUT NOCOPY /* file.sql.39 change */ NUMBER
397 , x_accounting_rule OUT NOCOPY /* file.sql.39 change */ VARCHAR2
398 , x_agreement_contact OUT NOCOPY /* file.sql.39 change */ VARCHAR2
399 , x_agreement OUT NOCOPY /* file.sql.39 change */ VARCHAR2
400 , x_agreement_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
401 , x_customer OUT NOCOPY /* file.sql.39 change */ VARCHAR2
402 , x_freight_terms OUT NOCOPY /* file.sql.39 change */ VARCHAR2
403 , x_invoice_contact OUT NOCOPY /* file.sql.39 change */ VARCHAR2
404 , x_invoice_to_site_use OUT NOCOPY /* file.sql.39 change */ VARCHAR2
405 , x_invoicing_rule OUT NOCOPY /* file.sql.39 change */ VARCHAR2
406 , x_override_arule OUT NOCOPY /* file.sql.39 change */ VARCHAR2
407 , x_override_irule OUT NOCOPY /* file.sql.39 change */ VARCHAR2
408 , x_price_list OUT NOCOPY /* file.sql.39 change */ VARCHAR2
409 , x_revision_reason OUT NOCOPY /* file.sql.39 change */ VARCHAR2
410 , x_salesrep OUT NOCOPY /* file.sql.39 change */ VARCHAR2
411 , x_ship_method OUT NOCOPY /* file.sql.39 change */ VARCHAR2
412 , x_term OUT NOCOPY /* file.sql.39 change */ VARCHAR2
413 , x_agreement_source_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2 --added by rchellam for OKC
414 , x_orig_system_agr_id OUT NOCOPY /* file.sql.39 change */ NUMBER --added by rchellam for OKC
415 , x_agreement_source OUT NOCOPY /* file.sql.39 change */ VARCHAR2 --added by rchellam for OKC
416 , x_invoice_to_customer_id OUT NOCOPY NUMBER -- Added for bug#4029589
417 )
418 IS
419 l_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
420 l_old_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
421 l_Agreement_val_rec OE_Pricing_Cont_PUB.Agreement_Val_Rec_Type;
422 l_control_rec oe_globals.Control_Rec_Type;
423 l_return_status VARCHAR2(1);
424 l_x_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
425 l_x_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
426 l_x_Price_LHeader_rec OE_Price_List_PUB.Price_List_Rec_Type;
427 l_x_Discount_Header_rec OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
428 l_x_Price_LLine_rec OE_Price_List_PUB.Price_List_Line_Rec_Type;
429 l_x_Price_LLine_tbl OE_Price_List_PUB.Price_List_Line_Tbl_Type;
430 l_x_Discount_Cust_rec OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
431 l_x_Discount_Cust_tbl OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
432 l_x_Discount_Line_rec OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
433 l_x_Discount_Line_tbl OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
434 l_x_Price_Break_rec OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
435 l_x_Price_Break_tbl OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
436 BEGIN
437
438 oe_debug_pub.add('Entering OE_OE_Form_Agreement.Change_Attribute');
439
440 -- Set control flags.
441
442 l_control_rec.controlled_operation := TRUE;
443 l_control_rec.change_attributes := TRUE;
444
445 l_control_rec.default_attributes := FALSE;
446 l_control_rec.validate_entity := FALSE;
447 l_control_rec.write_to_DB := FALSE;
448 l_control_rec.process := FALSE;
449
450 -- Instruct API to retain its caches
451
452 l_control_rec.clear_api_cache := FALSE;
453 l_control_rec.clear_api_requests := FALSE;
454
455 -- Read Agreement from cache
456
457 l_Agreement_rec := Get_Agreement
458 ( p_db_record => FALSE
459 , p_agreement_id => p_agreement_id
460 );
461
462 l_old_Agreement_rec := l_Agreement_rec;
463
464 IF p_attr_id = OE_Agreement_Util.G_ACCOUNTING_RULE THEN
465 l_Agreement_rec.accounting_rule_id := TO_NUMBER(p_attr_value);
466 ELSIF p_attr_id = OE_Agreement_Util.G_AGREEMENT_CONTACT THEN
467 l_Agreement_rec.agreement_contact_id := TO_NUMBER(p_attr_value);
468 ELSIF p_attr_id = OE_Agreement_Util.G_AGREEMENT THEN
469 l_Agreement_rec.agreement_id := TO_NUMBER(p_attr_value);
470 ELSIF p_attr_id = OE_Agreement_Util.G_AGREEMENT_NUM THEN
471 l_Agreement_rec.agreement_num := p_attr_value;
472 ELSIF p_attr_id = OE_Agreement_Util.G_AGREEMENT_TYPE THEN
473 l_Agreement_rec.agreement_type_code := p_attr_value;
474 ELSIF p_attr_id = OE_Agreement_Util.G_CUSTOMER THEN
475 /* l_Agreement_rec.customer_id := TO_NUMBER(p_attr_value); */
476 l_Agreement_rec.sold_to_org_id := TO_NUMBER(p_attr_value);
477 ELSIF p_attr_id = OE_Agreement_Util.G_END_DATE_ACTIVE THEN
478 l_Agreement_rec.end_date_active := TO_DATE(p_attr_value,'DD/MM/YYYY');
479 ELSIF p_attr_id = OE_Agreement_Util.G_FREIGHT_TERMS THEN
480 l_Agreement_rec.freight_terms_code := p_attr_value;
481 ELSIF p_attr_id = OE_Agreement_Util.G_INVOICE_CONTACT THEN
482 l_Agreement_rec.invoice_contact_id := TO_NUMBER(p_attr_value);
483 ELSIF p_attr_id = OE_Agreement_Util.G_INVOICE_TO_SITE_USE THEN
484 /* ELSIF p_attr_id = OE_Agreement_Util.G_INVOICE_TO_ORG THEN */
485 /* l_Agreement_rec.invoice_to_site_use_id := TO_NUMBER(p_attr_value); */
486 l_Agreement_rec.invoice_to_org_id := TO_NUMBER(p_attr_value);
487 ELSIF p_attr_id = OE_Agreement_Util.G_INVOICING_RULE THEN
488 l_Agreement_rec.invoicing_rule_id := TO_NUMBER(p_attr_value);
489 ELSIF p_attr_id = OE_Agreement_Util.G_NAME THEN
490 l_Agreement_rec.name := p_attr_value;
491 ELSIF p_attr_id = OE_Agreement_Util.G_OVERRIDE_ARULE THEN
492 l_Agreement_rec.override_arule_flag := p_attr_value;
493 ELSIF p_attr_id = OE_Agreement_Util.G_OVERRIDE_IRULE THEN
494 l_Agreement_rec.override_irule_flag := p_attr_value;
495 ELSIF p_attr_id = OE_Agreement_Util.G_PRICE_LIST THEN
496 l_Agreement_rec.price_list_id := TO_NUMBER(p_attr_value);
497 ELSIF p_attr_id = OE_Agreement_Util.G_PURCHASE_ORDER_NUM THEN
498 l_Agreement_rec.purchase_order_num := p_attr_value;
499 ELSIF p_attr_id = OE_Agreement_Util.G_REVISION THEN
500 l_Agreement_rec.revision := p_attr_value;
501 ELSIF p_attr_id = OE_Agreement_Util.G_REVISION_DATE THEN
502 l_Agreement_rec.revision_date := TO_DATE(p_attr_value,'DD/MM/YYYY');
503 ELSIF p_attr_id = OE_Agreement_Util.G_REVISION_REASON THEN
504 l_Agreement_rec.revision_reason_code := p_attr_value;
505 ELSIF p_attr_id = OE_Agreement_Util.G_SALESREP THEN
506 l_Agreement_rec.salesrep_id := TO_NUMBER(p_attr_value);
507 ELSIF p_attr_id = OE_Agreement_Util.G_SHIP_METHOD THEN
508 l_Agreement_rec.ship_method_code := p_attr_value;
509 ELSIF p_attr_id = OE_Agreement_Util.G_SIGNATURE_DATE THEN
510 l_Agreement_rec.signature_date := TO_DATE(p_attr_value,'DD/MM/YYYY');
511 ELSIF p_attr_id = OE_Agreement_Util.G_START_DATE_ACTIVE THEN
512 l_Agreement_rec.start_date_active := TO_DATE(p_attr_value,'DD/MM/YYYY');
513 ELSIF p_attr_id = OE_Agreement_Util.G_TERM THEN
514 l_Agreement_rec.term_id := TO_NUMBER(p_attr_value);
515 --Begin code added by rchellam for OKC
516 ELSIF p_attr_id = OE_Agreement_Util.G_AGREEMENT_SOURCE THEN
517 l_Agreement_rec.agreement_source_code := p_attr_value;
518 ELSIF p_attr_id = OE_Agreement_Util.G_ORIG_SYSTEM_AGR THEN
519 l_Agreement_rec.orig_system_agr_id := TO_NUMBER(p_attr_value);
520 --End code added by rchellam for OKC
521 -- Added for bug#4029589
522 ELSIF p_attr_id = OE_Agreement_Util.G_INVOICE_TO_CUSTOMER_ID THEN
523 l_Agreement_rec.invoice_to_customer_id := TO_NUMBER(p_attr_value);
524 ELSIF p_attr_id = OE_Agreement_Util.G_ATTRIBUTE1
525 OR p_attr_id = OE_Agreement_Util.G_ATTRIBUTE10
526 OR p_attr_id = OE_Agreement_Util.G_ATTRIBUTE11
527 OR p_attr_id = OE_Agreement_Util.G_ATTRIBUTE12
528 OR p_attr_id = OE_Agreement_Util.G_ATTRIBUTE13
529 OR p_attr_id = OE_Agreement_Util.G_ATTRIBUTE14
530 OR p_attr_id = OE_Agreement_Util.G_ATTRIBUTE15
531 OR p_attr_id = OE_Agreement_Util.G_ATTRIBUTE2
532 OR p_attr_id = OE_Agreement_Util.G_ATTRIBUTE3
533 OR p_attr_id = OE_Agreement_Util.G_ATTRIBUTE4
534 OR p_attr_id = OE_Agreement_Util.G_ATTRIBUTE5
535 OR p_attr_id = OE_Agreement_Util.G_ATTRIBUTE6
536 OR p_attr_id = OE_Agreement_Util.G_ATTRIBUTE7
537 OR p_attr_id = OE_Agreement_Util.G_ATTRIBUTE8
538 OR p_attr_id = OE_Agreement_Util.G_ATTRIBUTE9
539 OR p_attr_id = OE_Agreement_Util.G_CONTEXT
540 THEN
541
542 l_Agreement_rec.attribute1 := p_attribute1;
543 l_Agreement_rec.attribute10 := p_attribute10;
544 l_Agreement_rec.attribute11 := p_attribute11;
545 l_Agreement_rec.attribute12 := p_attribute12;
546 l_Agreement_rec.attribute13 := p_attribute13;
547 l_Agreement_rec.attribute14 := p_attribute14;
548 l_Agreement_rec.attribute15 := p_attribute15;
549 l_Agreement_rec.attribute2 := p_attribute2;
550 l_Agreement_rec.attribute3 := p_attribute3;
551 l_Agreement_rec.attribute4 := p_attribute4;
552 l_Agreement_rec.attribute5 := p_attribute5;
553 l_Agreement_rec.attribute6 := p_attribute6;
554 l_Agreement_rec.attribute7 := p_attribute7;
555 l_Agreement_rec.attribute8 := p_attribute8;
556 l_Agreement_rec.attribute9 := p_attribute9;
557 l_Agreement_rec.context := p_context;
558
559 ELSE
560
561 -- Unexpected error, unrecognized attribute
562
563 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
564 THEN
565 OE_MSG_PUB.Add_Exc_Msg
566 ( G_PKG_NAME
567 , 'Change_Attribute'
568 , 'Unrecognized attribute'
569 );
570 END IF;
571
572 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
573
574 END IF;
575
576 -- Set Operation.
577
578 IF FND_API.To_Boolean(l_Agreement_rec.db_flag) THEN
579 l_Agreement_rec.operation := oe_globals.G_OPR_UPDATE;
580 ELSE
581 l_Agreement_rec.operation := oe_globals.G_OPR_CREATE;
582 END IF;
583
584 -- Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
585
586 OE_Pricing_Cont_PVT.Process_Pricing_Cont
587 ( p_api_version_number => 1.0
588 , p_init_msg_list => FND_API.G_TRUE
589 , p_validation_level => FND_API.G_VALID_LEVEL_NONE
590 , x_return_status => l_return_status
591 , x_msg_count => x_msg_count
592 , x_msg_data => x_msg_data
593 , p_control_rec => l_control_rec
594 , p_Agreement_rec => l_Agreement_rec
595 , p_old_Agreement_rec => l_old_Agreement_rec
596 , x_Contract_rec => l_x_Contract_rec
597 , x_Agreement_rec => l_x_Agreement_rec
598 , x_Price_LHeader_rec => l_x_Price_LHeader_rec
599 , x_Discount_Header_rec => l_x_Discount_Header_rec
600 , x_Price_LLine_tbl => l_x_Price_LLine_tbl
601 , x_Discount_Cust_tbl => l_x_Discount_Cust_tbl
602 , x_Discount_Line_tbl => l_x_Discount_Line_tbl
603 , x_Price_Break_tbl => l_x_Price_Break_tbl
604 );
605
606 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
607 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
608 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
609 RAISE FND_API.G_EXC_ERROR;
610 END IF;
611
612
613 -- Init OUT parameters to missing.
614
615 x_accounting_rule_id := FND_API.G_MISS_NUM;
616 x_agreement_contact_id := FND_API.G_MISS_NUM;
617 x_agreement_id := FND_API.G_MISS_NUM;
618 x_agreement_num := FND_API.G_MISS_CHAR;
619 x_agreement_type_code := FND_API.G_MISS_CHAR;
620 x_attribute1 := FND_API.G_MISS_CHAR;
621 x_attribute10 := FND_API.G_MISS_CHAR;
622 x_attribute11 := FND_API.G_MISS_CHAR;
623 x_attribute12 := FND_API.G_MISS_CHAR;
624 x_attribute13 := FND_API.G_MISS_CHAR;
625 x_attribute14 := FND_API.G_MISS_CHAR;
626 x_attribute15 := FND_API.G_MISS_CHAR;
627 x_attribute2 := FND_API.G_MISS_CHAR;
628 x_attribute3 := FND_API.G_MISS_CHAR;
629 x_attribute4 := FND_API.G_MISS_CHAR;
630 x_attribute5 := FND_API.G_MISS_CHAR;
631 x_attribute6 := FND_API.G_MISS_CHAR;
632 x_attribute7 := FND_API.G_MISS_CHAR;
633 x_attribute8 := FND_API.G_MISS_CHAR;
634 x_attribute9 := FND_API.G_MISS_CHAR;
635 x_context := FND_API.G_MISS_CHAR;
636 x_sold_to_org_id := FND_API.G_MISS_NUM;
637 x_end_date_active := FND_API.G_MISS_DATE;
638 x_freight_terms_code := FND_API.G_MISS_CHAR;
639 x_invoice_contact_id := FND_API.G_MISS_NUM;
640 x_invoice_to_org_id := FND_API.G_MISS_NUM;
641 x_invoicing_rule_id := FND_API.G_MISS_NUM;
642 x_name := FND_API.G_MISS_CHAR;
643 x_override_arule_flag := FND_API.G_MISS_CHAR;
644 x_override_irule_flag := FND_API.G_MISS_CHAR;
645 x_price_list_id := FND_API.G_MISS_NUM;
646 x_purchase_order_num := FND_API.G_MISS_CHAR;
647 x_revision := FND_API.G_MISS_CHAR;
648 x_revision_date := FND_API.G_MISS_DATE;
649 x_revision_reason_code := FND_API.G_MISS_CHAR;
650 x_salesrep_id := FND_API.G_MISS_NUM;
651 x_ship_method_code := FND_API.G_MISS_CHAR;
652 x_signature_date := FND_API.G_MISS_DATE;
653 x_start_date_active := FND_API.G_MISS_DATE;
654 x_term_id := FND_API.G_MISS_NUM;
655 x_accounting_rule := FND_API.G_MISS_CHAR;
656 x_agreement_contact := FND_API.G_MISS_CHAR;
657 x_agreement := FND_API.G_MISS_CHAR;
658 x_agreement_type := FND_API.G_MISS_CHAR;
659 x_customer := FND_API.G_MISS_CHAR;
660 x_freight_terms := FND_API.G_MISS_CHAR;
661 x_invoice_contact := FND_API.G_MISS_CHAR;
662 x_invoice_to_site_use := FND_API.G_MISS_CHAR;
663 /* x_invoice_org := FND_API.G_MISS_CHAR; */
664 x_invoicing_rule := FND_API.G_MISS_CHAR;
665 x_override_arule := FND_API.G_MISS_CHAR;
666 x_override_irule := FND_API.G_MISS_CHAR;
667 x_price_list := FND_API.G_MISS_CHAR;
668 x_revision_reason := FND_API.G_MISS_CHAR;
669 x_salesrep := FND_API.G_MISS_CHAR;
670 x_ship_method := FND_API.G_MISS_CHAR;
671 x_term := FND_API.G_MISS_CHAR;
672 x_agreement_source_code := FND_API.G_MISS_CHAR;
673 --added by rchellam for OKC
674 x_orig_system_agr_id := FND_API.G_MISS_NUM;
675 --added by rchellam for OKC
676 x_agreement_source := FND_API.G_MISS_CHAR;
677 --added by rchellam for OKC
678 x_invoice_to_customer_id := FND_API.G_MISS_NUM;
679 -- Added for bug#4029589
680
681 -- Load display out parameters if any
682
683 l_Agreement_val_rec := OE_Agreement_Util.Get_Values
684 ( p_Agreement_rec => l_x_Agreement_rec
685 , p_old_Agreement_rec => l_Agreement_rec
686 );
687
688 -- Return changed attributes.
689
690 IF NOT oe_globals.Equal(l_x_Agreement_rec.accounting_rule_id,
691 l_Agreement_rec.accounting_rule_id)
692 THEN
693 x_accounting_rule_id := l_x_Agreement_rec.accounting_rule_id;
694 x_accounting_rule := l_Agreement_val_rec.accounting_rule;
695 END IF;
696
697 IF NOT oe_globals.Equal(l_x_Agreement_rec.agreement_contact_id,
698 l_Agreement_rec.agreement_contact_id)
699 THEN
700 x_agreement_contact_id := l_x_Agreement_rec.agreement_contact_id;
701 x_agreement_contact := l_Agreement_val_rec.agreement_contact;
702 END IF;
703
704 IF NOT oe_globals.Equal(l_x_Agreement_rec.agreement_id,
705 l_Agreement_rec.agreement_id)
706 THEN
707 x_agreement_id := l_x_Agreement_rec.agreement_id;
708 x_agreement := l_Agreement_val_rec.agreement;
709 END IF;
710
711 IF NOT oe_globals.Equal(l_x_Agreement_rec.agreement_num,
712 l_Agreement_rec.agreement_num)
713 THEN
714 x_agreement_num := l_x_Agreement_rec.agreement_num;
715 END IF;
716
717 IF NOT oe_globals.Equal(l_x_Agreement_rec.agreement_type_code,
718 l_Agreement_rec.agreement_type_code)
719 THEN
720 x_agreement_type_code := l_x_Agreement_rec.agreement_type_code;
721 x_agreement_type := l_Agreement_val_rec.agreement_type;
722 END IF;
723
724 IF NOT oe_globals.Equal(l_x_Agreement_rec.attribute1,
725 l_Agreement_rec.attribute1)
726 THEN
727 x_attribute1 := l_x_Agreement_rec.attribute1;
728 END IF;
729
730 IF NOT oe_globals.Equal(l_x_Agreement_rec.attribute10,
731 l_Agreement_rec.attribute10)
732 THEN
733 x_attribute10 := l_x_Agreement_rec.attribute10;
734 END IF;
735
736 IF NOT oe_globals.Equal(l_x_Agreement_rec.attribute11,
737 l_Agreement_rec.attribute11)
738 THEN
739 x_attribute11 := l_x_Agreement_rec.attribute11;
740 END IF;
741
742 IF NOT oe_globals.Equal(l_x_Agreement_rec.attribute12,
743 l_Agreement_rec.attribute12)
744 THEN
745 x_attribute12 := l_x_Agreement_rec.attribute12;
746 END IF;
747
748 IF NOT oe_globals.Equal(l_x_Agreement_rec.attribute13,
749 l_Agreement_rec.attribute13)
750 THEN
751 x_attribute13 := l_x_Agreement_rec.attribute13;
752 END IF;
753
754 IF NOT oe_globals.Equal(l_x_Agreement_rec.attribute14,
755 l_Agreement_rec.attribute14)
756 THEN
757 x_attribute14 := l_x_Agreement_rec.attribute14;
758 END IF;
759
760 IF NOT oe_globals.Equal(l_x_Agreement_rec.attribute15,
761 l_Agreement_rec.attribute15)
762 THEN
763 x_attribute15 := l_x_Agreement_rec.attribute15;
764 END IF;
765
766 IF NOT oe_globals.Equal(l_x_Agreement_rec.attribute2,
767 l_Agreement_rec.attribute2)
768 THEN
769 x_attribute2 := l_x_Agreement_rec.attribute2;
770 END IF;
771
772 IF NOT oe_globals.Equal(l_x_Agreement_rec.attribute3,
773 l_Agreement_rec.attribute3)
774 THEN
775 x_attribute3 := l_x_Agreement_rec.attribute3;
776 END IF;
777
778 IF NOT oe_globals.Equal(l_x_Agreement_rec.attribute4,
779 l_Agreement_rec.attribute4)
780 THEN
781 x_attribute4 := l_x_Agreement_rec.attribute4;
782 END IF;
783
784 IF NOT oe_globals.Equal(l_x_Agreement_rec.attribute5,
785 l_Agreement_rec.attribute5)
786 THEN
787 x_attribute5 := l_x_Agreement_rec.attribute5;
788 END IF;
789
790 IF NOT oe_globals.Equal(l_x_Agreement_rec.attribute6,
791 l_Agreement_rec.attribute6)
792 THEN
793 x_attribute6 := l_x_Agreement_rec.attribute6;
794 END IF;
795
796 IF NOT oe_globals.Equal(l_x_Agreement_rec.attribute7,
797 l_Agreement_rec.attribute7)
798 THEN
799 x_attribute7 := l_x_Agreement_rec.attribute7;
800 END IF;
801
802 IF NOT oe_globals.Equal(l_x_Agreement_rec.attribute8,
803 l_Agreement_rec.attribute8)
804 THEN
805 x_attribute8 := l_x_Agreement_rec.attribute8;
806 END IF;
807
808 IF NOT oe_globals.Equal(l_x_Agreement_rec.attribute9,
809 l_Agreement_rec.attribute9)
810 THEN
811 x_attribute9 := l_x_Agreement_rec.attribute9;
812 END IF;
813
814 IF NOT oe_globals.Equal(l_x_Agreement_rec.context,
815 l_Agreement_rec.context)
816 THEN
817 x_context := l_x_Agreement_rec.context;
818 END IF;
819
820 /*
821 IF NOT oe_globals.Equal(l_x_Agreement_rec.customer_id,
822 l_Agreement_rec.customer_id)
823 THEN
824 x_customer_id := l_x_Agreement_rec.customer_id;
825 x_customer := l_Agreement_val_rec.customer;
826 END IF;
827 */
828
829 IF NOT oe_globals.Equal(l_x_Agreement_rec.sold_to_org_id,
830 l_Agreement_rec.sold_to_org_id)
831 THEN
832 x_sold_to_org_id := l_x_Agreement_rec.sold_to_org_id;
833 x_customer := l_Agreement_val_rec.customer;
834 END IF;
835
836 IF NOT oe_globals.Equal(l_x_Agreement_rec.end_date_active,
837 l_Agreement_rec.end_date_active)
838 THEN
839 x_end_date_active := l_x_Agreement_rec.end_date_active;
840 END IF;
841
842 IF NOT oe_globals.Equal(l_x_Agreement_rec.freight_terms_code,
843 l_Agreement_rec.freight_terms_code)
844 THEN
845 x_freight_terms_code := l_x_Agreement_rec.freight_terms_code;
846 x_freight_terms := l_Agreement_val_rec.freight_terms;
847 END IF;
848
849 IF NOT oe_globals.Equal(l_x_Agreement_rec.invoice_contact_id,
850 l_Agreement_rec.invoice_contact_id)
851 THEN
852 x_invoice_contact_id := l_x_Agreement_rec.invoice_contact_id;
853 x_invoice_contact := l_Agreement_val_rec.invoice_contact;
854 END IF;
855
856 /* IF NOT oe_globals.Equal(l_x_Agreement_rec.invoice_to_site_use_id,
857 l_Agreement_rec.invoice_to_site_use_id)
858 */
859 IF NOT oe_globals.Equal(l_x_Agreement_rec.invoice_to_org_id,
860 l_Agreement_rec.invoice_to_org_id)
861 THEN
862 /* x_invoice_to_site_use_id := l_x_Agreement_rec.invoice_to_site_use_id;*/
863 x_invoice_to_org_id := l_x_Agreement_rec.invoice_to_org_id;
864
865 x_invoice_to_site_use := l_Agreement_val_rec.invoice_to_site_use;
866 /* x_invoice_to_org := l_Agreement_val_rec.invoice_to_org; */
867 END IF;
868
869 IF NOT oe_globals.Equal(l_x_Agreement_rec.invoicing_rule_id,
870 l_Agreement_rec.invoicing_rule_id)
871 THEN
872 x_invoicing_rule_id := l_x_Agreement_rec.invoicing_rule_id;
873 x_invoicing_rule := l_Agreement_val_rec.invoicing_rule;
874 END IF;
875
876 IF NOT oe_globals.Equal(l_x_Agreement_rec.name,
877 l_Agreement_rec.name)
878 THEN
879 x_name := l_x_Agreement_rec.name;
880 END IF;
881
882 IF NOT oe_globals.Equal(l_x_Agreement_rec.override_arule_flag,
883 l_Agreement_rec.override_arule_flag)
884 THEN
885 x_override_arule_flag := l_x_Agreement_rec.override_arule_flag;
886 x_override_arule := l_Agreement_val_rec.override_arule;
887 END IF;
888
889 IF NOT oe_globals.Equal(l_x_Agreement_rec.override_irule_flag,
890 l_Agreement_rec.override_irule_flag)
891 THEN
892 x_override_irule_flag := l_x_Agreement_rec.override_irule_flag;
893 x_override_irule := l_Agreement_val_rec.override_irule;
894 END IF;
895
896 IF NOT oe_globals.Equal(l_x_Agreement_rec.price_list_id,
897 l_Agreement_rec.price_list_id)
898 THEN
899 x_price_list_id := l_x_Agreement_rec.price_list_id;
900 x_price_list := l_Agreement_val_rec.price_list;
901 END IF;
902
903 IF NOT oe_globals.Equal(l_x_Agreement_rec.purchase_order_num,
904 l_Agreement_rec.purchase_order_num)
905 THEN
906 x_purchase_order_num := l_x_Agreement_rec.purchase_order_num;
907 END IF;
908
909 IF NOT oe_globals.Equal(l_x_Agreement_rec.revision,
910 l_Agreement_rec.revision)
911 THEN
912 x_revision := l_x_Agreement_rec.revision;
913 END IF;
914
915 IF NOT oe_globals.Equal(l_x_Agreement_rec.revision_date,
916 l_Agreement_rec.revision_date)
917 THEN
918 x_revision_date := l_x_Agreement_rec.revision_date;
919 END IF;
920
921 IF NOT oe_globals.Equal(l_x_Agreement_rec.revision_reason_code,
922 l_Agreement_rec.revision_reason_code)
923 THEN
924 x_revision_reason_code := l_x_Agreement_rec.revision_reason_code;
925 x_revision_reason := l_Agreement_val_rec.revision_reason;
926 END IF;
927
928 IF NOT oe_globals.Equal(l_x_Agreement_rec.salesrep_id,
929 l_Agreement_rec.salesrep_id)
930 THEN
931 x_salesrep_id := l_x_Agreement_rec.salesrep_id;
932 x_salesrep := l_Agreement_val_rec.salesrep;
933 END IF;
934
935 IF NOT oe_globals.Equal(l_x_Agreement_rec.ship_method_code,
936 l_Agreement_rec.ship_method_code)
937 THEN
938 x_ship_method_code := l_x_Agreement_rec.ship_method_code;
939 x_ship_method := l_Agreement_val_rec.ship_method;
940 END IF;
941
942 IF NOT oe_globals.Equal(l_x_Agreement_rec.signature_date,
943 l_Agreement_rec.signature_date)
944 THEN
945 x_signature_date := l_x_Agreement_rec.signature_date;
946 END IF;
947
948 IF NOT oe_globals.Equal(l_x_Agreement_rec.start_date_active,
949 l_Agreement_rec.start_date_active)
950 THEN
951 x_start_date_active := l_x_Agreement_rec.start_date_active;
952 END IF;
953
954 IF NOT oe_globals.Equal(l_x_Agreement_rec.term_id,
955 l_Agreement_rec.term_id)
956 THEN
957 x_term_id := l_x_Agreement_rec.term_id;
958 x_term := l_Agreement_val_rec.term;
959 END IF;
960
961 --Begin code added by rchellam for OKC
962 IF NOT oe_globals.Equal(l_x_Agreement_rec.agreement_source_code,
963 l_Agreement_rec.agreement_source_code)
964 THEN
965 x_agreement_source_code := l_x_Agreement_rec.agreement_source_code;
966 x_agreement_source := l_Agreement_val_rec.agreement_source;
967 END IF;
968
969 IF NOT oe_globals.Equal(l_x_Agreement_rec.orig_system_agr_id,
970 l_Agreement_rec.orig_system_agr_id)
971 THEN
972 x_orig_system_agr_id := l_x_Agreement_rec.orig_system_agr_id;
973 END IF;
974 --End code added by rchellam for OKC
975
976 -- Added for bug#4029589
977 IF NOT oe_globals.Equal(l_x_Agreement_rec.invoice_to_customer_id,
978 l_Agreement_rec.invoice_to_customer_id)
979 THEN
980 x_invoice_to_customer_id := l_x_Agreement_rec.invoice_to_customer_id;
981 END IF;
982 -- Write to cache.
983
984 Write_Agreement
985 ( p_Agreement_rec => l_x_Agreement_rec
986 );
987
988
989 /* Added following code to raise warning message for Bug-2106110 */
990
991 If p_attr_id = OE_Agreement_Util.G_NAME
992 AND l_old_Agreement_rec.name is not NULL Then
993 If l_old_Agreement_rec.name <> p_attr_value Then
994 FND_MESSAGE.SET_NAME('QP','QP_AGR_NAME_CHG');
995 OE_MSG_PUB.Add;
996 END IF;
997 End If;
998 /* End of code for Bug-2106110 */
999
1000 -- Set return status.
1001
1002 x_return_status := FND_API.G_RET_STS_SUCCESS;
1003
1004 -- Get message count and data
1005
1006 OE_MSG_PUB.Count_And_Get
1007 ( p_count => x_msg_count
1008 , p_data => x_msg_data
1009 );
1010
1011 oe_debug_pub.add('Exiting OE_OE_Form_Agreement.Change_Attribute');
1012
1013 EXCEPTION
1014
1015 WHEN FND_API.G_EXC_ERROR THEN
1016
1017 x_return_status := FND_API.G_RET_STS_ERROR;
1018
1019 -- Get message count and data
1020
1021 OE_MSG_PUB.Count_And_Get
1022 ( p_count => x_msg_count
1023 , p_data => x_msg_data
1024 );
1025
1026 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1027
1028 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1029
1030 -- Get message count and data
1031
1032 OE_MSG_PUB.Count_And_Get
1033 ( p_count => x_msg_count
1034 , p_data => x_msg_data
1035 );
1036
1037 WHEN OTHERS THEN
1038
1039 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1040
1041 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1042 THEN
1043 OE_MSG_PUB.Add_Exc_Msg
1044 ( G_PKG_NAME
1045 , 'Change_Attribute'
1046 );
1047 END IF;
1048
1049 -- Get message count and data
1050
1051 OE_MSG_PUB.Count_And_Get
1052 ( p_count => x_msg_count
1053 , p_data => x_msg_data
1054 );
1055
1056 END Change_Attribute;
1057
1058 -- Procedure Validate_And_Write
1059 --
1060
1061 PROCEDURE Validate_And_Write
1062 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1063 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1064 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1065 , p_agreement_id IN NUMBER
1066 , x_creation_date OUT NOCOPY /* file.sql.39 change */ DATE
1067 , x_created_by OUT NOCOPY /* file.sql.39 change */ NUMBER
1068 , x_last_update_date OUT NOCOPY /* file.sql.39 change */ DATE
1069 , x_last_updated_by OUT NOCOPY /* file.sql.39 change */ NUMBER
1070 , x_last_update_login OUT NOCOPY /* file.sql.39 change */ NUMBER
1071 )
1072 IS
1073 l_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1074 l_old_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1075 l_control_rec oe_globals.Control_Rec_Type;
1076 l_return_status VARCHAR2(1);
1077 l_x_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
1078 l_x_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1079 l_x_Price_LHeader_rec OE_Price_List_PUB.Price_List_Rec_Type;
1080 l_x_Discount_Header_rec OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
1081 l_x_Price_LLine_rec OE_Price_List_PUB.Price_List_Line_Rec_Type;
1082 l_x_Price_LLine_tbl OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1083 l_x_Discount_Cust_rec OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
1084 l_x_Discount_Cust_tbl OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
1085 l_x_Discount_Line_rec OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
1086 l_x_Discount_Line_tbl OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
1087 l_x_Price_Break_rec OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
1088 l_x_Price_Break_tbl OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
1089 BEGIN
1090
1091 oe_debug_pub.add('Entering OE_OE_Form_Agreement.Validate_And_Write');
1092
1093 -- Set control flags.
1094
1095 l_control_rec.controlled_operation := TRUE;
1096 l_control_rec.validate_entity := TRUE;
1097 l_control_rec.write_to_DB := TRUE;
1098
1099 l_control_rec.default_attributes := FALSE;
1100 l_control_rec.change_attributes := FALSE;
1101 l_control_rec.process := FALSE;
1102
1103 -- Instruct API to retain its caches
1104
1105 l_control_rec.clear_api_cache := FALSE;
1106 l_control_rec.clear_api_requests := FALSE;
1107
1108 -- Read Agreement from cache
1109
1110 l_old_Agreement_rec := Get_Agreement
1111 ( p_db_record => TRUE
1112 , p_agreement_id => p_agreement_id
1113 );
1114
1115 l_Agreement_rec := Get_Agreement
1116 ( p_db_record => FALSE
1117 , p_agreement_id => p_agreement_id
1118 );
1119
1120 -- Set Operation.
1121
1122 IF FND_API.To_Boolean(l_Agreement_rec.db_flag) THEN
1123 l_Agreement_rec.operation := oe_globals.G_OPR_UPDATE;
1124 ELSE
1125 l_Agreement_rec.operation := oe_globals.G_OPR_CREATE;
1126 END IF;
1127
1128
1129
1130 --Revision Control S
1131 IF ( l_old_agreement_rec.revision <> l_agreement_rec.revision
1132 and l_Agreement_rec.operation = oe_globals.G_OPR_UPDATE ) THEN
1133
1134 select oe_agreements_s.nextval into l_agreement_rec.agreement_id from dual;
1135
1136 l_Agreement_rec.operation := oe_globals.G_OPR_CREATE;
1137 l_Agreement_rec.db_flag := FND_API.G_FALSE;
1138 --OE_OE_Form_Contract.Create_Revision(l_agreement_rec.agreement_id);
1139 END IF;
1140 --Revision Control E
1141
1142
1143
1144
1145
1146 -- Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
1147
1148
1149 OE_Pricing_Cont_PVT.Process_Pricing_Cont
1150 ( p_api_version_number => 1.0
1151 , p_init_msg_list => FND_API.G_TRUE
1152 , x_return_status => l_return_status
1153 , x_msg_count => x_msg_count
1154 , x_msg_data => x_msg_data
1155 , p_control_rec => l_control_rec
1156 , p_Agreement_rec => l_Agreement_rec
1157 , p_old_Agreement_rec => l_old_Agreement_rec
1158 , x_Contract_rec => l_x_Contract_rec
1159 , x_Agreement_rec => l_x_Agreement_rec
1160 , x_Price_LHeader_rec => l_x_Price_LHeader_rec
1161 , x_Discount_Header_rec => l_x_Discount_Header_rec
1162 , x_Price_LLine_tbl => l_x_Price_LLine_tbl
1163 , x_Discount_Cust_tbl => l_x_Discount_Cust_tbl
1164 , x_Discount_Line_tbl => l_x_Discount_Line_tbl
1165 , x_Price_Break_tbl => l_x_Price_Break_tbl
1166 );
1167
1168
1169 /* commit; */
1170
1171
1172 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1173 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1174 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1175 RAISE FND_API.G_EXC_ERROR;
1176
1177 END IF;
1178
1179
1180 -- Load OUT parameters.
1181
1182
1183 x_creation_date := l_x_Agreement_rec.creation_date;
1184 x_created_by := l_x_Agreement_rec.created_by;
1185 x_last_update_date := l_x_Agreement_rec.last_update_date;
1186 x_last_updated_by := l_x_Agreement_rec.last_updated_by;
1187 x_last_update_login := l_x_Agreement_rec.last_update_login;
1188
1189 -- Clear Agreement record cache
1190
1191 Clear_Agreement;
1192
1193 -- Keep track of performed operations.
1194
1195 l_old_Agreement_rec.operation := l_Agreement_rec.operation;
1196
1197
1198 -- Set return status.
1199
1200 x_return_status := FND_API.G_RET_STS_SUCCESS;
1201
1202 -- Get message count and data
1203
1204 OE_MSG_PUB.Count_And_Get
1205 ( p_count => x_msg_count
1206 , p_data => x_msg_data
1207 );
1208
1209 oe_debug_pub.add('Exiting OE_OE_Form_Agreement.Validate_And_Write');
1210
1211 EXCEPTION
1212
1213 WHEN FND_API.G_EXC_ERROR THEN
1214
1215 x_return_status := FND_API.G_RET_STS_ERROR;
1216
1217 -- Get message count and data
1218
1219
1220 OE_MSG_PUB.Count_And_Get
1221 ( p_count => x_msg_count
1222 , p_data => x_msg_data
1223 );
1224
1225 OE_MSG_PUB.Add_Exc_Msg
1226 ( G_PKG_NAME
1227 , x_msg_count || '1 ' || x_msg_data
1228 );
1229
1230 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1231
1232 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1233
1234 -- Get message count and data
1235
1236 OE_MSG_PUB.Count_And_Get
1237 ( p_count => x_msg_count
1238 , p_data => x_msg_data
1239 );
1240 OE_MSG_PUB.Add_Exc_Msg
1241 ( G_PKG_NAME
1242 , x_msg_count || '2 ' || x_msg_data
1243 );
1244
1245 WHEN OTHERS THEN
1246
1247 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1248
1249 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1250 THEN
1251 OE_MSG_PUB.Add_Exc_Msg
1252 ( G_PKG_NAME
1253 , 'Validate_And_Write'
1254 );
1255 END IF;
1256
1257 -- Get message count and data
1258
1259 OE_MSG_PUB.Count_And_Get
1260 ( p_count => x_msg_count
1261 , p_data => x_msg_data
1262 );
1263
1264 OE_MSG_PUB.Add_Exc_Msg
1265 ( G_PKG_NAME
1266 , x_msg_count || '3 ' || x_msg_data
1267 );
1268
1269 END Validate_And_Write;
1270
1271 -- Procedure Delete_Row
1272 --
1273
1274 PROCEDURE Delete_Row
1275 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1276 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1277 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1278 , p_agreement_id IN NUMBER
1279 )
1280 IS
1281 l_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1282 l_control_rec oe_globals.Control_Rec_Type;
1283 l_return_status VARCHAR2(1);
1284 l_x_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
1285 l_x_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1286 l_x_Price_LHeader_rec OE_Price_List_PUB.Price_List_Rec_Type;
1287 l_x_Discount_Header_rec OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
1288 l_x_Price_LLine_rec OE_Price_List_PUB.Price_List_Line_Rec_Type;
1289 l_x_Price_LLine_tbl OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1290 l_x_Discount_Cust_rec OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
1291 l_x_Discount_Cust_tbl OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
1292 l_x_Discount_Line_rec OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
1293 l_x_Discount_Line_tbl OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
1294 l_x_Price_Break_rec OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
1295 l_x_Price_Break_tbl OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
1296 BEGIN
1297
1298 -- Set control flags.
1299
1300 l_control_rec.controlled_operation := TRUE;
1301 l_control_rec.validate_entity := TRUE;
1302 l_control_rec.write_to_DB := TRUE;
1303
1304 l_control_rec.default_attributes := FALSE;
1305 l_control_rec.change_attributes := FALSE;
1306 l_control_rec.process := FALSE;
1307
1308 -- Instruct API to retain its caches
1309
1310 l_control_rec.clear_api_cache := FALSE;
1311 l_control_rec.clear_api_requests := FALSE;
1312
1313 -- Read DB record from cache
1314
1315 l_Agreement_rec := Get_Agreement
1316 ( p_db_record => TRUE
1317 , p_agreement_id => p_agreement_id
1318 );
1319
1320 -- Set Operation.
1321
1322 l_Agreement_rec.operation := oe_globals.G_OPR_DELETE;
1323
1324 -- Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
1325
1326 OE_Pricing_Cont_PVT.Process_Pricing_Cont
1327 ( p_api_version_number => 1.0
1328 , p_init_msg_list => FND_API.G_TRUE
1329 , x_return_status => l_return_status
1330 , x_msg_count => x_msg_count
1331 , x_msg_data => x_msg_data
1332 , p_control_rec => l_control_rec
1333 , p_Agreement_rec => l_Agreement_rec
1334 , x_Contract_rec => l_x_Contract_rec
1335 , x_Agreement_rec => l_x_Agreement_rec
1336 , x_Price_LHeader_rec => l_x_Price_LHeader_rec
1337 , x_Discount_Header_rec => l_x_Discount_Header_rec
1338 , x_Price_LLine_tbl => l_x_Price_LLine_tbl
1339 , x_Discount_Cust_tbl => l_x_Discount_Cust_tbl
1340 , x_Discount_Line_tbl => l_x_Discount_Line_tbl
1341 , x_Price_Break_tbl => l_x_Price_Break_tbl
1342 );
1343
1344 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1345 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1346 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1347 RAISE FND_API.G_EXC_ERROR;
1348 END IF;
1349
1350
1351 -- Clear Agreement record cache
1352
1353 Clear_Agreement;
1354
1355 -- Set return status.
1356
1357 x_return_status := FND_API.G_RET_STS_SUCCESS;
1358
1359 -- Get message count and data
1360
1361 OE_MSG_PUB.Count_And_Get
1362 ( p_count => x_msg_count
1363 , p_data => x_msg_data
1364 );
1365
1366
1367 EXCEPTION
1368
1369 WHEN FND_API.G_EXC_ERROR THEN
1370
1371 x_return_status := FND_API.G_RET_STS_ERROR;
1372
1373 -- Get message count and data
1374
1375 OE_MSG_PUB.Count_And_Get
1376 ( p_count => x_msg_count
1377 , p_data => x_msg_data
1378 );
1379
1380 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1381
1382 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1383
1384 -- Get message count and data
1385
1386 OE_MSG_PUB.Count_And_Get
1387 ( p_count => x_msg_count
1388 , p_data => x_msg_data
1389 );
1390
1391 WHEN OTHERS THEN
1392
1393 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1394
1395 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1396 THEN
1397 OE_MSG_PUB.Add_Exc_Msg
1398 ( G_PKG_NAME
1399 , 'Delete_Row'
1400 );
1401 END IF;
1402
1403 -- Get message count and data
1404
1405 OE_MSG_PUB.Count_And_Get
1406 ( p_count => x_msg_count
1407 , p_data => x_msg_data
1408 );
1409
1410 END Delete_Row;
1411
1412 -- Procedure Process_Entity
1413 --
1414
1415 PROCEDURE Process_Entity
1416 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1417 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1418 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1419 )
1420 IS
1421 l_control_rec oe_globals.Control_Rec_Type;
1422 l_return_status VARCHAR2(1);
1423 l_x_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
1424 l_x_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1425 l_x_Price_LHeader_rec OE_Price_List_PUB.Price_List_Rec_Type;
1426 l_x_Discount_Header_rec OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
1427 l_x_Price_LLine_rec OE_Price_List_PUB.Price_List_Line_Rec_Type;
1428 l_x_Price_LLine_tbl OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1429 l_x_Discount_Cust_rec OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
1430 l_x_Discount_Cust_tbl OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
1431 l_x_Discount_Line_rec OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
1432 l_x_Discount_Line_tbl OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
1433 l_x_Price_Break_rec OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
1434 l_x_Price_Break_tbl OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
1435 BEGIN
1436
1437 -- Set control flags.
1438
1439 l_control_rec.controlled_operation := TRUE;
1440 l_control_rec.process := TRUE;
1441 l_control_rec.process_entity := oe_globals.G_ENTITY_AGREEMENT;
1442
1443 l_control_rec.default_attributes := FALSE;
1444 l_control_rec.change_attributes := FALSE;
1445 l_control_rec.validate_entity := FALSE;
1446 l_control_rec.write_to_DB := FALSE;
1447
1448 -- Instruct API to clear its request table
1449
1450 l_control_rec.clear_api_cache := FALSE;
1451 l_control_rec.clear_api_requests := FALSE;
1452
1453 -- Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
1454
1455 OE_Pricing_Cont_PVT.Process_Pricing_Cont
1456 ( p_api_version_number => 1.0
1457 , p_init_msg_list => FND_API.G_TRUE
1458 , x_return_status => l_return_status
1459 , x_msg_count => x_msg_count
1460 , x_msg_data => x_msg_data
1461 , p_control_rec => l_control_rec
1462 , x_Contract_rec => l_x_Contract_rec
1463 , x_Agreement_rec => l_x_Agreement_rec
1464 , x_Price_LHeader_rec => l_x_Price_LHeader_rec
1465 , x_Discount_Header_rec => l_x_Discount_Header_rec
1466 , x_Price_LLine_tbl => l_x_Price_LLine_tbl
1467 , x_Discount_Cust_tbl => l_x_Discount_Cust_tbl
1468 , x_Discount_Line_tbl => l_x_Discount_Line_tbl
1469 , x_Price_Break_tbl => l_x_Price_Break_tbl
1470 );
1471
1472 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1473 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1474 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1475 RAISE FND_API.G_EXC_ERROR;
1476 END IF;
1477
1478
1479 -- Set return status.
1480
1481 x_return_status := FND_API.G_RET_STS_SUCCESS;
1482
1483 -- Get message count and data
1484
1485 OE_MSG_PUB.Count_And_Get
1486 ( p_count => x_msg_count
1487 , p_data => x_msg_data
1488 );
1489
1490
1491 EXCEPTION
1492
1493 WHEN FND_API.G_EXC_ERROR THEN
1494
1495 x_return_status := FND_API.G_RET_STS_ERROR;
1496
1497 -- Get message count and data
1498
1499 OE_MSG_PUB.Count_And_Get
1500 ( p_count => x_msg_count
1501 , p_data => x_msg_data
1502 );
1503
1504 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1505
1506 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1507
1508 -- Get message count and data
1509
1510 OE_MSG_PUB.Count_And_Get
1511 ( p_count => x_msg_count
1512 , p_data => x_msg_data
1513 );
1514
1515 WHEN OTHERS THEN
1516
1517 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1518
1519 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1520 THEN
1521 OE_MSG_PUB.Add_Exc_Msg
1522 ( G_PKG_NAME
1523 , 'Process_Entity'
1524 );
1525 END IF;
1526
1527 -- Get message count and data
1528
1529 OE_MSG_PUB.Count_And_Get
1530 ( p_count => x_msg_count
1531 , p_data => x_msg_data
1532 );
1533
1534 END Process_Entity;
1535
1536 -- Procedure lock_Row
1537 --
1538
1539 PROCEDURE Lock_Row
1540 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1541 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1542 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1543 , p_accounting_rule_id IN NUMBER
1544 , p_agreement_contact_id IN NUMBER
1545 , p_agreement_id IN NUMBER
1546 , p_agreement_num IN VARCHAR2
1547 , p_agreement_type_code IN VARCHAR2
1548 , p_attribute1 IN VARCHAR2
1549 , p_attribute10 IN VARCHAR2
1550 , p_attribute11 IN VARCHAR2
1551 , p_attribute12 IN VARCHAR2
1552 , p_attribute13 IN VARCHAR2
1553 , p_attribute14 IN VARCHAR2
1554 , p_attribute15 IN VARCHAR2
1555 , p_attribute2 IN VARCHAR2
1556 , p_attribute3 IN VARCHAR2
1557 , p_attribute4 IN VARCHAR2
1558 , p_attribute5 IN VARCHAR2
1559 , p_attribute6 IN VARCHAR2
1560 , p_attribute7 IN VARCHAR2
1561 , p_attribute8 IN VARCHAR2
1562 , p_attribute9 IN VARCHAR2
1563 , p_context IN VARCHAR2
1564 , p_created_by IN NUMBER
1565 , p_creation_date IN DATE
1566 /* , p_customer_id IN NUMBER */
1567 , p_sold_to_org_id IN NUMBER
1568 , p_end_date_active IN DATE
1569 , p_freight_terms_code IN VARCHAR2
1570 , p_invoice_contact_id IN NUMBER
1571 /* , p_invoice_to_site_use_id IN NUMBER */
1572 , p_invoice_to_org_id IN NUMBER
1573 , p_invoicing_rule_id IN NUMBER
1574 , p_last_updated_by IN NUMBER
1575 , p_last_update_date IN DATE
1576 , p_last_update_login IN NUMBER
1577 , p_name IN VARCHAR2
1578 , p_override_arule_flag IN VARCHAR2
1579 , p_override_irule_flag IN VARCHAR2
1580 , p_price_list_id IN NUMBER
1581 , p_purchase_order_num IN VARCHAR2
1582 , p_revision IN VARCHAR2
1583 , p_revision_date IN DATE
1584 , p_revision_reason_code IN VARCHAR2
1585 , p_salesrep_id IN NUMBER
1586 , p_ship_method_code IN VARCHAR2
1587 , p_signature_date IN DATE
1588 , p_start_date_active IN DATE
1589 , p_term_id IN NUMBER
1590 , p_agreement_source_code IN VARCHAR2
1591 --added by rchellam for OKC
1592 , p_orig_system_agr_id IN NUMBER --added by rchellam for OKC
1593 , p_invoice_to_customer_id IN NUMBER -- Added for bug#4029589
1594 )
1595 IS
1596 l_return_status VARCHAR2(1);
1597 l_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1598 l_x_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
1599 l_x_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1600 l_x_Price_LHeader_rec OE_Price_List_PUB.Price_List_Rec_Type;
1601 l_x_Discount_Header_rec OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
1602 l_x_Price_LLine_rec OE_Price_List_PUB.Price_List_Line_Rec_Type;
1603 l_x_Price_LLine_tbl OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1604 l_x_Discount_Cust_rec OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
1605 l_x_Discount_Cust_tbl OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
1606 l_x_Discount_Line_rec OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
1607 l_x_Discount_Line_tbl OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
1608 l_x_Price_Break_rec OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
1609 l_x_Price_Break_tbl OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
1610 BEGIN
1611
1612 -- Load Agreement record
1613
1614 l_Agreement_rec.accounting_rule_id := p_accounting_rule_id;
1615 l_Agreement_rec.agreement_contact_id := p_agreement_contact_id;
1616 l_Agreement_rec.agreement_id := p_agreement_id;
1617 l_Agreement_rec.agreement_num := p_agreement_num;
1618 l_Agreement_rec.agreement_type_code := p_agreement_type_code;
1619 l_Agreement_rec.attribute1 := p_attribute1;
1620 l_Agreement_rec.attribute10 := p_attribute10;
1621 l_Agreement_rec.attribute11 := p_attribute11;
1622 l_Agreement_rec.attribute12 := p_attribute12;
1623 l_Agreement_rec.attribute13 := p_attribute13;
1624 l_Agreement_rec.attribute14 := p_attribute14;
1625 l_Agreement_rec.attribute15 := p_attribute15;
1626 l_Agreement_rec.attribute2 := p_attribute2;
1627 l_Agreement_rec.attribute3 := p_attribute3;
1628 l_Agreement_rec.attribute4 := p_attribute4;
1629 l_Agreement_rec.attribute5 := p_attribute5;
1630 l_Agreement_rec.attribute6 := p_attribute6;
1631 l_Agreement_rec.attribute7 := p_attribute7;
1632 l_Agreement_rec.attribute8 := p_attribute8;
1633 l_Agreement_rec.attribute9 := p_attribute9;
1634 l_Agreement_rec.context := p_context;
1635 l_Agreement_rec.created_by := p_created_by;
1636 l_Agreement_rec.creation_date := p_creation_date;
1637 /* l_Agreement_rec.customer_id := p_customer_id; */
1638 l_Agreement_rec.sold_to_org_id := p_sold_to_org_id;
1639 l_Agreement_rec.end_date_active := p_end_date_active;
1640 l_Agreement_rec.freight_terms_code := p_freight_terms_code;
1641 l_Agreement_rec.invoice_contact_id := p_invoice_contact_id;
1642 /* l_Agreement_rec.invoice_to_site_use_id := p_invoice_to_site_use_id; */
1643 l_Agreement_rec.invoice_to_org_id := p_invoice_to_org_id;
1644 l_Agreement_rec.invoicing_rule_id := p_invoicing_rule_id;
1645 l_Agreement_rec.last_updated_by := p_last_updated_by;
1646 l_Agreement_rec.last_update_date := p_last_update_date;
1647 l_Agreement_rec.last_update_login := p_last_update_login;
1648 l_Agreement_rec.name := p_name;
1649 l_Agreement_rec.override_arule_flag := p_override_arule_flag;
1650 l_Agreement_rec.override_irule_flag := p_override_irule_flag;
1651 l_Agreement_rec.price_list_id := p_price_list_id;
1652 l_Agreement_rec.purchase_order_num := p_purchase_order_num;
1653 l_Agreement_rec.revision := p_revision;
1654 l_Agreement_rec.revision_date := p_revision_date;
1655 l_Agreement_rec.revision_reason_code := p_revision_reason_code;
1656 l_Agreement_rec.salesrep_id := p_salesrep_id;
1657 l_Agreement_rec.ship_method_code := p_ship_method_code;
1658 l_Agreement_rec.signature_date := p_signature_date;
1659 l_Agreement_rec.start_date_active := p_start_date_active;
1660 l_Agreement_rec.term_id := p_term_id;
1661 l_Agreement_rec.agreement_source_code := p_agreement_source_code;
1662 l_Agreement_rec.orig_system_agr_id := p_orig_system_agr_id;
1663 l_Agreement_rec.invoice_to_customer_id := p_invoice_to_customer_id; -- Added for bug#4029589
1664
1665
1666 -- Call OE_Pricing_Cont_PVT.Lock_Pricing_Cont
1667
1668 OE_Pricing_Cont_PVT.Lock_Pricing_Cont
1669 ( p_api_version_number => 1.0
1670 , p_init_msg_list => FND_API.G_TRUE
1671 , x_return_status => l_return_status
1672 , x_msg_count => x_msg_count
1673 , x_msg_data => x_msg_data
1674 , p_Agreement_rec => l_Agreement_rec
1675 , x_Contract_rec => l_x_Contract_rec
1676 , x_Agreement_rec => l_x_Agreement_rec
1677 , x_Price_LHeader_rec => l_x_Price_LHeader_rec
1678 , x_Discount_Header_rec => l_x_Discount_Header_rec
1679 , x_Price_LLine_tbl => l_x_Price_LLine_tbl
1680 , x_Discount_Cust_tbl => l_x_Discount_Cust_tbl
1681 , x_Discount_Line_tbl => l_x_Discount_Line_tbl
1682 , x_Price_Break_tbl => l_x_Price_Break_tbl
1683 );
1684
1685 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1686
1687 -- Set DB flag and write record to cache.
1688
1689 l_x_Agreement_rec.db_flag := FND_API.G_TRUE;
1690
1691 Write_Agreement
1692 ( p_Agreement_rec => l_x_Agreement_rec
1693 , p_db_record => TRUE
1694 );
1695
1696 END IF;
1697
1698 -- Set return status.
1699
1700 x_return_status := l_return_status;
1701
1702 -- Get message count and data
1703
1704 OE_MSG_PUB.Count_And_Get
1705 ( p_count => x_msg_count
1706 , p_data => x_msg_data
1707 );
1708
1709
1710 EXCEPTION
1711
1712 WHEN OTHERS THEN
1713
1714 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1715 THEN
1716 OE_MSG_PUB.Add_Exc_Msg
1717 ( G_PKG_NAME
1718 , 'Lock_Row'
1719 );
1720 END IF;
1721
1722 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1723
1724 -- Get message count and data
1725
1726 OE_MSG_PUB.Count_And_Get
1727 ( p_count => x_msg_count
1728 , p_data => x_msg_data
1729 );
1730
1731
1732
1733 END Lock_Row;
1734
1735 -- Procedures maintaining Agreement record cache.
1736
1737 PROCEDURE Write_Agreement
1738 ( p_Agreement_rec IN OE_Pricing_Cont_PUB.Agreement_Rec_Type
1739 , p_db_record IN BOOLEAN := FALSE
1740 )
1741 IS
1742 BEGIN
1743
1744 g_Agreement_rec := p_Agreement_rec;
1745
1746 IF p_db_record THEN
1747
1748 g_db_Agreement_rec := p_Agreement_rec;
1749
1750 END IF;
1751
1752 END Write_Agreement;
1753
1754 FUNCTION Get_Agreement
1755 ( p_db_record IN BOOLEAN := FALSE
1756 , p_agreement_id IN NUMBER
1757 )
1758 RETURN OE_Pricing_Cont_PUB.Agreement_Rec_Type
1759 IS
1760 BEGIN
1761
1762 IF p_agreement_id <> g_Agreement_rec.agreement_id
1763 THEN
1764
1765 -- Query row from DB
1766
1767 g_Agreement_rec := OE_Agreement_Util.Query_Row
1768 ( p_agreement_id => p_agreement_id
1769 );
1770
1771 g_Agreement_rec.db_flag := FND_API.G_TRUE;
1772
1773 -- Load DB record
1774
1775 g_db_Agreement_rec := g_Agreement_rec;
1776
1777 END IF;
1778
1779 IF p_db_record THEN
1780
1781 RETURN g_db_Agreement_rec;
1782
1783 ELSE
1784
1785 RETURN g_Agreement_rec;
1786
1787 END IF;
1788
1789 END Get_Agreement;
1790
1791 PROCEDURE Clear_Agreement
1792 IS
1793 BEGIN
1794
1795 g_Agreement_rec := OE_Pricing_Cont_PUB.G_MISS_AGREEMENT_REC;
1796 g_db_Agreement_rec := OE_Pricing_Cont_PUB.G_MISS_AGREEMENT_REC;
1797
1798 END Clear_Agreement;
1799
1800 END OE_OE_Form_Agreement;