[Home] [Help]
PACKAGE BODY: APPS.ASO_MAP_QUOTE_ORDER_INT
Source
1 PACKAGE BODY ASO_MAP_QUOTE_ORDER_INT as
2 /* $Header: asoimqob.pls 120.38.12020000.6 2013/05/02 21:17:01 ajosephg ship $ */
3 -- Start of Comments
4 -- Package name : ASO_MAP_QUOTE_ORDER_INT
5 -- Purpose :
6 -- History :
7 -- 10/18/2002 hyang - 2633507, performance fix
8 -- NOTE :
9 -- End of Comments
10
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'ASO_MAP_QUOTE_ORDER_INT';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'asoimqob.pls';
13
14
15 PROCEDURE Map_Quote_to_order(
16 P_Operation IN VARCHAR2,
17 P_Qte_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type
18 := ASO_QUOTE_PUB.G_MISS_QTE_HEADER_REC,
19 P_Header_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type
20 := ASO_QUOTE_PUB.G_MISS_Payment_TBL,
21 P_Header_Price_Adj_Tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type
22 := ASO_QUOTE_PUB.G_MISS_Price_Adj_TBL,
23 P_Header_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type
24 := ASO_QUOTE_PUB.G_MISS_Price_attributes_TBL,
25 P_Header_Price_Adj_rltship_Tbl IN ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type
26 := ASO_QUOTE_PUB.G_MISS_price_adj_rltship_TBL,
27 P_Header_Price_Adj_Attr_Tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type
28 := ASO_QUOTE_PUB.G_Miss_PRICE_ADJ_ATTR_Tbl,
29 P_Header_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type
30 := ASO_QUOTE_PUB.G_MISS_shipment_TBL,
31 P_Header_TAX_DETAIL_Tbl IN ASO_QUOTE_PUB.TAX_DETAIL_Tbl_Type
32 := ASO_QUOTE_PUB.G_MISS_TAX_DETAIL_TBL,
33 P_Header_FREIGHT_CHARGE_Tbl IN ASO_QUOTE_PUB.FREIGHT_CHARGE_Tbl_Type
34 := ASO_QUOTE_PUB.G_MISS_FREIGHT_CHARGE_Tbl,
35 P_header_sales_credit_TBL IN ASO_QUOTE_PUB.Sales_credit_tbl_type
36 := ASO_QUOTE_PUB.G_MISS_sales_credit_TBL,
37 P_Qte_Line_Tbl IN ASO_QUOTE_PUB.Qte_Line_Tbl_Type
38 := ASO_QUOTE_PUB.G_MISS_qte_line_TBL,
39 P_Qte_Line_Dtl_TBL IN ASO_QUOTE_PUB.Qte_Line_Dtl_TBL_Type
40 := ASO_QUOTE_PUB.G_MISS_qte_line_dtl_TBL,
41 P_Line_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type
42 := ASO_QUOTE_PUB.G_MISS_Payment_TBL,
43 P_Line_Price_Adj_Tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type
44 := ASO_QUOTE_PUB.G_MISS_Price_Adj_TBL,
45 P_Line_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type
46 := ASO_QUOTE_PUB.G_MISS_Price_attributes_TBL,
47 P_Line_Price_Adj_rltship_Tbl IN ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type
48 := ASO_QUOTE_PUB.G_MISS_price_adj_rltship_TBL,
49 P_Line_Price_Adj_Attr_Tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type
50 := ASO_QUOTE_PUB.G_Miss_PRICE_ADJ_ATTR_Tbl,
51 P_Line_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type
52 := ASO_QUOTE_PUB.G_MISS_shipment_TBL,
53 P_Line_TAX_DETAIL_Tbl IN ASO_QUOTE_PUB.TAX_DETAIL_Tbl_Type
54 := ASO_QUOTE_PUB.G_MISS_TAX_DETAIL_TBL,
55 P_Line_FREIGHT_CHARGE_Tbl IN ASO_QUOTE_PUB.FREIGHT_CHARGE_Tbl_Type
56 := ASO_QUOTE_PUB.G_MISS_FREIGHT_CHARGE_Tbl,
57 P_Line_Rltship_Tbl IN ASO_QUOTE_PUB.Line_Rltship_Tbl_Type
58 := ASO_QUOTE_PUB.G_MISS_line_rltship_TBL,
59 P_Line_sales_credit_TBL IN ASO_QUOTE_PUB.Sales_credit_tbl_type
60 := ASO_QUOTE_PUB.G_MISS_sales_credit_TBL,
61 P_Lot_Serial_Tbl IN ASO_QUOTE_PUB.Lot_Serial_Tbl_Type
62 := ASO_QUOTE_PUB.G_MISS_Lot_Serial_Tbl,
63 P_Calculate_Price_Flag IN VARCHAR2 := FND_API.G_FALSE
64 , x_header_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Rec_Type
65 , x_header_val_rec OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Val_Rec_Type
66 , x_Header_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Tbl_Type
67 , x_Header_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Val_Tbl_Type
68 , x_Header_price_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Price_Att_Tbl_Type
69 , x_Header_Adj_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Att_Tbl_Type
70 , x_Header_Adj_Assoc_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Assoc_Tbl_Type
71 , x_Header_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Tbl_Type
72 , x_Header_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Val_Tbl_Type
73 , x_Header_Payment_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Payment_Tbl_Type
74 , x_line_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Tbl_Type
75 , x_line_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Val_Tbl_Type
76 , x_Line_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Tbl_Type
77 , x_Line_Adj_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Val_Tbl_Type
78 , x_Line_price_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Price_Att_Tbl_Type
79 , x_Line_Adj_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Att_Tbl_Type
80 , x_Line_Adj_Assoc_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Adj_Assoc_Tbl_Type
81 , x_Line_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Tbl_Type
82 , x_Line_Scredit_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Scredit_Val_Tbl_Type
83 , x_Lot_Serial_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Tbl_Type
84 , x_Lot_Serial_val_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Val_Tbl_Type
85 , x_Line_Payment_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Line_Payment_Tbl_Type
86 )
87 IS
88
89 CURSOR c_functional_currency (X_set_of_books_id NUMBER) IS
90 SELECT currency_code
91 FROM gl_sets_of_books
92 WHERE set_of_books_id = X_set_of_books_id;
93
94 name1 varchar2(50);
95
96 /*
97 * 2633507 - hyang: use OE_ORDER_SOURCES instead of aso_i_order_sources_v
98 */
99
100 CURSOR C_order_source(quote_source_code VARCHAR2) IS
101 SELECT order_source_id
102 FROM OE_ORDER_SOURCES
103 WHERE name = quote_source_code;
104
105 -- Change START
106 -- Release 12 MOAC Changes : Bug 4500739
107 -- Changes Done by : Girish
108 -- Comments : Changed the reference from ASO_I_OE_ORDER_HEADERS_V to OE_ORDER_HEADERS_V
109
110 CURSOR get_cust_account_id(order_id NUMBER) IS
111 select sold_to_org_id from oe_order_headers_v
112 where header_id = order_id;
113
114
115 -- Change END
116
117 CURSOR get_cust_acct_site_id(l_site_use_id number) IS
118 select cust_acct_site_id from hz_cust_site_uses
119 where site_use_id = l_site_use_id;
120
121 CURSOR C_get_quote_number(l_qte_hdr_id NUMBER) IS
122 SELECT quote_number, quote_version
123 FROM aso_quote_headers_all
124 WHERE quote_header_id = l_qte_hdr_id ;
125
126 CURSOR scheduling_level_cur(p_type_id number) IS
127 SELECT nvl(scheduling_level_code,' ')
128 FROM OE_TRANSACTION_TYPES_ALL
129 WHERE transaction_type_id = p_type_id;
130
131 l_order_scheduling_level VARCHAR2(30) := ' ' ;
132 l_line_scheduling_level VARCHAR2(30);
133
134 -- declaration for line and header level record types
135
136 l_api_version_number CONSTANT NUMBER := 1.0;
137 l_api_name CONSTANT VARCHAR2(30):= 'MAP_QUOTE_TO_Order';
138 l_control_rec OE_GLOBALS.Control_Rec_Type;
139 l_return_status VARCHAR2(1);
140 l_header_rec OE_Order_PUB.Header_Rec_Type;
141 l_Header_Adj_tbl OE_Order_PUB.Header_Adj_Tbl_Type;
142 l_Header_price_Att_tbl OE_Order_PUB.Header_Price_Att_Tbl_Type ;
143 l_Header_Adj_Att_tbl OE_Order_PUB.Header_Adj_Att_Tbl_Type ;
144 l_Header_Adj_Assoc_tbl OE_Order_PUB.Header_Adj_Assoc_Tbl_Type ;
145 l_Header_Scredit_tbl OE_Order_PUB.Header_Scredit_Tbl_Type;
146 l_line_tbl OE_Order_PUB.Line_Tbl_Type;
147 l_Line_Adj_tbl OE_Order_PUB.Line_Adj_Tbl_Type;
148 l_Line_price_Att_tbl OE_Order_PUB.Line_Price_Att_Tbl_Type ;
149 l_Line_Adj_Att_tbl OE_Order_PUB.Line_Adj_Att_Tbl_Type ;
150 l_Line_Adj_Assoc_tbl OE_Order_PUB.Line_Adj_Assoc_Tbl_Type ;
151 l_Line_Scredit_tbl OE_Order_PUB.Line_Scredit_Tbl_Type;
152 l_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
153 l_action_request_tbl OE_Order_PUB.Request_Tbl_Type;
154
155
156 -- declaration for line and header level value record types
157 l_return_values varchar2(50);
158 l_header_val_rec OE_Order_PUB.Header_Val_Rec_Type;
159 l_header_adj_val_tbl OE_Order_PUB.Header_Adj_Val_Tbl_Type;
160 l_header_scredit_val_tbl OE_Order_PUB.Header_Scredit_Val_Tbl_Type;
161 l_line_val_tbl OE_Order_PUB.Line_Val_Tbl_Type;
162 l_line_adj_val_tbl OE_Order_PUB.Line_Adj_Val_Tbl_Type;
163 --Line Payments change
164 l_Line_Payment_tbl OE_Order_PUB.Line_Payment_Tbl_Type;
165 l_final_Payment_tbl OE_Order_PUB.Line_Payment_Tbl_Type;
166 l_line_scredit_val_tbl OE_Order_PUB.Line_Scredit_Val_Tbl_Type;
167 l_lot_serial_val_tbl OE_Order_PUB.Lot_Serial_Val_Tbl_Type;
168 l_msg_count number;
169 l_msg_data varchar2(2000);
170 l_invoice_cust_account_id number;
171 l_ship_cust_account_id number;
172 l_end_cust_account_id number;
173 l_invoice_cust_account_site number;
174 l_ship_cust_account_site number;
175 l_quote_number NUMBER;
176 l_version_number NUMBER;
177
178 -- other variable and count declarations
179
180 found VARCHAR2(1) := FND_API.G_FALSE;
181 found_service VARCHAR2(1) := FND_API.G_FALSE;
182 found_tax VARCHAR2(1) := FND_API.G_FALSE;
183 i NUMBER := 1;
184 j NUMBER := 1;
185 k NUMBER := 1;
186 l NUMBER := 1;
187 option_item NUMBER;
188 parent NUMBER;
189 count1 NUMBER;
190 count2 NUMBER;
191 l_sort_order VARCHAR2(240);
192 l_component_sequence_id NUMBER;
193 l_org_id NUMBER;
194 l_cust_account_id NUMBER;
195 l_employee_person_id NUMBER;
196 l_org_party_id NUMBER;
197 l_header_party_id NUMBER;
198 l_quote_source VARCHAR2(240);
199
200 -- currency conversion
201
202 l_set_of_books_id NUMBER
203 := oe_profile.value('OE_SET_OF_BOOKS_ID', p_qte_rec.org_id);
204 --:= to_number(FND_PROFILE.value('OE_SET_OF_BOOKS_ID'));
205 l_conversion_type VARCHAR2(30)
206 := FND_PROFILE.Value('ASO_QUOTE_CONVERSION_TYPE');
207 l_conversion_rate NUMBER;
208
209 l_om_defaulting_prof VARCHAR2(2)
210 := NVL(FND_PROFILE.Value('ASO_OM_DEFAULTING'), 'N');
211 l_validate_salesrep_prof VARCHAR2(2)
212 := FND_PROFILE.VALUE('ASO_VALIDATE_SALESREP');
213 l_ret_reason_code_prof VARCHAR2(200)
214 := FND_PROFILE.value('ASO_RET_REASON_CODE');
215
216 -- Change START
217 -- Release 12 MOAC Changes : Bug 4500739
218 -- Changes Done by : Girish
219 -- Comments : Using HR EIT in place of org striped profile
220
221 -- l_default_person_id_prof VARCHAR2(300) := FND_PROFILE.Value('ASO_DEFAULT_PERSON_ID');
222 l_default_person_id_prof VARCHAR2(300) := ASO_UTILITY_PVT.GET_OU_ATTRIBUTE_VALUE(ASO_UTILITY_PVT.G_DEFAULT_SALESREP);
223
224 -- Change END
225
226
227 l_reservation_lvl_prof VARCHAR2(80)
228 := FND_PROFILE.Value('ASO_RESERVATION_LEVEL');
229
230 l_sysdate DATE := sysdate;
231 l_functional_currency VARCHAR2(15);
232
233 l_g_user_id number := fnd_global.user_id;
234 l_g_login_id number := fnd_global.conc_login_id;
235 l_org_contact_party_id NUMBER;
236 l_invoice_contact_party_id NUMBER;
237 l_ship_contact_party_id NUMBER;
238 l_org_contact NUMBER;
239
240 l_hd_inv_cust_acct_site NUMBER;
241 l_hd_shp_cust_acct_site NUMBER;
242 l_hd_end_cust_acct_site NUMBER;
243 l_ln_inv_cust_acct_site NUMBER;
244 l_ln_shp_cust_acct_site NUMBER;
245 l_ln_end_cust_acct_site NUMBER;
246
247 l_Line_Price_Adj_rltship_Tbl ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type;
248
249 l_Header_Payment_Tbl OE_ORDER_PUB.Header_Payment_Tbl_Type;
250
251 pay_count NUMBER := 1;
252
253 CURSOR salesrep( p_resource_id NUMBER) IS
254 select salesrep_id
255 /* from jtf_rs_srp_vl */ --Commented Code Yogeshwar (MOAC)
256 from jtf_rs_salesreps_mo_v --New Code Yogeshwar (MOAC)
257 where resource_id = p_resource_id ;
258 --Commented code Start Yogeshwar (MOAC)
259 /*
260 and NVL(ORG_ID,NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ',
261 NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) = NVL(TO_NUMBER(DECODE(SUBSTRB(
262 USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99);
263 */
264 --Commented Code End Yogeshwar (MOAC)
265
266 CURSOR C_Get_Srep_From_Snumber( lc_srep_num VARCHAR2) IS
267 SELECT Salesrep_Id
268 FROM JTF_RS_SALESREPS_MO_V
269 WHERE Salesrep_Number = lc_srep_num
270 AND NVL(status,'A') = 'A'
271 AND nvl(trunc(start_date_active), trunc(sysdate)) <= trunc(sysdate)
272 AND nvl(trunc(end_date_active), trunc(sysdate)) >= trunc(sysdate) ;
273
274 l_ln_total_tax_amount NUMBER := 0;
275 l_line_adj_tbl_count NUMBER := 0;
276
277 CURSOR C_GET_TAX_REASONCODE(l_header_id NUMBER) IS -- cursor made for 6781917
278 SELECT TAX_EXEMPT_REASON_CODE
279 FROM aso_tax_details
280 WHERE quote_header_id = l_header_id
281 AND quote_line_id IS NULL;
282
283 BEGIN
284 IF aso_debug_pub.g_debug_flag = 'Y' THEN
285 aso_debug_pub.add('beginning of map_quote_to_order ', 1, 'Y');
286 END IF;
287
288 -- initialize OM record types
289
290 ASO_ORDER_INT.Initialize_OM_rec_types(
291 px_header_rec => l_header_rec,
292 px_line_tbl => l_line_tbl,
293 p_line_tbl_count => p_line_shipment_tbl.count
294 );
295 IF aso_debug_pub.g_debug_flag = 'Y' THEN
296 aso_debug_pub.add('initialized OM rec types ', 1, 'N');
297 END IF;
298
299 l_header_rec.accounting_rule_id := p_qte_rec.accounting_rule_id;
300 l_header_rec.agreement_id:= p_qte_rec.contract_id;
301 l_header_rec.context := p_qte_rec.attribute_category;
302 l_header_rec.attribute1 := p_qte_rec.attribute1;
303 l_header_rec.attribute2 := p_qte_rec.attribute2;
304 l_header_rec.attribute3 := p_qte_rec.attribute3;
305 l_header_rec.attribute4 := p_qte_rec.attribute4;
306 l_header_rec.attribute5 := p_qte_rec.attribute5;
307 l_header_rec.attribute6 := p_qte_rec.attribute6;
308 l_header_rec.attribute7 := p_qte_rec.attribute7;
309 l_header_rec.attribute8 := p_qte_rec.attribute8;
310 l_header_rec.attribute9 := p_qte_rec.attribute9;
311 l_header_rec.attribute10 := p_qte_rec.attribute10;
312 l_header_rec.attribute11 := p_qte_rec.attribute11;
313 l_header_rec.attribute12 := p_qte_rec.attribute12;
314 l_header_rec.attribute13 := p_qte_rec.attribute13;
315 l_header_rec.attribute14 := p_qte_rec.attribute14;
316 l_header_rec.attribute15 := p_qte_rec.attribute15;
317 -- for bug 7560676
318 l_header_rec.attribute16 := p_qte_rec.attribute16;
319 l_header_rec.attribute17 := p_qte_rec.attribute17;
320 l_header_rec.attribute18 := p_qte_rec.attribute18;
321 l_header_rec.attribute19 := p_qte_rec.attribute19;
322 l_header_rec.attribute20 := p_qte_rec.attribute20;
323
324 l_header_rec.order_category_code := p_qte_rec.quote_category_code;
325 l_header_rec.ordered_date := p_qte_rec.ordered_date;
326 IF (l_header_rec.ordered_date is NULL OR
327 l_header_rec.ordered_date = FND_API.G_MISS_DATE) AND
328 p_operation = 'CREATE' THEN
329 l_header_rec.ordered_date := sysdate;
330 END IF;
331 l_header_rec.marketing_source_code_id := p_qte_rec.marketing_source_code_id;
332
333 -- hyang new okc
334 l_header_rec.Customer_Signature := p_qte_rec.Customer_Name_And_Title;
335 l_header_rec.Customer_Signature_date := p_qte_rec.Customer_Signature_Date;
336 l_header_rec.Supplier_Signature := p_qte_rec.Supplier_Name_And_Title;
337 l_header_rec.Supplier_Signature_date := p_qte_rec.Supplier_Signature_Date;
338 l_header_rec.Contract_Template_Id := p_qte_rec.Contract_Template_ID;
339 l_header_rec.Contract_Source_Doc_Type_Code := 'QUOTE';
340 l_header_rec.Contract_Source_Document_Id := p_qte_rec.quote_header_id;
341
342 IF aso_debug_pub.g_debug_flag = 'Y' THEN
343 aso_debug_pub.add('Customer_Signature: '||l_header_rec.Customer_Signature,1,'Y');
344 aso_debug_pub.add('Customer_Signature_date: '||l_header_rec.Customer_Signature_date, 1, 'Y');
345 aso_debug_pub.add('Supplier_Signature: '||l_header_rec.Supplier_Signature, 1, 'Y');
346 aso_debug_pub.add('Supplier_Signature_date: '||l_header_rec.Supplier_Signature_date, 1, 'Y');
347 aso_debug_pub.add('Contract_Template_Id: '||l_header_rec.Contract_Template_Id, 1, 'Y');
348 aso_debug_pub.add('Contract_Source_Doc_Type_Code: '||l_header_rec.Contract_Source_Doc_Type_Code, 1, 'Y');
349 aso_debug_pub.add('Contract_Source_Document_Id: '||l_header_rec.Contract_Source_Document_Id, 1, 'Y');
350 END IF;
351
352 -- end of hyang new okc
353
354
355 --conversion rate depends on the profile value
356
357 l_header_rec.conversion_rate_date := p_qte_rec.exchange_rate_date ;
358 l_header_rec.conversion_type_code := p_qte_rec.exchange_type_code ;
359
360 IF aso_debug_pub.g_debug_flag = 'Y' THEN
361 aso_debug_pub.add('before functional currency'||p_qte_rec.currency_code,1,'N');
362 aso_debug_pub.add('set of books id prof: '||l_set_of_books_id, 1, 'N');
363 aso_debug_pub.add('conversion type prof: '||l_conversion_type, 1, 'N');
364 END IF;
365
366 -- vtariker: 3057860: overriding profile value if value is passed in hdr
367 IF l_header_rec.conversion_type_code IS NOT NULL OR
368 l_header_rec.conversion_type_code <> FND_API.G_MISS_CHAR THEN
369 l_conversion_type := l_header_rec.conversion_type_code;
370 END IF;
371 -- vtariker: 3057860
372
373 IF p_qte_rec.currency_code is not NULL
374 AND p_qte_rec.currency_code <> FND_API.G_MISS_CHAR THEN
375
376 IF (l_set_of_books_id IS NOT NULL) THEN
377
378 OPEN C_Functional_Currency(l_set_of_books_id);
379 FETCH C_Functional_Currency INTO l_functional_currency;
380 CLOSE C_Functional_Currency;
381
382 IF (l_functional_currency <> p_qte_rec.currency_code) THEN
383
384 IF (l_conversion_type is NULL) THEN
385 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
386 fnd_message.set_name('ASO', 'ASO_QTE_MISSING_CONV_TYPE');
387 FND_MSG_PUB.Add;
388 END IF;
389 RAISE FND_API.G_EXC_ERROR;
390 END IF;
391
392 IF l_conversion_type <> 'USER' THEN
393 l_header_rec.conversion_rate := FND_API.G_MISS_NUM;
394 l_header_rec.conversion_rate_date := FND_API.G_MISS_DATE;
395 ELSE
396 IF (p_qte_rec.exchange_rate is NULL OR
397 p_qte_rec.exchange_rate = FND_API.G_MISS_NUM) THEN
398 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
399 fnd_message.set_name('ASO', 'ASO_QTE_MISSING_CONV_RATE');
400 fnd_message.set_token('CURRENCY_CODE', p_qte_rec.currency_code, FALSE);
401 FND_MSG_PUB.Add;
402 END IF;
403 RAISE FND_API.G_EXC_ERROR;
404 END IF;
405 l_header_rec.conversion_rate := p_qte_rec.exchange_rate;
406 l_header_rec.conversion_rate_date := l_sysdate;
407 END IF;
408
409 l_header_rec.conversion_type_code := l_conversion_type;
410
411 -- update in quote tables if needed
412 IF upper(p_qte_rec.quote_source_code) = 'ORDER CAPTURE QUOTES' THEN
413 UPDATE ASO_QUOTE_HEADERS_ALL
414 SET Exchange_Type_Code = l_conversion_type,
415 Exchange_Rate_Date = l_sysdate,
416 Exchange_rate = p_qte_rec.exchange_rate
417 ,last_update_date = l_sysdate
418 ,last_updated_by = l_g_user_id
419 ,last_update_login = l_g_login_id
420
421 WHERE Quote_header_Id = p_qte_rec.quote_header_id;
422 END IF; -- update quote
423 END IF;
424
425 END IF; -- conversion
426 END IF; -- currency code not null
427
428 IF aso_debug_pub.g_debug_flag = 'Y' THEN
429 aso_debug_pub.add('l_header_rec.conversion_rate: '||l_header_rec.conversion_rate,1,'N');
430 aso_debug_pub.add('l_header_rec.conversion_rate_date: '||l_header_rec.conversion_rate_date,1,'N');
431 aso_debug_pub.add('l_header_rec.conversion_type_code: '||l_header_rec.conversion_type_code,1,'N');
432 aso_debug_pub.add('before customer account ', 1, 'Y' );
433 END IF;
434
435 IF p_qte_rec.cust_account_id is not NULL
436 AND p_qte_rec.cust_account_id <> FND_API.G_MISS_NUM THEN
437 l_header_rec.sold_to_org_id := p_qte_rec.cust_account_id;
438 l_cust_account_id := p_qte_rec.cust_account_id;
439 IF aso_debug_pub.g_debug_flag = 'Y' THEN
440 aso_debug_pub.add('validating cust account ' || l_cust_account_id || 'for party' || p_qte_rec.party_id, 1, 'N');
441 END IF;
442 ASO_PARTY_INT.Validate_CustAccount (
443 p_init_msg_list => FND_API.G_FALSE,
444 p_party_id => p_qte_rec.party_id,
445 p_cust_account_id=> l_cust_account_id,
446 x_return_status => l_return_status,
447 x_msg_count => l_msg_count,
448 x_msg_data => l_msg_data);
449 IF aso_debug_pub.g_debug_flag = 'Y' THEN
450 aso_debug_pub.add(' done validating customer.return status = ' || l_return_status ,1, 'Y');
451 END IF;
452 IF l_Return_Status <> FND_API.G_RET_STS_SUCCESS THEN
453 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
454 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
455 FND_MESSAGE.Set_Token('COLUMN', 'CUST_ACCOUNT_ID', FALSE);
456 FND_MSG_PUB.ADD;
457 END IF;
458 raise FND_API.G_EXC_ERROR;
459 END IF;
460 ELSE
461 IF p_operation = 'CREATE' THEN
462 IF p_qte_rec.party_id is not NULL
463 AND p_qte_rec.party_id <> FND_API.G_MISS_NUM THEN
464 IF aso_debug_pub.g_debug_flag = 'Y' THEN
465 aso_debug_pub.add('deriving cust account id:p_qte_rec.party_id: '||p_qte_rec.party_id, 1, 'N');
466 END IF;
467 ASO_CHECK_TCA_PVT.Customer_Account(
468 p_api_version => 1.0,
469 p_Party_Id => p_qte_rec.party_id,
470 p_calling_api_flag => 0,
471 x_Cust_Acct_Id => l_cust_account_id,
472 x_return_status => l_return_status,
473 x_msg_count => l_msg_count,
474 x_msg_data => l_msg_data);
475
476 IF l_Return_Status <> FND_API.G_RET_STS_SUCCESS THEN
477 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
478 THEN
479 FND_MESSAGE.Set_Name('ASO', 'ASO_CUST_ACCOUNT');
480 FND_MESSAGE.Set_Token('ID', to_char( p_qte_rec.party_id), FALSE);
481 FND_MSG_PUB.ADD;
482 END IF;
483 raise FND_API.G_EXC_ERROR;
484 END IF;
485 IF aso_debug_pub.g_debug_flag = 'Y' THEN
486 aso_debug_pub.add('Cust_Accnt_Id in'||l_cust_account_id, 1, 'N');
487 END IF;
488 -- update quote header if account is created
489 IF upper(p_qte_rec.quote_source_code) = 'ORDER CAPTURE QUOTES' THEN
490 UPDATE ASO_QUOTE_HEADERS_ALL
491 SET cust_account_id = l_cust_account_id
492 ,last_update_date = l_sysdate
493 ,last_updated_by = l_g_user_id
494 ,last_update_login = l_g_login_id
495
496
497 WHERE Quote_header_Id = p_qte_rec.quote_header_id;
498 END IF; -- update quote
499
500 l_header_rec.sold_to_org_id := l_cust_account_id;
501 END IF;
502 END IF;
503 IF p_operation = 'UPDATE' THEN
504 IF aso_debug_pub.g_debug_flag = 'Y' THEN
505 aso_debug_pub.add('before query = ' || p_qte_rec.order_id , 1, 'Y');
506 END IF;
507 OPEN get_cust_account_id(p_qte_rec.order_id);
508 FETCH get_cust_account_id INTO l_header_rec.sold_to_org_id;
509 IF aso_debug_pub.g_debug_flag = 'Y' THEN
510 aso_debug_pub.add('after query = ' || l_header_rec.sold_to_org_id, 1, 'Y');
511 END IF;
512 CLOSE get_cust_account_id;
513 IF l_header_rec.sold_to_org_id is NULL THEN
514 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
515 -- fnd_message.set_name('ASO', 'MISSING_CUST_ACCOUNT_ID');
516 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_COLUMN');
517 FND_MESSAGE.Set_Token('COLUMN', 'CUST_ACCOUNT_ID', FALSE);
518 FND_MSG_PUB.Add;
519 END IF;
520 RAISE FND_API.G_EXC_ERROR;
521 END IF;
522 END IF;
523 END IF;
524
525 IF p_qte_rec.invoice_to_cust_account_id <> FND_API.G_MISS_NUM AND
526 p_qte_rec.invoice_to_cust_account_id IS NOT NULL AND
527 p_qte_rec.invoice_to_cust_account_id <> l_cust_account_id THEN
528 IF aso_debug_pub.g_debug_flag = 'Y' THEN
529 aso_debug_pub.add('before cust_acct_reltn:p_sold_to_cust_account: '||l_cust_account_id, 1, 'N');
530 aso_debug_pub.add('before cust_acct_reltn:p_related_cust_account: '||p_qte_rec.invoice_to_cust_account_id, 1, 'N');
531 END IF;
532 ASO_CHECK_TCA_PVT.Cust_acct_Relationship (
533 p_api_version => 1.0,
534 p_sold_to_cust_account => l_cust_account_id,
535 p_related_cust_account =>p_qte_rec.invoice_to_cust_account_id,
536 p_relationship_type => 'BILL_TO',
537 x_return_status => l_return_status,
538 x_msg_count => l_msg_count,
539 x_msg_data => l_msg_data
540 );
541 IF aso_debug_pub.g_debug_flag = 'Y' THEN
542 aso_debug_pub.add('after cust_acct_reltn:l_return_status: '||l_return_status, 1, 'N');
543 END IF;
544 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
545 RAISE FND_API.G_EXC_ERROR;
546 END IF;
547
548 END IF;
549
550 IF aso_debug_pub.g_debug_flag = 'Y' THEN
551 aso_debug_pub.add('before org contact', 1, 'N');
552 aso_debug_pub.add('p_qte_rec.org_contact_id: ' || p_qte_rec.org_contact_id,1, 'N');
553 END IF;
554 IF p_qte_rec.party_id is not null and
555 p_qte_rec.party_id <> FND_API.G_MISS_NUM THEN
556
557 IF p_qte_rec.org_contact_id is NULL OR
558 p_qte_rec.org_contact_id = FND_API.G_MISS_NUM THEN
559 get_org_contact( p_party_id => p_qte_rec.party_id,
560 x_org_contact => l_org_contact
561 );
562 ELSE
563 l_org_contact := p_qte_rec.org_contact_id;
564 END IF;
565
566 IF aso_debug_pub.g_debug_flag = 'Y' THEN
567 aso_debug_pub.add('l_org_contact: ' || l_org_contact,1, 'N');
568 END IF;
569 IF l_org_contact is not NULL AND
570 l_org_contact <> FND_API.G_MISS_NUM THEN
571 IF aso_debug_pub.g_debug_flag = 'Y' THEN
572 aso_debug_pub.add('deriving org_contact_role:l_header_rec.sold_to_org_id: ' || l_header_rec.sold_to_org_id,1, 'N');
573 END IF;
574 get_org_contact_role(
575 p_Org_Contact_Id => l_org_contact
576 ,p_Cust_account_id => l_header_rec.sold_to_org_id
577 ,x_return_status => l_return_status
578 ,x_party_id => l_org_contact_party_id
579 ,x_cust_account_role_id => l_header_rec.sold_to_contact_id
580 );
581 IF aso_debug_pub.g_debug_flag = 'Y' THEN
582 aso_debug_pub.add('after get org contact. sold_to_contact_id = ' || l_header_rec.sold_to_contact_id ,1, 'N');
583 END IF;
584 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
585 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
586 THEN
587 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_ORG_CON_ACT_CRS');
588 FND_MSG_PUB.ADD;
589 END IF;
590 raise FND_API.G_EXC_ERROR;
591 END IF;
592
593 IF l_header_rec.sold_to_contact_id is NULL OR
594 l_header_rec.sold_to_contact_id = FND_API.G_MISS_NUM THEN
595 IF aso_debug_pub.g_debug_flag = 'Y' THEN
596 aso_debug_pub.add('calling create contact role for org contact:l_org_contact_party_id: '||l_org_contact_party_id,1, 'N');
597 aso_debug_pub.add('calling create contact role for org contact:l_header_rec.sold_to_org_id: '||l_header_rec.sold_to_org_id,1, 'N');
598 END IF;
599 ASO_PARTY_INT.Create_Contact_Role (
600 p_api_version => 1.0
601 ,p_party_id =>l_org_contact_party_id
602 ,p_Cust_account_id => l_header_rec.sold_to_org_id
603 ,x_return_status => l_return_status
604 ,x_msg_count => l_msg_count
605 ,x_msg_data => l_msg_data
606 ,x_cust_account_role_id => l_header_rec.sold_to_contact_id
607 );
608 IF aso_debug_pub.g_debug_flag = 'Y' THEN
609 aso_debug_pub.add('after create contact role. sold_to_contact_id = ' || l_header_rec.sold_to_contact_id ,1, 'Y');
610 END IF;
611 IF L_Return_Status <> FND_API.G_RET_STS_SUCCESS THEN
612 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
613 THEN
614 FND_MESSAGE.Set_Name('ASO', 'ASO_ORG_CONTACT');
615 FND_MESSAGE.Set_Token('ID', to_char(p_qte_rec.org_contact_id), FALSE);
616 FND_MSG_PUB.ADD;
617 END IF;
618 raise FND_API.G_EXC_ERROR;
619 END IF;
620 END IF;
621 END IF;
622 END IF;
623
624 IF aso_debug_pub.g_debug_flag = 'Y' THEN
625 aso_debug_pub.add('invoice_to_cust_account = ' || p_qte_rec.invoice_to_cust_account_id,1,'N');
626 END IF;
627 IF p_qte_rec.invoice_to_cust_account_id is not NULL AND
628 p_qte_rec.invoice_to_cust_account_id <> FND_API.G_MISS_NUM THEN
629 l_invoice_cust_account_id := p_qte_rec.invoice_to_cust_account_id;
630 ELSE
631 l_invoice_cust_account_id := l_header_rec.sold_to_org_id;
632 END IF;
633
634 IF aso_debug_pub.g_debug_flag = 'Y' THEN
635 aso_debug_pub.add('l_invoice_cust_acccount_id = ' || l_invoice_cust_account_id,1,'N' );
636 aso_debug_pub.add('before invoice to party site id '|| p_qte_rec.invoice_to_party_site_id, 1, 'Y');
637 END IF;
638 IF p_qte_rec.invoice_to_party_site_id is not NULL
639 AND p_qte_rec.invoice_to_party_site_id <> FND_API.G_MISS_NUM THEN
640
641 ASO_CHECK_TCA_PVT.Customer_Account_Site
642 (
643 p_api_version => 1.0
644 ,p_party_site_id => p_qte_rec.invoice_to_party_site_id
645 ,p_acct_site_type => 'BILL_TO'
646 ,p_cust_account_id => l_invoice_cust_account_id
647 ,x_cust_acct_site_id => l_hd_inv_cust_acct_site
648 ,x_return_status => l_return_status
649 ,x_msg_count => l_msg_count
650 ,x_msg_data => l_msg_data
651 ,x_site_use_id => l_header_rec.invoice_to_org_id
652 );
653
654 IF l_header_rec.invoice_to_org_id IS NULL THEN
655 l_header_rec.invoice_to_org_id := FND_API.G_MISS_NUM;
656 END IF;
657 IF aso_debug_pub.g_debug_flag = 'Y' THEN
658 aso_debug_pub.add('site_use_id after deriving invoice = ' || l_header_rec.invoice_to_org_id,1,'Y');
659 aso_debug_pub.add('inv_acct_site after deriving invoice = ' || l_hd_inv_cust_acct_site,1,'Y');
660 END IF;
661 if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
662 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
663 THEN
664 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_INV_SITE_AC_CRS');
665 FND_MSG_PUB.ADD;
666 END IF;
667 raise FND_API.G_EXC_ERROR;
668 END IF;
669
670 END IF;
671
672 IF aso_debug_pub.g_debug_flag = 'Y' THEN
673 aso_debug_pub.add(' invoice_to_party = ' || p_qte_rec.invoice_to_party_id,1, 'N' );
674 aso_debug_pub.add(' invoice_to_party_Site = ' || p_qte_rec.invoice_to_party_site_id,1, 'N' );
675 aso_debug_pub.add('before Cust_Acct_Contact_Addr:l_invoice_cust_acccount = ' ||l_invoice_cust_account_id ,1,'Y');
676 END IF;
677
678 ASO_CHECK_TCA_PVT.Cust_Acct_Contact_Addr(
679 p_api_version => 1.0,
680 p_party_site_id => p_qte_rec.invoice_to_party_site_id,
681 p_role_type => 'BILL_TO',
682 p_cust_account_id => l_invoice_cust_account_id,
683 p_party_id => p_qte_rec.invoice_to_party_id,
684 p_cust_account_site => l_hd_inv_cust_acct_site,
685 x_return_status => l_return_status,
686 x_msg_count => l_msg_count,
687 x_msg_data => l_msg_data,
688 x_cust_account_role_id => l_header_rec.invoice_to_contact_id);
689
690 IF l_header_rec.invoice_to_contact_id IS NULL THEN
691 l_header_rec.invoice_to_contact_id := FND_API.G_MISS_NUM;
692 END IF;
693
694 IF aso_debug_pub.g_debug_flag = 'Y' THEN
695 aso_debug_pub.add('mapq hd: after Cust_Acct_Contact_Addr:l_header_rec.invoice_to_contact_id: '||l_header_rec.invoice_to_contact_id,1,'N');
696 END IF;
697
698 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
699 raise FND_API.G_EXC_ERROR;
700 END IF;
701
702 -- end_cust
703 IF aso_debug_pub.g_debug_flag = 'Y' THEN
704 aso_debug_pub.add('End_Customer_cust_account = ' || p_qte_rec.End_Customer_cust_account_id,1,'N');
705 END IF;
706 IF p_qte_rec.End_Customer_cust_account_id is not NULL AND
707 p_qte_rec.End_Customer_cust_account_id <> FND_API.G_MISS_NUM THEN
708 l_End_cust_account_id := p_qte_rec.End_Customer_cust_account_id;
709 ELSE
710 l_End_cust_account_id := l_header_rec.sold_to_org_id;
711 END IF;
712
713 IF aso_debug_pub.g_debug_flag = 'Y' THEN
714 aso_debug_pub.add('l_End_cust_acccount_id = ' || l_End_cust_account_id,1,'N' );
715 aso_debug_pub.add('before End_Customer party site id '|| p_qte_rec.End_Customer_party_site_id, 1, 'Y');
716 END IF;
717 IF p_qte_rec.End_Customer_party_site_id is not NULL
718 AND p_qte_rec.End_Customer_party_site_id <> FND_API.G_MISS_NUM THEN
719
720 ASO_CHECK_TCA_PVT.Customer_Account_Site
721 (
722 p_api_version => 1.0
723 ,p_party_site_id => p_qte_rec.End_Customer_party_site_id
724 ,p_acct_site_type => 'END_USER'
725 ,p_cust_account_id => l_End_cust_account_id
726 ,x_cust_acct_site_id => l_hd_end_cust_acct_site
727 ,x_return_status => l_return_status
728 ,x_msg_count => l_msg_count
729 ,x_msg_data => l_msg_data
730 ,x_site_use_id => l_header_rec.End_Customer_Site_Use_Id
731 );
732
733 IF l_header_rec.End_Customer_Site_Use_Id IS NULL THEN
734 l_header_rec.End_Customer_Site_Use_Id := FND_API.G_MISS_NUM;
735 END IF;
736 IF aso_debug_pub.g_debug_flag = 'Y' THEN
737 aso_debug_pub.add('site_use_id after deriving End_Customer = ' || l_header_rec.End_Customer_Site_Use_Id,1,'Y');
738 aso_debug_pub.add('inv_acct_site after deriving End_Customer = ' || l_hd_end_cust_acct_site,1,'Y');
739 END IF;
740 if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
741 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
742 THEN
743 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_END_SITE_AC_CRS');
744 FND_MSG_PUB.ADD;
745 END IF;
746 raise FND_API.G_EXC_ERROR;
747 END IF;
748
749 l_header_rec.End_Customer_id := l_End_cust_account_id;
750
751 END IF;
752
753 IF aso_debug_pub.g_debug_flag = 'Y' THEN
754 aso_debug_pub.add(' End_Customer_party = ' || p_qte_rec.End_Customer_party_id,1, 'N' );
755 aso_debug_pub.add(' invoice_to_party_Site = ' || p_qte_rec.End_Customer_party_site_id,1, 'N' );
756 aso_debug_pub.add('before Cust_Acct_Contact_Addr:l_End_cust_acccount = ' ||l_End_cust_account_id ,1,'Y');
757 END IF;
758
759 ASO_CHECK_TCA_PVT.Cust_Acct_Contact_Addr(
760 p_api_version => 1.0,
761 p_party_site_id => p_qte_rec.End_Customer_party_site_id,
762 p_role_type => 'END_USER',
763 p_cust_account_id => l_End_cust_account_id,
764 p_party_id => p_qte_rec.End_Customer_party_id,
765 p_cust_account_site => l_hd_end_cust_acct_site,
766 x_return_status => l_return_status,
767 x_msg_count => l_msg_count,
768 x_msg_data => l_msg_data,
769 x_cust_account_role_id => l_header_rec.End_Customer_contact_id);
770
771 IF l_header_rec.End_Customer_contact_id IS NULL THEN
772 l_header_rec.End_Customer_contact_id := FND_API.G_MISS_NUM;
773 END IF;
774
775 IF aso_debug_pub.g_debug_flag = 'Y' THEN
776 aso_debug_pub.add('mapq hd: after Cust_Acct_Contact_Addr:l_header_rec.End_Customer_contact_id: '||l_header_rec.End_Customer_contact_id,1,'N');
777 aso_debug_pub.add('mapq hd: after Cust_Acct_Contact_Addr:l_header_rec.End_Customer_id: '||l_header_rec.End_Customer_id,1,'N');
778 END IF;
779
780 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
781 raise FND_API.G_EXC_ERROR;
782 END IF;
783
784 -- end_cust
785
786 IF aso_debug_pub.g_debug_flag = 'Y' THEN
787 aso_debug_pub.add('beginning of mapping for header shipping ', 1, 'N' );
788 END IF;
789
790 IF p_header_shipment_tbl.count > 0 THEN
791 -- OM takes in only one shipment at the header level
792
793 IF p_header_shipment_tbl(1).ship_to_cust_account_id <> FND_API.G_MISS_NUM AND
794 p_header_shipment_tbl(1).ship_to_cust_account_id IS NOT NULL AND
795 p_header_shipment_tbl(1).ship_to_cust_account_id <> l_cust_account_id THEN
796 IF aso_debug_pub.g_debug_flag = 'Y' THEN
797 aso_debug_pub.add('before cust_acct_relationship ', 1, 'N' );
798 END IF;
799 ASO_CHECK_TCA_PVT.Cust_acct_Relationship (
800 p_api_version => 1.0,
801 p_sold_to_cust_account => l_cust_account_id,
802 p_related_cust_account => p_header_shipment_tbl(1).ship_to_cust_account_id,
803 p_relationship_type => 'SHIP_TO',
804 x_return_status => l_return_status,
805 x_msg_count => l_msg_count,
806 x_msg_data => l_msg_data
807 );
808
809 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
810 RAISE FND_API.G_EXC_ERROR;
811 END IF;
812
813 END IF;
814
815 IF p_header_shipment_tbl(1).ship_to_cust_account_id is not NULL AND
816 p_header_shipment_tbl(1).ship_to_cust_account_id <> FND_API.G_MISS_NUM THEN
817 l_ship_cust_account_id := p_header_shipment_tbl(1).ship_to_cust_account_id;
818 ELSE
819 l_ship_cust_account_id := l_header_rec.sold_to_org_id;
820 END IF;
821
822 IF aso_debug_pub.g_debug_flag = 'Y' THEN
823 aso_debug_pub.add('ship cust acccount = ' || l_ship_cust_account_id ,1, 'N');
824 aso_debug_pub.add('ship to party site = ' || p_header_shipment_tbl(1).ship_to_party_site_id, 1, 'N');
825 END IF;
826 IF p_header_shipment_tbl(1).ship_to_party_site_id is not NULL
827 AND p_header_shipment_tbl(1).ship_to_party_site_id <> FND_API.G_MISS_NUM
828 THEN
829
830 ASO_CHECK_TCA_PVT.Customer_Account_Site
831 (
832 p_api_version => 1.0
833 ,p_party_site_id => p_header_shipment_tbl(1).ship_to_party_site_id
834 ,p_acct_site_type => 'SHIP_TO'
835 ,p_cust_account_id => l_ship_cust_account_id
836 ,x_cust_acct_site_id => l_hd_shp_cust_acct_site
837 ,x_return_status => l_return_status
838 ,x_msg_count => l_msg_count
839 ,x_msg_data => l_msg_data
840 ,x_site_use_id => l_header_rec.ship_to_org_id
841 );
842
843 IF l_header_rec.ship_to_org_id IS NULL THEN
844 l_header_rec.ship_to_org_id := FND_API.G_MISS_NUM;
845 END IF;
846
847 IF aso_debug_pub.g_debug_flag = 'Y' THEN
848 aso_debug_pub.add('ship to org after deriving = ' || l_header_rec.ship_to_org_id, 1, 'N');
849 aso_debug_pub.add('ship acct site after deriving = ' || l_hd_shp_cust_acct_site, 1, 'N');
850 END IF;
851 if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
852 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
853 THEN
854 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_SHP_SITE_AC_CRS');
855 FND_MSG_PUB.ADD;
856 END IF;
857 raise FND_API.G_EXC_ERROR;
858 END IF;
859
860 END IF;
861
862 IF aso_debug_pub.g_debug_flag = 'Y' THEN
863 aso_debug_pub.add('beginning of map 2:ship_party_id: ' || p_header_shipment_tbl(1).ship_to_party_id,1,'N');
864 aso_debug_pub.add('before Cust_Acct_Contact_Addr:l_ship_cust_account_id: '||l_ship_cust_account_id,1,'N');
865 aso_debug_pub.add('before Cust_Acct_Contact_Addr:p_header_shipment_tbl(1).ship_to_party_site_id: '||p_header_shipment_tbl(1).ship_to_party_site_id,1,'N');
866 END IF;
867
868 ASO_CHECK_TCA_PVT.Cust_Acct_Contact_Addr(
869 p_api_version => 1.0,
870 p_party_site_id => p_header_shipment_tbl(1).ship_to_party_site_id,
871 p_role_type => 'SHIP_TO',
872 p_cust_account_id => l_ship_cust_account_id,
873 p_party_id => p_header_shipment_tbl(1).ship_to_party_id,
874 p_cust_account_site => l_hd_shp_cust_acct_site,
875 x_return_status => l_return_status,
876 x_msg_count => l_msg_count,
877 x_msg_data => l_msg_data,
878 x_cust_account_role_id => l_header_rec.ship_to_contact_id);
879
880 IF l_header_rec.ship_to_contact_id IS NULL THEN
881 l_header_rec.ship_to_contact_id := FND_API.G_MISS_NUM;
882 END IF;
883
884 IF aso_debug_pub.g_debug_flag = 'Y' THEN
885 aso_debug_pub.add('mapq hdr: after Cust_Acct_Contact_Addr:l_header_rec.ship_to_contact_id: '||l_header_rec.ship_to_contact_id,1,'N');
886 END IF;
887
888 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
889 raise FND_API.G_EXC_ERROR;
890 END IF;
891
892 END IF; -- shipment tbl count
893 IF aso_debug_pub.g_debug_flag = 'Y' THEN
894 aso_debug_pub.add('after map 2 for header',1,'N');
895 END IF;
896
897
898 IF p_operation = 'CREATE' THEN
899 l_header_rec.operation := OE_GLOBALS.G_OPR_CREATE;
900 ELSIF p_operation = 'UPDATE' THEN
901 l_header_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
902 l_header_rec.header_id := p_qte_rec.order_id;
903 END IF;
904
905 l_header_rec.order_number := p_qte_rec.order_number;
906 l_header_rec.invoicing_rule_id := p_qte_rec.invoicing_rule_id;
907 l_header_rec.order_type_id := p_qte_rec.order_type_id;
908 l_header_rec.org_id := p_qte_rec.org_id ;
909
910 l_header_rec.minisite_id := p_qte_rec.minisite_id;
911
912 -- employee person id is converted to salesrep
913 -- salesrep id is required for booking an order
914
915
916 -- if an employee person id is passed then it needs to be converted to a
917 -- salesrep id. no error is raised if the conversion is not possible
918
919 IF aso_debug_pub.g_debug_flag = 'Y' THEN
920 aso_debug_pub.add('l_validate_salesrep_prof =' ||l_validate_salesrep_prof,1,'N');
921 aso_debug_pub.add('l_om_defaulting_prof =' ||l_om_defaulting_prof,1,'N');
922 aso_debug_pub.add('p_qte_rec.employee_person_id = '|| p_qte_rec.employee_person_id,1,'N');
923 aso_debug_pub.add('p_qte_rec.resource_id = ' || p_qte_rec.resource_id,1,'N');
924 END IF;
925
926 IF (p_qte_rec.employee_person_id IS NOT NULL AND
927 p_qte_rec.employee_person_id <> FND_API.G_MISS_NUM) AND
928 (p_qte_rec.resource_id IS NULL OR
929 p_qte_rec.resource_id = FND_API.G_MISS_NUM) THEN
930
931 l_header_rec.salesrep_id := ASO_ORDER_INT.Salesrep_id(p_qte_rec.employee_person_id);
932 ELSE
933 IF (p_qte_rec.resource_id IS NOT NULL AND
934 p_qte_rec.resource_id <> FND_API.G_MISS_NUM) THEN
935
936 OPEN salesrep(p_qte_rec.resource_id);
937 FETCH salesrep into l_header_rec.salesrep_id;
938 CLOSE salesrep;
939 END IF;
940 END IF;
941
942 -- if the salesrep id is null and the validate flag is set to 'N' then
943 -- the sales rep id is defaulted. No warning is given if the salesrep is not
944 -- the same as the salesrep id
945 IF aso_debug_pub.g_debug_flag = 'Y' THEN
946 aso_debug_pub.add('salesrep id =' ||l_header_rec.salesrep_id,1,'N');
947 aso_debug_pub.add('default salesrep = '|| l_default_person_id_prof,1,'N');
948 aso_debug_pub.add('p_operation = '|| p_operation,1,'N');
949 END IF;
950
951 IF (l_header_rec.salesrep_id IS NULL OR
952 l_header_rec.salesrep_id = FND_API.G_MISS_NUM) AND
953 p_operation = 'UPDATE' THEN
954
955 l_header_rec.salesrep_id := FND_API.G_MISS_NUM;
956
957 ELSE
958
959 IF (l_header_rec.salesrep_id IS NULL OR
960 l_header_rec.salesrep_id = FND_API.G_MISS_NUM) AND
961 l_om_defaulting_prof = 'N' THEN
962
963 IF l_validate_salesrep_prof = 'N' THEN
964
965 OPEN C_Get_Srep_From_Snumber(l_default_person_id_prof);
966 FETCH C_Get_Srep_From_Snumber INTO l_header_rec.salesrep_id;
967 CLOSE C_Get_Srep_From_Snumber;
968
969 --l_header_rec.salesrep_id := l_default_person_id_prof;
970
971 ELSE
972 IF l_validate_salesrep_prof = 'Y' THEN
973 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
974 FND_MESSAGE.Set_Name('ASO', 'ASO_SALESREP');
975 FND_MSG_PUB.Add;
976 END IF;
977 END IF;
978 END IF;
979 END IF;
980
981 IF aso_debug_pub.g_debug_flag = 'Y' THEN
982 aso_debug_pub.add('salesrep id =' ||l_header_rec.salesrep_id,1,'N');
983 END IF;
984
985 -- if the salesrep is still null then an error is raised.
986
987 IF (l_header_rec.salesrep_id IS NULL OR
988 l_header_rec.salesrep_id = FND_API.G_MISS_NUM) AND
989 l_om_defaulting_prof = 'N' AND
990 l_validate_salesrep_prof = 'N' THEN
991 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
992
993 -- Created new message to display the error message more appropriately - Girish Bug 4654938
994 -- FND_MESSAGE.Set_Name('ASO', 'ASO_API_NO_PROFILE_VALUE');
995 -- FND_MESSAGE.Set_Token('PROFILE', 'ASO_DEFAULT_PERSON_ID', FALSE);
996 FND_MESSAGE.Set_Name('ASO', 'ASO_NO_DEFAULT_VALUE');
997 FND_MESSAGE.Set_Token('PROFILE', 'ASO_DEFAULT_SALESREP', TRUE);
998
999 FND_MSG_PUB.Add;
1000 END IF;
1001 ELSE
1002 IF l_om_defaulting_prof = 'Y' AND
1003 (l_header_rec.salesrep_id IS NULL OR
1004 l_header_rec.salesrep_id = FND_API.G_MISS_NUM) THEN
1005 l_header_rec.salesrep_id := FND_API.G_MISS_NUM;
1006 END IF;
1007 END IF;
1008
1009 END IF; -- p_operation = UPDATE;
1010
1011 l_header_rec.price_list_id := p_qte_rec.price_list_id;
1012 l_header_rec.pricing_date := p_qte_rec.price_frozen_date;
1013 l_header_rec.sales_channel_code := p_qte_rec.sales_channel_code;
1014
1015 l_header_rec.transactional_curr_code := p_qte_rec.currency_code;
1016 l_header_rec.source_document_id := p_qte_rec.quote_header_id;
1017
1018 IF p_operation = 'CREATE' THEN
1019 IF (p_qte_rec.original_system_reference IS NOT NULL OR
1020 p_qte_rec.original_system_reference <> FND_API.G_MISS_CHAR) THEN
1021 l_header_rec.orig_sys_document_ref := p_qte_rec.original_system_reference;
1022 ELSE
1023 IF (p_qte_rec.quote_header_id IS NULL OR
1024 p_qte_rec.quote_header_id = FND_API.G_MISS_NUM) THEN
1025 l_quote_number := NULL;
1026 l_version_number := NULL;
1027 ELSE
1028
1029 OPEN C_get_quote_number(p_qte_rec.quote_header_id);
1030 FETCH C_get_quote_number INTO l_quote_number, l_version_number;
1031 CLOSE C_get_quote_number;
1032
1033 IF l_quote_number IS NOT NULL THEN
1034
1035 IF l_version_number IS NOT NULL THEN
1036
1037 l_header_rec.orig_sys_document_ref := to_char(l_quote_number)||':'||to_char(l_version_number);
1038 ELSE
1039 l_header_rec.orig_sys_document_ref := to_char(l_quote_number);
1040
1041 END IF;
1042
1043 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1044 aso_debug_pub.add('l_header_rec.orig_sys_document_ref: '||l_header_rec.orig_sys_document_ref,1,'N');
1045 END IF;
1046
1047 END IF;
1048
1049 END IF;
1050
1051 END IF; -- p_qte_rec.original_system_reference
1052 ELSIF p_operation = 'UPDATE' THEN
1053 l_header_rec.orig_sys_document_ref := p_qte_rec.original_system_reference;
1054 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1055 aso_debug_pub.add('p_operation = UPDATE ** l_header_rec.orig_sys_document_ref: '||l_header_rec.orig_sys_document_ref,1,'N');
1056 END IF;
1057
1058 END IF; -- CREATE
1059 -- default value if null
1060
1061 IF p_qte_rec.quote_source_code is NULL OR
1062 p_qte_rec.quote_source_code = FND_API.G_MISS_CHAR THEN
1063
1064 IF p_operation = 'CREATE' THEN
1065
1066 IF (l_om_defaulting_prof = 'N') THEN
1067 l_quote_source := 'CRM Apps';
1068 ELSE
1069 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1070 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1071 FND_MESSAGE.Set_Token('COLUMN', 'QUOTE_SOURCE_CODE', FALSE);
1072 FND_MSG_PUB.ADD;
1073 END IF;
1074 END IF;
1075 -- p_qte_rec.quote_source_code := 'CRM Apps';
1076
1077 ELSIF p_operation = 'UPDATE' THEN
1078 l_quote_source := FND_API.G_MISS_CHAR;
1079 END IF;
1080
1081 ELSE
1082 l_quote_source := p_qte_rec.quote_source_code;
1083
1084 END IF;
1085
1086
1087 -- source document type id will determine the source of the document
1088 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1089 aso_debug_pub.add('in here for quote source',1,'N');
1090 END IF;
1091 IF l_quote_source is not NULL AND
1092 l_quote_source <> FND_API.G_MISS_CHAR THEN
1093
1094 OPEN C_order_source(l_quote_source);
1095 FETCH C_order_source INTO l_header_rec.source_document_type_id;
1096 IF (C_order_source%NOTFOUND) THEN
1097 null;
1098 END IF;
1099 CLOSE C_order_source;
1100 END IF;
1101 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1102 aso_debug_pub.add('in here after source code',1,'N');
1103 END IF;
1104 For i in 1..p_header_payment_tbl.count LOOP
1105
1106 IF (NVL(l_om_defaulting_prof, 'N') = 'Y') THEN
1107 IF p_header_payment_tbl(i).payment_term_id IS NULL THEN
1108 l_header_rec.payment_term_id := FND_API.G_MISS_NUM;
1109 ELSE -- 3465720
1110 l_header_rec.payment_term_id := p_header_payment_tbl(i).payment_term_id;
1111 END IF;
1112 ELSE
1113 l_header_rec.payment_term_id := p_header_payment_tbl(i).payment_term_id;
1114 END IF;
1115
1116 -- Bug 7253077
1117
1118 /* Commented for bug 11783589
1119 IF p_header_payment_tbl(i).payment_type_code <> 'PO' THEN
1120 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1121 aso_debug_pub.add('p_header_payment_tbl(i).payment_type_code: '||p_header_payment_tbl(i).payment_type_code,1,'N');
1122 END IF;
1123 l_header_rec.payment_type_code := p_header_payment_tbl(i).payment_type_code;
1124 END IF;*/
1125 -- end bug 7253077
1126
1127 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1128 aso_debug_pub.add('p_header_payment_tbl(i).cust_po_number: '||p_header_payment_tbl(i).cust_po_number,1,'N');
1129 END IF;
1130
1131 l_header_rec.cust_po_number := p_header_payment_tbl(i).cust_po_number;
1132
1133 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1134 aso_debug_pub.add('p_header_payment_tbl(i).payment_type_code: '||p_header_payment_tbl(i).payment_type_code,1,'N');
1135 END IF;
1136 IF p_header_payment_tbl(i).payment_type_code IS NOT NULL THEN
1137 l_header_payment_tbl(pay_count).payment_type_code := p_header_payment_tbl(i).payment_type_code;
1138
1139 l_header_payment_tbl(pay_count).payment_amount := p_header_payment_tbl(i).payment_amount;
1140
1141 IF p_operation = 'CREATE' THEN
1142 l_header_payment_tbl(pay_count).operation := p_operation;
1143 ELSIF p_operation = 'UPDATE' THEN
1144 l_header_payment_tbl(pay_count).operation := p_header_payment_tbl(i).operation_code;
1145 END IF;
1146
1147 l_header_payment_tbl(pay_count).trxn_extension_id := p_header_payment_tbl(i).trxn_extension_id;
1148 l_header_payment_tbl(pay_count).payment_collection_event := 'INVOICE';
1149 l_header_payment_tbl(pay_count).payment_level_code := 'ORDER';
1150
1151 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1152 aso_debug_pub.add('l_header_payment_tbl(pay_count).operation: '||l_header_payment_tbl(pay_count).operation,1,'N');
1153 aso_debug_pub.add('l_header_payment_tbl(pay_count).trxn_extension_id: '||l_header_payment_tbl(pay_count).trxn_extension_id,1,'N');
1154 END IF;
1155
1156 /* Start : code change done for Bug 9401669 */
1157 If (l_header_payment_tbl(pay_count).trxn_extension_id Is Null Or
1158 l_header_payment_tbl(pay_count).trxn_extension_id = FND_API.G_MISS_NUM ) Then
1159
1160 l_header_payment_tbl(pay_count).CC_INSTRUMENT_ASSIGNMENT_ID := p_header_payment_tbl(i).INSTR_ASSIGNMENT_ID;
1161 l_header_payment_tbl(pay_count).CC_INSTRUMENT_ID := p_header_payment_tbl(i).INSTRUMENT_ID;
1162
1163 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1164 aso_debug_pub.add('Map_Quote_to_order : l_header_payment_tbl(pay_count).CC_INSTRUMENT_ASSIGNMENT_ID : '||l_header_payment_tbl(pay_count).CC_INSTRUMENT_ASSIGNMENT_ID, 1, 'N');
1165 aso_debug_pub.add('Map_Quote_to_order : l_header_payment_tbl(pay_count).CC_INSTRUMENT_ID : '||l_header_payment_tbl(pay_count).CC_INSTRUMENT_ID, 1, 'N');
1166 End If;
1167 End If;
1168 /* End : code change done for Bug 9401669 */
1169
1170 IF p_header_payment_tbl(i).payment_type_code = 'CHECK' THEN
1171 l_header_payment_tbl(pay_count).check_number := p_header_payment_tbl(i).payment_ref_number;
1172 END IF;
1173
1174 END IF; -- payment_type_code is not null
1175
1176 -- bug 5613870
1177 -- IF p_header_payment_tbl(i).payment_type_code = 'CREDIT_CARD' THEN -- Code Change done for Bug 14180257
1178 l_header_payment_tbl(pay_count).receipt_method_id := fnd_api.g_miss_num;
1179 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1180 aso_debug_pub.add('Passing receipt method id as g miss num' ,1,'N');
1181 END IF;
1182 -- END IF;
1183
1184 pay_count := pay_count + 1;
1185
1186 END LOOP;
1187
1188 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1189 aso_debug_pub.add('mapped header payment tbl',1,'N');
1190 END IF;
1191
1192
1193 For i in 1..p_header_shipment_tbl.count LOOP
1194 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1195 aso_debug_pub.add('mapped header shipment tbl:shipping_instructions: '|| p_header_shipment_tbl(i).shipping_instructions||'trimmed',1,'N');
1196 END IF;
1197 --bug 1921958
1198 IF (p_header_shipment_tbl(i).shipping_instructions IS NULL) AND
1199 (l_om_defaulting_prof = 'Y') THEN
1200 l_header_rec.shipping_instructions
1201 :=FND_API.G_MISS_CHAR;
1202 ELSE
1203 l_header_rec.shipping_instructions
1204 :=rtrim(p_header_shipment_tbl(i).shipping_instructions);
1205 END IF;
1206
1207 IF (p_header_shipment_tbl(i).packing_instructions IS NULL) AND
1208 (l_om_defaulting_prof = 'Y') THEN
1209 l_header_rec.packing_instructions
1210 :=FND_API.G_MISS_CHAR;
1211 ELSE
1212 l_header_rec.packing_instructions
1213 :=rtrim(p_header_shipment_tbl(i).packing_instructions);
1214 END IF;
1215 --bug 1921958
1216 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1217 aso_debug_pub.add('mapped header shipment tbl:shipping_instructions: '|| l_header_rec.shipping_instructions||'trimmed',1,'N');
1218 aso_debug_pub.add('mapped header shipment tbl:packing_instructions: '|| l_header_rec.packing_instructions||'trimmed',1,'N');
1219 END IF;
1220
1221 IF (NVL(l_om_defaulting_prof, 'N') = 'Y') THEN
1222 IF p_header_shipment_tbl(i).FOB_CODE is null then
1223 l_header_rec.fob_point_code := FND_API.G_MISS_CHAR;
1224 ELSE -- 3465720
1225 l_header_rec.fob_point_code := p_header_shipment_tbl(i).fob_code;
1226 end if;
1227 IF p_header_shipment_tbl(i).FREIGHT_TERMS_CODE is null then
1228 l_header_rec.FREIGHT_TERMS_CODE := FND_API.G_MISS_CHAR;
1229 ELSE -- 3465720
1230 l_header_rec.FREIGHT_TERMS_CODE := p_header_shipment_tbl(i).freight_terms_code;
1231 end if;
1232 IF p_header_shipment_tbl(i).SHIPMENT_PRIORITY_CODE is null then
1233 l_header_rec.SHIPMENT_PRIORITY_CODE := FND_API.G_MISS_CHAR;
1234 ELSE -- 3465720
1235 l_header_rec.SHIPMENT_PRIORITY_CODE := p_header_shipment_tbl(i).shipment_priority_code;
1236 end if;
1237 IF p_header_shipment_tbl(i).ship_method_code is null then
1238 l_header_rec.shipping_method_code := FND_API.G_MISS_CHAR;
1239 ELSE -- 3582285
1240 l_header_rec.shipping_method_code := p_header_shipment_tbl(i).ship_method_code;
1241 end if;
1242
1243 ELSE
1244 l_header_rec.fob_point_code := p_header_shipment_tbl(i).fob_code;
1245 l_header_rec.freight_terms_code
1246 := p_header_shipment_tbl(i).freight_terms_code;
1247 l_header_rec.shipment_priority_code
1248 := p_header_shipment_tbl(i).shipment_priority_code;
1249 l_header_rec.shipping_method_code
1250 := p_header_shipment_tbl(i).ship_method_code;
1251 END IF;
1252
1253 IF p_header_shipment_tbl(i).request_date IS NOT NULL THEN
1254 l_header_rec.request_date := p_header_shipment_tbl(i).request_date;
1255 END IF;
1256
1257 l_header_rec.freight_carrier_code
1258 := p_header_shipment_tbl(i).freight_carrier_code;
1259
1260 l_header_rec.partial_shipments_allowed
1261 :=p_header_shipment_tbl(i).ship_partial_flag;
1262
1263 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1264 aso_debug_pub.add('request date= ' ||l_header_rec.request_date,1,'N');
1265 aso_debug_pub.add('Map_Qte_To_Ord: p_header_shipment_tbl(i).Ship_From_Org_Id: '||p_header_shipment_tbl(i).Ship_From_Org_Id,1,'Y');
1266 END IF;
1267 IF p_header_shipment_tbl(i).Ship_From_Org_Id IS NOT NULL AND
1268 p_header_shipment_tbl(i).Ship_From_Org_Id <> FND_API.G_MISS_NUM THEN
1269
1270 l_header_rec.Ship_From_Org_Id
1271 :=p_header_shipment_tbl(i).Ship_From_Org_Id;
1272 END IF;
1273
1274 -- bug 4916969
1275 IF (p_header_shipment_tbl(i).demand_class_code is not null and p_header_shipment_tbl(i).demand_class_code <> fnd_api.g_miss_char) then
1276 l_header_rec.demand_class_code := p_header_shipment_tbl(i).demand_class_code;
1277
1278 end if;
1279
1280 END LOOP;
1281
1282
1283 For i in 1..p_header_tax_detail_tbl.count LOOP
1284
1285 l_header_rec.tax_exempt_flag := p_header_tax_detail_tbl(i).tax_exempt_flag;
1286 l_header_rec.tax_exempt_number
1287 := p_header_tax_detail_tbl(i).tax_exempt_number;
1288 l_header_rec.tax_exempt_reason_code
1289 := p_header_tax_detail_tbl(i).tax_exempt_reason_code;
1290 l_header_rec.tax_point_code := p_header_tax_detail_tbl(i).tax_code;
1291
1292 END LOOP;
1293
1294 -- reserve quantity
1295 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1296 aso_debug_pub.add('MapQ: l_reservation_lvl_prof: '||l_reservation_lvl_prof,1,'N');
1297 END IF;
1298
1299 IF (l_header_rec.order_type_id is not null AND
1300 l_header_rec.order_type_id <> FND_API.G_MISS_NUM) AND
1301 l_reservation_lvl_prof = 'AUTO_ORDER' THEN
1302 OPEN scheduling_level_cur(l_header_rec.order_type_id);
1303 FETCH scheduling_level_cur INTO l_order_scheduling_level;
1304 CLOSE scheduling_level_cur;
1305 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1306 aso_debug_pub.add('l_header_rec.order_type_id = ' ||
1307 l_header_rec.order_type_id, 1,'N');
1308 END IF;
1309 END IF;
1310
1311 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1312 aso_debug_pub.add('after mapping header tax detail ',1,'Y');
1313 END IF;
1314
1315 map_header_price_attr(
1316 p_header_price_attributes_tbl => p_header_price_attributes_tbl,
1317 p_qte_rec => p_qte_rec,
1318 p_operation => l_header_rec.operation,
1319 x_Header_price_Att_tbl => l_header_price_att_tbl
1320 );
1321 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1322 aso_debug_pub.add('after mapping header price attr:l_header_price_att_tbl.count: '||l_header_price_att_tbl.count,1,'N');
1323 END IF;
1324
1325 map_header_price_adj(
1326 p_header_price_adj_tbl => p_header_price_adj_tbl,
1327 p_qte_rec => p_qte_rec,
1328 p_operation => l_header_rec.operation,
1329 x_Header_adj_tbl => l_header_adj_tbl
1330 );
1331
1332 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1333 aso_debug_pub.add('after header price adjustments:l_header_adj_tbl.count: '||l_header_adj_tbl.count,1,'N');
1334 END IF;
1335
1336 map_header_price_adj_attr(
1337 p_header_price_adj_attr_tbl => p_header_price_adj_attr_tbl,
1338 p_operation => l_header_rec.operation,
1339 x_header_adj_att_tbl => l_header_adj_att_tbl
1340 );
1341
1342 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1343 aso_debug_pub.add('after header price adj attribute:l_header_adj_att_tbl.count: '||l_header_adj_att_tbl.count,1,'N');
1344 END IF;
1345
1346 map_header_price_adj_rltn(
1347 P_Header_Price_Adj_rltship_Tbl => P_Header_Price_Adj_rltship_Tbl,
1348 P_operation => l_header_rec.operation,
1349 x_Header_Adj_Assoc_tbl => l_Header_Adj_Assoc_tbl
1350 );
1351
1352 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1353 aso_debug_pub.add('before header sales credit:l_Header_Adj_Assoc_tbl.count: '||l_Header_Adj_Assoc_tbl.count,1,'N');
1354 END IF;
1355
1356 map_header_sales_credits(
1357 P_header_sales_credit_Tbl => P_header_sales_credit_Tbl,
1358 p_operation => p_operation,
1359 p_qte_rec => p_qte_rec,
1360 p_header_operation => l_header_rec.operation,
1361 x_Header_Scredit_tbl => l_Header_Scredit_tbl
1362 );
1363 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1364 aso_debug_pub.add('after header sales credit:l_Header_Scredit_tbl.count: '||l_Header_Scredit_tbl.count,1,'N');
1365 END IF;
1366
1367 -- mapping quote lines to order lines
1368 -- mapping is done based on the index and not on the line id for quotes
1369 -- the line ids should be used for orders
1370
1371 -- initializing all counts for lines
1372 i := 1;
1373 j := 1;
1374 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1375 aso_debug_pub.add('mapping quote lines',1,'N');
1376 END IF;
1377 FOR j in 1..P_line_Shipment_Tbl.count LOOP
1378 found := FND_API.G_FALSE;
1379 FOR k in 1..p_qte_line_tbl.count LOOP
1380
1381 -- kchervel the quantity check should be done before the loop.
1382
1383 IF p_line_shipment_tbl(j).qte_line_index = k THEN
1384
1385 -- check if the line is satisfied by fulfillment (not required any more 02/09
1386
1387 -- EDU
1388 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1389 aso_debug_pub.add('map_quote_to_order- p_qte_line_tbl(k).Commitment_Id: '||p_qte_line_tbl(k).Commitment_Id, 1, 'N');
1390 aso_debug_pub.add('map_quote_to_order- p_qte_line_tbl(k).Agreement_Id: '||p_qte_line_tbl(k).Agreement_Id,1, 'N');
1391 aso_debug_pub.add('map_quote_to_order- p_qte_line_tbl(k).minisite_id: '||p_qte_line_tbl(k).minisite_id,1, 'N');
1392 aso_debug_pub.add('map_quote_to_order- p_qte_rec.minisite_id: '||p_qte_rec.minisite_id,1, 'N');
1393 END IF;
1394 IF p_qte_line_tbl(k).Commitment_Id IS NOT NULL AND
1395 p_qte_line_tbl(k).Commitment_Id <> FND_API.G_MISS_NUM THEN
1396 l_line_tbl(i).Commitment_Id := p_qte_line_tbl(k).Commitment_Id;
1397 END IF;
1398
1399 IF p_qte_line_tbl(k).Agreement_Id IS NOT NULL AND
1400 p_qte_line_tbl(k).Agreement_Id <> FND_API.G_MISS_NUM THEN
1401 l_line_tbl(i).Agreement_Id := p_qte_line_tbl(k).Agreement_Id;
1402 END IF;
1403 -- EDU
1404
1405 IF p_qte_line_tbl(k).Item_Revision IS NOT NULL AND
1406 p_qte_line_tbl(k).Item_Revision <> FND_API.G_MISS_CHAR THEN
1407 l_line_tbl(i).Item_Revision := p_qte_line_tbl(k).Item_Revision;
1408 END IF;
1409
1410 l_line_tbl(i).minisite_id := p_qte_line_tbl(k).minisite_id;
1411
1412 l_line_tbl(i).accounting_rule_id
1413 := p_qte_line_tbl(k).accounting_rule_id;
1414 l_line_tbl(i).attribute1 := p_qte_line_tbl(k).attribute1;
1415 l_line_tbl(i).attribute10 := p_qte_line_tbl(k).attribute10;
1416 l_line_tbl(i).attribute11 := p_qte_line_tbl(k).attribute11;
1417 l_line_tbl(i).attribute12 := p_qte_line_tbl(k).attribute12;
1418 l_line_tbl(i).attribute13 := p_qte_line_tbl(k).attribute13;
1419 l_line_tbl(i).attribute14 := p_qte_line_tbl(k).attribute14;
1420 l_line_tbl(i).attribute15 := p_qte_line_tbl(k).attribute15;
1421 -- for bug 7560676
1422 l_line_tbl(i).attribute16 := p_qte_line_tbl(k).attribute16;
1423 l_line_tbl(i).attribute17 := p_qte_line_tbl(k).attribute17;
1424 l_line_tbl(i).attribute18 := p_qte_line_tbl(k).attribute18;
1425 l_line_tbl(i).attribute19 := p_qte_line_tbl(k).attribute19;
1426 l_line_tbl(i).attribute20 := p_qte_line_tbl(k).attribute20;
1427
1428
1429 l_line_tbl(i).attribute2 := p_qte_line_tbl(k).attribute2;
1430 l_line_tbl(i).attribute3 := p_qte_line_tbl(k).attribute3;
1431 l_line_tbl(i).attribute4 := p_qte_line_tbl(k).attribute4;
1432 l_line_tbl(i).attribute5 := p_qte_line_tbl(k).attribute5;
1433 l_line_tbl(i).attribute6 := p_qte_line_tbl(k).attribute6;
1434 l_line_tbl(i).attribute7 := p_qte_line_tbl(k).attribute7;
1435 l_line_tbl(i).attribute8 := p_qte_line_tbl(k).attribute8;
1436 l_line_tbl(i).attribute9 := p_qte_line_tbl(k).attribute9;
1437 l_line_tbl(i).context := p_qte_line_tbl(k).attribute_category;
1438 l_line_tbl(i).invoicing_rule_id
1439 := p_qte_line_tbl(k).invoicing_rule_id;
1440 l_line_tbl(i).marketing_source_code_id
1441 := p_qte_line_tbl(k).marketing_source_code_id;
1442 l_line_tbl(i).inventory_item_id := p_qte_line_tbl(k).inventory_item_id;
1443 l_line_tbl(i).subinventory := p_qte_line_tbl(k).subinventory;
1444
1445 -- Recurring charge Change
1446 --l_line_tbl(i).charge_periodicity_code := p_qte_line_tbl(k).charge_periodicity_code;
1447
1448 --Bug 16283049
1449 IF p_qte_line_tbl(k).SUBSCRIPTION_ENABLE_FLAG IS NOT NULL AND
1450 p_qte_line_tbl(k).SUBSCRIPTION_ENABLE_FLAG <> FND_API.G_MISS_CHAR THEN
1451
1452 l_line_tbl(i).SUBSCRIPTION_ENABLE_FLAG := p_qte_line_tbl(k).SUBSCRIPTION_ENABLE_FLAG;
1453 END IF;
1454
1455 --ER Bug 12839824
1456 IF p_qte_line_tbl(k).project_id IS NOT NULL AND
1457 p_qte_line_tbl(k).project_id <> FND_API.G_MISS_NUM THEN
1458
1459 l_line_tbl(i).project_id := p_qte_line_tbl(k).project_id;
1460 END IF;
1461
1462 IF p_qte_line_tbl(k).task_id IS NOT NULL AND
1463 p_qte_line_tbl(k).task_id <> FND_API.G_MISS_NUM THEN
1464
1465 l_line_tbl(i).task_id := p_qte_line_tbl(k).task_id;
1466 END IF;
1467
1468 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1469 aso_debug_pub.add('mapq line: l_line_tbl(i).project_id :'||p_qte_line_tbl(k).project_id,1,'N');
1470 aso_debug_pub.add('mapq line: l_line_tbl(i).task_id :'||p_qte_line_tbl(k).task_id,1,'N');
1471 END IF;
1472
1473 IF p_qte_line_tbl(k).invoice_to_cust_account_id <> FND_API.G_MISS_NUM AND
1474 p_qte_line_tbl(k).invoice_to_cust_account_id IS NOT NULL AND
1475 p_qte_line_tbl(k).invoice_to_cust_account_id <> l_cust_account_id THEN
1476 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1477 aso_debug_pub.add('mapq line: before cust_acct_reltn:p_sold_to_cust_account: '||l_cust_account_id,1,'N');
1478 aso_debug_pub.add('mapq line: before cust_acct_reltn:p_related_cust_account: '||p_qte_line_tbl(k).invoice_to_cust_account_id,1,'N');
1479 END IF;
1480 ASO_CHECK_TCA_PVT.Cust_acct_Relationship (
1481 p_api_version => 1.0,
1482 p_sold_to_cust_account => l_cust_account_id,
1483 p_related_cust_account =>p_qte_line_tbl(k).invoice_to_cust_account_id,
1484 p_relationship_type => 'BILL_TO',
1485 x_return_status => l_return_status,
1486 x_msg_count => l_msg_count,
1487 x_msg_data => l_msg_data
1488 );
1489
1490 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1491 aso_debug_pub.add('mapq line: after cust_acct_reltn:l_return_status: '||l_return_status,1,'N');
1492 END IF;
1493 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1494 RAISE FND_API.G_EXC_ERROR;
1495 END IF;
1496
1497 END IF;
1498
1499 IF p_qte_line_tbl(k).invoice_to_cust_account_id is not NULL AND
1500 p_qte_line_tbl(k).invoice_to_cust_account_id <> FND_API.G_MISS_NUM THEN
1501 l_invoice_cust_account_id := p_qte_line_tbl(k).invoice_to_cust_account_id;
1502 ELSE
1503 l_invoice_cust_account_id := l_header_rec.sold_to_org_id;
1504 END IF;
1505
1506 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1507 aso_debug_pub.add('mapq line: before cust_acct_site:l_invoice_cust_account_id: '||l_invoice_cust_account_id,1,'N');
1508 aso_debug_pub.add('mapq line: before cust_acct_site:p_qte_line_tbl(k).invoice_to_party_site_id: '||p_qte_line_tbl(k).invoice_to_party_site_id,1,'N');
1509 END IF;
1510 IF p_qte_line_tbl(k).invoice_to_party_site_id is not NULL
1511 AND p_qte_line_tbl(k).invoice_to_party_site_id <> FND_API.G_MISS_NUM THEN
1512
1513 ASO_CHECK_TCA_PVT.Customer_Account_Site
1514 (
1515 p_api_version => 1.0
1516 ,p_party_site_id => p_qte_line_tbl(k).invoice_to_party_site_id
1517 ,p_acct_site_type => 'BILL_TO'
1518 ,p_cust_account_id => l_invoice_cust_account_id
1519 ,x_cust_acct_site_id => l_ln_inv_cust_acct_site
1520 ,x_return_status => l_return_status
1521 ,x_msg_count => l_msg_count
1522 ,x_msg_data => l_msg_data
1523 ,x_site_use_id => l_line_tbl(i).invoice_to_org_id
1524 );
1525
1526 IF l_line_tbl(i).invoice_to_org_id IS NULL THEN
1527 l_line_tbl(i).invoice_to_org_id := FND_API.G_MISS_NUM;
1528 END IF;
1529
1530 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1531 aso_debug_pub.add('mapq line: after cust_acct_site:l_line_tbl(i).invoice_to_org_id: '||l_line_tbl(i).invoice_to_org_id,1,'N');
1532 aso_debug_pub.add('mapq line: after cust_acct_site:l_ln_inv_cust_acct_site: '||l_ln_inv_cust_acct_site,1,'N');
1533 END IF;
1534 if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1535 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1536 THEN
1537 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_INV_SITE_AC_CRS');
1538 FND_MSG_PUB.ADD;
1539 END IF;
1540 raise FND_API.G_EXC_ERROR;
1541 END IF;
1542
1543 END IF;
1544
1545 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1546 aso_debug_pub.add('mapq line: before Cust_Acct_Contact_Addr:l_invoice_cust_account_id: '||l_invoice_cust_account_id,1,'N');
1547 END IF;
1548
1549 ASO_CHECK_TCA_PVT.Cust_Acct_Contact_Addr(
1550 p_api_version => 1.0,
1551 p_party_site_id => p_qte_line_tbl(k).invoice_to_party_site_id,
1552 p_role_type => 'BILL_TO',
1553 p_cust_account_id => l_invoice_cust_account_id,
1554 p_party_id => p_qte_line_tbl(k).invoice_to_party_id,
1555 p_cust_account_site => l_ln_inv_cust_acct_site,
1556 x_return_status => l_return_status,
1557 x_msg_count => l_msg_count,
1558 x_msg_data => l_msg_data,
1559 x_cust_account_role_id => l_line_tbl(i).invoice_to_contact_id);
1560
1561 IF l_line_tbl(i).invoice_to_contact_id IS NULL THEN
1562 l_line_tbl(i).invoice_to_contact_id := FND_API.G_MISS_NUM;
1563 END IF;
1564
1565 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1566 aso_debug_pub.add('mapq line: after Cust_Acct_Contact_Addr:l_line_tbl(i).invoice_to_contact_id: '||l_line_tbl(i).invoice_to_contact_id,1,'N');
1567 END IF;
1568
1569 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1570 raise FND_API.G_EXC_ERROR;
1571 END IF;
1572
1573 -- end_cust
1574 IF p_qte_line_tbl(k).End_Customer_cust_account_id is not NULL AND
1575 p_qte_line_tbl(k).End_Customer_cust_account_id <> FND_API.G_MISS_NUM THEN
1576 l_End_cust_account_id := p_qte_line_tbl(k).End_Customer_cust_account_id;
1577 ELSE
1578 l_End_cust_account_id := l_header_rec.sold_to_org_id;
1579 END IF;
1580
1581 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1582 aso_debug_pub.add('mapq line: before cust_acct_site:l_End_cust_account_id: '||l_End_cust_account_id,1,'N');
1583 aso_debug_pub.add('mapq line: before cust_acct_site:p_qte_line_tbl(k).End_Customer_party_site_id: '||p_qte_line_tbl(k).End_Customer_party_site_id,1,'N');
1584 END IF;
1585 IF p_qte_line_tbl(k).End_Customer_party_site_id is not NULL
1586 AND p_qte_line_tbl(k).End_Customer_party_site_id <> FND_API.G_MISS_NUM THEN
1587
1588 ASO_CHECK_TCA_PVT.Customer_Account_Site
1589 (
1590 p_api_version => 1.0
1591 ,p_party_site_id => p_qte_line_tbl(k).End_Customer_party_site_id
1592 ,p_acct_site_type => 'END_USER'
1593 ,p_cust_account_id => l_End_cust_account_id
1594 ,x_cust_acct_site_id => l_ln_end_cust_acct_site
1595 ,x_return_status => l_return_status
1596 ,x_msg_count => l_msg_count
1597 ,x_msg_data => l_msg_data
1598 ,x_site_use_id => l_line_tbl(i).End_Customer_site_use_id
1599 );
1600
1601 IF l_line_tbl(i).End_Customer_site_use_id IS NULL THEN
1602 l_line_tbl(i).End_Customer_site_use_id := FND_API.G_MISS_NUM;
1603 END IF;
1604
1605 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1606 aso_debug_pub.add('mapq line: after cust_acct_site:l_line_tbl(i).End_Customer_site_use_id: '||l_line_tbl(i).End_Customer_site_use_id,1,'N');
1607 aso_debug_pub.add('mapq line: after cust_acct_site:l_ln_end_cust_acct_site: '||l_ln_end_cust_acct_site,1,'N');
1608 END IF;
1609 if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1610 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1611 THEN
1612 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_END_SITE_AC_CRS');
1613 FND_MSG_PUB.ADD;
1614 END IF;
1615 raise FND_API.G_EXC_ERROR;
1616 END IF;
1617
1618 l_line_tbl(i).End_Customer_Id := l_End_cust_account_id;
1619
1620 END IF;
1621
1622 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1623 aso_debug_pub.add('mapq line: before Cust_Acct_Contact_Addr:l_End_cust_account_id: '||l_End_cust_account_id,1,'N');
1624 END IF;
1625
1626 ASO_CHECK_TCA_PVT.Cust_Acct_Contact_Addr(
1627 p_api_version => 1.0,
1628 p_party_site_id => p_qte_line_tbl(k).End_Customer_party_site_id,
1629 p_role_type => 'END_USER',
1630 p_cust_account_id => l_End_cust_account_id,
1631 p_party_id => p_qte_line_tbl(k).End_Customer_party_id,
1632 p_cust_account_site => l_ln_end_cust_acct_site,
1633 x_return_status => l_return_status,
1634 x_msg_count => l_msg_count,
1635 x_msg_data => l_msg_data,
1636 x_cust_account_role_id => l_line_tbl(i).End_Customer_contact_id);
1637
1638 IF l_line_tbl(i).End_Customer_contact_id IS NULL THEN
1639 l_line_tbl(i).End_Customer_contact_id := FND_API.G_MISS_NUM;
1640 END IF;
1641
1642 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1643 aso_debug_pub.add('mapq line: after Cust_Acct_Contact_Addr:l_line_tbl(i).End_Customer_contact_id: '||l_line_tbl(i).End_Customer_contact_id,1,'N');
1644 aso_debug_pub.add('mapq line: after Cust_Acct_Contact_Addr:l_line_tbl(i).End_Customer_id: '||l_line_tbl(i).End_Customer_id,1,'N');
1645 END IF;
1646
1647 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1648 raise FND_API.G_EXC_ERROR;
1649 END IF;
1650 -- end_cust
1651
1652 -- item type code in OC is different from OM and this will be defaulted by OM
1653 -- l_line_tbl(i).item_type_code := p_qte_line_tbl(k).item_type_code;
1654 --l_line_tbl(i).line_type_id := p_qte_line_tbl(k).quote_line_type_code;
1655 -- l_line_tbl(i).calculate_price_flag := 'N';
1656
1657 l_line_tbl(i).line_type_id := p_qte_line_tbl(k).order_line_type_id;
1658
1659 -- this piece of code should be in submit_quote. this is done because OM
1660 -- does its defaulting only if it is g_miss and not if it is null
1661
1662 IF l_line_tbl(i).line_type_id is NULL THEN
1663 l_line_tbl(i).line_type_id := FND_API.G_MISS_NUM;
1664 END IF;
1665
1666 l_line_tbl(i).line_category_code := p_qte_line_tbl(k).line_category_code;
1667 l_line_tbl(i).org_id := l_header_rec.org_id;
1668
1669 IF p_qte_line_tbl(k).priced_price_list_id IS NOT NULL AND
1670 p_qte_line_tbl(k).priced_price_list_id <> FND_API.G_MISS_NUM THEN
1671 l_line_tbl(i).price_list_id := p_qte_line_tbl(k).priced_price_list_id;
1672 ELSE
1673 l_line_tbl(i).price_list_id := p_qte_line_tbl(k).price_list_id;
1674 END IF;
1675
1676 IF l_line_tbl(i).price_list_id IS NULL THEN
1677 l_line_tbl(i).price_list_id := FND_API.G_MISS_NUM;
1678 END IF;
1679
1680 l_line_tbl(i).unit_list_price
1681 := p_qte_line_tbl(k).line_list_price;
1682 l_line_tbl(i).unit_selling_price
1683 := p_qte_line_tbl(k).line_quote_price ;
1684
1685 -- l_line_tbl(i).ship_from_org_id := p_qte_line_tbl(k).organization_id;
1686
1687 -- item identifier is set to internal. OC does not use item numbers so it does
1688 -- not matter what type we use.since we always use mtl_system_items i am using
1689 -- 'INT'
1690
1691 l_line_tbl(i).item_identifier_type := 'INT';
1692 l_line_tbl(i).ordered_item_id := l_line_tbl(i).inventory_item_id;
1693
1694 -- the operation code of the line is the same as shipment for create, delete
1695 -- however, for update it is obtained from line directly.
1696 -- for eg: if there is a payment line added then operation at shipment level
1697 -- will be null however it will be update for the line
1698 IF l_header_rec.operation <> OE_GLOBALS.G_OPR_CREATE THEN
1699 l_line_tbl(i).header_id := p_qte_rec.order_id;
1700 END IF;
1701
1702 IF p_operation = 'CREATE' THEN
1703 l_line_tbl(i).operation := OE_GLOBALS.G_OPR_CREATE;
1704 ELSIF p_line_shipment_tbl(j).operation_code = 'CREATE' THEN
1705 l_line_tbl(i).operation := OE_GLOBALS.G_OPR_CREATE;
1706 ELSIF p_line_shipment_tbl(j).operation_code = 'DELETE' THEN
1707 l_line_tbl(i).operation := OE_GLOBALS.G_OPR_DELETE;
1708 l_line_tbl(i).line_id := p_line_shipment_tbl(j).order_line_id;
1709 ELSIF p_qte_line_tbl(k).operation_code = 'UPDATE' THEN
1710 l_line_tbl(i).operation := OE_GLOBALS.G_OPR_UPDATE;
1711 l_line_tbl(i).line_id := p_line_shipment_tbl(j).order_line_id;
1712 ELSIF p_qte_line_tbl(k).operation_code = 'CREATE' THEN
1713 l_line_tbl(i).operation := OE_GLOBALS.G_OPR_CREATE;
1714 END IF;
1715
1716 FOR l in 1..p_qte_line_dtl_tbl.count LOOP
1717
1718
1719 IF (p_qte_line_dtl_tbl(l).qte_line_index = k) THEN
1720
1721 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1722 aso_debug_pub.add('in quote line details',1,'N');
1723 END IF;
1724 l_line_tbl(i).service_duration:=p_qte_line_dtl_tbl(l).service_duration;
1725 l_line_tbl(i).service_period := p_qte_line_dtl_tbl(l).service_period;
1726 l_line_tbl(i).service_start_date:= p_qte_line_tbl(k).start_date_active;
1727 l_line_tbl(i).service_end_date := p_qte_line_tbl(k).end_date_active;
1728 l_line_tbl(i).service_coterminate_flag
1729 := p_qte_line_dtl_tbl(l).service_coterminate_flag;
1730 l_line_tbl(i).unit_list_percent
1731 := p_qte_line_dtl_tbl(l).service_unit_list_percent;
1732 l_line_tbl(i).unit_selling_percent
1733 := p_qte_line_dtl_tbl(l).service_unit_selling_percent;
1734 l_line_tbl(i).unit_percent_base_price
1735 := p_qte_line_dtl_tbl(l).unit_percent_base_price;
1736 l_line_tbl(i).service_reference_type_code
1737 := p_qte_line_dtl_tbl(l).service_ref_type_code;
1738 l_line_tbl(i).service_reference_line_id
1739 := p_qte_line_dtl_tbl(l).service_ref_line_id;
1740 l_line_tbl(i).service_reference_system_id
1741 := p_qte_line_dtl_tbl(l).service_ref_system_id;
1742 --bug8222651
1743 begin
1744 select name into name1 from csi_systems_vl where system_id = p_qte_line_dtl_tbl(l).service_ref_system_id;
1745 EXCEPTION
1746 WHEN NO_DATA_FOUND THEN NULL ;
1747 l_line_tbl(i).service_reference_system := name1;
1748 end;
1749
1750 l_line_tbl(i).service_ref_order_number
1751 := p_qte_line_dtl_tbl(l).service_ref_order_number;
1752 l_line_tbl(i).service_ref_line_number
1753 := p_qte_line_dtl_tbl(l).service_ref_line_number;
1754 l_line_tbl(i).service_ref_shipment_number
1755 := p_qte_line_dtl_tbl(l).service_ref_shipment_numb;
1756 l_line_tbl(i).service_ref_option_number
1757 := p_qte_line_dtl_tbl(l).service_ref_option_numb;
1758 IF p_qte_line_dtl_tbl(l).service_ref_type_code = 'QUOTE' THEN
1759 l_line_tbl(i).service_reference_type_code := 'ORDER';
1760
1761 -- line_id should be G_MISS_NUM. bug 1399679
1762 l_line_tbl(i).service_reference_line_id := FND_API.G_MISS_NUM;
1763 l_line_tbl(i).service_line_index
1764 := ASO_ORDER_INT.Service_Index (
1765 p_qte_line_dtl_tbl(l).quote_line_id ,
1766 p_qte_line_dtl_tbl(l).qte_line_index ,
1767 P_Line_Rltship_Tbl,
1768 p_line_shipment_tbl);
1769 END IF;
1770
1771 IF p_qte_line_dtl_tbl(l).service_ref_type_code = 'ORDER' THEN
1772 IF p_qte_line_dtl_tbl(l).service_ref_line_id IS NULL OR
1773 p_qte_line_dtl_tbl(l).service_ref_line_id = FND_API.G_MISS_NUM THEN
1774 l_line_tbl(i).service_line_index := p_qte_line_dtl_tbl(l).service_ref_qte_line_index;
1775 END IF;
1776 END IF;
1777
1778
1779 l_line_tbl(i).reference_header_id
1780 := p_qte_line_dtl_tbl(l).return_ref_header_id;
1781 l_line_tbl(i).reference_line_id
1782 := p_qte_line_dtl_tbl(l).return_ref_line_id;
1783 l_line_tbl(i).reference_type
1784 := p_qte_line_dtl_tbl(l).return_ref_type;
1785
1786 IF (p_qte_line_dtl_tbl(l).return_attribute1 is null or
1787 p_qte_line_dtl_tbl(l).return_attribute1 = FND_API.G_MISS_CHAR) AND
1788 (p_qte_line_dtl_tbl(l).return_ref_header_id is not null AND
1789 p_qte_line_dtl_tbl(l).return_ref_header_id <> FND_API.G_MISS_NUM) Then
1790
1791 l_line_tbl(i).return_attribute1
1792 := p_qte_line_dtl_tbl(l).return_ref_header_id;
1793 ELSE
1794 l_line_tbl(i).return_attribute1
1795 := p_qte_line_dtl_tbl(l).return_attribute1;
1796 END IF;
1797
1798 l_line_tbl(i).return_attribute10
1799 := p_qte_line_dtl_tbl(l).return_attribute10;
1800 l_line_tbl(i).return_attribute11
1801 := p_qte_line_dtl_tbl(l).return_attribute11;
1802 l_line_tbl(i).return_attribute12
1803 := p_qte_line_dtl_tbl(l).return_attribute12;
1804 l_line_tbl(i).return_attribute13
1805 := p_qte_line_dtl_tbl(l).return_attribute13;
1806 l_line_tbl(i).return_attribute14
1807 := p_qte_line_dtl_tbl(l).return_attribute14;
1808 l_line_tbl(i).return_attribute15
1809 := p_qte_line_dtl_tbl(l).return_attribute15;
1810
1811 IF (p_qte_line_dtl_tbl(l).return_attribute2 is null or
1812 p_qte_line_dtl_tbl(l).return_attribute2 = FND_API.G_MISS_CHAR) AND
1813 (p_qte_line_dtl_tbl(l).return_ref_line_id is not null AND
1814 p_qte_line_dtl_tbl(l).return_ref_line_id <> FND_API.G_MISS_NUM) Then
1815
1816 l_line_tbl(i).return_attribute2
1817 := p_qte_line_dtl_tbl(l).return_ref_line_id;
1818 ELSE
1819 l_line_tbl(i).return_attribute2
1820 := p_qte_line_dtl_tbl(l).return_attribute2;
1821 END IF;
1822
1823 l_line_tbl(i).return_attribute3
1824 := p_qte_line_dtl_tbl(l).return_attribute3;
1825 l_line_tbl(i).return_attribute4
1826 := p_qte_line_dtl_tbl(l).return_attribute4;
1827 l_line_tbl(i).return_attribute5
1828 := p_qte_line_dtl_tbl(l).return_attribute5;
1829 l_line_tbl(i).return_attribute6
1830 := p_qte_line_dtl_tbl(l).return_attribute6;
1831 l_line_tbl(i).return_attribute7
1832 := p_qte_line_dtl_tbl(l).return_attribute7;
1833 l_line_tbl(i).return_attribute8
1834 := p_qte_line_dtl_tbl(l).return_attribute8;
1835 l_line_tbl(i).return_attribute9
1836 := p_qte_line_dtl_tbl(l).return_attribute9;
1837
1838 IF upper(p_qte_line_dtl_tbl(l).return_ref_type) = 'SALES ORDER' OR
1839 upper(p_qte_line_dtl_tbl(l).return_ref_type) = 'ORDER' THEN
1840 l_line_tbl(i).return_context
1841 := 'ORDER';
1842 ELSE
1843 l_line_tbl(i).return_context
1844 := p_qte_line_dtl_tbl(l).return_attribute_category;
1845 END IF;
1846
1847 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1848 aso_debug_pub.add('l_ret_reason_code_prof: '||l_ret_reason_code_prof,1,'N');
1849 END IF;
1850
1851 IF p_qte_line_tbl(k).line_category_code = 'RETURN' THEN
1852
1853 -- Default return reason code from profile
1854 IF (p_qte_line_dtl_tbl(l).return_reason_code IS NULL OR
1855 p_qte_line_dtl_tbl(l).return_reason_code = FND_API.G_MISS_CHAR) THEN
1856 IF(l_ret_reason_code_prof IS NULL) THEN
1857 l_return_status := FND_API.G_RET_STS_ERROR;
1858 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1859 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
1860 FND_MESSAGE.Set_Token('COLUMN', 'RETURN_REASON_CODE', FALSE);
1861 FND_MSG_PUB.ADD;
1862 RAISE FND_API.G_EXC_ERROR;
1863 END IF;
1864 ELSE
1865 l_line_tbl(i).return_reason_code := l_ret_reason_code_prof;
1866 END IF;
1867 ELSE
1868 l_line_tbl(i).return_reason_code
1869 := p_qte_line_dtl_tbl(l).return_reason_code;
1870
1871 END IF;
1872
1873 END IF;
1874
1875 -- for configuration fields
1876
1877 l_line_tbl(i).component_code
1878 := p_qte_line_dtl_tbl(l).component_code;
1879 /* FOR BUG 6737851 , added OR condition( p_qte_line_tbl(k).item_type_code = 'ATO' IN THE FOLLOWING IF CLAUSE) */
1880 IF p_qte_line_tbl(k).item_type_code = 'MDL' OR p_qte_line_tbl(k).item_type_code = 'ATO' THEN
1881 l_line_tbl(i).top_model_line_index := i ; -- the index is same as the line index for a model item 1;
1882 l_line_tbl(i).link_to_line_index := null;
1883 l_line_tbl(i).config_header_id
1884 := p_qte_line_dtl_tbl(l).config_header_id;
1885 l_line_tbl(i).config_rev_nbr
1886 := p_qte_line_dtl_tbl(l).config_revision_num;
1887 l_line_tbl(i).configuration_id
1888 := p_qte_line_dtl_tbl(l).config_item_id;
1889 l_line_tbl(i).sort_order
1890 := p_qte_line_dtl_tbl(l).bom_sort_order;
1891
1892 -- Recurring charge Change
1893 l_line_tbl(i).charge_periodicity_code := null;
1894
1895
1896 END IF;
1897
1898 IF p_qte_line_tbl(k).item_type_code = 'CFG' THEN
1899
1900 -- Recurring charge Change
1901 l_line_tbl(i).charge_periodicity_code := p_qte_line_tbl(k).charge_periodicity_code;
1902
1903
1904 l_line_tbl(i).config_header_id
1905 := p_qte_line_dtl_tbl(l).config_header_id;
1906 l_line_tbl(i).config_rev_nbr
1907 := p_qte_line_dtl_tbl(l).config_revision_num;
1908 l_line_tbl(i).configuration_id
1909 := p_qte_line_dtl_tbl(l).config_item_id;
1910 l_line_tbl(i).sort_order
1911 := p_qte_line_dtl_tbl(l).bom_sort_order;
1912
1913 option_item := k;
1914 FOR count_1 in 1..p_Line_Rltship_TBL.count LOOP
1915 FOR count_2 in 1..p_Line_Rltship_TBL.count LOOP
1916 if ( p_Line_Rltship_TBL(count_2).related_qte_line_index = option_item) then
1917 parent := p_Line_Rltship_TBL(count_2).qte_line_index;
1918 EXIT;
1919 end if;
1920 END LOOP;
1921 if parent = option_item then
1922 exit;
1923 else
1924 option_item := parent;
1925 end if;
1926 END LOOP;
1927
1928 -- figure OUT NOCOPY /* file.sql.39 change */ the shipment line index for the corresponding qte line index.
1929 -- this will be the index to the order line.
1930 FOR count_2 in 1..p_line_shipment_tbl.count LOOP
1931 if p_line_shipment_tbl(count_2).qte_line_index = parent THEN
1932 l_line_tbl(i).top_model_line_index := count_2;
1933 exit;
1934 end if;
1935 END LOOP;
1936
1937 option_item := k;
1938 parent := option_item;
1939
1940 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1941 aso_debug_pub.add('p_Line_Rltship_TBL.count is '||p_Line_Rltship_TBL.count,1 ,'N');
1942 END IF;
1943
1944 FOR count_2 in 1..p_Line_Rltship_TBL.count LOOP
1945 if ( p_Line_Rltship_TBL(count_2).related_qte_line_index
1946 = option_item and p_Line_Rltship_TBL(count_2).relationship_type_code = 'CONFIG') then
1947 parent := p_Line_Rltship_TBL(count_2).qte_line_index;
1948 EXIT;
1949 end if;
1950 END LOOP;
1951
1952 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1953 aso_debug_pub.add('parent item is '||parent,1,'N');
1954 END IF;
1955
1956 IF (parent <> option_item) THEN
1957 -- figure OUT NOCOPY /* file.sql.39 change */ the shipment line index for the corresponding qte line index.
1958 -- this will be the index to the order line.
1959 FOR count_2 in 1..p_line_shipment_tbl.count LOOP
1960 if p_line_shipment_tbl(count_2).qte_line_index = parent THEN
1961 l_line_tbl(i).link_to_line_index := count_2;
1962 exit;
1963 end if;
1964 END LOOP;
1965 END IF;
1966
1967 END IF; -- configuration fields
1968
1969 END IF;
1970 END LOOP; -- line details
1971
1972 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1973 aso_debug_pub.add('l_ret_reason_code_prof: '||l_ret_reason_code_prof,1,'N');
1974 END IF;
1975
1976 IF p_qte_line_tbl(k).line_category_code = 'RETURN' THEN
1977 -- Default return reason code from profile
1978 IF (l_line_tbl(i).return_reason_code IS NULL OR
1979 l_line_tbl(i).return_reason_code = FND_API.G_MISS_CHAR) THEN
1980 IF(l_ret_reason_code_prof IS NULL) THEN
1981 l_return_status := FND_API.G_RET_STS_ERROR;
1982 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1983 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
1984 FND_MESSAGE.Set_Token('COLUMN', 'RETURN_REASON_CODE', FALSE);
1985 FND_MSG_PUB.ADD;
1986 RAISE FND_API.G_EXC_ERROR;
1987 END IF;
1988 ELSE
1989 l_line_tbl(i).return_reason_code := l_ret_reason_code_prof;
1990 END IF;
1991
1992 END IF;
1993
1994 END IF;
1995
1996 IF (NVL(l_om_defaulting_prof, 'N') = 'Y') THEN
1997 IF p_line_shipment_tbl(j).fob_code IS NULL THEN
1998 l_line_tbl(i).fob_point_code := FND_API.G_MISS_CHAR;
1999 ELSE -- 3465720
2000 l_line_tbl(i).fob_point_code := p_line_shipment_tbl(j).fob_code;
2001 END IF;
2002 IF p_line_shipment_tbl(j).freight_terms_code IS NULL THEN
2003 l_line_tbl(i).freight_terms_code := FND_API.G_MISS_CHAR;
2004 ELSE -- 3465720
2005 l_line_tbl(i).freight_terms_code := p_line_shipment_tbl(j).freight_terms_code;
2006 END IF;
2007 IF p_line_shipment_tbl(j).shipment_priority_code IS NULL THEN
2008 l_line_tbl(i).shipment_priority_code := FND_API.G_MISS_CHAR;
2009 ELSE -- 3465720
2010 l_line_tbl(i).shipment_priority_code := p_line_shipment_tbl(j).shipment_priority_code;
2011 END IF;
2012 IF p_line_shipment_tbl(j).ship_method_code IS NULL THEN
2013 l_line_tbl(i).shipping_method_code := FND_API.G_MISS_CHAR;
2014 ELSE -- 3582285
2015 l_line_tbl(i).shipping_method_code := p_line_shipment_tbl(j).ship_method_code;
2016 END IF;
2017 ELSE
2018 l_line_tbl(i).fob_point_code := p_line_shipment_tbl(j).fob_code;
2019 l_line_tbl(i).freight_terms_code
2020 := p_line_shipment_tbl(j).freight_terms_code;
2021 l_line_tbl(i).shipment_priority_code
2022 := p_line_shipment_tbl(j).shipment_priority_code;
2023 l_line_tbl(i).shipping_method_code
2024 := p_line_shipment_tbl(j).ship_method_code;
2025 END IF;
2026
2027 l_line_tbl(i).freight_carrier_code
2028 := p_line_shipment_tbl(j).freight_carrier_code;
2029 --bug 1921958
2030 IF (p_line_shipment_tbl(j).shipping_instructions IS NULL) AND
2031 (l_om_defaulting_prof = 'Y') THEN
2032 l_line_tbl(i).shipping_instructions
2033 := FND_API.G_MISS_CHAR;
2034 ELSE
2035 l_line_tbl(i).shipping_instructions
2036 := rtrim(p_line_shipment_tbl(j).shipping_instructions);
2037 END IF;
2038
2039 IF (p_line_shipment_tbl(j).packing_instructions IS NULL) AND
2040 (l_om_defaulting_prof = 'Y') THEN
2041 l_line_tbl(i).packing_instructions
2042 := FND_API.G_MISS_CHAR;
2043 ELSE
2044 l_line_tbl(i).packing_instructions
2045 := rtrim(p_line_shipment_tbl(j).packing_instructions);
2046 END IF;
2047 --bug 1921958
2048 IF p_line_shipment_tbl(j).schedule_ship_date IS NOT NULL THEN
2049 l_line_tbl(i).schedule_ship_date
2050 := p_line_shipment_tbl(j).schedule_ship_date;
2051 END IF;
2052 IF p_line_shipment_tbl(j).request_date IS NOT NULL THEN
2053 l_line_tbl(i).request_date
2054 := p_line_shipment_tbl(j).request_date;
2055 END IF;
2056 -- bug 1783862 hyang
2057 IF p_line_shipment_tbl(j).promise_date IS NOT NULL THEN
2058 l_line_tbl(i).promise_date
2059 := p_line_shipment_tbl(j).promise_date;
2060 END IF;
2061 -- bug 1783862 hyang
2062 l_line_tbl(i).ordered_quantity := p_line_shipment_tbl(j).quantity;
2063 l_line_tbl(i).order_quantity_uom := p_qte_line_tbl(k).uom_code;
2064
2065 -- bug 4916969
2066 IF (p_line_shipment_tbl(j).demand_class_code is not null and p_line_shipment_tbl(j).demand_class_code <> fnd_api.g_miss_char) then
2067 l_line_tbl(i).demand_class_code := p_line_shipment_tbl(j).demand_class_code;
2068 end if;
2069
2070 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2071 aso_debug_pub.add('p_line_shipment_tbl(j).Ship_From_Org_Id: '||p_line_shipment_tbl(j).Ship_From_Org_Id,1,'N');
2072 END IF;
2073
2074 IF p_line_shipment_tbl(j).Ship_From_Org_Id IS NOT NULL AND
2075 p_line_shipment_tbl(j).Ship_From_Org_Id <> FND_API.G_MISS_NUM THEN
2076 l_line_tbl(i).ship_from_org_id := p_line_shipment_tbl(j).Ship_From_Org_Id;
2077 END IF;
2078
2079 IF p_line_shipment_tbl(j).ship_to_cust_account_id <> FND_API.G_MISS_NUM AND
2080 p_line_shipment_tbl(j).ship_to_cust_account_id IS NOT NULL AND
2081 p_line_shipment_tbl(j).ship_to_cust_account_id <> l_cust_account_id THEN
2082 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2083 aso_debug_pub.add('before cust_acct_reltn:p_sold_to_cust_account: '||l_cust_account_id,1,'N');
2084 aso_debug_pub.add('before cust_acct_reltn:p_related_cust_account: '||p_line_shipment_tbl(j).ship_to_cust_account_id,1,'N');
2085 END IF;
2086 ASO_CHECK_TCA_PVT.Cust_acct_Relationship (
2087 p_api_version => 1.0,
2088 p_sold_to_cust_account => l_cust_account_id,
2089 p_related_cust_account =>p_line_shipment_tbl(j).ship_to_cust_account_id,
2090 p_relationship_type => 'SHIP_TO',
2091 x_return_status => l_return_status,
2092 x_msg_count => l_msg_count,
2093 x_msg_data => l_msg_data
2094 );
2095 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2096 aso_debug_pub.add('after cust_acct_reltn:l_return_status: '||l_return_status,1,'N');
2097 END IF;
2098
2099 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2100 RAISE FND_API.G_EXC_ERROR;
2101 END IF;
2102
2103 END IF;
2104
2105 IF p_line_shipment_tbl(j).ship_to_cust_account_id is not NULL AND
2106 p_line_shipment_tbl(j).ship_to_cust_account_id <> FND_API.G_MISS_NUM THEN
2107 l_ship_cust_account_id := p_line_shipment_tbl(j).ship_to_cust_account_id;
2108 ELSE
2109 l_ship_cust_account_id := l_header_rec.sold_to_org_id;
2110 END IF;
2111
2112 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2113 aso_debug_pub.add('mapq line: before cust_acct_site:l_ship_cust_account_id: '||l_ship_cust_account_id,1,'N');
2114 aso_debug_pub.add('p_line_shipment_tbl(j).ship_to_party_site_id: '||p_line_shipment_tbl(j).ship_to_party_site_id,1,'N');
2115 END IF;
2116 IF p_line_shipment_tbl(j).ship_to_party_site_id is not NULL AND
2117 p_line_shipment_tbl(j).ship_to_party_site_id <> FND_API.G_MISS_NUM THEN
2118
2119 ASO_CHECK_TCA_PVT.Customer_Account_Site
2120 (
2121 p_api_version => 1.0
2122 ,p_party_site_id => p_line_shipment_tbl(j).ship_to_party_site_id
2123 ,p_acct_site_type => 'SHIP_TO'
2124 ,p_cust_account_id => l_ship_cust_account_id
2125 ,x_cust_acct_site_id => l_ln_shp_cust_acct_site
2126 ,x_return_status => l_return_status
2127 ,x_msg_count => l_msg_count
2128 ,x_msg_data => l_msg_data
2129 ,x_site_use_id => l_line_tbl(i).ship_to_org_id
2130 );
2131
2132 IF l_line_tbl(i).ship_to_org_id IS NULL THEN
2133 l_line_tbl(i).ship_to_org_id := FND_API.G_MISS_NUM;
2134 END IF;
2135
2136 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2137 aso_debug_pub.add('mapq line: after cust_acct_site:l_line_tbl(i).ship_to_org_id: '||l_line_tbl(i).ship_to_org_id,1,'N');
2138 aso_debug_pub.add('mapq line: after cust_acct_site:l_ln_shp_cust_acct_site: '||l_ln_shp_cust_acct_site,1,'N');
2139 END IF;
2140 if l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2141 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2142 THEN
2143 FND_MESSAGE.Set_Name('ASO', 'ASO_VALIDATE_INV_SITE_AC_CRS');
2144 FND_MSG_PUB.ADD;
2145 END IF;
2146 raise FND_API.G_EXC_ERROR;
2147 END IF;
2148
2149 END IF;
2150
2151 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2152 aso_debug_pub.add('p_line_shipment_tbl(j).ship_to_party_id: '||p_line_shipment_tbl(j).ship_to_party_id,1,'N');
2153 aso_debug_pub.add('p_line_shipment_tbl(j).ship_to_party_site_id: '||p_line_shipment_tbl(j).ship_to_party_site_id,1,'N');
2154 aso_debug_pub.add('mapq line: before Cust_Acct_Contact_Addr:l_ship_cust_account_id: '||l_ship_cust_account_id,1,'N');
2155 END IF;
2156
2157 ASO_CHECK_TCA_PVT.Cust_Acct_Contact_Addr(
2158 p_api_version => 1.0,
2159 p_party_site_id => p_line_shipment_tbl(j).ship_to_party_site_id,
2160 p_role_type => 'SHIP_TO',
2161 p_cust_account_id => l_ship_cust_account_id,
2162 p_party_id => p_line_shipment_tbl(j).ship_to_party_id,
2163 p_cust_account_site => l_ln_shp_cust_acct_site,
2164 x_return_status => l_return_status,
2165 x_msg_count => l_msg_count,
2166 x_msg_data => l_msg_data,
2167 x_cust_account_role_id => l_line_tbl(i).ship_to_contact_id);
2168
2169 IF l_line_tbl(i).ship_to_contact_id IS NULL THEN
2170 l_line_tbl(i).ship_to_contact_id := FND_API.G_MISS_NUM;
2171 END IF;
2172
2173 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2174 aso_debug_pub.add('mapq line: after Cust_Acct_Contact_Addr:l_line_tbl(i).ship_to_contact_id: '||l_line_tbl(i).ship_to_contact_id,1,'N');
2175 END IF;
2176
2177 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2178 raise FND_API.G_EXC_ERROR;
2179 END IF;
2180
2181 l_line_tbl(i).source_document_id := p_line_shipment_tbl(j).quote_header_id;
2182 l_line_tbl(i).source_document_line_id
2183 := p_line_shipment_tbl(j).shipment_id;
2184 l_line_tbl(i).source_document_type_id
2185 := l_header_rec.source_document_type_id;
2186 l_line_tbl(i).orig_sys_document_ref := l_header_rec.orig_sys_document_ref;
2187
2188 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2189 aso_debug_pub.add('l_line_tbl(i).orig_sys_document_ref: '||l_line_tbl(i).orig_sys_document_ref,1,'N');
2190 END IF;
2191
2192 IF p_qte_line_tbl(k).ui_line_number IS NOT NULL AND
2193 p_qte_line_tbl(k).ui_line_number <> FND_API.G_MISS_CHAR THEN
2194 l_line_tbl(i).orig_sys_line_ref := p_qte_line_tbl(k).ui_line_number;
2195
2196 ELSIF p_qte_line_tbl(k).line_number IS NOT NULL
2197 AND p_qte_line_tbl(k).line_number <> FND_API.G_MISS_NUM THEN
2198
2199 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2200 aso_debug_pub.add('p_qte_line_tbl(k).line_number: '||p_qte_line_tbl(k).line_number,1,'N');
2201 END IF;
2202
2203 l_line_tbl(i).orig_sys_line_ref := to_char(p_qte_line_tbl(k).line_number);
2204
2205 END IF;
2206
2207 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2208 aso_debug_pub.add('l_line_tbl(i).orig_sys_line_ref: '||l_line_tbl(i).orig_sys_line_ref,1,'N');
2209 END IF;
2210
2211 -- must have both the index values for create
2212
2213 l_ln_total_tax_amount := 0;
2214
2215 FOR l in 1..p_line_tax_detail_tbl.count LOOP
2216
2217 IF (p_line_tax_detail_tbl(l).qte_line_index = k AND p_line_tax_detail_tbl(l).shipment_index = j) then
2218
2219 l_line_tbl(i).tax_exempt_flag := p_line_tax_detail_tbl(l).tax_exempt_flag;
2220
2221 /*IF nvl(p_line_tax_detail_tbl(l).tax_exempt_flag,'S') = 'E' THEN clause is created for bug#6781917*/
2222 IF nvl(p_line_tax_detail_tbl(l).tax_exempt_flag,'S') = 'E' THEN
2223
2224 l_line_tbl(i).tax_exempt_number := p_line_tax_detail_tbl(l).tax_exempt_number;
2225 --l_line_tbl(i).tax_exempt_reason_code := p_line_tax_detail_tbl(l).tax_exempt_reason_code;
2226
2227 IF l_line_tbl(i).tax_exempt_reason_code IS NULL THEN
2228 OPEN C_GET_TAX_REASONCODE(p_line_tax_detail_tbl(l).quote_header_id);
2229 FETCH C_GET_TAX_REASONCODE INTO l_line_tbl(i).tax_exempt_reason_code;
2230 CLOSE C_GET_TAX_REASONCODE;
2231 END IF;
2232 END IF;
2233
2234 --l_line_tbl(i).tax_point_code := p_line_tax_detail_tbl(l).tax_group_code;
2235 l_line_tbl(i).tax_date := p_line_tax_detail_tbl(l).tax_date;
2236 l_line_tbl(i).tax_rate := p_line_tax_detail_tbl(l).tax_rate;
2237 --l_line_tbl(i).tax_value := p_line_tax_detail_tbl(l).tax_amount;
2238 --l_line_tbl(i).tax_rate_id := p_line_tax_detail_tbl(l).tax_rate_id;
2239
2240 if nvl(p_line_tax_detail_tbl(l).tax_inclusive_flag, 'N') <> 'Y' then
2241 l_ln_total_tax_amount := l_ln_total_tax_amount + nvl( p_line_tax_detail_tbl(l).tax_amount,0);
2242 end if;
2243
2244 --Pass the tax records in the OM price adjustment table
2245 l_line_adj_tbl_count := l_Line_Adj_tbl.count;
2246
2247 l_Line_Adj_tbl(l_line_adj_tbl_count + 1).price_adjustment_id := FND_API.G_MISS_NUM;
2248 --l_Line_Adj_tbl(l_line_adj_tbl_count + 1).header_id := FND_API.G_MISS_NUM;
2249 --l_Line_Adj_tbl(l_line_adj_tbl_count + 1).line_id := FND_API.G_MISS_NUM;
2250 l_Line_Adj_tbl(l_line_adj_tbl_count + 1).line_index := i;
2251 --l_Line_adj_rec.tax_code := l_tax_rate_code; --This is for 11i
2252 l_Line_Adj_tbl(l_line_adj_tbl_count + 1).tax_rate_id := p_line_tax_detail_tbl(l).tax_rate_id; -- This is for R12
2253
2254 l_Line_Adj_tbl(l_line_adj_tbl_count + 1).operand := p_line_tax_detail_tbl(l).tax_rate;
2255 l_Line_Adj_tbl(l_line_adj_tbl_count + 1).adjusted_amount := p_line_tax_detail_tbl(l).tax_amount;
2256 l_Line_Adj_tbl(l_line_adj_tbl_count + 1).automatic_flag := 'N';
2257 l_Line_Adj_tbl(l_line_adj_tbl_count + 1).list_line_type_code := 'TAX';
2258 l_Line_Adj_tbl(l_line_adj_tbl_count + 1).arithmetic_operator := 'AMT';
2259 l_Line_Adj_tbl(l_line_adj_tbl_count + 1).operation := OE_GLOBALS.g_opr_create;
2260
2261 if aso_debug_pub.g_debug_flag = 'Y' then
2262
2263 aso_debug_pub.add('l_line_tbl('||i||').tax_exempt_flag: '||l_line_tbl(i).tax_exempt_flag,1,'N');
2264 aso_debug_pub.add('l_line_tbl('||i||').tax_exempt_number: '||l_line_tbl(i).tax_exempt_number,1,'N');
2265 aso_debug_pub.add('l_line_tbl('||i||').tax_exempt_reason_code: '||l_line_tbl(i).tax_exempt_reason_code,1,'N');
2266 aso_debug_pub.add('l_line_tbl('||i||').tax_date: ' ||l_line_tbl(i).tax_date,1,'N');
2267 aso_debug_pub.add('l_line_tbl('||i||').tax_rate: ' ||l_line_tbl(i).tax_rate,1,'N');
2268 aso_debug_pub.add('l_line_tbl('||i||').tax_value: ' ||l_line_tbl(i).tax_value,1,'N');
2269
2270 end if;
2271
2272 /*
2273 if aso_debug_pub.g_debug_flag = 'Y' then
2274
2275 aso_debug_pub.add('l_Line_Adj_tbl('||l_line_adj_tbl_count + 1||').price_adjustment_id: '||l_Line_Adj_tbl(l_line_adj_tbl_count + 1).price_adjustment_id,1,'N');
2276 aso_debug_pub.add('l_Line_Adj_tbl('||l_line_adj_tbl_count + 1||').line_index: '||l_Line_Adj_tbl(l_line_adj_tbl_count + 1).line_index,1,'N');
2277 aso_debug_pub.add('l_Line_Adj_tbl('||l_line_adj_tbl_count + 1||').tax_rate_id: '||l_Line_Adj_tbl(l_line_adj_tbl_count + 1).tax_rate_id,1,'N');
2278 aso_debug_pub.add('l_Line_Adj_tbl('||l_line_adj_tbl_count + 1||').operand: '||l_Line_Adj_tbl(l_line_adj_tbl_count + 1).operand,1,'N');
2279 aso_debug_pub.add('l_Line_Adj_tbl('||l_line_adj_tbl_count + 1||').adjusted_amount: '||l_Line_Adj_tbl(l_line_adj_tbl_count + 1).adjusted_amount,1,'N');
2280 aso_debug_pub.add('l_Line_Adj_tbl('||l_line_adj_tbl_count + 1||').automatic_flag: '||l_Line_Adj_tbl(l_line_adj_tbl_count + 1).automatic_flag,1,'N');
2281 aso_debug_pub.add('l_Line_Adj_tbl('||l_line_adj_tbl_count + 1||').list_line_type_code: '||l_Line_Adj_tbl(l_line_adj_tbl_count + 1).list_line_type_code,1,'N');
2282 aso_debug_pub.add('l_Line_Adj_tbl('||l_line_adj_tbl_count + 1||').arithmetic_operator: '||l_Line_Adj_tbl(l_line_adj_tbl_count + 1).arithmetic_operator,1,'N');
2283 aso_debug_pub.add('l_Line_Adj_tbl('||l_line_adj_tbl_count + 1||').operation: '||l_Line_Adj_tbl(l_line_adj_tbl_count + 1).operation,1,'N');
2284
2285 end if;
2286
2287 */
2288 END IF;
2289
2290 END LOOP;
2291
2292 l_line_tbl(i).tax_value := l_ln_total_tax_amount;
2293
2294 if aso_debug_pub.g_debug_flag = 'Y' then
2295
2296 aso_debug_pub.add('l_line_tbl('||i||').tax_exempt_flag: '||l_line_tbl(i).tax_exempt_flag,1,'N');
2297 aso_debug_pub.add('l_line_tbl('||i||').tax_exempt_number: '||l_line_tbl(i).tax_exempt_number,1,'N');
2298 aso_debug_pub.add('l_line_tbl('||i||').tax_exempt_reason_code: '||l_line_tbl(i).tax_exempt_reason_code,1,'N');
2299 aso_debug_pub.add('l_line_tbl('||i||').tax_date: ' ||l_line_tbl(i).tax_date,1,'N');
2300 aso_debug_pub.add('l_line_tbl('||i||').tax_rate: ' ||l_line_tbl(i).tax_rate,1,'N');
2301 aso_debug_pub.add('l_line_tbl('||i||').tax_value: ' ||l_line_tbl(i).tax_value,1,'N');
2302
2303
2304 for p in 1..l_Line_Adj_tbl.count loop
2305
2306 aso_debug_pub.add('l_Line_Adj_tbl('||p||').price_adjustment_id: '||l_Line_Adj_tbl(p).price_adjustment_id,1,'N');
2307 aso_debug_pub.add('l_Line_Adj_tbl('||p||').line_index: '||l_Line_Adj_tbl(p).line_index,1,'N');
2308 aso_debug_pub.add('l_Line_Adj_tbl('||p||').tax_rate_id: '||l_Line_Adj_tbl(p).tax_rate_id,1,'N');
2309 aso_debug_pub.add('l_Line_Adj_tbl('||p||').operand: '||l_Line_Adj_tbl(p).operand,1,'N');
2310 aso_debug_pub.add('l_Line_Adj_tbl('||p||').adjusted_amount: '||l_Line_Adj_tbl(p).adjusted_amount,1,'N');
2311 aso_debug_pub.add('l_Line_Adj_tbl('||p||').automatic_flag: '||l_Line_Adj_tbl(p).automatic_flag,1,'N');
2312 aso_debug_pub.add('l_Line_Adj_tbl('||p||').list_line_type_code: '||l_Line_Adj_tbl(p).list_line_type_code,1,'N');
2313 aso_debug_pub.add('l_Line_Adj_tbl('||p||').arithmetic_operator: '||l_Line_Adj_tbl(p).arithmetic_operator,1,'N');
2314 aso_debug_pub.add('l_Line_Adj_tbl('||p||').operation: '||l_Line_Adj_tbl(p).operation,1,'N');
2315
2316 end loop;
2317
2318 end if;
2319 -- tax
2320
2321 IF (l_line_tbl(i).top_model_line_index is NULL OR
2322 l_line_tbl(i).top_model_line_index = FND_API.G_MISS_NUM) AND
2323 l_reservation_lvl_prof = 'AUTO_ORDER' THEN
2324
2325 -- initialize for each line
2326 l_line_scheduling_level := ' ';
2327 IF l_line_tbl(i).line_type_id is not null AND
2328 l_line_tbl(i).line_type_id <> FND_API.G_MISS_NUM then
2329 OPEN scheduling_level_cur(l_line_tbl(i).line_type_id);
2330 FETCH scheduling_level_cur INTO l_line_scheduling_level;
2331 CLOSE scheduling_level_cur;
2332 END IF;
2333 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2334 aso_debug_pub.add('l_line_tbl(i).line_type_id = ' ||
2335 l_line_tbl(i).line_type_id,1,'N');
2336
2337 aso_debug_pub.add('l_order_scheduling_level = ' ||
2338 l_order_scheduling_level,1,'N');
2339 aso_debug_pub.add('l_line_scheduling_level = ' ||
2340 l_line_scheduling_level,1,'N');
2341 END IF;
2342
2343 -- a value of 'TWO' for scheduling level means that the transaction type
2344 -- doesn't allow reservations.
2345 IF l_order_scheduling_level <> 'TWO' AND
2346 l_line_scheduling_level <> 'TWO' then
2347 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2348 aso_debug_pub.add('setting schedule action to reserve',1,'N');
2349 END IF;
2350 l_line_tbl(i).schedule_action_code
2351 := OE_ORDER_SCH_UTIL.OESCH_ACT_RESERVE;
2352 END IF;
2353 END IF; -- reservation
2354
2355 IF p_calculate_price_flag = FND_API.G_FALSE THEN
2356 l_line_tbl(i).calculate_price_flag := 'N';
2357 l_line_tbl(i).pricing_quantity_uom := l_line_tbl(i).order_quantity_uom;
2358 l_line_tbl(i).pricing_quantity := l_line_tbl(i).ordered_quantity;
2359 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2360 aso_debug_pub.add('l_line_tbl(i).pricing_quantity_uom: '||l_line_tbl(i).pricing_quantity_uom,1,'N');
2361 aso_debug_pub.add('l_line_tbl(i).pricing_quantity: '||l_line_tbl(i).pricing_quantity,1,'N');
2362 END IF;
2363 ELSE
2364 l_line_tbl(i).calculate_price_flag := 'Y';
2365 END IF; -- pricing
2366
2367 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2368 aso_debug_pub.add('before line price att',1,'Y');
2369 END IF;
2370
2371 -- pricing attributes
2372
2373 map_line_price_att(
2374 p_line_price_attributes_tbl => p_line_price_attributes_tbl,
2375 p_line_index => i,
2376 p_qte_line_index => k,
2377 p_operation => l_line_tbl(i).operation,
2378 x_line_price_att_tbl => l_line_price_att_tbl
2379 );
2380
2381 l_line_price_adj_rltship_tbl := P_Line_Price_Adj_rltship_Tbl;
2382
2383 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2384 aso_debug_pub.add('after line price att:l_line_price_att_tbl.count: '||l_line_price_att_tbl.count,1,'N');
2385 aso_debug_pub.add('before map_ln_adj:l_Line_Price_Adj_rltship_Tbl.count: '||l_Line_Price_Adj_rltship_Tbl.count,1,'N');
2386 END IF;
2387
2388 map_line_price_adj(
2389 p_line_price_adj_tbl => p_line_price_adj_tbl,
2390 p_line_price_adj_attr_tbl => p_line_price_adj_attr_tbl,
2391 p_line_index => i,
2392 p_qte_line_index => k,
2393 p_operation => l_line_tbl(i).operation,
2394 x_line_adj_tbl => l_line_adj_tbl,
2395 x_line_adj_att_tbl => l_line_adj_att_tbl,
2396 lx_Line_Price_Adj_rltship_Tbl => l_line_price_adj_rltship_tbl
2397 );
2398
2399 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2400 aso_debug_pub.add('after line price adjustments:l_line_adj_att_tbl.count: '||l_line_adj_att_tbl.count,1,'N');
2401 aso_debug_pub.add('after line price adjustments:l_line_price_adj_rltship_tbl.count: '||l_line_price_adj_rltship_tbl.count,1,'N');
2402 END IF;
2403
2404 map_line_price_adj_rltn(
2405 P_Line_Price_Adj_rltship_Tbl => l_Line_Price_Adj_rltship_Tbl,
2406 p_line_index => i,
2407 p_qte_line_index => k,
2408 p_operation => l_line_tbl(i).operation,
2409 x_Line_Adj_Assoc_tbl => l_Line_Adj_Assoc_tbl
2410 );
2411
2412 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2413 aso_debug_pub.add('before line sales credit:l_Line_Adj_Assoc_tbl.count: '||l_Line_Adj_Assoc_tbl.count,1,'Y');
2414 END IF;
2415
2416 map_line_sales_credit(
2417 P_line_sales_credit_Tbl => P_line_sales_credit_Tbl,
2418 p_line_index => i,
2419 p_qte_line_index => k,
2420 p_line_operation => l_line_tbl(i).operation,
2421 p_operation => p_operation,
2422 x_Line_Scredit_tbl => l_Line_Scredit_tbl
2423 );
2424 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2425 aso_debug_pub.add('after line sales credit:l_Line_Scredit_tbl.count: '||l_Line_Scredit_tbl.count,1,'Y');
2426 END IF;
2427
2428 --Line Payments change
2429
2430 map_line_payments(
2431 P_line_payment_Tbl => P_line_payment_Tbl,
2432 p_line_index => i,
2433 p_qte_line_index => k,
2434 p_line_operation => l_line_tbl(i).operation,
2435 p_operation => p_operation,
2436 x_Line_tbl => l_line_tbl,
2437 x_Line_Payment_tbl => l_line_payment_tbl
2438 );
2439 IF l_line_payment_tbl.count > 0 THEN
2440 l_final_payment_tbl(l_final_payment_tbl.count + 1) := l_line_payment_tbl(1);
2441 END IF;
2442
2443 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2444 aso_debug_pub.add('after line payments:l_line_payment_tbl.count: '||l_line_payment_tbl.count,1,'Y');
2445 aso_debug_pub.add('after line payments:l_final_payment_tbl.count: '||l_final_payment_tbl.count,1,'Y');
2446 END IF;
2447
2448 map_lot_serial(
2449 P_lot_serial_tbl => P_lot_serial_tbl,
2450 p_operation => l_line_tbl(i).operation,
2451 p_line_index => i,
2452 p_qte_line_index => k,
2453 x_lot_serial_tbl => l_lot_serial_tbl
2454 );
2455 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2456 aso_debug_pub.add('after lot serial:l_lot_serial_tbl.count: '||l_lot_serial_tbl.count,1,'Y');
2457 END IF;
2458
2459 found := FND_API.G_TRUE;
2460 END IF;
2461 END LOOP; -- lines
2462
2463 i:= i+1;
2464 END LOOP; -- for shipment
2465
2466 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2467 aso_debug_pub.add('l_final_payment_tbl.count: '|| l_final_payment_tbl.count,1,'Y');
2468 END IF;
2469 IF l_final_payment_tbl.count > 0 THEN
2470 l_line_payment_tbl := l_final_payment_tbl;
2471 END IF;
2472
2473
2474
2475 -- mapping operation code
2476
2477 x_header_rec := l_header_rec ;
2478 x_header_val_rec := l_header_val_rec;
2479 x_Header_Adj_tbl := l_header_adj_tbl;
2480 x_Header_Adj_val_tbl := l_header_adj_val_tbl;
2481 x_Header_price_Att_tbl := l_header_price_att_tbl;
2482 x_Header_Adj_Att_tbl := l_header_adj_att_tbl;
2483 x_Header_Adj_Assoc_tbl := l_header_adj_assoc_tbl;
2484 x_Header_Scredit_tbl := l_header_scredit_tbl;
2485 x_Header_Scredit_val_tbl := l_header_scredit_val_tbl;
2486 x_Header_Payment_tbl := l_header_payment_tbl;
2487 x_line_tbl := l_line_tbl;
2488 x_line_val_tbl := l_line_val_tbl;
2489 x_Line_Adj_tbl := l_line_adj_tbl;
2490 x_Line_Adj_val_tbl := l_line_adj_val_tbl;
2491 x_Line_price_Att_tbl := l_line_price_att_tbl;
2492 x_Line_Adj_Att_tbl := l_Line_Adj_Att_tbl;
2493 x_Line_Adj_Assoc_tbl := l_line_adj_assoc_tbl;
2494 x_Line_Scredit_tbl := l_line_scredit_tbl;
2495 x_Line_Scredit_val_tbl := l_line_scredit_val_tbl;
2496 x_Lot_Serial_tbl := l_lot_serial_tbl;
2497 x_Lot_Serial_val_tbl := l_lot_serial_val_tbl;
2498 x_Line_Payment_tbl := l_line_payment_tbl;
2499
2500 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2501 aso_debug_pub.add('end of map quote to order ',1,'Y');
2502 END IF;
2503
2504 END Map_quote_to_order;
2505
2506
2507 PROCEDURE get_org_contact(
2508 p_party_id IN NUMBER,
2509 x_org_contact OUT NOCOPY /* file.sql.39 change */ number )
2510 IS
2511 CURSOR party_cur IS
2512 SELECT party_type
2513 from
2514 hz_parties
2515 where party_id = p_party_id
2516 and status = 'A';
2517 CURSOR org_contact IS
2518 select a.org_contact_id
2519 from
2520 hz_org_contacts a, hz_relationships b
2521 where b.party_id = p_party_id
2522 and a.party_relationship_id = b.relationship_id
2523 and b.STATUS = 'A' AND trunc(b.START_DATE) <= trunc(sysdate)
2524 AND trunc(nvl(b.END_DATE, sysdate)) >= trunc(sysdate);
2525 --and a.status = 'A'; /* status column in hz_org_contacts is obseleted */
2526 l_party_type varchar2(30);
2527 begin
2528
2529 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2530 aso_debug_pub.add('entering get_org_contact ',1,'N');
2531 aso_debug_pub.add('party_id = ' || p_party_id,1,'N');
2532 END IF;
2533
2534 OPEN party_cur;
2535 FETCH party_cur INTO l_party_type;
2536 CLOSE party_cur;
2537
2538 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2539 aso_debug_pub.add('party_type = '|| l_party_type,1,'N');
2540 END IF;
2541
2542 IF l_party_type = 'PARTY_RELATIONSHIP' THEN
2543 OPEN org_contact;
2544 FETCH org_contact INTO x_org_contact;
2545 CLOSE org_contact;
2546 END IF;
2547
2548 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2549 aso_debug_pub.add('org_contact = ' || x_org_contact,1,'N');
2550 END IF;
2551
2552 END;
2553
2554 PROCEDURE get_acct_site_uses
2555 (
2556 p_party_site_id IN NUMBER,
2557 p_acct_site_type IN VARCHAR2,
2558 p_cust_account_id IN NUMBER,
2559 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
2560 x_site_use_id OUT NOCOPY /* file.sql.39 change */ number
2561 )
2562 IS
2563 CURSOR party_cur IS
2564 SELECT a.party_type, a.party_id
2565 from
2566 HZ_PARTIES a, HZ_PARTY_SITES b
2567 where
2568 a.status = 'A'
2569 AND b.status = 'A'
2570 and b.party_site_id = p_party_site_id
2571 and b.party_id = a.party_id;
2572
2573
2574 CURSOR site_use_cur IS
2575 select a.site_use_id, b.status,a.status
2576 from
2577 hz_cust_site_uses a, hz_cust_acct_sites b
2578 where
2579 b.cust_account_id = p_cust_account_id
2580 and b.party_site_id = p_party_site_id
2581 and a.cust_acct_site_id = b.cust_acct_site_id
2582 and a.site_use_code = p_acct_site_type
2583 and a.status = 'A'
2584 and b.status = 'A';
2585
2586 l_party_id number;
2587 cur_party_id number;
2588 l_cust_account_id number;
2589 cust_acct_site_status varchar2(1);
2590 cust_site_use_status varchar2(1);
2591
2592 CURSOR relationship_cur IS
2593 select a.object_id
2594 from
2595 hz_relationships a, hz_cust_accounts b
2596 where a.party_id = l_party_id
2597 and a.object_id = b.party_id
2598 and b.cust_account_id = p_cust_account_id
2599 and a.status = 'A'
2600 and (sysdate between nvl(a.start_date, sysdate)
2601 and nvl(a.end_date, sysdate))
2602 AND b.status = 'A'
2603 AND (sysdate BETWEEN NVL(b.account_activation_date, sysdate) AND
2604 NVL(b.account_termination_date, sysdate));
2605
2606 l_party_type VARCHAR2(30);
2607 l_site_use_id number;
2608 begin
2609
2610 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
2611
2612 x_return_status := FND_API.G_RET_STS_SUCCESS;
2613
2614 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2615 aso_debug_pub.add('site use in get_acct_site_uses = ' || p_acct_site_type,1,'N');
2616 END IF;
2617 OPEN party_cur;
2618 FETCH party_cur INTO l_party_type, l_party_id;
2619 IF (party_cur%NOTFOUND) THEN
2620 l_party_type := NULL;
2621 x_return_status := FND_API.G_RET_STS_ERROR;
2622 END IF;
2623 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2624 aso_debug_pub.add('party_type in get_acct_site_uses = ' || l_party_type,1,'N');
2625 END IF;
2626 CLOSE party_cur;
2627
2628 IF l_party_type = 'PARTY_RELATIONSHIP' THEN
2629 OPEN relationship_cur;
2630 FETCH relationship_cur INTO cur_party_id;
2631 IF (relationship_cur%NOTFOUND) THEN
2632 cur_party_id := NULL;
2633 x_return_status := FND_API.G_RET_STS_ERROR;
2634 END IF;
2635 CLOSE relationship_cur;
2636 ELSE
2637 cur_party_id := l_party_id;
2638 END IF;
2639 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2640 aso_debug_pub.add('cur_party_id = ' || cur_party_id,1,'N');
2641 END IF;
2642
2643 OPEN site_use_cur;
2644 FETCH site_use_cur
2645 INTO l_site_use_id, cust_acct_site_status, cust_site_use_status;
2646 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2647 aso_debug_pub.add('site use id = ' || l_site_use_id, 1, 'N');
2648 aso_debug_pub.add('account site status = ' || cust_acct_site_status, 1,'N');
2649 aso_debug_pub.add('account site use status = ' || cust_site_use_status, 1,'N');
2650 END IF;
2651 IF (site_use_cur%NOTFOUND) THEN
2652 l_site_use_id := NULL;
2653 -- x_return_status := FND_API.G_RET_STS_ERROR;
2654 ELSE
2655 IF cust_acct_site_status <> 'A' OR cust_site_use_status <> 'A' THEN
2656 l_site_use_id := NULL;
2657 x_return_status := FND_API.G_RET_STS_ERROR;
2658 IF p_acct_site_type = 'BILL_TO' THEN
2659 FND_MESSAGE.Set_Name('ASO','ASO_INV_CUST_SITE_INACTIVE');
2660 ELSE
2661 FND_MESSAGE.Set_Name('ASO','ASO_SHIP_CUST_SITE_INACTIVE');
2662 END IF;
2663 FND_MSG_PUB.ADD;
2664 END IF;
2665 END IF;
2666 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2667 aso_debug_pub.add('site_use_id in get_acct_site_uses = ' || l_site_use_id,1,'N');
2668 END IF;
2669 CLOSE site_use_cur;
2670 x_site_use_id := l_site_use_id;
2671 END get_acct_site_uses;
2672
2673
2674 PROCEDURE get_cust_acct_roles
2675 (
2676 p_party_id IN NUMBER,
2677 p_party_site_id IN NUMBER,
2678 p_acct_site_type IN VARCHAR2,
2679 p_cust_account_id IN NUMBER,
2680 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
2681 x_party_id OUT NOCOPY /* file.sql.39 change */ NUMBER,
2682 x_cust_account_role_id OUT NOCOPY /* file.sql.39 change */ number
2683 )
2684 IS
2685 CURSOR party_cur IS
2686 SELECT party_type
2687 from
2688 HZ_PARTIES
2689 where party_id = p_party_id and status ='A';
2690
2691 CURSOR cust_cur IS
2692 SELECT party_id
2693 from hz_cust_accounts
2694 where cust_account_id = p_cust_account_id
2695 AND status = 'A'
2696 AND (sysdate BETWEEN NVL(account_activation_date, sysdate) AND
2697 NVL(account_termination_date, sysdate));
2698
2699 CURSOR person_relationship_cur IS
2700 SELECT b.party_id
2701 from hz_org_contacts a, hz_relationships b, hz_cust_accounts c
2702 where
2703 --a.status = 'A' and -- status column obseleted
2704 a.party_relationship_id = b.relationship_id
2705 and b.subject_id = p_party_id
2706 and b.object_id = c.party_id
2707 and c.cust_account_id = p_cust_account_id
2708 AND c.status = 'A'
2709 and b.status = 'A'
2710 and (sysdate between nvl(b.start_date, sysdate) and nvl(b.end_date, sysdate))
2711 AND (sysdate BETWEEN NVL(c.account_activation_date, sysdate) AND
2712 NVL(c.account_termination_date, sysdate));
2713
2714 CURSOR org_contact IS
2715 select a.org_contact_id
2716 from
2717 hz_org_contacts a, hz_relationships b
2718 where
2719 b.party_id = p_party_id
2720 /* and a.status = 'A' vtariker: Status for hz_org_contacts is now obsolete */
2721 and b.relationship_id = a.party_relationship_id
2722 and b.status = 'A'
2723 and (sysdate between nvl(b.start_date, sysdate) and nvl(b.end_date, sysdate));
2724
2725 CURSOR cust_role(l_party_id number) IS
2726 select a.cust_account_role_id, a.status
2727 from
2728 hz_cust_account_roles a, hz_cust_acct_sites c
2729 --,hz_role_responsibility d
2730 where
2731 a.role_type = 'CONTACT'
2732 and a.party_id = l_party_id
2733 and a.cust_account_id = p_cust_account_id
2734 and a.cust_acct_site_id = c.cust_acct_site_id
2735 and a.cust_account_id = c.cust_account_id
2736 and c.party_site_id = p_party_site_id
2737 --and a.cust_account_role_id = d.cust_account_role_id
2738 --and d.responsibility_type = p_acct_site_type
2739 and c.status = 'A'
2740 and a.status = 'A';
2741
2742 CURSOR cust_role_exists(l_party_id number) IS
2743 select 'Y'
2744 from
2745 hz_cust_account_roles a, hz_cust_acct_sites c
2746 where
2747 a.role_type = 'CONTACT'
2748 and a.party_id = l_party_id
2749 and a.cust_account_id = p_cust_account_id
2750 and a.cust_acct_site_id = c.cust_acct_site_id
2751 and a.cust_account_id = c.cust_account_id
2752 and c.party_site_id = p_party_site_id
2753 and c.status = 'A';
2754
2755 l_exists VARCHAR2(1) := 'N';
2756 cust_account_role_status varchar2(1);
2757 l_org_contact_id number;
2758 l_party_type VARCHAR2(30);
2759 l_cust_account_role_id number;
2760 l_party_id number;
2761 l_relationship_party_id number := NULL;
2762 l_multiple_flag VARCHAR2(1) := FND_API.G_FALSE;
2763 l_count_relationship number := 0;
2764 l_acct_site_type VARCHAR2(50);
2765 begin
2766
2767 x_return_status := FND_API.G_RET_STS_SUCCESS;
2768 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2769 aso_debug_pub.add('site use in get_cust_account_roles = ' || p_acct_site_type,1,'N');
2770 aso_debug_pub.add('p_party_id = ' || p_party_id,1,'N');
2771 END IF;
2772
2773 IF p_acct_site_type = 'END_USER' THEN
2774 l_acct_site_type := 'SHIP_TO';
2775 END IF;
2776
2777 OPEN party_cur;
2778 FETCH party_cur INTO l_party_type;
2779 IF (party_cur%NOTFOUND) THEN
2780 l_party_type := NULL;
2781 x_return_status := FND_API.G_RET_STS_ERROR;
2782 END IF;
2783 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2784 aso_debug_pub.add('party_type in get_cust_account_roles = ' || l_party_type,1,'N');
2785 END IF;
2786 CLOSE party_cur;
2787
2788 IF l_party_type = 'PERSON' THEN
2789 OPEN cust_cur;
2790 FETCH cust_cur INTO l_party_id;
2791 IF cust_cur%NOTFOUND THEN
2792 l_party_id := NULL;
2793 x_return_status := FND_API.G_RET_STS_ERROR;
2794 END IF;
2795 CLOSE cust_cur;
2796
2797 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2798 aso_debug_pub.add('l_party_id = ' || l_party_id, 1,'N');
2799 END IF;
2800 IF l_party_id IS NOT NULL AND l_party_id = p_party_id THEN
2801 -- p_party_id is owner of account, hence not a contact
2802 x_party_id := FND_API.G_MISS_NUM;
2803 x_cust_account_role_id := FND_API.G_MISS_NUM;
2804 return;
2805 END IF;
2806
2807 OPEN person_relationship_cur;
2808 LOOP
2809 FETCH person_relationship_cur INTO l_relationship_party_id;
2810 EXIT WHEN person_relationship_cur%NOTFOUND OR x_return_status = FND_API.G_RET_STS_ERROR;
2811 l_count_relationship := l_count_relationship + 1;
2812
2813 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2814 aso_debug_pub.add('relationship_party_id = ' || l_relationship_party_id,1,'N');
2815 aso_debug_pub.add('x_return_status = ' || x_return_status,1,'N');
2816 aso_debug_pub.add('opening cust_role cursor',1,'N');
2817 END IF;
2818
2819 OPEN cust_role(l_relationship_party_id);
2820 LOOP
2821 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2822 aso_debug_pub.add('looping in cust_role',1,'N');
2823 END IF;
2824 FETCH cust_role INTO l_cust_account_role_id, cust_account_role_status;
2825 EXIT WHEN cust_role%NOTFOUND OR x_return_status = FND_API.G_RET_STS_ERROR;
2826 IF (cust_role%ROWCOUNT) > 1 THEN
2827 x_return_status := FND_API.G_RET_STS_ERROR;
2828 END IF;
2829 END LOOP;
2830 CLOSE cust_role;
2831
2832 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2833 aso_debug_pub.add(' l_cust_account_role_id = '|| l_cust_account_role_id,1,'N' );
2834 aso_debug_pub.add('rowcount = ' || person_relationship_cur%ROWCOUNT,1,'N');
2835 aso_debug_pub.add('l_multiple_flag = ' || l_multiple_flag,1,'N');
2836 END IF;
2837
2838 IF person_relationship_cur%ROWCOUNT > 1 AND l_multiple_flag = FND_API.G_TRUE
2839 THEN
2840 x_return_status := FND_API.G_RET_STS_ERROR;
2841 END IF;
2842 IF l_cust_account_role_id IS NOT NULL THEN
2843 l_multiple_flag := FND_API.G_TRUE;
2844 END IF;
2845 END LOOP;
2846 IF l_count_relationship = 0 THEN
2847 x_return_status := FND_API.G_RET_STS_ERROR;
2848 END IF;
2849 CLOSE person_relationship_cur;
2850 x_party_id := l_relationship_party_id;
2851 END IF; --end person
2852 IF l_party_type = 'PARTY_RELATIONSHIP' THEN
2853 OPEN org_contact;
2854 FETCH org_contact INTO l_org_contact_id;
2855 IF (org_contact%NOTFOUND) THEN
2856 l_org_contact_id := NULL;
2857 x_return_status := FND_API.G_RET_STS_ERROR;
2858 END IF;
2859 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2860 aso_debug_pub.add('org_contact_id in get_cust_acct_roles = '|| l_org_contact_id,1,'N');
2861 END IF;
2862 CLOSE org_contact;
2863
2864 OPEN cust_role_exists(p_party_id);
2865 FETCH cust_role_exists INTO l_exists;
2866 CLOSE cust_role_exists;
2867
2868 IF NVL(l_exists,'N') <> 'Y' THEN
2869 l_cust_account_role_id := NULL;
2870 -- x_return_status := FND_API.G_RET_STS_ERROR;
2871 ELSE
2872 OPEN cust_role(p_party_id);
2873 FETCH cust_role INTO l_cust_account_role_id, cust_account_role_status;
2874
2875 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2876 aso_debug_pub.add('cust account role id = ' || l_cust_account_role_id, 1, 'N');
2877 aso_debug_pub.add('cust account role status = ' || cust_account_role_status, 1 , 'N');
2878 END IF;
2879
2880 IF (cust_role%NOTFOUND) THEN
2881 l_cust_account_role_id := NULL;
2882 x_return_status := FND_API.G_RET_STS_ERROR;
2883 IF p_acct_site_type = 'BILL_TO' THEN
2884 FND_MESSAGE.Set_Name('ASO','ASO_INV_CUST_ROLE_INACTIVE');
2885 ELSIF p_acct_site_type = 'END_USER' THEN
2886 FND_MESSAGE.Set_Name('ASO','ASO_END_CUST_ROLE_INACTIVE');
2887 ELSIF p_acct_site_type = 'SHIP_TO' THEN
2888 FND_MESSAGE.Set_Name('ASO','ASO_SHP_CUST_ROLE_INACTIVE');
2889 END IF;
2890 FND_MSG_PUB.ADD;
2891 END IF;
2892 CLOSE cust_role;
2893 END IF;
2894 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2895 aso_debug_pub.add('l_cust_account_role_id in get_cust_acct_roles = '|| l_cust_account_role_id,1,'N');
2896 END IF;
2897 x_party_id := p_party_id;
2898
2899 END IF; -- end party relationship
2900
2901 x_cust_account_role_id := l_cust_account_role_id;
2902 END get_cust_acct_roles;
2903
2904 PROCEDURE Get_Cust_Accnt_Id(
2905 P_Qte_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type
2906 := ASO_QUOTE_PUB.G_MISS_QTE_HEADER_REC,
2907 p_Party_Id IN NUMBER,
2908 p_Cust_Acct_Id OUT NOCOPY /* file.sql.39 change */ NUMBER,
2909 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
2910 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
2911 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
2912 IS
2913
2914 CURSOR C_get_cust_id_from_party_id(l_Party_Id NUMBER) IS
2915 SELECT cust_account_id
2916 FROM hz_cust_accounts
2917 WHERE party_id = l_Party_Id
2918 and status = 'A'
2919 AND (sysdate BETWEEN NVL(account_activation_date, sysdate) AND
2920 NVL(account_termination_date, sysdate));
2921
2922 CURSOR party_rec IS
2923 select party_type
2924 from hz_parties
2925 where party_id = p_party_id
2926 AND status = 'A';
2927
2928 CURSOR account_user_cur IS
2929 select a.cust_account_id
2930 from hz_cust_accounts a, hz_cust_account_roles b
2931 where a.cust_account_id = b.cust_account_id
2932 and b.party_id = p_party_id
2933 and b.role_type = 'ACCOUNT_USER'
2934 AND b.status = 'A'
2935 AND a.status = 'A'
2936 AND (sysdate BETWEEN NVL(a.account_activation_date, sysdate) AND
2937 NVL(a.account_termination_date, sysdate));
2938
2939 count NUMBER := 0;
2940 x_cust_id NUMBER := NULL;
2941 lx_cust_id NUMBER := NULL;
2942 l_msg_count number;
2943 l_msg_data varchar2(200);
2944 cust_account_id NUMBER;
2945 l_return_status VARCHAR2(1);
2946 l_party_type VARCHAR2(30);
2947
2948
2949 BEGIN
2950
2951 OPEN party_rec;
2952 FETCH party_rec INTO l_party_type;
2953 CLOSE party_rec;
2954
2955 IF l_party_type = 'PERSON' OR l_party_type ='ORGANIZATION' THEN
2956
2957 OPEN C_get_cust_id_from_party_id(p_Party_Id);
2958
2959 LOOP
2960 FETCH C_get_cust_id_from_party_id INTO lx_cust_id;
2961 IF C_get_cust_id_from_party_id%ROWCOUNT > 1 THEN
2962 x_return_status := FND_API.G_RET_STS_ERROR;
2963 EXIT;
2964 END IF;
2965 EXIT WHEN C_get_cust_id_from_party_id%NOTFOUND;
2966 END LOOP;
2967
2968 CLOSE C_get_cust_id_from_party_id;
2969
2970 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2971 FND_MESSAGE.Set_Name('ASO', 'ASO_MULTIPLE_CUST_ACCOUNT');
2972 FND_MESSAGE.Set_Token('ID', to_char( p_qte_rec.party_id), FALSE);
2973 FND_MSG_PUB.ADD;
2974 raise FND_API.G_EXC_ERROR;
2975 END IF;
2976
2977 ELSIF l_party_type = 'PARTY_RELATIONSHIP' THEN
2978 OPEN account_user_cur;
2979 LOOP
2980 FETCH account_user_cur INTO lx_cust_id;
2981 IF account_user_cur%ROWCOUNT > 1 THEN
2982 x_return_status := FND_API.G_RET_STS_ERROR;
2983 EXIT;
2984 END IF;
2985 EXIT WHEN C_get_cust_id_from_party_id%NOTFOUND;
2986 END LOOP;
2987 CLOSE account_user_cur;
2988 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2989 FND_MESSAGE.Set_Name('ASO', 'ASO_MULTIPLE_CUST_ACCOUNT');
2990 FND_MESSAGE.Set_Token('ID', to_char( p_qte_rec.party_id), FALSE);
2991 FND_MSG_PUB.ADD;
2992 raise FND_API.G_EXC_ERROR;
2993 END IF;
2994 END IF;
2995
2996 IF lx_cust_id IS NULL OR lx_cust_id = FND_API.G_MISS_NUM THEN
2997 IF p_qte_rec.party_id is not NULL
2998 AND p_qte_rec.party_id <> FND_API.G_MISS_NUM THEN
2999 ASO_PARTY_INT.Create_Customer_Account(
3000 p_api_version => 1.0
3001 ,P_Qte_REC => p_qte_rec
3002 ,x_return_status => l_return_status
3003 ,x_msg_count => l_msg_count
3004 ,x_msg_data => l_msg_data
3005 ,x_acct_id => cust_account_id
3006 );
3007
3008 IF l_Return_Status <> FND_API.G_RET_STS_SUCCESS THEN
3009 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
3010 THEN
3011 FND_MESSAGE.Set_Name('ASO', 'ASO_CUST_ACCOUNT');
3012 FND_MESSAGE.Set_Token('ID', to_char( p_qte_rec.party_id), FALSE);
3013 FND_MSG_PUB.ADD;
3014 END IF;
3015 raise FND_API.G_EXC_ERROR;
3016 END IF;
3017
3018 p_Cust_Acct_Id := cust_account_id;
3019 END IF;
3020
3021 ELSE
3022 p_Cust_Acct_Id := lx_cust_id;
3023
3024 END IF;
3025
3026 END Get_Cust_Accnt_Id;
3027
3028 PROCEDURE get_org_contact_role(
3029 p_Org_Contact_Id IN NUMBER
3030 ,p_Cust_account_id IN NUMBER
3031 ,x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
3032 ,x_party_id OUT NOCOPY /* file.sql.39 change */ NUMBER
3033 ,x_cust_account_role_id OUT NOCOPY /* file.sql.39 change */ NUMBER
3034 )
3035 IS
3036 CURSOR C_active_contact (p_party_id NUMBER) IS
3037 SELECT cust_account_role_id, status
3038 FROM hz_cust_account_roles
3039 WHERE party_id = p_party_id
3040 AND cust_account_id = p_cust_account_id
3041 AND role_type ='CONTACT'
3042 AND cust_acct_site_id is null
3043 and status = 'A';
3044
3045 CURSOR C_inactive_contact (p_party_id NUMBER) IS
3046 SELECT cust_account_role_id, status
3047 FROM hz_cust_account_roles
3048 WHERE party_id = p_party_id
3049 AND cust_account_id = p_cust_account_id
3050 AND role_type ='CONTACT'
3051 AND cust_acct_site_id is null
3052 and status <> 'A';
3053
3054 cust_account_role_status varchar2(1);
3055
3056
3057 CURSOR C_party IS
3058 SELECT par.party_id
3059 FROM hz_relationships par,
3060 hz_org_contacts org ,
3061 hz_cust_accounts acc
3062 WHERE org.party_relationship_id = par.relationship_id
3063 AND org.org_contact_id = p_org_contact_id
3064 -- AND org.status = 'A' -- status column obseleted
3065 and par.status = 'A'
3066 and (sysdate between nvl(par.start_date, sysdate) and nvl(par.end_date, sysdate))
3067 AND acc.cust_account_id = p_cust_account_id
3068 AND par.object_id = acc.party_id
3069 AND acc.status = 'A'
3070 AND (sysdate BETWEEN NVL(acc.account_activation_date, sysdate) AND
3071 NVL(acc.account_termination_date, sysdate));
3072
3073
3074 l_party_id NUMBER;
3075 BEGIN
3076
3077 x_return_status := FND_API.G_RET_STS_SUCCESS;
3078
3079
3080 OPEN C_party;
3081 FETCH C_party INTO l_party_id;
3082 IF (C_party%NOTFOUND) THEN
3083 x_return_status := FND_API.G_RET_STS_ERROR;
3084 END IF;
3085 CLOSE C_party;
3086
3087 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3088 aso_debug_pub.add('x_return_status = ' || x_return_status,1,'N');
3089 aso_debug_pub.add('l_party_id is = ' || l_party_id,1,'N');
3090 END IF;
3091
3092 OPEN C_active_contact (l_party_id);
3093 FETCH C_active_contact INTO x_cust_account_role_id, cust_account_role_status;
3094 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3095 aso_debug_pub.add('cust account role id = ' || x_cust_account_role_id, 1, 'N');
3096 aso_debug_pub.add('cust_account_role_status = '|| cust_account_role_status, 1, 'N');
3097 END IF;
3098 IF (C_active_contact%NOTFOUND) THEN
3099 -- this means there are no active contacts
3100 OPEN C_inactive_contact(l_party_id);
3101 FETCH C_inactive_contact INTO x_cust_account_role_id, cust_account_role_status;
3102 IF C_inactive_contact%FOUND THEN
3103 -- this means there are ONLY inactive contacts
3104 x_cust_account_role_id := NULL;
3105 x_return_status := FND_API.G_RET_STS_ERROR;
3106 FND_MESSAGE.Set_Name('ASO','ASO_SOLD_CUST_ROLE_INACTIVE');
3107 FND_MSG_PUB.ADD;
3108 ELSE
3109 -- this means there are no contacts
3110 x_cust_account_role_id := NULL;
3111 END IF;
3112 CLOSE C_inactive_contact;
3113 END IF;
3114 CLOSE C_active_contact;
3115
3116 x_party_id := l_party_id;
3117 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3118 aso_debug_pub.add('cust acct role '||x_cust_account_role_id,1,'N');
3119 END IF;
3120 END get_org_contact_role;
3121
3122
3123 PROCEDURE map_header_price_attr(
3124 p_header_price_attributes_tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
3125 p_qte_rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
3126 p_operation IN VARCHAR2,
3127 x_Header_price_Att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Price_Att_Tbl_Type
3128 )
3129 IS
3130 i NUMBER;
3131 p_att_count NUMBER := 1;
3132 l_header_price_att_tbl OE_Order_PUB.Header_Price_Att_Tbl_Type;
3133 BEGIN
3134 FOR i in 1..p_header_price_attributes_tbl.count LOOP
3135 l_header_price_att_tbl(p_att_count).pricing_context
3136 := p_header_price_attributes_tbl(i).pricing_context;
3137 l_header_price_att_tbl(p_att_count).pricing_attribute1
3138 := p_header_price_attributes_tbl(i).pricing_attribute1;
3139 l_header_price_att_tbl(p_att_count).pricing_attribute2
3140 := p_header_price_attributes_tbl(i).pricing_attribute2;
3141 l_header_price_att_tbl(p_att_count).pricing_attribute3
3142 := p_header_price_attributes_tbl(i).pricing_attribute3;
3143 l_header_price_att_tbl(p_att_count).pricing_attribute4
3144 := p_header_price_attributes_tbl(i).pricing_attribute4;
3145 l_header_price_att_tbl(p_att_count).pricing_attribute5
3146 := p_header_price_attributes_tbl(i).pricing_attribute5;
3147 l_header_price_att_tbl(p_att_count).pricing_attribute6
3148 := p_header_price_attributes_tbl(i).pricing_attribute6;
3149 l_header_price_att_tbl(p_att_count).pricing_attribute7
3150 := p_header_price_attributes_tbl(i).pricing_attribute7;
3151 l_header_price_att_tbl(p_att_count).pricing_attribute8
3152 := p_header_price_attributes_tbl(i).pricing_attribute8;
3153 l_header_price_att_tbl(p_att_count).pricing_attribute9
3154 := p_header_price_attributes_tbl(i).pricing_attribute9;
3155 l_header_price_att_tbl(p_att_count).pricing_attribute10
3156 := p_header_price_attributes_tbl(i).pricing_attribute10;
3157 l_header_price_att_tbl(p_att_count).pricing_attribute11
3158 := p_header_price_attributes_tbl(i).pricing_attribute11;
3159 l_header_price_att_tbl(p_att_count).pricing_attribute12
3160 := p_header_price_attributes_tbl(i).pricing_attribute12;
3161 l_header_price_att_tbl(p_att_count).pricing_attribute13
3162 := p_header_price_attributes_tbl(i).pricing_attribute13;
3163 l_header_price_att_tbl(p_att_count).pricing_attribute14
3164 := p_header_price_attributes_tbl(i).pricing_attribute14;
3165 l_header_price_att_tbl(p_att_count).pricing_attribute15
3166 := p_header_price_attributes_tbl(i).pricing_attribute15;
3167 l_header_price_att_tbl(p_att_count).pricing_attribute16
3168 := p_header_price_attributes_tbl(i).pricing_attribute16;
3169 l_header_price_att_tbl(p_att_count).pricing_attribute17
3170 := p_header_price_attributes_tbl(i).pricing_attribute17;
3171 l_header_price_att_tbl(p_att_count).pricing_attribute18
3172 := p_header_price_attributes_tbl(i).pricing_attribute18;
3173 l_header_price_att_tbl(p_att_count).pricing_attribute19
3174 := p_header_price_attributes_tbl(i).pricing_attribute19;
3175 l_header_price_att_tbl(p_att_count).pricing_attribute20
3176 := p_header_price_attributes_tbl(i).pricing_attribute20;
3177 l_header_price_att_tbl(p_att_count).pricing_attribute21
3178 := p_header_price_attributes_tbl(i).pricing_attribute21;
3179 l_header_price_att_tbl(p_att_count).pricing_attribute22
3180 := p_header_price_attributes_tbl(i).pricing_attribute22;
3181 l_header_price_att_tbl(p_att_count).pricing_attribute23
3182 := p_header_price_attributes_tbl(i).pricing_attribute23;
3183 l_header_price_att_tbl(p_att_count).pricing_attribute24
3184 := p_header_price_attributes_tbl(i).pricing_attribute24;
3185 l_header_price_att_tbl(p_att_count).pricing_attribute25
3186 := p_header_price_attributes_tbl(i).pricing_attribute25;
3187 l_header_price_att_tbl(p_att_count).pricing_attribute26
3188 := p_header_price_attributes_tbl(i).pricing_attribute26;
3189 l_header_price_att_tbl(p_att_count).pricing_attribute27
3190 := p_header_price_attributes_tbl(i).pricing_attribute27;
3191 l_header_price_att_tbl(p_att_count).pricing_attribute28
3192 := p_header_price_attributes_tbl(i).pricing_attribute28;
3193 l_header_price_att_tbl(p_att_count).pricing_attribute29
3194 := p_header_price_attributes_tbl(i).pricing_attribute29;
3195 l_header_price_att_tbl(p_att_count).pricing_attribute30
3196 := p_header_price_attributes_tbl(i).pricing_attribute30;
3197 l_header_price_att_tbl(p_att_count).pricing_attribute31
3198 := p_header_price_attributes_tbl(i).pricing_attribute31;
3199 l_header_price_att_tbl(p_att_count).pricing_attribute32
3200 := p_header_price_attributes_tbl(i).pricing_attribute32;
3201 l_header_price_att_tbl(p_att_count).pricing_attribute33
3202 := p_header_price_attributes_tbl(i).pricing_attribute33;
3203 l_header_price_att_tbl(p_att_count).pricing_attribute34
3204 := p_header_price_attributes_tbl(i).pricing_attribute34;
3205 l_header_price_att_tbl(p_att_count).pricing_attribute35
3206 := p_header_price_attributes_tbl(i).pricing_attribute35;
3207 l_header_price_att_tbl(p_att_count).pricing_attribute36
3208 := p_header_price_attributes_tbl(i).pricing_attribute36;
3209 l_header_price_att_tbl(p_att_count).pricing_attribute37
3210 := p_header_price_attributes_tbl(i).pricing_attribute37;
3211 l_header_price_att_tbl(p_att_count).pricing_attribute38
3212 := p_header_price_attributes_tbl(i).pricing_attribute38;
3213 l_header_price_att_tbl(p_att_count).pricing_attribute39
3214 := p_header_price_attributes_tbl(i).pricing_attribute39;
3215 l_header_price_att_tbl(p_att_count).pricing_attribute40
3216 := p_header_price_attributes_tbl(i).pricing_attribute40;
3217 l_header_price_att_tbl(p_att_count).pricing_attribute41
3218 := p_header_price_attributes_tbl(i).pricing_attribute41;
3219 l_header_price_att_tbl(p_att_count).pricing_attribute42
3220 := p_header_price_attributes_tbl(i).pricing_attribute42;
3221 l_header_price_att_tbl(p_att_count).pricing_attribute43
3222 := p_header_price_attributes_tbl(i).pricing_attribute43;
3223 l_header_price_att_tbl(p_att_count).pricing_attribute44
3224 := p_header_price_attributes_tbl(i).pricing_attribute44;
3225 l_header_price_att_tbl(p_att_count).pricing_attribute45
3226 := p_header_price_attributes_tbl(i).pricing_attribute45;
3227 l_header_price_att_tbl(p_att_count).pricing_attribute46
3228 := p_header_price_attributes_tbl(i).pricing_attribute46;
3229 l_header_price_att_tbl(p_att_count).pricing_attribute47
3230 := p_header_price_attributes_tbl(i).pricing_attribute47;
3231 l_header_price_att_tbl(p_att_count).pricing_attribute48
3232 := p_header_price_attributes_tbl(i).pricing_attribute48;
3233 l_header_price_att_tbl(p_att_count).pricing_attribute49
3234 := p_header_price_attributes_tbl(i).pricing_attribute49;
3235 l_header_price_att_tbl(p_att_count).pricing_attribute50
3236 := p_header_price_attributes_tbl(i).pricing_attribute50;
3237 l_header_price_att_tbl(p_att_count).pricing_attribute51
3238 := p_header_price_attributes_tbl(i).pricing_attribute51;
3239 l_header_price_att_tbl(p_att_count).pricing_attribute52
3240 := p_header_price_attributes_tbl(i).pricing_attribute52;
3241 l_header_price_att_tbl(p_att_count).pricing_attribute53
3242 := p_header_price_attributes_tbl(i).pricing_attribute53;
3243 l_header_price_att_tbl(p_att_count).pricing_attribute54
3244 := p_header_price_attributes_tbl(i).pricing_attribute54;
3245 l_header_price_att_tbl(p_att_count).pricing_attribute55
3246 := p_header_price_attributes_tbl(i).pricing_attribute55;
3247 l_header_price_att_tbl(p_att_count).pricing_attribute56
3248 := p_header_price_attributes_tbl(i).pricing_attribute56;
3249 l_header_price_att_tbl(p_att_count).pricing_attribute57
3250 := p_header_price_attributes_tbl(i).pricing_attribute57;
3251 l_header_price_att_tbl(p_att_count).pricing_attribute58
3252 := p_header_price_attributes_tbl(i).pricing_attribute58;
3253 l_header_price_att_tbl(p_att_count).pricing_attribute59
3254 := p_header_price_attributes_tbl(i).pricing_attribute59;
3255 l_header_price_att_tbl(p_att_count).pricing_attribute60
3256 := p_header_price_attributes_tbl(i).pricing_attribute60;
3257 l_header_price_att_tbl(p_att_count).pricing_attribute61
3258 := p_header_price_attributes_tbl(i).pricing_attribute61;
3259 l_header_price_att_tbl(p_att_count).pricing_attribute62
3260 := p_header_price_attributes_tbl(i).pricing_attribute62;
3261 l_header_price_att_tbl(p_att_count).pricing_attribute63
3262 := p_header_price_attributes_tbl(i).pricing_attribute63;
3263 l_header_price_att_tbl(p_att_count).pricing_attribute64
3264 := p_header_price_attributes_tbl(i).pricing_attribute64;
3265 l_header_price_att_tbl(p_att_count).pricing_attribute65
3266 := p_header_price_attributes_tbl(i).pricing_attribute65;
3267 l_header_price_att_tbl(p_att_count).pricing_attribute66
3268 := p_header_price_attributes_tbl(i).pricing_attribute66;
3269 l_header_price_att_tbl(p_att_count).pricing_attribute67
3270 := p_header_price_attributes_tbl(i).pricing_attribute67;
3271 l_header_price_att_tbl(p_att_count).pricing_attribute68
3272 := p_header_price_attributes_tbl(i).pricing_attribute68;
3273 l_header_price_att_tbl(p_att_count).pricing_attribute69
3274 := p_header_price_attributes_tbl(i).pricing_attribute69;
3275 l_header_price_att_tbl(p_att_count).pricing_attribute70
3276 := p_header_price_attributes_tbl(i).pricing_attribute70;
3277 l_header_price_att_tbl(p_att_count).pricing_attribute71
3278 := p_header_price_attributes_tbl(i).pricing_attribute71;
3279 l_header_price_att_tbl(p_att_count).pricing_attribute72
3280 := p_header_price_attributes_tbl(i).pricing_attribute72;
3281 l_header_price_att_tbl(p_att_count).pricing_attribute73
3282 := p_header_price_attributes_tbl(i).pricing_attribute73;
3283 l_header_price_att_tbl(p_att_count).pricing_attribute74
3284 := p_header_price_attributes_tbl(i).pricing_attribute74;
3285 l_header_price_att_tbl(p_att_count).pricing_attribute75
3286 := p_header_price_attributes_tbl(i).pricing_attribute75;
3287 l_header_price_att_tbl(p_att_count).pricing_attribute76
3288 := p_header_price_attributes_tbl(i).pricing_attribute76;
3289 l_header_price_att_tbl(p_att_count).pricing_attribute77
3290 := p_header_price_attributes_tbl(i).pricing_attribute77;
3291 l_header_price_att_tbl(p_att_count).pricing_attribute78
3292 := p_header_price_attributes_tbl(i).pricing_attribute78;
3293 l_header_price_att_tbl(p_att_count).pricing_attribute79
3294 := p_header_price_attributes_tbl(i).pricing_attribute79;
3295 l_header_price_att_tbl(p_att_count).pricing_attribute80
3296 := p_header_price_attributes_tbl(i).pricing_attribute80;
3297 l_header_price_att_tbl(p_att_count).pricing_attribute81
3298 := p_header_price_attributes_tbl(i).pricing_attribute81;
3299 l_header_price_att_tbl(p_att_count).pricing_attribute82
3300 := p_header_price_attributes_tbl(i).pricing_attribute82;
3301 l_header_price_att_tbl(p_att_count).pricing_attribute83
3302 := p_header_price_attributes_tbl(i).pricing_attribute83;
3303 l_header_price_att_tbl(p_att_count).pricing_attribute84
3304 := p_header_price_attributes_tbl(i).pricing_attribute84;
3305 l_header_price_att_tbl(p_att_count).pricing_attribute85
3306 := p_header_price_attributes_tbl(i).pricing_attribute85;
3307 l_header_price_att_tbl(p_att_count).pricing_attribute86
3308 := p_header_price_attributes_tbl(i).pricing_attribute86;
3309 l_header_price_att_tbl(p_att_count).pricing_attribute87
3310 := p_header_price_attributes_tbl(i).pricing_attribute87;
3311 l_header_price_att_tbl(p_att_count).pricing_attribute88
3312 := p_header_price_attributes_tbl(i).pricing_attribute88;
3313 l_header_price_att_tbl(p_att_count).pricing_attribute89
3314 := p_header_price_attributes_tbl(i).pricing_attribute89;
3315 l_header_price_att_tbl(p_att_count).pricing_attribute90
3316 := p_header_price_attributes_tbl(i).pricing_attribute90;
3317 l_header_price_att_tbl(p_att_count).pricing_attribute91
3318 := p_header_price_attributes_tbl(i).pricing_attribute91;
3319 l_header_price_att_tbl(p_att_count).pricing_attribute92
3320 := p_header_price_attributes_tbl(i).pricing_attribute92;
3321 l_header_price_att_tbl(p_att_count).pricing_attribute93
3322 := p_header_price_attributes_tbl(i).pricing_attribute93;
3323 l_header_price_att_tbl(p_att_count).pricing_attribute94
3324 := p_header_price_attributes_tbl(i).pricing_attribute94;
3325 l_header_price_att_tbl(p_att_count).pricing_attribute95
3326 := p_header_price_attributes_tbl(i).pricing_attribute95;
3327 l_header_price_att_tbl(p_att_count).pricing_attribute96
3328 := p_header_price_attributes_tbl(i).pricing_attribute96;
3329 l_header_price_att_tbl(p_att_count).pricing_attribute97
3330 := p_header_price_attributes_tbl(i).pricing_attribute97;
3331 l_header_price_att_tbl(p_att_count).pricing_attribute98
3332 := p_header_price_attributes_tbl(i).pricing_attribute98;
3333 l_header_price_att_tbl(p_att_count).pricing_attribute99
3334 := p_header_price_attributes_tbl(i).pricing_attribute99;
3335 l_header_price_att_tbl(p_att_count).pricing_attribute100
3336 := p_header_price_attributes_tbl(i).pricing_attribute100;
3337 l_header_price_att_tbl(p_att_count).context
3338 := p_header_price_attributes_tbl(i).context;
3339 l_header_price_att_tbl(p_att_count).attribute1
3340 := p_header_price_attributes_tbl(i).attribute1;
3341 l_header_price_att_tbl(p_att_count).attribute2
3342 := p_header_price_attributes_tbl(i).attribute2;
3343 l_header_price_att_tbl(p_att_count).attribute3
3344 := p_header_price_attributes_tbl(i).attribute3;
3345 l_header_price_att_tbl(p_att_count).attribute4
3346 := p_header_price_attributes_tbl(i).attribute4;
3347 l_header_price_att_tbl(p_att_count).attribute5
3348 := p_header_price_attributes_tbl(i).attribute5;
3349 l_header_price_att_tbl(p_att_count).attribute6
3350 := p_header_price_attributes_tbl(i).attribute6;
3351 l_header_price_att_tbl(p_att_count).attribute7
3352 := p_header_price_attributes_tbl(i).attribute7;
3353 l_header_price_att_tbl(p_att_count).attribute8
3354 := p_header_price_attributes_tbl(i).attribute8;
3355 l_header_price_att_tbl(p_att_count).attribute9
3356 := p_header_price_attributes_tbl(i).attribute9;
3357 l_header_price_att_tbl(p_att_count).attribute10
3358 := p_header_price_attributes_tbl(i).attribute10;
3359 l_header_price_att_tbl(p_att_count).attribute11
3360 := p_header_price_attributes_tbl(i).attribute11;
3361 l_header_price_att_tbl(p_att_count).attribute12
3362 := p_header_price_attributes_tbl(i).attribute12;
3363 l_header_price_att_tbl(p_att_count).attribute13
3364 := p_header_price_attributes_tbl(i).attribute13;
3365 l_header_price_att_tbl(p_att_count).attribute14
3366 := p_header_price_attributes_tbl(i).attribute14;
3367 l_header_price_att_tbl(p_att_count).attribute15
3368 := p_header_price_attributes_tbl(i).attribute15;
3369
3370 -- bug# 2020930
3371 l_header_price_att_tbl(p_att_count).flex_title
3372 := p_header_price_attributes_tbl(i).flex_title;
3373 -- bug# 2020930 end
3374
3375 -- this is need if header is update but the operation here is create
3376 IF p_operation <> OE_GLOBALS.G_OPR_CREATE THEN
3377 l_header_price_att_tbl(p_att_count).header_id
3378 := p_qte_rec.quote_header_id;
3379 l_header_price_att_tbl(p_att_count).order_price_attrib_id
3380 := p_header_price_attributes_tbl(i).price_attribute_id;
3381 ELSIF p_operation = OE_GLOBALS.G_OPR_CREATE THEN
3382 l_header_price_att_tbl(p_att_count).order_price_attrib_id
3383 := FND_API.G_MISS_NUM;
3384 END IF;
3385
3386 l_header_price_att_tbl(p_att_count).operation := p_operation;
3387
3388 p_att_count := p_att_count + 1;
3389 END LOOP;
3390
3391 x_header_price_att_tbl := l_header_price_att_tbl;
3392 END map_header_price_attr;
3393
3394 PROCEDURE map_header_price_adj(
3395 p_header_price_adj_tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
3396 p_qte_rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
3397 p_operation IN VARCHAR2 ,
3398 x_Header_Adj_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Tbl_Type
3399 )
3400 IS
3401 i NUMBER;
3402 adj_count NUMBER :=1;
3403 l_Header_Adj_tbl OE_Order_PUB.Header_Adj_Tbl_Type
3404 := OE_ORDER_PUB.G_MISS_HEADER_ADJ_TBL;
3405 BEGIN
3406
3407 FOR i in 1..p_header_price_adj_tbl.count LOOP
3408 l_header_adj_tbl(adj_count).attribute1
3409 := p_header_price_adj_tbl(i).attribute1;
3410 l_header_adj_tbl(adj_count).attribute10
3411 := p_header_price_adj_tbl(i).attribute10;
3412 l_header_adj_tbl(adj_count).attribute11
3413 := p_header_price_adj_tbl(i).attribute11;
3414 l_header_adj_tbl(adj_count).attribute12
3415 := p_header_price_adj_tbl(i).attribute12;
3416 l_header_adj_tbl(adj_count).attribute13
3417 := p_header_price_adj_tbl(i).attribute13;
3418 l_header_adj_tbl(adj_count).attribute14
3419 := p_header_price_adj_tbl(i).attribute14;
3420 l_header_adj_tbl(adj_count).attribute15
3421 := p_header_price_adj_tbl(i).attribute15;
3422 l_header_adj_tbl(adj_count).attribute2
3423 := p_header_price_adj_tbl(i).attribute2;
3424 l_header_adj_tbl(adj_count).attribute3
3425 := p_header_price_adj_tbl(i).attribute3;
3426 l_header_adj_tbl(adj_count).attribute4
3427 := p_header_price_adj_tbl(i).attribute4;
3428 l_header_adj_tbl(adj_count).attribute5
3429 := p_header_price_adj_tbl(i).attribute5;
3430 l_header_adj_tbl(adj_count).attribute6
3431 := p_header_price_adj_tbl(i).attribute6;
3432 l_header_adj_tbl(adj_count).attribute7
3433 := p_header_price_adj_tbl(i).attribute7;
3434 l_header_adj_tbl(adj_count).attribute8
3435 := p_header_price_adj_tbl(i).attribute8;
3436 l_header_adj_tbl(adj_count).attribute9
3437 := p_header_price_adj_tbl(i).attribute9;
3438 l_header_adj_tbl(adj_count).automatic_flag
3439 := p_header_price_adj_tbl(i).automatic_flag;
3440 l_header_adj_tbl(adj_count).context
3441 := p_header_price_adj_tbl(i).attribute_category;
3442
3443 l_header_adj_tbl(adj_count).orig_sys_discount_ref
3444 := p_header_price_adj_tbl(i).orig_sys_discount_ref;
3445 l_header_adj_tbl(adj_count).change_reason_code
3446 := p_header_price_adj_tbl(i).change_reason_code;
3447 l_header_adj_tbl(adj_count).change_reason_text
3448 := p_header_price_adj_tbl(i).change_reason_text;
3449 l_header_adj_tbl(adj_count).cost_id
3450 := p_header_price_adj_tbl(i).cost_id;
3451 l_header_adj_tbl(adj_count).tax_code
3452 := p_header_price_adj_tbl(i).tax_code;
3453 l_header_adj_tbl(adj_count).tax_exempt_flag
3454 := p_header_price_adj_tbl(i).tax_exempt_flag;
3455 l_header_adj_tbl(adj_count).tax_exempt_number
3456 := p_header_price_adj_tbl(i).tax_exempt_number;
3457 l_header_adj_tbl(adj_count).tax_exempt_reason_code
3458 := p_header_price_adj_tbl(i).tax_exempt_reason_code;
3459 l_header_adj_tbl(adj_count).parent_adjustment_id
3460 := p_header_price_adj_tbl(i).parent_adjustment_id;
3461 l_header_adj_tbl(adj_count).invoiced_flag
3462 := p_header_price_adj_tbl(i).invoiced_flag;
3463 l_header_adj_tbl(adj_count).estimated_flag
3464 := p_header_price_adj_tbl(i).estimated_flag;
3465 l_header_adj_tbl(adj_count).inc_in_sales_performance
3466 := p_header_price_adj_tbl(i).inc_in_sales_performance;
3467 l_header_adj_tbl(adj_count).split_action_code
3468 := p_header_price_adj_tbl(i).split_action_code;
3469 l_header_adj_tbl(adj_count).adjusted_amount
3470 := p_header_price_adj_tbl(i).adjusted_amount;
3471 l_header_adj_tbl(adj_count).charge_type_code
3472 := p_header_price_adj_tbl(i).charge_type_code;
3473 l_header_adj_tbl(adj_count).charge_subtype_code
3474 := p_header_price_adj_tbl(i).charge_subtype_code;
3475 l_header_adj_tbl(adj_count).RANGE_BREAK_QUANTITY
3476 := p_header_price_adj_tbl(i).RANGE_BREAK_QUANTITY;
3477 l_header_adj_tbl(adj_count).ACCRUAL_CONVERSION_RATE
3478 := p_header_price_adj_tbl(i).ACCRUAL_CONVERSION_RATE;
3479 l_header_adj_tbl(adj_count).PRICING_GROUP_SEQUENCE
3480 := p_header_price_adj_tbl(i).PRICING_GROUP_SEQUENCE;
3481 l_header_adj_tbl(adj_count).ACCRUAL_FLAG
3482 := p_header_price_adj_tbl(i).ACCRUAL_FLAG;
3483 l_header_adj_tbl(adj_count).LIST_LINE_NO
3484 := p_header_price_adj_tbl(i).LIST_LINE_NO;
3485 l_header_adj_tbl(adj_count).SOURCE_SYSTEM_CODE
3486 := p_header_price_adj_tbl(i).SOURCE_SYSTEM_CODE;
3487 l_header_adj_tbl(adj_count).BENEFIT_QTY
3488 := p_header_price_adj_tbl(i).BENEFIT_QTY;
3489 l_header_adj_tbl(adj_count).BENEFIT_UOM_CODE
3490 := p_header_price_adj_tbl(i).BENEFIT_UOM_CODE;
3491 l_header_adj_tbl(adj_count).PRINT_ON_INVOICE_FLAG
3492 := p_header_price_adj_tbl(i).PRINT_ON_INVOICE_FLAG;
3493 l_header_adj_tbl(adj_count).EXPIRATION_DATE
3494 := p_header_price_adj_tbl(i).EXPIRATION_DATE;
3495 l_header_adj_tbl(adj_count).REBATE_TRANSACTION_TYPE_CODE
3496 := p_header_price_adj_tbl(i).REBATE_TRANSACTION_TYPE_CODE;
3497 l_header_adj_tbl(adj_count).REBATE_TRANSACTION_REFERENCE
3498 := p_header_price_adj_tbl(i).REBATE_TRANSACTION_REFERENCE;
3499 l_header_adj_tbl(adj_count).REBATE_PAYMENT_SYSTEM_CODE
3500 := p_header_price_adj_tbl(i).REBATE_PAYMENT_SYSTEM_CODE;
3501 l_header_adj_tbl(adj_count).REDEEMED_DATE
3502 := p_header_price_adj_tbl(i).REDEEMED_DATE;
3503 l_header_adj_tbl(adj_count).REDEEMED_FLAG
3504 := p_header_price_adj_tbl(i).REDEEMED_FLAG;
3505 l_header_adj_tbl(adj_count).MODIFIER_LEVEL_CODE
3506 := p_header_price_adj_tbl(i).MODIFIER_LEVEL_CODE;
3507 l_header_adj_tbl(adj_count).PRICE_BREAK_TYPE_CODE
3508 := p_header_price_adj_tbl(i).PRICE_BREAK_TYPE_CODE;
3509 l_header_adj_tbl(adj_count).SUBSTITUTION_ATTRIBUTE
3510 := p_header_price_adj_tbl(i).SUBSTITUTION_ATTRIBUTE;
3511 l_header_adj_tbl(adj_count).PRORATION_TYPE_CODE
3512 := p_header_price_adj_tbl(i).PRORATION_TYPE_CODE;
3513 l_header_adj_tbl(adj_count).INCLUDE_ON_RETURNS_FLAG
3514 := p_header_price_adj_tbl(i).INCLUDE_ON_RETURNS_FLAG;
3515 l_header_adj_tbl(adj_count).CREDIT_OR_CHARGE_FLAG
3516 := p_header_price_adj_tbl(i).CREDIT_OR_CHARGE_FLAG;
3517
3518 IF p_operation <> OE_GLOBALS.G_OPR_CREATE THEN
3519 l_header_adj_tbl(adj_count).header_id
3520 := p_qte_rec.quote_header_id;
3521 l_header_adj_tbl(adj_count).price_adjustment_id
3522 := p_header_price_adj_tbl(i).price_adjustment_id;
3523 ELSIF p_operation = OE_GLOBALS.G_OPR_CREATE THEN
3524 l_header_adj_tbl(adj_count).price_adjustment_id := FND_API.G_MISS_NUM;
3525 END IF;
3526
3527 l_header_adj_tbl(adj_count).operation := p_operation;
3528
3529 l_header_adj_tbl(adj_count).list_header_id
3530 := p_header_price_adj_tbl(i).modifier_header_id;
3531 l_header_adj_tbl(adj_count).list_line_id
3532 := p_header_price_adj_tbl(i).modifier_line_id;
3533 l_header_adj_tbl(adj_count).list_line_type_code
3534 := p_header_price_adj_tbl(i).modifier_line_type_code;
3535 l_header_adj_tbl(adj_count).modifier_mechanism_type_code
3536 := p_header_price_adj_tbl(i).modifier_mechanism_type_code;
3537 l_header_adj_tbl(adj_count).modified_from
3538 := p_header_price_adj_tbl(i).modified_from;
3539 l_header_adj_tbl(adj_count).modified_to
3540 := p_header_price_adj_tbl(i).modified_to;
3541 l_header_adj_tbl(adj_count).updated_flag
3542 := p_header_price_adj_tbl(i).updated_flag;
3543 l_header_adj_tbl(adj_count).operand
3544 := p_header_price_adj_tbl(i).operand;
3545 l_header_adj_tbl(adj_count).arithmetic_operator
3546 := p_header_price_adj_tbl(i).arithmetic_operator;
3547 l_header_adj_tbl(adj_count).applied_flag
3548 := p_header_price_adj_tbl(i).applied_flag;
3549 l_header_adj_tbl(adj_count).pricing_phase_id
3550 := p_header_price_adj_tbl(i).pricing_phase_id;
3551 l_header_adj_tbl(adj_count).update_allowed
3552 := p_header_price_adj_tbl(i).update_allowed;
3553
3554 adj_count := adj_count + 1;
3555 END LOOP;
3556 x_header_adj_tbl := l_header_adj_tbl;
3557 END map_header_price_adj;
3558
3559
3560 PROCEDURE map_header_price_adj_attr(
3561 p_header_price_adj_attr_tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
3562 p_operation IN VARCHAR2,
3563 x_header_adj_att_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Att_Tbl_Type
3564 )
3565 IS
3566
3567 j NUMBER;
3568 attr_count NUMBER := 1;
3569 l_header_adj_att_tbl OE_Order_PUB.Header_Adj_Att_Tbl_Type;
3570
3571 BEGIN
3572
3573 FOR j in 1..p_header_price_adj_attr_tbl.count LOOP
3574
3575 l_header_adj_att_tbl(attr_count).price_adj_attrib_id
3576 := p_header_price_adj_attr_tbl(j).price_adj_attrib_id;
3577 l_header_adj_att_tbl(attr_count).price_adjustment_id
3578 := p_header_price_adj_attr_tbl(j).price_adjustment_id;
3579 l_header_adj_att_tbl(attr_count).Adj_index
3580 := p_header_price_adj_attr_tbl(j).price_adj_index;
3581 l_header_adj_att_tbl(attr_count).flex_title
3582 := p_header_price_adj_attr_tbl(j).flex_title;
3583 l_header_adj_att_tbl(attr_count).pricing_context
3584 := p_header_price_adj_attr_tbl(j).pricing_context;
3585 l_header_adj_att_tbl(attr_count).pricing_attribute
3586 := p_header_price_adj_attr_tbl(j).pricing_attribute;
3587 l_header_adj_att_tbl(attr_count).pricing_attr_value_from
3588 := p_header_price_adj_attr_tbl(j).pricing_attr_value_from;
3589 l_header_adj_att_tbl(attr_count).pricing_attr_value_to
3590 := p_header_price_adj_attr_tbl(j).pricing_attr_value_to;
3591 l_header_adj_att_tbl(attr_count).comparison_operator
3592 := p_header_price_adj_attr_tbl(j).comparison_operator;
3593
3594
3595 IF p_operation <> OE_GLOBALS.G_OPR_CREATE THEN
3596 l_header_adj_att_tbl(attr_count).price_adjustment_id
3597 := p_header_price_adj_attr_tbl(j).price_adjustment_id;
3598 l_header_adj_att_tbl(attr_count).price_adj_attrib_id
3599 := p_header_price_adj_attr_tbl(j).price_adj_attrib_id;
3600 ELSIF p_operation = OE_GLOBALS.G_OPR_CREATE THEN
3601 l_header_adj_att_tbl(attr_count).price_adj_attrib_id
3602 := FND_API.G_MISS_NUM;
3603 END IF;
3604
3605 l_header_adj_att_tbl(attr_count).operation := p_operation;
3606
3607 attr_count := attr_count+1;
3608
3609 END LOOP;
3610
3611 x_header_adj_att_tbl := l_header_adj_att_tbl;
3612 END map_header_price_adj_attr;
3613
3614
3615 PROCEDURE map_header_price_adj_rltn(
3616 P_Header_Price_Adj_rltship_Tbl IN ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type,
3617 P_operation IN VARCHAR2,
3618 x_Header_Adj_Assoc_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Adj_Assoc_Tbl_Type
3619 )
3620 IS
3621 j NUMBER;
3622 i NUMBER := 1;
3623 l_Header_Adj_Assoc_tbl OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
3624
3625 BEGIN
3626
3627 FOR j in 1..P_header_Price_Adj_rltship_Tbl.count LOOP
3628
3629
3630 IF P_operation = OE_GLOBALS.G_OPR_CREATE THEN
3631 l_Header_Adj_Assoc_tbl(i).price_adj_assoc_id := FND_API.G_MISS_NUM;
3632 l_Header_Adj_Assoc_tbl(i).Adj_index
3633 := P_Header_Price_Adj_rltship_Tbl(j).PRICE_ADJ_INDEX ;
3634 l_Header_Adj_Assoc_tbl(i).Rltd_Adj_Index
3635 := P_Header_Price_Adj_rltship_Tbl(j).RLTD_PRICE_ADJ_INDEX;
3636 ELSE
3637 l_Header_Adj_Assoc_tbl(i).price_adj_assoc_id
3638 := P_Header_Price_Adj_rltship_Tbl(j).ADJ_RELATIONSHIP_ID;
3639 l_Header_Adj_Assoc_tbl(i).price_adjustment_id
3640 := P_Header_Price_Adj_rltship_Tbl(j).PRICE_ADJUSTMENT_ID ;
3641 l_Header_Adj_Assoc_tbl(i).rltd_Price_Adj_Id
3642 := P_Header_Price_Adj_rltship_Tbl(j).RLTD_PRICE_ADJ_ID;
3643 END IF;
3644
3645 l_Header_Adj_Assoc_tbl(i).operation := P_Operation;
3646
3647 i := i + 1;
3648 END LOOP;
3649
3650 x_Header_Adj_Assoc_tbl := l_Header_Adj_Assoc_tbl;
3651
3652 END map_header_price_adj_rltn;
3653
3654 PROCEDURE map_header_sales_credits(
3655 P_header_sales_credit_Tbl IN ASO_QUOTE_PUB.Sales_credit_tbl_type,
3656 p_operation IN VARCHAR2,
3657 p_qte_rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
3658 p_header_operation IN VARCHAR2,
3659 x_Header_Scredit_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Header_Scredit_Tbl_Type
3660 )
3661 IS
3662
3663 l_header_Scredit_tbl OE_Order_PUB.Header_Scredit_Tbl_Type;
3664 j NUMBER;
3665 sc_count NUMBER := 1;
3666
3667 CURSOR salesrep( p_resource_id NUMBER) IS
3668 select salesrep_id
3669 /* from jtf_rs_srp_vl */ --Commented Code Yogeshwar (MOAC)
3670 from jtf_rs_salesreps_mo_v --New Code Yogeshwar (MOAC)
3671 where resource_id = p_resource_id ;
3672 /*
3673 and NVL(ORG_ID,NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ',
3674 NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) = NVL(TO_NUMBER(DECODE(SUBSTRB(
3675 USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99);
3676 */
3677
3678 BEGIN
3679
3680 FOR j in 1..P_header_sales_credit_Tbl.count LOOP
3681
3682 l_Header_Scredit_tbl(sc_count).attribute1
3683 := P_header_sales_credit_Tbl(j).attribute1 ;
3684 l_Header_Scredit_tbl(sc_count).attribute10
3685 := P_header_sales_credit_Tbl(j).attribute10;
3686 l_Header_Scredit_tbl(sc_count).attribute11
3687 := P_header_sales_credit_Tbl(j).attribute11;
3688 l_Header_Scredit_tbl(sc_count).attribute12
3689 := P_header_sales_credit_Tbl(j).attribute12;
3690 l_Header_Scredit_tbl(sc_count).attribute13
3691 := P_header_sales_credit_Tbl(j).attribute13;
3692 l_Header_Scredit_tbl(sc_count).attribute14
3693 := P_header_sales_credit_Tbl(j).attribute14;
3694 l_Header_Scredit_tbl(sc_count).attribute15
3695 := P_header_sales_credit_Tbl(j).attribute15;
3696 l_Header_Scredit_tbl(sc_count).attribute2
3697 := P_header_sales_credit_Tbl(j).attribute2;
3698 l_Header_Scredit_tbl(sc_count).attribute3
3699 := P_header_sales_credit_Tbl(j).attribute3;
3700 l_Header_Scredit_tbl(sc_count).attribute4
3701 := P_header_sales_credit_Tbl(j).attribute4;
3702 l_Header_Scredit_tbl(sc_count).attribute5
3703 := P_header_sales_credit_Tbl(j).attribute5;
3704 l_Header_Scredit_tbl(sc_count).attribute6
3705 := P_header_sales_credit_Tbl(j).attribute6;
3706 l_Header_Scredit_tbl(sc_count).attribute7
3707 := P_header_sales_credit_Tbl(j).attribute7;
3708 l_Header_Scredit_tbl(sc_count).attribute8
3709 := P_header_sales_credit_Tbl(j).attribute8;
3710 l_Header_Scredit_tbl(sc_count).attribute9
3711 := P_header_sales_credit_Tbl(j).attribute9;
3712 l_Header_Scredit_tbl(sc_count).context
3713 := P_header_sales_credit_Tbl(j).attribute_category_code;
3714
3715 l_Header_Scredit_tbl(sc_count).percent
3716 := P_header_sales_credit_Tbl(j).percent;
3717
3718 OPEN salesrep( P_header_sales_credit_Tbl(j).resource_id);
3719 FETCH salesrep INTO l_Header_Scredit_tbl(sc_count).salesrep_id;
3720 CLOSE salesrep;
3721
3722 /* Code added for Bug 9865459 Start */
3723 l_Header_Scredit_tbl(sc_count).sales_group_id
3724 := P_header_sales_credit_Tbl(j).resource_group_id;
3725
3726 l_Header_Scredit_tbl(sc_count).sales_group_updated_flag := 'Y';
3727
3728 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3729 aso_debug_pub.add('map_header_sales_credits : l_Header_Scredit_tbl(sc_count).sales_group_id : '||l_Header_Scredit_tbl(sc_count).sales_group_id, 1, 'N');
3730 END IF;
3731 /* Code added for Bug 9865459 End */
3732
3733 l_Header_Scredit_tbl(sc_count).SALES_CREDIT_TYPE_ID
3734 := P_header_sales_credit_Tbl(j).SALES_CREDIT_TYPE_ID;
3735
3736 IF p_header_operation <> OE_GLOBALS.G_OPR_CREATE THEN
3737 l_Header_Scredit_tbl(sc_count).header_id
3738 := P_qte_rec.quote_header_id;
3739 l_Header_Scredit_tbl(sc_count).sales_credit_id
3740 := P_header_sales_credit_Tbl(j).sales_credit_id;
3741 ELSIF p_header_operation = OE_GLOBALS.G_OPR_CREATE THEN
3742 l_Header_Scredit_tbl(sc_count).sales_credit_id := FND_API.G_MISS_NUM;
3743 END IF;
3744
3745 l_Header_Scredit_tbl(sc_count).operation := p_header_operation;
3746
3747 sc_count := sc_count +1;
3748 END LOOP;
3749 x_Header_Scredit_tbl := l_Header_Scredit_tbl;
3750
3751 END map_header_sales_credits;
3752
3753
3754 PROCEDURE map_line_price_att(
3755 p_line_price_attributes_tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
3756 p_line_index IN NUMBER,
3757 p_qte_line_index IN NUMBER,
3758 p_operation IN VARCHAR2,
3759 x_line_price_att_tbl IN OUT NOCOPY OE_Order_PUB.Line_Price_Att_Tbl_Type
3760 )
3761 IS
3762
3763 l NUMBER;
3764 i NUMBER;
3765 l_line_price_att_tbl OE_Order_PUB.Line_Price_Att_Tbl_Type;
3766 p_att_count NUMBER := 1;
3767
3768 BEGIN
3769
3770 FOR l in 1..p_line_price_attributes_tbl.count LOOP
3771 IF ( p_line_price_attributes_tbl(l).qte_line_index = p_qte_line_index) THEN
3772
3773 l_line_price_att_tbl(p_att_count).line_index := p_line_index;
3774 l_line_price_att_tbl(p_att_count).pricing_context
3775 := p_line_price_attributes_tbl(l).pricing_context;
3776 l_line_price_att_tbl(p_att_count).pricing_attribute1
3777 := p_line_price_attributes_tbl(l).pricing_attribute1;
3778 l_line_price_att_tbl(p_att_count).pricing_attribute2
3779 := p_line_price_attributes_tbl(l).pricing_attribute2;
3780 l_line_price_att_tbl(p_att_count).pricing_attribute3
3781 := p_line_price_attributes_tbl(l).pricing_attribute3;
3782 l_line_price_att_tbl(p_att_count).pricing_attribute4
3783 := p_line_price_attributes_tbl(l).pricing_attribute4;
3784 l_line_price_att_tbl(p_att_count).pricing_attribute5
3785 := p_line_price_attributes_tbl(l).pricing_attribute5;
3786 l_line_price_att_tbl(p_att_count).pricing_attribute6
3787 := p_line_price_attributes_tbl(l).pricing_attribute6;
3788 l_line_price_att_tbl(p_att_count).pricing_attribute7
3789 := p_line_price_attributes_tbl(l).pricing_attribute7;
3790 l_line_price_att_tbl(p_att_count).pricing_attribute8
3791 := p_line_price_attributes_tbl(l).pricing_attribute8;
3792 l_line_price_att_tbl(p_att_count).pricing_attribute9
3793 := p_line_price_attributes_tbl(l).pricing_attribute9;
3794 l_line_price_att_tbl(p_att_count).pricing_attribute10
3795 := p_line_price_attributes_tbl(l).pricing_attribute10;
3796 l_line_price_att_tbl(p_att_count).pricing_attribute11
3797 := p_line_price_attributes_tbl(l).pricing_attribute11;
3798 l_line_price_att_tbl(p_att_count).pricing_attribute12
3799 := p_line_price_attributes_tbl(l).pricing_attribute12;
3800 l_line_price_att_tbl(p_att_count).pricing_attribute13
3801 := p_line_price_attributes_tbl(l).pricing_attribute13;
3802 l_line_price_att_tbl(p_att_count).pricing_attribute14
3803 := p_line_price_attributes_tbl(l).pricing_attribute14;
3804 l_line_price_att_tbl(p_att_count).pricing_attribute15
3805 := p_line_price_attributes_tbl(l).pricing_attribute15;
3806 l_line_price_att_tbl(p_att_count).pricing_attribute16
3807 := p_line_price_attributes_tbl(l).pricing_attribute16;
3808 l_line_price_att_tbl(p_att_count).pricing_attribute17
3809 := p_line_price_attributes_tbl(l).pricing_attribute17;
3810 l_line_price_att_tbl(p_att_count).pricing_attribute18
3811 := p_line_price_attributes_tbl(l).pricing_attribute18;
3812 l_line_price_att_tbl(p_att_count).pricing_attribute19
3813 := p_line_price_attributes_tbl(l).pricing_attribute19;
3814 l_line_price_att_tbl(p_att_count).pricing_attribute20
3815 := p_line_price_attributes_tbl(l).pricing_attribute20;
3816 l_line_price_att_tbl(p_att_count).pricing_attribute21
3817 := p_line_price_attributes_tbl(l).pricing_attribute21;
3818 l_line_price_att_tbl(p_att_count).pricing_attribute22
3819 := p_line_price_attributes_tbl(l).pricing_attribute22;
3820 l_line_price_att_tbl(p_att_count).pricing_attribute23
3821 := p_line_price_attributes_tbl(l).pricing_attribute23;
3822 l_line_price_att_tbl(p_att_count).pricing_attribute24
3823 := p_line_price_attributes_tbl(l).pricing_attribute24;
3824 l_line_price_att_tbl(p_att_count).pricing_attribute25
3825 := p_line_price_attributes_tbl(l).pricing_attribute25;
3826 l_line_price_att_tbl(p_att_count).pricing_attribute26
3827 := p_line_price_attributes_tbl(l).pricing_attribute26;
3828 l_line_price_att_tbl(p_att_count).pricing_attribute27
3829 := p_line_price_attributes_tbl(l).pricing_attribute27;
3830 l_line_price_att_tbl(p_att_count).pricing_attribute28
3831 := p_line_price_attributes_tbl(l).pricing_attribute28;
3832 l_line_price_att_tbl(p_att_count).pricing_attribute29
3833 := p_line_price_attributes_tbl(l).pricing_attribute29;
3834 l_line_price_att_tbl(p_att_count).pricing_attribute30
3835 := p_line_price_attributes_tbl(l).pricing_attribute30;
3836 l_line_price_att_tbl(p_att_count).pricing_attribute31
3837 := p_line_price_attributes_tbl(l).pricing_attribute31;
3838 l_line_price_att_tbl(p_att_count).pricing_attribute32
3839 := p_line_price_attributes_tbl(l).pricing_attribute32;
3840 l_line_price_att_tbl(p_att_count).pricing_attribute33
3841 := p_line_price_attributes_tbl(l).pricing_attribute33;
3842 l_line_price_att_tbl(p_att_count).pricing_attribute34
3843 := p_line_price_attributes_tbl(l).pricing_attribute34;
3844 l_line_price_att_tbl(p_att_count).pricing_attribute35
3845 := p_line_price_attributes_tbl(l).pricing_attribute35;
3846 l_line_price_att_tbl(p_att_count).pricing_attribute36
3847 := p_line_price_attributes_tbl(l).pricing_attribute36;
3848 l_line_price_att_tbl(p_att_count).pricing_attribute37
3849 := p_line_price_attributes_tbl(l).pricing_attribute37;
3850 l_line_price_att_tbl(p_att_count).pricing_attribute38
3851 := p_line_price_attributes_tbl(l).pricing_attribute38;
3852 l_line_price_att_tbl(p_att_count).pricing_attribute39
3853 := p_line_price_attributes_tbl(l).pricing_attribute39;
3854 l_line_price_att_tbl(p_att_count).pricing_attribute40
3855 := p_line_price_attributes_tbl(l).pricing_attribute40;
3856 l_line_price_att_tbl(p_att_count).pricing_attribute41
3857 := p_line_price_attributes_tbl(l).pricing_attribute41;
3858 l_line_price_att_tbl(p_att_count).pricing_attribute42
3859 := p_line_price_attributes_tbl(l).pricing_attribute42;
3860 l_line_price_att_tbl(p_att_count).pricing_attribute43
3861 := p_line_price_attributes_tbl(l).pricing_attribute43;
3862 l_line_price_att_tbl(p_att_count).pricing_attribute44
3863 := p_line_price_attributes_tbl(l).pricing_attribute44;
3864 l_line_price_att_tbl(p_att_count).pricing_attribute45
3865 := p_line_price_attributes_tbl(l).pricing_attribute45;
3866 l_line_price_att_tbl(p_att_count).pricing_attribute46
3867 := p_line_price_attributes_tbl(l).pricing_attribute46;
3868 l_line_price_att_tbl(p_att_count).pricing_attribute47
3869 := p_line_price_attributes_tbl(l).pricing_attribute47;
3870 l_line_price_att_tbl(p_att_count).pricing_attribute48
3871 := p_line_price_attributes_tbl(l).pricing_attribute48;
3872 l_line_price_att_tbl(p_att_count).pricing_attribute49
3873 := p_line_price_attributes_tbl(l).pricing_attribute49;
3874 l_line_price_att_tbl(p_att_count).pricing_attribute50
3875 := p_line_price_attributes_tbl(l).pricing_attribute50;
3876 l_line_price_att_tbl(p_att_count).pricing_attribute51
3877 := p_line_price_attributes_tbl(l).pricing_attribute51;
3878 l_line_price_att_tbl(p_att_count).pricing_attribute52
3879 := p_line_price_attributes_tbl(l).pricing_attribute52;
3880 l_line_price_att_tbl(p_att_count).pricing_attribute53
3881 := p_line_price_attributes_tbl(l).pricing_attribute53;
3882 l_line_price_att_tbl(p_att_count).pricing_attribute54
3883 := p_line_price_attributes_tbl(l).pricing_attribute54;
3884 l_line_price_att_tbl(p_att_count).pricing_attribute55
3885 := p_line_price_attributes_tbl(l).pricing_attribute55;
3886 l_line_price_att_tbl(p_att_count).pricing_attribute56
3887 := p_line_price_attributes_tbl(l).pricing_attribute56;
3888 l_line_price_att_tbl(p_att_count).pricing_attribute57
3889 := p_line_price_attributes_tbl(l).pricing_attribute57;
3890 l_line_price_att_tbl(p_att_count).pricing_attribute58
3891 := p_line_price_attributes_tbl(l).pricing_attribute58;
3892 l_line_price_att_tbl(p_att_count).pricing_attribute59
3893 := p_line_price_attributes_tbl(l).pricing_attribute59;
3894 l_line_price_att_tbl(p_att_count).pricing_attribute60
3895 := p_line_price_attributes_tbl(l).pricing_attribute60;
3896 l_line_price_att_tbl(p_att_count).pricing_attribute61
3897 := p_line_price_attributes_tbl(l).pricing_attribute61;
3898 l_line_price_att_tbl(p_att_count).pricing_attribute62
3899 := p_line_price_attributes_tbl(l).pricing_attribute62;
3900 l_line_price_att_tbl(p_att_count).pricing_attribute63
3901 := p_line_price_attributes_tbl(l).pricing_attribute63;
3902 l_line_price_att_tbl(p_att_count).pricing_attribute64
3903 := p_line_price_attributes_tbl(l).pricing_attribute64;
3904 l_line_price_att_tbl(p_att_count).pricing_attribute65
3905 := p_line_price_attributes_tbl(l).pricing_attribute65;
3906 l_line_price_att_tbl(p_att_count).pricing_attribute66
3907 := p_line_price_attributes_tbl(l).pricing_attribute66;
3908 l_line_price_att_tbl(p_att_count).pricing_attribute67
3909 := p_line_price_attributes_tbl(l).pricing_attribute67;
3910 l_line_price_att_tbl(p_att_count).pricing_attribute68
3911 := p_line_price_attributes_tbl(l).pricing_attribute68;
3912 l_line_price_att_tbl(p_att_count).pricing_attribute69
3913 := p_line_price_attributes_tbl(l).pricing_attribute69;
3914 l_line_price_att_tbl(p_att_count).pricing_attribute70
3915 := p_line_price_attributes_tbl(l).pricing_attribute70;
3916 l_line_price_att_tbl(p_att_count).pricing_attribute71
3917 := p_line_price_attributes_tbl(l).pricing_attribute71;
3918 l_line_price_att_tbl(p_att_count).pricing_attribute72
3919 := p_line_price_attributes_tbl(l).pricing_attribute72;
3920 l_line_price_att_tbl(p_att_count).pricing_attribute73
3921 := p_line_price_attributes_tbl(l).pricing_attribute73;
3922 l_line_price_att_tbl(p_att_count).pricing_attribute74
3923 := p_line_price_attributes_tbl(l).pricing_attribute74;
3924 l_line_price_att_tbl(p_att_count).pricing_attribute75
3925 := p_line_price_attributes_tbl(l).pricing_attribute75;
3926 l_line_price_att_tbl(p_att_count).pricing_attribute76
3927 := p_line_price_attributes_tbl(l).pricing_attribute76;
3928 l_line_price_att_tbl(p_att_count).pricing_attribute77
3929 := p_line_price_attributes_tbl(l).pricing_attribute77;
3930 l_line_price_att_tbl(p_att_count).pricing_attribute78
3931 := p_line_price_attributes_tbl(l).pricing_attribute78;
3932 l_line_price_att_tbl(p_att_count).pricing_attribute79
3933 := p_line_price_attributes_tbl(l).pricing_attribute79;
3934 l_line_price_att_tbl(p_att_count).pricing_attribute80
3935 := p_line_price_attributes_tbl(l).pricing_attribute80;
3936 l_line_price_att_tbl(p_att_count).pricing_attribute81
3937 := p_line_price_attributes_tbl(l).pricing_attribute81;
3938 l_line_price_att_tbl(p_att_count).pricing_attribute82
3939 := p_line_price_attributes_tbl(l).pricing_attribute82;
3940 l_line_price_att_tbl(p_att_count).pricing_attribute83
3941 := p_line_price_attributes_tbl(l).pricing_attribute83;
3942 l_line_price_att_tbl(p_att_count).pricing_attribute84
3943 := p_line_price_attributes_tbl(l).pricing_attribute84;
3944 l_line_price_att_tbl(p_att_count).pricing_attribute85
3945 := p_line_price_attributes_tbl(l).pricing_attribute85;
3946 l_line_price_att_tbl(p_att_count).pricing_attribute86
3947 := p_line_price_attributes_tbl(l).pricing_attribute86;
3948 l_line_price_att_tbl(p_att_count).pricing_attribute87
3949 := p_line_price_attributes_tbl(l).pricing_attribute87;
3950 l_line_price_att_tbl(p_att_count).pricing_attribute88
3951 := p_line_price_attributes_tbl(l).pricing_attribute88;
3952 l_line_price_att_tbl(p_att_count).pricing_attribute89
3953 := p_line_price_attributes_tbl(l).pricing_attribute89;
3954 l_line_price_att_tbl(p_att_count).pricing_attribute90
3955 := p_line_price_attributes_tbl(l).pricing_attribute90;
3956 l_line_price_att_tbl(p_att_count).pricing_attribute91
3957 := p_line_price_attributes_tbl(l).pricing_attribute91;
3958 l_line_price_att_tbl(p_att_count).pricing_attribute92
3959 := p_line_price_attributes_tbl(l).pricing_attribute92;
3960 l_line_price_att_tbl(p_att_count).pricing_attribute93
3961 := p_line_price_attributes_tbl(l).pricing_attribute93;
3962 l_line_price_att_tbl(p_att_count).pricing_attribute94
3963 := p_line_price_attributes_tbl(l).pricing_attribute94;
3964 l_line_price_att_tbl(p_att_count).pricing_attribute95
3965 := p_line_price_attributes_tbl(l).pricing_attribute95;
3966 l_line_price_att_tbl(p_att_count).pricing_attribute96
3967 := p_line_price_attributes_tbl(l).pricing_attribute96;
3968 l_line_price_att_tbl(p_att_count).pricing_attribute97
3969 := p_line_price_attributes_tbl(l).pricing_attribute97;
3970 l_line_price_att_tbl(p_att_count).pricing_attribute98
3971 := p_line_price_attributes_tbl(l).pricing_attribute98;
3972 l_line_price_att_tbl(p_att_count).pricing_attribute99
3973 := p_line_price_attributes_tbl(l).pricing_attribute99;
3974 l_line_price_att_tbl(p_att_count).pricing_attribute100
3975 := p_line_price_attributes_tbl(l).pricing_attribute100;
3976
3977 -- bug# 2020930
3978 l_line_price_att_tbl(p_att_count).flex_title
3979 := p_line_price_attributes_tbl(l).flex_title;
3980 l_line_price_att_tbl(p_att_count).context
3981 := p_line_price_attributes_tbl(l).context;
3982 l_line_price_att_tbl(p_att_count).attribute1
3983 := p_line_price_attributes_tbl(l).attribute1;
3984 l_line_price_att_tbl(p_att_count).attribute2
3985 := p_line_price_attributes_tbl(l).attribute2;
3986 l_line_price_att_tbl(p_att_count).attribute3
3987 := p_line_price_attributes_tbl(l).attribute3;
3988 l_line_price_att_tbl(p_att_count).attribute4
3989 := p_line_price_attributes_tbl(l).attribute4;
3990 l_line_price_att_tbl(p_att_count).attribute5
3991 := p_line_price_attributes_tbl(l).attribute5;
3992 l_line_price_att_tbl(p_att_count).attribute6
3993 := p_line_price_attributes_tbl(l).attribute6;
3994 l_line_price_att_tbl(p_att_count).attribute7
3995 := p_line_price_attributes_tbl(l).attribute7;
3996 l_line_price_att_tbl(p_att_count).attribute8
3997 := p_line_price_attributes_tbl(l).attribute8;
3998 l_line_price_att_tbl(p_att_count).attribute9
3999 := p_line_price_attributes_tbl(l).attribute9;
4000 l_line_price_att_tbl(p_att_count).attribute10
4001 := p_line_price_attributes_tbl(l).attribute10;
4002 l_line_price_att_tbl(p_att_count).attribute11
4003 := p_line_price_attributes_tbl(l).attribute11;
4004 l_line_price_att_tbl(p_att_count).attribute12
4005 := p_line_price_attributes_tbl(l).attribute12;
4006 l_line_price_att_tbl(p_att_count).attribute13
4007 := p_line_price_attributes_tbl(l).attribute13;
4008 l_line_price_att_tbl(p_att_count).attribute14
4009 := p_line_price_attributes_tbl(l).attribute14;
4010 l_line_price_att_tbl(p_att_count).attribute15
4011 := p_line_price_attributes_tbl(l).attribute15;
4012 -- bug# 2020930 end
4013
4014 IF p_operation = OE_GLOBALS.G_OPR_CREATE THEN
4015 l_line_price_att_tbl(p_att_count).order_price_attrib_id
4016 := FND_API.G_MISS_NUM;
4017 ELSIF p_operation = OE_GLOBALS.G_OPR_UPDATE THEN
4018 l_line_price_att_tbl(p_att_count).header_id
4019 := p_line_price_attributes_tbl(l).quote_header_id;
4020 l_line_price_att_tbl(p_att_count).line_id
4021 := p_line_price_attributes_tbl(l).quote_line_id;
4022 l_line_price_att_tbl(p_att_count).order_price_attrib_id
4023 := p_line_price_attributes_tbl(l).price_attribute_id;
4024 ELSIF p_operation = OE_GLOBALS.G_OPR_DELETE THEN
4025 l_line_price_att_tbl(p_att_count).order_price_attrib_id
4026 := p_line_price_attributes_tbl(l).price_attribute_id;
4027 END IF;
4028
4029 l_line_price_att_tbl(p_att_count).operation := p_operation;
4030
4031 p_att_count := p_att_count + 1;
4032 END IF;
4033
4034 END LOOP; -- price attributes
4035
4036 FOR i in 1..l_line_price_att_tbl.count LOOP
4037 x_line_price_att_tbl(x_line_price_att_tbl.count + 1) :=
4038 l_line_price_att_tbl(i);
4039 END LOOP;
4040
4041 END map_line_price_att;
4042
4043
4044 PROCEDURE map_line_price_adj(
4045 p_line_price_adj_tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
4046 p_line_price_adj_attr_tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
4047 p_line_index IN NUMBER,
4048 p_qte_line_index IN NUMBER,
4049 p_operation IN VARCHAR2,
4050 x_line_adj_tbl IN OUT NOCOPY OE_Order_PUB.Line_Adj_Tbl_Type,
4051 x_line_adj_att_tbl IN OUT NOCOPY OE_Order_PUB.Line_Adj_Att_Tbl_Type,
4052 lx_Line_Price_Adj_rltship_Tbl IN OUT NOCOPY ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type
4053 )
4054 IS
4055
4056 pad_count NUMBER;
4057 l NUMBER;
4058 i NUMBER;
4059 j NUMBER;
4060 adj_count NUMBER := 1;
4061 attr_count NUMBER := 1;
4062 l_line_adj_tbl OE_Order_PUB.Line_Adj_Tbl_Type
4063 := OE_ORDER_PUB.G_MISS_LINE_ADJ_TBL;
4064 l_line_adj_att_tbl OE_Order_PUB.Line_Adj_Att_Tbl_Type;
4065
4066 BEGIN
4067
4068 FOR pad_count in 1..p_line_price_adj_tbl.count LOOP
4069 IF ( p_line_price_adj_tbl(pad_count).qte_line_index = p_qte_line_index) THEN
4070
4071 l_line_adj_tbl(adj_count).attribute1 := p_line_price_adj_tbl(pad_count).attribute1;
4072 l_line_adj_tbl(adj_count).attribute10 := p_line_price_adj_tbl(pad_count).attribute10;
4073 l_line_adj_tbl(adj_count).attribute11 := p_line_price_adj_tbl(pad_count).attribute11;
4074 l_line_adj_tbl(adj_count).attribute12 := p_line_price_adj_tbl(pad_count).attribute12;
4075 l_line_adj_tbl(adj_count).attribute13 := p_line_price_adj_tbl(pad_count).attribute13;
4076 l_line_adj_tbl(adj_count).attribute14 := p_line_price_adj_tbl(pad_count).attribute14;
4077 l_line_adj_tbl(adj_count).attribute15 := p_line_price_adj_tbl(pad_count).attribute15;
4078 l_line_adj_tbl(adj_count).attribute2 := p_line_price_adj_tbl(pad_count).attribute2;
4079 l_line_adj_tbl(adj_count).attribute3 := p_line_price_adj_tbl(pad_count).attribute3;
4080 l_line_adj_tbl(adj_count).attribute4 := p_line_price_adj_tbl(pad_count).attribute4;
4081 l_line_adj_tbl(adj_count).attribute5 := p_line_price_adj_tbl(pad_count).attribute5;
4082 l_line_adj_tbl(adj_count).attribute6 := p_line_price_adj_tbl(pad_count).attribute6;
4083 l_line_adj_tbl(adj_count).attribute7 := p_line_price_adj_tbl(pad_count).attribute7;
4084 l_line_adj_tbl(adj_count).attribute8 := p_line_price_adj_tbl(pad_count).attribute8;
4085 l_line_adj_tbl(adj_count).attribute9 := p_line_price_adj_tbl(pad_count).attribute9;
4086 l_line_adj_tbl(adj_count).context := p_line_price_adj_tbl(pad_count).attribute_category;
4087 l_line_adj_tbl(adj_count).automatic_flag := p_line_price_adj_tbl(pad_count).automatic_flag;
4088
4089 IF p_operation <> OE_GLOBALS.G_OPR_CREATE AND p_operation <> FND_API.G_MISS_CHAR THEN
4090
4091 l_line_adj_tbl(adj_count).header_id := p_line_price_adj_tbl(pad_count).quote_header_id;
4092 l_line_adj_tbl(adj_count).line_id := p_line_price_adj_tbl(pad_count).quote_line_id;
4093
4094 ELSIF p_operation = OE_GLOBALS.G_OPR_CREATE THEN
4095
4096 l_line_adj_tbl(adj_count).price_adjustment_id := FND_API.G_MISS_NUM;
4097
4098 END IF;
4099
4100 l_line_adj_tbl(adj_count).operation := p_operation;
4101 l_line_adj_tbl(adj_count).line_index := p_line_index;
4102
4103 l_line_adj_tbl(adj_count).list_header_id := p_line_price_adj_tbl(pad_count).modifier_header_id;
4104 l_line_adj_tbl(adj_count).list_line_id := p_line_price_adj_tbl(pad_count).modifier_line_id;
4105 l_line_adj_tbl(adj_count).list_line_type_code := p_line_price_adj_tbl(pad_count).modifier_line_type_code;
4106 l_line_adj_tbl(adj_count).modified_from := p_line_price_adj_tbl(pad_count).modified_from;
4107 l_line_adj_tbl(adj_count).modified_to := p_line_price_adj_tbl(pad_count).modified_to;
4108 l_line_adj_tbl(adj_count).updated_flag := p_line_price_adj_tbl(pad_count).updated_flag;
4109 l_line_adj_tbl(adj_count).operand := p_line_price_adj_tbl(pad_count).operand;
4110 l_line_adj_tbl(adj_count).arithmetic_operator := p_line_price_adj_tbl(pad_count).arithmetic_operator;
4111 l_line_adj_tbl(adj_count).automatic_flag := p_line_price_adj_tbl(pad_count).automatic_flag;
4112 l_line_adj_tbl(adj_count).applied_flag := p_line_price_adj_tbl(pad_count).applied_flag;
4113 l_line_adj_tbl(adj_count).pricing_phase_id := p_line_price_adj_tbl(pad_count).pricing_phase_id;
4114 l_line_adj_tbl(adj_count).update_allowed := p_line_price_adj_tbl(pad_count).update_allowed;
4115 l_line_adj_tbl(adj_count).updated_flag := p_line_price_adj_tbl(pad_count).updated_flag;
4116 l_line_adj_tbl(adj_count).updated_flag := p_line_price_adj_tbl(pad_count).updated_flag;
4117 l_line_adj_tbl(adj_count).modifier_mechanism_type_code := p_line_price_adj_tbl(pad_count).modifier_mechanism_type_code;
4118
4119 -- added later
4120 l_line_adj_tbl(adj_count).orig_sys_discount_ref := p_line_price_adj_tbl(pad_count).orig_sys_discount_ref;
4121 l_line_adj_tbl(adj_count).change_reason_code := p_line_price_adj_tbl(pad_count).change_reason_code;
4122 l_line_adj_tbl(adj_count).change_reason_text := p_line_price_adj_tbl(pad_count).change_reason_text;
4123 l_line_adj_tbl(adj_count).cost_id := p_line_price_adj_tbl(pad_count).cost_id;
4124 l_line_adj_tbl(adj_count).tax_code := p_line_price_adj_tbl(pad_count).tax_code;
4125 l_line_adj_tbl(adj_count).tax_exempt_flag := p_line_price_adj_tbl(pad_count).tax_exempt_flag;
4126 l_line_adj_tbl(adj_count).tax_exempt_number := p_line_price_adj_tbl(pad_count).tax_exempt_number;
4127 l_line_adj_tbl(adj_count).tax_exempt_reason_code := p_line_price_adj_tbl(pad_count).tax_exempt_reason_code;
4128 l_line_adj_tbl(adj_count).parent_adjustment_id := p_line_price_adj_tbl(pad_count).parent_adjustment_id;
4129 l_line_adj_tbl(adj_count).invoiced_flag := p_line_price_adj_tbl(pad_count).invoiced_flag;
4130 l_line_adj_tbl(adj_count).estimated_flag := p_line_price_adj_tbl(pad_count).estimated_flag;
4131 l_line_adj_tbl(adj_count).inc_in_sales_performance := p_line_price_adj_tbl(pad_count).inc_in_sales_performance;
4132 l_line_adj_tbl(adj_count).split_action_code := p_line_price_adj_tbl(pad_count).split_action_code;
4133 l_line_adj_tbl(adj_count).adjusted_amount := p_line_price_adj_tbl(pad_count).adjusted_amount;
4134 l_line_adj_tbl(adj_count).charge_type_code := p_line_price_adj_tbl(pad_count).charge_type_code;
4135 l_line_adj_tbl(adj_count).charge_subtype_code := p_line_price_adj_tbl(pad_count).charge_subtype_code;
4136 l_line_adj_tbl(adj_count).RANGE_BREAK_QUANTITY := p_line_price_adj_tbl(pad_count).RANGE_BREAK_QUANTITY;
4137 l_line_adj_tbl(adj_count).ACCRUAL_CONVERSION_RATE := p_line_price_adj_tbl(pad_count).ACCRUAL_CONVERSION_RATE;
4138 l_line_adj_tbl(adj_count).PRICING_GROUP_SEQUENCE := p_line_price_adj_tbl(pad_count).PRICING_GROUP_SEQUENCE;
4139 l_line_adj_tbl(adj_count).ACCRUAL_FLAG := p_line_price_adj_tbl(pad_count).ACCRUAL_FLAG;
4140 l_line_adj_tbl(adj_count).LIST_LINE_NO := p_line_price_adj_tbl(pad_count).LIST_LINE_NO;
4141 l_line_adj_tbl(adj_count).SOURCE_SYSTEM_CODE := p_line_price_adj_tbl(pad_count).SOURCE_SYSTEM_CODE;
4142 l_line_adj_tbl(adj_count).BENEFIT_QTY := p_line_price_adj_tbl(pad_count).BENEFIT_QTY;
4143 l_line_adj_tbl(adj_count).BENEFIT_UOM_CODE := p_line_price_adj_tbl(pad_count).BENEFIT_UOM_CODE;
4144 l_line_adj_tbl(adj_count).PRINT_ON_INVOICE_FLAG := p_line_price_adj_tbl(pad_count).PRINT_ON_INVOICE_FLAG;
4145 l_line_adj_tbl(adj_count).EXPIRATION_DATE := p_line_price_adj_tbl(pad_count).EXPIRATION_DATE;
4146 l_line_adj_tbl(adj_count).REBATE_TRANSACTION_TYPE_CODE := p_line_price_adj_tbl(pad_count).REBATE_TRANSACTION_TYPE_CODE;
4147 l_line_adj_tbl(adj_count).REBATE_TRANSACTION_REFERENCE := p_line_price_adj_tbl(pad_count).REBATE_TRANSACTION_REFERENCE;
4148 l_line_adj_tbl(adj_count).REBATE_PAYMENT_SYSTEM_CODE := p_line_price_adj_tbl(pad_count).REBATE_PAYMENT_SYSTEM_CODE;
4149 l_line_adj_tbl(adj_count).REDEEMED_DATE := p_line_price_adj_tbl(pad_count).REDEEMED_DATE;
4150 l_line_adj_tbl(adj_count).REDEEMED_FLAG := p_line_price_adj_tbl(pad_count).REDEEMED_FLAG;
4151 l_line_adj_tbl(adj_count).MODIFIER_LEVEL_CODE := p_line_price_adj_tbl(pad_count).MODIFIER_LEVEL_CODE;
4152 l_line_adj_tbl(adj_count).PRICE_BREAK_TYPE_CODE := p_line_price_adj_tbl(pad_count).PRICE_BREAK_TYPE_CODE;
4153 l_line_adj_tbl(adj_count).SUBSTITUTION_ATTRIBUTE := p_line_price_adj_tbl(pad_count).SUBSTITUTION_ATTRIBUTE;
4154 l_line_adj_tbl(adj_count).PRORATION_TYPE_CODE := p_line_price_adj_tbl(pad_count).PRORATION_TYPE_CODE;
4155 l_line_adj_tbl(adj_count).INCLUDE_ON_RETURNS_FLAG := p_line_price_adj_tbl(pad_count).INCLUDE_ON_RETURNS_FLAG;
4156 l_line_adj_tbl(adj_count).CREDIT_OR_CHARGE_FLAG := p_line_price_adj_tbl(pad_count).CREDIT_OR_CHARGE_FLAG;
4157 -- end added later
4158
4159 FOR l in 1..p_line_price_adj_attr_tbl.count LOOP
4160
4161 IF p_line_price_adj_attr_tbl(l).price_adj_index = pad_count THEN
4162
4163 IF p_operation = OE_GLOBALS.G_OPR_CREATE THEN
4164 l_line_adj_att_tbl(attr_count).price_adj_attrib_id := FND_API.G_MISS_NUM;
4165 ELSIF p_operation <> OE_GLOBALS.G_OPR_CREATE THEN
4166 l_line_adj_att_tbl(attr_count).price_adj_attrib_id := p_line_price_adj_attr_tbl(l).price_adj_attrib_id;
4167 l_line_adj_att_tbl(attr_count).price_adjustment_id := p_line_price_adj_attr_tbl(l).price_adjustment_id;
4168 END IF;
4169
4170 l_line_adj_att_tbl(attr_count).operation := p_operation;
4171
4172 l_line_adj_att_tbl(attr_count).Adj_index := adj_count;
4173 l_line_adj_att_tbl(attr_count).flex_title := p_line_price_adj_attr_tbl(l).flex_title;
4174 l_line_adj_att_tbl(attr_count).pricing_context := p_line_price_adj_attr_tbl(l).pricing_context;
4175 l_line_adj_att_tbl(attr_count).pricing_attribute := p_line_price_adj_attr_tbl(l).pricing_attribute;
4176 l_line_adj_att_tbl(attr_count).pricing_attr_value_from := p_line_price_adj_attr_tbl(l).pricing_attr_value_from;
4177 l_line_adj_att_tbl(attr_count).pricing_attr_value_to := p_line_price_adj_attr_tbl(l).pricing_attr_value_to;
4178 l_line_adj_att_tbl(attr_count).comparison_operator := p_line_price_adj_attr_tbl(l).comparison_operator;
4179
4180 attr_count := attr_count+1;
4181 END IF;
4182
4183 END LOOP; --price adjustment attributes
4184
4185 adj_count := adj_count + 1;
4186
4187 END IF;
4188
4189 -- pbh/prg
4190 FOR j in 1..lx_Line_Price_Adj_rltship_Tbl.count LOOP
4191 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4192 aso_debug_pub.add('map_ln_rlt: p_line_price_adj_tbl(pad_count).price_adjustment_id: '||p_line_price_adj_tbl(pad_count).price_adjustment_id,1,'N');
4193 END IF;
4194
4195 IF lx_Line_Price_Adj_rltship_Tbl(j).price_adjustment_id
4196 = p_line_price_adj_tbl(pad_count).price_adjustment_id THEN
4197 lx_Line_Price_Adj_rltship_Tbl(j).price_adj_index := pad_count;
4198 END IF;
4199
4200 IF lx_Line_Price_Adj_rltship_Tbl(j).rltd_price_adj_id
4201 = p_line_price_adj_tbl(pad_count).price_adjustment_id THEN
4202 lx_Line_Price_Adj_rltship_Tbl(j).rltd_price_adj_index := pad_count;
4203 END IF;
4204
4205 END LOOP;
4206 -- pbh/prg
4207
4208 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4209 aso_debug_pub.add('map_ln_rlt: lx_Line_Price_Adj_rltship_Tbl.count: '||lx_Line_Price_Adj_rltship_Tbl.count,1,'N');
4210 END IF;
4211
4212 END LOOP; --- price adjustments
4213
4214 FOR i IN 1..l_line_adj_tbl.count LOOP
4215 x_line_adj_tbl(x_line_adj_tbl.count +1 ) := l_line_adj_tbl(i);
4216 END LOOP;
4217
4218 FOR i IN 1..l_line_adj_att_tbl.count LOOP
4219 x_line_adj_att_tbl(x_line_adj_att_tbl.count + 1)
4220 := l_line_adj_att_tbl(i);
4221 END LOOP;
4222
4223 END map_line_price_adj;
4224
4225
4226 PROCEDURE map_line_price_adj_rltn(
4227 P_Line_Price_Adj_rltship_Tbl IN ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type,
4228 p_line_index IN NUMBER,
4229 p_qte_line_index IN NUMBER,
4230 p_operation IN VARCHAR2,
4231 x_Line_Adj_Assoc_tbl IN OUT NOCOPY OE_Order_PUB.Line_Adj_Assoc_Tbl_Type
4232 )
4233 IS
4234
4235 l NUMBER;
4236 i NUMBER;
4237 adj_rlt_count NUMBER := 1;
4238 l_Line_Adj_Assoc_tbl OE_Order_PUB.Line_Adj_Assoc_Tbl_Type;
4239
4240 BEGIN
4241
4242 FOR l in 1..P_Line_Price_Adj_rltship_Tbl.count LOOP
4243 IF P_Line_Price_Adj_rltship_Tbl(l).qte_line_index = p_qte_line_index THEN
4244
4245 l_Line_Adj_Assoc_tbl(adj_rlt_count).operation := p_operation;
4246
4247 IF l_Line_Adj_Assoc_tbl(adj_rlt_count).operation = OE_GLOBALS.G_OPR_CREATE THEN
4248 l_Line_Adj_Assoc_tbl(adj_rlt_count).Adj_index
4249 := P_Line_Price_Adj_rltship_Tbl(l).price_adj_index;
4250 l_Line_Adj_Assoc_tbl(adj_rlt_count).Rltd_Adj_index
4251 := P_Line_Price_Adj_rltship_Tbl(l).rltd_price_adj_index;
4252 l_Line_Adj_Assoc_tbl(adj_rlt_count).Line_Index := p_line_index;
4253 l_line_Adj_Assoc_tbl(adj_rlt_count).price_adj_assoc_id := FND_API.G_MISS_NUM;
4254
4255 ELSIF l_Line_Adj_Assoc_tbl(adj_rlt_count).operation = OE_GLOBALS.G_OPR_UPDATE THEN
4256
4257 l_Line_Adj_Assoc_tbl(adj_rlt_count).line_id
4258 := P_Line_Price_Adj_rltship_Tbl(l).QUOTE_LINE_ID;
4259 l_Line_Adj_Assoc_tbl(adj_rlt_count).price_adj_assoc_id
4260 := P_Line_Price_Adj_rltship_Tbl(l).ADJ_RELATIONSHIP_ID;
4261 l_Line_Adj_Assoc_tbl(adj_rlt_count).price_adjustment_id
4262 := P_Line_Price_Adj_rltship_Tbl(l).PRICE_ADJUSTMENT_ID ;
4263 l_Line_Adj_Assoc_tbl(adj_rlt_count).rltd_Price_Adj_Id
4264 := P_Line_Price_Adj_rltship_Tbl(l).RLTD_PRICE_ADJ_ID;
4265 END IF;
4266
4267 adj_rlt_count := adj_rlt_count + 1;
4268
4269 END IF;
4270
4271 END LOOP; -- price adj rltship
4272
4273 FOR i in 1..l_Line_Adj_Assoc_tbl.count loop
4274 x_Line_Adj_Assoc_tbl(x_Line_Adj_Assoc_tbl.count + 1) :=
4275 l_Line_Adj_Assoc_tbl(i);
4276 END LOOP;
4277
4278 END map_line_price_adj_rltn;
4279
4280
4281 PROCEDURE map_line_sales_credit(
4282 P_line_sales_credit_Tbl IN ASO_QUOTE_PUB.Sales_credit_tbl_type,
4283 p_line_index IN NUMBER,
4284 p_qte_line_index IN NUMBER,
4285 p_line_operation IN VARCHAR2,
4286 p_operation IN VARCHAR2,
4287 x_Line_Scredit_tbl IN OUT NOCOPY OE_Order_PUB.Line_Scredit_Tbl_Type
4288 )
4289 IS
4290
4291 l NUMBER;
4292 i NUMBER;
4293 sc_count NUMBER := 1;
4294 l_Line_Scredit_tbl OE_Order_PUB.Line_Scredit_Tbl_Type;
4295
4296 CURSOR salesrep( p_resource_id NUMBER) IS
4297 select salesrep_id
4298 -- from jtf_rs_srp_vl Commented Code Yogeshwar (MOAC)
4299 from jtf_rs_salesreps_mo_v --New Code Yogeshwar (MOAC)
4300 where resource_id = p_resource_id ;
4301 --Commented Code Start Yogeshwar (MOAC)
4302 /*
4303 and NVL(ORG_ID,NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), '',
4304 NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) = NVL(TO_NUMBER(DECODE(SUBSTRB(
4305 USERENV('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99);
4306 */
4307 --Commented Code End Yogeshwar (MOAC)
4308
4309 BEGIN
4310
4311 FOR l in 1..P_line_sales_credit_Tbl.count LOOP
4312
4313 IF P_line_sales_credit_Tbl(l).qte_line_index = p_qte_line_index THEN
4314 l_Line_Scredit_tbl(sc_count).line_index := p_line_index;
4315 l_Line_Scredit_tbl(sc_count).attribute1
4316 := P_line_sales_credit_Tbl(l).attribute1 ;
4317 l_Line_Scredit_tbl(sc_count).attribute10
4318 := P_line_sales_credit_Tbl(l).attribute10;
4319 l_Line_Scredit_tbl(sc_count).attribute11
4320 := P_line_sales_credit_Tbl(l).attribute11;
4321 l_Line_Scredit_tbl(sc_count).attribute12
4322 := P_line_sales_credit_Tbl(l).attribute12;
4323 l_Line_Scredit_tbl(sc_count).attribute13
4324 := P_line_sales_credit_Tbl(l).attribute13;
4325 l_Line_Scredit_tbl(sc_count).attribute14
4326 := P_line_sales_credit_Tbl(l).attribute14;
4327 l_Line_Scredit_tbl(sc_count).attribute15
4328 := P_line_sales_credit_Tbl(l).attribute15;
4329 l_Line_Scredit_tbl(sc_count).attribute2
4330 := P_line_sales_credit_Tbl(l).attribute2;
4331 l_Line_Scredit_tbl(sc_count).attribute3
4332 := P_line_sales_credit_Tbl(l).attribute3;
4333 l_Line_Scredit_tbl(sc_count).attribute4
4334 := P_line_sales_credit_Tbl(l).attribute4;
4335 l_Line_Scredit_tbl(sc_count).attribute5
4336 := P_line_sales_credit_Tbl(l).attribute5;
4337 l_Line_Scredit_tbl(sc_count).attribute6
4338 := P_line_sales_credit_Tbl(l).attribute6;
4339 l_Line_Scredit_tbl(sc_count).attribute7
4340 := P_line_sales_credit_Tbl(l).attribute7;
4341 l_Line_Scredit_tbl(sc_count).attribute8
4342 := P_line_sales_credit_Tbl(l).attribute8;
4343 l_Line_Scredit_tbl(sc_count).attribute9
4344 := P_line_sales_credit_Tbl(l).attribute9;
4345 l_Line_Scredit_tbl(sc_count).context
4346 := P_line_sales_credit_Tbl(l).attribute_category_code;
4347 l_Line_Scredit_tbl(sc_count).percent
4348 := P_line_sales_credit_Tbl(l).percent;
4349
4350 OPEN salesrep(P_line_sales_credit_Tbl(l).resource_id);
4351 FETCH salesrep into l_Line_Scredit_tbl(sc_count).salesrep_id;
4352 CLOSE salesrep;
4353
4354 /* Code added for Bug 9865459 Start */
4355 l_Line_Scredit_tbl(sc_count).sales_group_id
4356 := P_line_sales_credit_Tbl(l).resource_group_id;
4357
4358 l_Line_Scredit_tbl(sc_count).sales_group_updated_flag := 'Y';
4359
4360 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4361 aso_debug_pub.add('map_line_sales_credit : l_line_Scredit_tbl(sc_count).sales_group_id : '||l_line_Scredit_tbl(sc_count).sales_group_id, 1, 'N');
4362 END IF;
4363 /* Code added for Bug 9865459 End */
4364
4365 l_Line_Scredit_tbl(sc_count).SALES_CREDIT_TYPE_ID
4366 := P_line_sales_credit_Tbl(l).SALES_CREDIT_TYPE_ID;
4367
4368 IF p_line_operation <> OE_GLOBALS.G_OPR_CREATE THEN
4369 l_Line_Scredit_tbl(sc_count).sales_credit_id
4370 := P_line_sales_credit_Tbl(l).sales_credit_id;
4371 ELSIF p_line_operation = OE_GLOBALS.G_OPR_CREATE THEN
4372 l_Line_Scredit_tbl(sc_count).sales_credit_id := FND_API.G_MISS_NUM;
4373 END IF;
4374
4375 l_Line_Scredit_tbl(sc_count).operation := p_line_operation;
4376
4377 sc_count := sc_count +1;
4378
4379 END IF;
4380 END LOOP; -- salescredit
4381
4382 FOR i in 1..l_line_Scredit_tbl.count loop
4383 x_line_Scredit_tbl(x_line_Scredit_tbl.count + 1)
4384 := l_line_Scredit_tbl(i);
4385 END LOOP;
4386
4387 END map_line_sales_credit;
4388
4389 --Line Payments change
4390
4391 PROCEDURE map_line_payments(
4392 P_line_payment_Tbl IN ASO_QUOTE_PUB.payment_tbl_type,
4393 p_line_index IN NUMBER,
4394 p_qte_line_index IN NUMBER,
4395 p_line_operation IN VARCHAR2,
4396 p_operation IN VARCHAR2,
4397 x_Line_tbl IN OUT NOCOPY OE_Order_PUB.Line_Tbl_Type,
4398 x_Line_Payment_tbl IN OUT NOCOPY OE_Order_PUB.Line_Payment_Tbl_Type
4399 )
4400 IS
4401 i NUMBER;
4402 pay_count NUMBER := 1;
4403 l_Line_Payment_tbl OE_Order_PUB.Line_Payment_Tbl_Type;
4404 --bug8775480
4405 --l_line_tbl OE_Order_PUB.Line_Tbl_Type := x_Line_tbl;
4406 l_om_defaulting_prof VARCHAR2(2)
4407 := NVL(FND_PROFILE.Value('ASO_OM_DEFAULTING'), 'N');
4408 Begin
4409 FOR i in 1..P_Line_Payment_Tbl.count LOOP
4410
4411 IF P_Line_Payment_Tbl(i).qte_line_index = p_qte_line_index THEN
4412 l_Line_payment_tbl(pay_count).line_index := p_line_index;
4413
4414 IF (NVL(l_om_defaulting_prof, 'N') = 'Y') THEN
4415 IF P_Line_Payment_Tbl(i).payment_term_id IS NULL THEN
4416 x_Line_tbl(p_line_index).payment_term_id := FND_API.G_MISS_NUM;
4417 ELSE
4418 x_Line_tbl(p_line_index).payment_term_id := P_Line_Payment_Tbl(i).payment_term_id;
4419 END IF;
4420 ELSE
4421 x_Line_tbl(p_line_index).payment_term_id := P_Line_Payment_Tbl(i).payment_term_id;
4422 END IF;
4423
4424 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4425 aso_debug_pub.add('P_Line_Payment_Tbl(i).cust_po_number: '||P_Line_Payment_Tbl(i).cust_po_number,1,'N');
4426 aso_debug_pub.add('P_Line_Payment_Tbl(i).cust_po_line_number: '||P_Line_Payment_Tbl(i).cust_po_line_number,1,'N');
4427 END IF;
4428
4429 x_Line_tbl(p_line_index).cust_po_number := P_Line_Payment_Tbl(i).cust_po_number;
4430 x_Line_tbl(p_line_index).customer_line_number := P_Line_Payment_Tbl(i).cust_po_line_number;
4431
4432 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4433 aso_debug_pub.add('P_Line_Payment_Tbl(i).payment_type_code: '||P_Line_Payment_Tbl(i).payment_type_code,1,'N');
4434 aso_debug_pub.add('P_Line_Payment_Tbl(i).payment_amount: '||P_Line_Payment_Tbl(i).payment_amount,1,'N');
4435 END IF;
4436 IF P_Line_Payment_Tbl(i).payment_type_code IS NOT NULL THEN
4437
4438 l_Line_Payment_tbl(pay_count).payment_type_code := P_Line_Payment_Tbl(i).payment_type_code;
4439
4440 l_Line_Payment_tbl(pay_count).payment_amount := P_Line_Payment_Tbl(i).payment_amount;
4441
4442 l_Line_Payment_tbl(pay_count).operation := p_line_operation;
4443
4444 l_Line_Payment_tbl(pay_count).trxn_extension_id := P_Line_Payment_Tbl(i).trxn_extension_id;
4445 l_Line_Payment_tbl(pay_count).payment_collection_event := 'INVOICE';
4446 l_Line_Payment_tbl(pay_count).payment_level_code := 'LINE';
4447
4448 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4449 aso_debug_pub.add('l_Line_Payment_tbl(pay_count).payment_type_code: '||l_Line_Payment_tbl(pay_count).payment_type_code,1,'N');
4450 aso_debug_pub.add('l_Line_Payment_tbl(pay_count).payment_amount: '||l_Line_Payment_tbl(pay_count).payment_amount,1,'N');
4451 aso_debug_pub.add('l_Line_Payment_tbl(pay_count).operation: '||l_Line_Payment_tbl(pay_count).operation,1,'N');
4452 aso_debug_pub.add('l_Line_Payment_tbl(pay_count).trxn_extension_id: '||l_Line_Payment_tbl(pay_count).trxn_extension_id,1,'N');
4453 aso_debug_pub.add('l_Line_Payment_tbl(pay_count).payment_collection_event: '||l_Line_Payment_tbl(pay_count).payment_collection_event,1,'N');
4454 aso_debug_pub.add('l_Line_Payment_tbl(pay_count).payment_level_code: '||l_Line_Payment_tbl(pay_count).payment_level_code,1,'N');
4455 END IF;
4456
4457 /* Start : code change done for Bug 9401669 */
4458 If (l_Line_Payment_tbl(pay_count).trxn_extension_id Is Null Or
4459 l_Line_Payment_tbl(pay_count).trxn_extension_id = FND_API.G_MISS_NUM ) Then
4460
4461 l_Line_Payment_tbl(pay_count).CC_INSTRUMENT_ASSIGNMENT_ID := P_Line_Payment_Tbl(i).INSTR_ASSIGNMENT_ID;
4462 l_Line_Payment_tbl(pay_count).CC_INSTRUMENT_ID := P_Line_Payment_Tbl(i).INSTRUMENT_ID;
4463
4464 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4465 aso_debug_pub.add('Map_Quote_to_order : l_Line_Payment_tbl(pay_count).CC_INSTRUMENT_ASSIGNMENT_ID : '||l_Line_Payment_tbl(pay_count).CC_INSTRUMENT_ASSIGNMENT_ID, 1, 'N');
4466 aso_debug_pub.add('Map_Quote_to_order : l_Line_Payment_tbl(pay_count).CC_INSTRUMENT_ID : '||l_Line_Payment_tbl(pay_count).CC_INSTRUMENT_ID, 1, 'N');
4467 END IF;
4468 End If;
4469 /* End : code change done for Bug 9401669 */
4470
4471 IF P_Line_Payment_Tbl(i).payment_type_code = 'CHECK' THEN
4472 l_Line_Payment_tbl(pay_count).check_number := P_Line_Payment_Tbl(i).payment_ref_number;
4473 END IF;
4474
4475 END IF; -- payment_type_code is not null
4476
4477 -- Code Change done for Bug 14180257
4478 l_Line_Payment_tbl(pay_count).receipt_method_id := fnd_api.g_miss_num;
4479 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4480 aso_debug_pub.add('Map_Quote_to_order : Passing line receipt method id as g miss num' ,1,'N');
4481 END IF;
4482
4483 pay_count := pay_count +1;
4484
4485 END IF;
4486
4487 END LOOP;
4488
4489 x_Line_Payment_tbl := l_Line_Payment_tbl;
4490 --x_Line_tbl := l_Line_tbl;
4491 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4492 aso_debug_pub.add('mapped line payment tblx_Line_Payment_tbl.count'||x_Line_Payment_tbl.count,1,'N');
4493 aso_debug_pub.add('mapped line payment tbl',1,'N');
4494 aso_debug_pub.add('mapped line payment tblx_Line_tbl.count'||x_Line_tbl.count,1,'N');
4495 END IF;
4496
4497
4498 end map_line_payments;
4499
4500 PROCEDURE map_lot_serial(
4501 P_lot_serial_tbl IN ASO_QUOTE_PUB.Lot_Serial_Tbl_Type,
4502 p_operation IN VARCHAR2,
4503 p_line_index IN NUMBER,
4504 p_qte_line_index IN NUMBER,
4505 x_lot_serial_tbl OUT NOCOPY /* file.sql.39 change */ OE_Order_PUB.Lot_Serial_Tbl_Type
4506 )
4507 IS
4508
4509 l NUMBER;
4510 lot_srl_count NUMBER :=1;
4511 l_lot_serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
4512
4513 BEGIN
4514
4515 For l in 1..P_lot_serial_tbl.count LOOP
4516
4517 IF P_lot_serial_tbl(l).line_index = p_qte_line_index THEN
4518
4519
4520 l_lot_serial_tbl(lot_srl_count).attribute1
4521 := P_lot_serial_tbl(l).attribute1;
4522 l_lot_serial_tbl(lot_srl_count).attribute10
4523 := P_lot_serial_tbl(l).attribute10 ;
4524 l_lot_serial_tbl(lot_srl_count).attribute11
4525 := P_lot_serial_tbl(l).attribute11 ;
4526 l_lot_serial_tbl(lot_srl_count).attribute12
4527 := P_lot_serial_tbl(l).attribute12;
4528 l_lot_serial_tbl(lot_srl_count).attribute13
4529 := P_lot_serial_tbl(l).attribute13 ;
4530 l_lot_serial_tbl(lot_srl_count).attribute14
4531 := P_lot_serial_tbl(l).attribute14 ;
4532 l_lot_serial_tbl(lot_srl_count).attribute15
4533 := P_lot_serial_tbl(l).attribute15 ;
4534 l_lot_serial_tbl(lot_srl_count).attribute2
4535 := P_lot_serial_tbl(l).attribute2 ;
4536 l_lot_serial_tbl(lot_srl_count).attribute3
4537 := P_lot_serial_tbl(l).attribute3;
4538 l_lot_serial_tbl(lot_srl_count).attribute4
4539 := P_lot_serial_tbl(l).attribute4;
4540 l_lot_serial_tbl(lot_srl_count).attribute5
4541 := P_lot_serial_tbl(l).attribute5;
4542 l_lot_serial_tbl(lot_srl_count).attribute6
4543 := P_lot_serial_tbl(l).attribute6;
4544 l_lot_serial_tbl(lot_srl_count).attribute7
4545 := P_lot_serial_tbl(l).attribute7;
4546 l_lot_serial_tbl(lot_srl_count).attribute8
4547 := P_lot_serial_tbl(l).attribute8;
4548 l_lot_serial_tbl(lot_srl_count).attribute9
4549 := P_lot_serial_tbl(l).attribute9;
4550 l_lot_serial_tbl(lot_srl_count).context
4551 := P_lot_serial_tbl(l).context ;
4552 l_lot_serial_tbl(lot_srl_count).created_by
4553 := P_lot_serial_tbl(l).created_by ;
4554 l_lot_serial_tbl(lot_srl_count).creation_date
4555 := P_lot_serial_tbl(l).creation_date;
4556 l_lot_serial_tbl(lot_srl_count).from_serial_number
4557 := P_lot_serial_tbl(l).from_serial_number ;
4558 l_lot_serial_tbl(lot_srl_count).last_updated_by
4559 := P_lot_serial_tbl(l).last_updated_by ;
4560 l_lot_serial_tbl(lot_srl_count).last_update_date
4561 := P_lot_serial_tbl(l).last_update_date;
4562 l_lot_serial_tbl(lot_srl_count).last_update_login
4563 := P_lot_serial_tbl(l).last_update_login;
4564 -- l_lot_serial_tbl(lot_srl_count).line_id
4565 -- := P_lot_serial_tbl(l).line_id;
4566 l_lot_serial_tbl(lot_srl_count).lot_number
4567 := P_lot_serial_tbl(l).lot_number;
4568 l_lot_serial_tbl(lot_srl_count).lot_serial_id
4569 := P_lot_serial_tbl(l).lot_serial_id;
4570 l_lot_serial_tbl(lot_srl_count).quantity
4571 := P_lot_serial_tbl(l).quantity ;
4572 l_lot_serial_tbl(lot_srl_count).to_serial_number
4573 := P_lot_serial_tbl(l).to_serial_number;
4574 l_lot_serial_tbl(lot_srl_count).return_status
4575 := P_lot_serial_tbl(l).return_status;
4576 l_lot_serial_tbl(lot_srl_count).db_flag
4577 := P_lot_serial_tbl(l).db_flag;
4578 l_lot_serial_tbl(lot_srl_count).operation
4579 := P_lot_serial_tbl(l).operation ;
4580 l_lot_serial_tbl(lot_srl_count).line_index := p_line_index;
4581 l_lot_serial_tbl(lot_srl_count).orig_sys_lotserial_ref
4582 := P_lot_serial_tbl(l).orig_sys_lotserial_ref ;
4583 l_lot_serial_tbl(lot_srl_count).change_request_code
4584 := P_lot_serial_tbl(l).change_request_code;
4585 l_lot_serial_tbl(lot_srl_count).status_flag
4586 := P_lot_serial_tbl(l).status_flag;
4587 l_lot_serial_tbl(lot_srl_count).line_set_id
4588 := P_lot_serial_tbl(l).line_set_id ;
4589
4590 IF p_operation <> OE_GLOBALS.G_OPR_CREATE THEN
4591 l_lot_serial_tbl(lot_srl_count).line_id
4592 := P_lot_serial_tbl(l).line_id;
4593 END IF;
4594
4595 l_lot_serial_tbl(lot_srl_count).operation := p_operation;
4596
4597 lot_srl_count := lot_srl_count + 1;
4598
4599 END IF;
4600 END LOOP; -- lot serial LOOP
4601
4602 x_lot_serial_tbl := l_lot_serial_tbl;
4603
4604 END map_lot_serial;
4605
4606
4607 End ASO_MAP_QUOTE_ORDER_INT;