DBA Data[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;