[Home] [Help]
PACKAGE BODY: APPS.ASO_QUOTE_LINES_PVT
Source
1 PACKAGE BODY ASO_QUOTE_LINES_PVT as
2 /* $Header: asovqlnb.pls 120.34.12010000.5 2010/05/02 17:33:32 akushwah ship $ */
3 -- Start of Comments
4 -- Package name : ASO_QUOTE_LINES_PVT
5 -- Purpose :
6 -- History :
7 -- 10/20/2002 hyang - 2633507 performance fix
8 -- 08/19/04 skulkarn - In new BC4J implementation, the primary key for
9 -- for all input parameters in Create_Quote, Update_Quote APIs
10 -- will be passed. In order to honor the primary key passed
11 -- the primary key will not be set to null before calling the
12 -- table handler. Hence, commented OUT NOCOPY /* file.sql.39 change */ the code where
13 -- primary key is being set to null before calling table handler.
14 -- NOTE :
15 -- End of Comments
16
17
18 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ASO_QUOTE_LINES_PVT';
19 G_FILE_NAME CONSTANT VARCHAR2(12) := 'asovqlnb.pls';
20
21 type number_tbl_type is table of number index by BINARY_INTEGER;
22
23 -- this procedure is used to insert rows into the various tables. It is used by
24 -- copy quote to override the validations.
25
26 -- can be modified to use table types instead of rec types for inserts.
27
28 PROCEDURE Insert_Quote_Line_Rows(
29 P_Qte_Line_Rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type
30 := ASO_QUOTE_PUB.G_MISS_qte_line_REC,
31 P_Control_REC IN ASO_QUOTE_PUB.Control_Rec_Type
32 := ASO_QUOTE_PUB.G_MISS_Control_Rec,
33 P_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type
34 := ASO_QUOTE_PUB.G_MISS_Payment_TBL,
35 P_Price_Adj_Tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type
36 := ASO_QUOTE_PUB.G_MISS_Price_Adj_TBL,
37 P_Qte_Line_Dtl_tbl IN ASO_QUOTE_PUB.Qte_Line_Dtl_tbl_Type
38 := ASO_QUOTE_PUB.G_MISS_qte_line_dtl_tbl,
39 P_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type
40 := ASO_QUOTE_PUB.G_MISS_shipment_TBL,
41 P_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type
42 := ASO_QUOTE_PUB.G_MISS_tax_detail_TBL,
43 P_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type
44 := ASO_QUOTE_PUB.G_MISS_freight_charge_TBL,
45 P_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type
46 := ASO_QUOTE_PUB.G_MISS_Price_attributes_TBL,
47 P_Price_Adj_Attr_Tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type
48 := ASO_QUOTE_PUB.G_Miss_PRICE_ADJ_ATTR_Tbl,
49 P_Line_Attribs_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_type
50 := ASO_QUOTE_PUB.G_Miss_Line_Attribs_Ext_Tbl,
51 P_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type
52 := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl,
53 P_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type
54 := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl,
55 X_Qte_Line_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Rec_Type,
56 X_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
57 X_Price_Adj_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
58 X_Qte_Line_Dtl_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type,
59 X_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Tbl_Type,
60 X_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
61 X_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type ,
62 X_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
63 X_Price_Adj_Attr_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
64 X_Line_Attribs_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_type,
65 X_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
66 X_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
67 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
68 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
69 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
70 )
71 IS
72
73 cursor get_quote_number( l_qte_header_id number) is
74 SELECT quote_number
75 FROM aso_quote_headers_all
76 WHERE quote_header_id = l_qte_header_id;
77
78
79 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
80 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
81 l_price_adj_rec ASO_QUOTE_PUB.Price_Adj_Rec_Type;
82 l_price_adj_tbl ASO_QUOTE_PUB.Price_Adj_TBL_Type;
83 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
84 l_freight_charge_rec ASO_QUOTE_PUB.Freight_Charge_Rec_Type;
85 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_TBL_Type;
86 l_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
87 l_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_TBL_Type;
88 l_price_attributes_rec ASO_QUOTE_PUB.Price_Attributes_Rec_Type;
89 l_qte_line_dtl_rec ASO_QUOTE_PUB.QTE_LINE_DTL_REC_TYPE;
90 l_payment_rec ASO_QUOTE_PUB.Payment_rec_type;
91 l_payment_tbl ASO_QUOTE_PUB.Payment_tbl_type;
92 l_line_attribs_rec ASO_QUOTE_PUB.Line_Attribs_Ext_REC_type;
93 l_line_attribs_tbl ASO_QUOTE_PUB.Line_Attribs_Ext_TBL_type;
94 l_price_adj_attr_tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
95
96 l_line_rtlship_rec ASO_QUOTE_PUB.LINE_RLTSHIP_Rec_Type ;
97 l_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type ;
98 l_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
99 l_Sales_Credit_rec ASO_QUOTE_PUB.Sales_Credit_rec_Type ;
100 l_Quote_Party_rec ASO_QUOTE_PUB.Quote_Party_rec_Type;
101 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
102 x_relationship_id NUMBER;
103 my_message VARCHAR2(2000);
104 l_quote_number NUMBER ;
105 lx_price_attr_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
106
107
108 BEGIN
109
110 X_Return_Status := FND_API.G_RET_STS_SUCCESS;
111
112 -- make ids null or g_miss. this checking should be removed from table handlers
113
114
115
116 -- creating a row in the aso_quote_lines_all table
117 -- set id to null because table handler will not generate a new value.
118 IF aso_debug_pub.g_debug_flag = 'Y' THEN
119 ASO_DEBUG_PUB.add('organization_id is '||nvl(to_char(p_qte_line_rec.organization_id),'null') , 1, 'Y');
120 aso_debug_pub.add('Insert_Quote_lines - Begin ', 1, 'Y');
121 END IF;
122
123
124
125 l_payment_tbl := p_payment_tbl;
126 l_price_adj_tbl := p_price_adj_tbl;
127 l_price_adj_attr_tbl := p_price_adj_attr_tbl;
128 l_freight_charge_tbl := p_freight_charge_tbl;
129 l_tax_detail_tbl := p_tax_detail_tbl ;
130 l_line_attribs_tbl := p_line_attribs_ext_tbl;
131 l_quote_party_tbl := p_quote_party_tbl;
132
133 x_qte_line_rec := p_qte_line_rec;
134 --x_qte_line_rec.QUOTE_LINE_ID := NULL;
135
136 ASO_QUOTE_LINES_PKG.Insert_Row(
137 px_QUOTE_LINE_ID => x_qte_line_rec.QUOTE_LINE_ID,
138 p_CREATION_DATE => SYSDATE,
139 p_CREATED_BY => G_USER_ID,
140 p_LAST_UPDATE_DATE => SYSDATE,
141 p_LAST_UPDATED_BY => G_USER_ID,
142 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
143 p_REQUEST_ID => p_qte_line_rec.REQUEST_ID,
144 p_PROGRAM_APPLICATION_ID => p_qte_line_rec.PROGRAM_APPLICATION_ID,
145 p_PROGRAM_ID => p_qte_line_rec.PROGRAM_ID,
146 p_PROGRAM_UPDATE_DATE => p_qte_line_rec.PROGRAM_UPDATE_DATE,
147 p_QUOTE_HEADER_ID => p_qte_line_rec.QUOTE_HEADER_ID,
148 p_ORG_ID => p_qte_line_rec.ORG_ID ,
149 p_LINE_CATEGORY_CODE => p_qte_line_rec.LINE_CATEGORY_CODE ,
150 p_ITEM_TYPE_CODE => p_qte_line_rec.ITEM_TYPE_CODE ,
151 p_LINE_NUMBER => p_qte_line_rec.LINE_NUMBER,
152 p_START_DATE_ACTIVE => trunc(p_qte_line_rec.START_DATE_ACTIVE),
153 p_END_DATE_ACTIVE => trunc(p_qte_line_rec.END_DATE_ACTIVE) ,
154 p_ORDER_LINE_TYPE_ID => p_qte_line_rec.ORDER_LINE_TYPE_ID ,
155 p_INVOICE_TO_PARTY_SITE_ID=> p_qte_line_rec.INVOICE_TO_PARTY_SITE_ID,
156 p_INVOICE_TO_PARTY_ID => p_qte_line_rec.INVOICE_TO_PARTY_ID ,
157 p_INVOICE_TO_CUST_ACCOUNT_ID => p_qte_line_rec.INVOICE_TO_CUST_ACCOUNT_ID ,
158 p_ORGANIZATION_ID => p_qte_line_rec.ORGANIZATION_ID,
159 p_INVENTORY_ITEM_ID => p_qte_line_rec.INVENTORY_ITEM_ID ,
160 p_QUANTITY => p_qte_line_rec.QUANTITY ,
161 p_UOM_CODE => p_qte_line_rec.UOM_CODE ,
162 p_MARKETING_SOURCE_CODE_ID=> p_qte_line_rec.marketing_source_code_id,
163 p_PRICE_LIST_ID => p_qte_line_rec.PRICE_LIST_ID ,
164 p_PRICE_LIST_LINE_ID => p_qte_line_rec.PRICE_LIST_LINE_ID,
165 p_CURRENCY_CODE => p_qte_line_rec.CURRENCY_CODE ,
166 p_LINE_LIST_PRICE => p_qte_line_rec.LINE_LIST_PRICE ,
167 p_LINE_ADJUSTED_AMOUNT => p_qte_line_rec.LINE_ADJUSTED_AMOUNT ,
168 p_LINE_ADJUSTED_PERCENT => p_qte_line_rec.LINE_ADJUSTED_PERCENT,
169 p_LINE_QUOTE_PRICE => p_qte_line_rec.LINE_QUOTE_PRICE ,
170 p_RELATED_ITEM_ID => p_qte_line_rec.RELATED_ITEM_ID ,
171 p_ITEM_RELATIONSHIP_TYPE => p_qte_line_rec.ITEM_RELATIONSHIP_TYPE,
172 p_ACCOUNTING_RULE_ID => p_qte_line_rec.ACCOUNTING_RULE_ID,
173 p_INVOICING_RULE_ID => p_qte_line_rec.INVOICING_RULE_ID,
174 p_SPLIT_SHIPMENT_FLAG => p_qte_line_rec.SPLIT_SHIPMENT_FLAG ,
175 p_BACKORDER_FLAG => p_qte_line_rec.BACKORDER_FLAG ,
176 p_MINISITE_ID => p_qte_line_rec.MINISITE_ID,
177 p_SECTION_ID => p_qte_line_rec.SECTION_ID,
178 p_ATTRIBUTE_CATEGORY => p_qte_line_rec.ATTRIBUTE_CATEGORY,
179 p_ATTRIBUTE1 => p_qte_line_rec.ATTRIBUTE1,
180 p_ATTRIBUTE2 => p_qte_line_rec.ATTRIBUTE2,
181 p_ATTRIBUTE3 => p_qte_line_rec.ATTRIBUTE3,
182 p_ATTRIBUTE4 => p_qte_line_rec.ATTRIBUTE4,
183 p_ATTRIBUTE5 => p_qte_line_rec.ATTRIBUTE5,
184 p_ATTRIBUTE6 => p_qte_line_rec.ATTRIBUTE6,
185 p_ATTRIBUTE7 => p_qte_line_rec.ATTRIBUTE7,
186 p_ATTRIBUTE8 => p_qte_line_rec.ATTRIBUTE8,
187 p_ATTRIBUTE9 => p_qte_line_rec.ATTRIBUTE9,
188 p_ATTRIBUTE10 => p_qte_line_rec.ATTRIBUTE10,
189 p_ATTRIBUTE11 => p_qte_line_rec.ATTRIBUTE11,
190 p_ATTRIBUTE12 => p_qte_line_rec.ATTRIBUTE12,
191 p_ATTRIBUTE13 => p_qte_line_rec.ATTRIBUTE13,
192 p_ATTRIBUTE14 => p_qte_line_rec.ATTRIBUTE14,
193 p_ATTRIBUTE15 => p_qte_line_rec.ATTRIBUTE15,
194 p_ATTRIBUTE16 => p_qte_line_rec.ATTRIBUTE16,
195 p_ATTRIBUTE17 => p_qte_line_rec.ATTRIBUTE17,
196 p_ATTRIBUTE18 => p_qte_line_rec.ATTRIBUTE18,
197 p_ATTRIBUTE19 => p_qte_line_rec.ATTRIBUTE19,
198 p_ATTRIBUTE20 => p_qte_line_rec.ATTRIBUTE20,
199 p_PRICED_PRICE_LIST_ID => p_qte_line_rec.PRICED_PRICE_LIST_ID,
200 p_AGREEMENT_ID => p_qte_line_rec.AGREEMENT_ID,
201 p_COMMITMENT_ID => p_qte_line_rec.COMMITMENT_ID,
202 p_DISPLAY_ARITHMETIC_OPERATOR => p_qte_line_rec.DISPLAY_ARITHMETIC_OPERATOR,
203 p_LINE_TYPE_SOURCE_FLAG => p_qte_line_rec.LINE_TYPE_SOURCE_FLAG,
204 p_SERVICE_ITEM_FLAG => p_qte_line_rec.SERVICE_ITEM_FLAG,
205 p_SERVICEABLE_PRODUCT_FLAG => p_qte_line_rec.SERVICEABLE_PRODUCT_FLAG,
206 p_INVOICE_TO_CUST_PARTY_ID => p_qte_line_rec.INVOICE_TO_CUST_PARTY_ID,
207 P_Selling_Price_Change => p_qte_line_rec.Selling_Price_Change,
208 P_Recalculate_flag => p_qte_line_rec.recalculate_flag,
209 p_pricing_line_type_indicator => p_qte_line_rec.pricing_line_type_indicator,
210 p_END_CUSTOMER_PARTY_ID => p_qte_line_rec.END_CUSTOMER_PARTY_ID,
211 p_END_CUSTOMER_CUST_PARTY_ID => p_qte_line_rec.END_CUSTOMER_CUST_PARTY_ID,
212 p_END_CUSTOMER_PARTY_SITE_ID => p_qte_line_rec.END_CUSTOMER_PARTY_SITE_ID,
213 p_END_CUSTOMER_CUST_ACCOUNT_ID => p_qte_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID,
214 p_OBJECT_VERSION_NUMBER => p_qte_line_rec.OBJECT_VERSION_NUMBER,
215 p_CHARGE_PERIODICITY_CODE => p_qte_line_rec.CHARGE_PERIODICITY_CODE, -- Recurring charges Change
216 p_SHIP_MODEL_COMPLETE_FLAG => p_qte_line_rec.SHIP_MODEL_COMPLETE_FLAG,
217 p_LINE_PAYNOW_CHARGES => p_qte_line_rec.LINE_PAYNOW_CHARGES,
218 p_LINE_PAYNOW_TAX => p_qte_line_rec.LINE_PAYNOW_TAX,
219 p_LINE_PAYNOW_SUBTOTAL => p_qte_line_rec.LINE_PAYNOW_SUBTOTAL,
220 p_PRICING_QUANTITY_UOM => p_qte_line_rec.PRICING_QUANTITY_UOM,
221 p_PRICING_QUANTITY => p_qte_line_rec.PRICING_QUANTITY,
222 p_CONFIG_MODEL_TYPE => p_qte_line_rec.CONFIG_MODEL_TYPE
223 );
224
225
226 IF aso_debug_pub.g_debug_flag = 'Y' THEN
227 aso_debug_pub.add('quote_lines ' || nvl(to_char(x_qte_line_rec.quote_line_id),'null'), 1, 'Y' );
228 aso_debug_pub.add('Insert_Quote_lines - quote_line.insert_row ', 1, 'N');
229 end if;
230 -- insert rows into the quote line details table
231 FOR i in 1..p_qte_line_dtl_tbl.count LOOP
232 l_qte_line_dtl_rec := p_qte_line_dtl_tbl(i);
233 l_qte_line_dtl_rec.quote_line_id := x_qte_line_rec.quote_line_id;
234 x_qte_line_dtl_tbl(i) := l_qte_line_dtl_rec;
235 -- BC4J Fix
236 --x_qte_line_dtl_tbl(i).QUOTE_LINE_DETAIL_ID := NULL;
237 ASO_QUOTE_LINE_DETAILS_PKG.Insert_Row(
238 px_QUOTE_LINE_DETAIL_ID => x_qte_line_dtl_tbl(i).QUOTE_LINE_DETAIL_ID,
239 p_CREATION_DATE => SYSDATE,
240 p_CREATED_BY => G_USER_ID,
241 p_LAST_UPDATE_DATE => SYSDATE,
242 p_LAST_UPDATED_BY => G_USER_ID,
243 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
244 p_REQUEST_ID => l_qte_line_dtl_rec.REQUEST_ID,
245 p_PROGRAM_APPLICATION_ID =>l_qte_line_dtl_rec.PROGRAM_APPLICATION_ID,
246 p_PROGRAM_ID => l_qte_line_dtl_rec.PROGRAM_ID,
247 p_PROGRAM_UPDATE_DATE => l_qte_line_dtl_rec.PROGRAM_UPDATE_DATE,
248 p_QUOTE_LINE_ID => l_qte_line_dtl_rec.QUOTE_LINE_ID,
249 p_CONFIG_HEADER_ID => l_qte_line_dtl_rec.CONFIG_HEADER_ID,
250 p_CONFIG_REVISION_NUM => l_qte_line_dtl_rec.CONFIG_REVISION_NUM,
251 p_COMPLETE_CONFIGURATION_FLAG
252 => l_qte_line_dtl_rec.COMPLETE_CONFIGURATION_FLAG,
253 p_VALID_CONFIGURATION_FLAG
254 => l_qte_line_dtl_rec.VALID_CONFIGURATION_FLAG,
255 p_COMPONENT_CODE => l_qte_line_dtl_rec.COMPONENT_CODE,
256 p_SERVICE_COTERMINATE_FLAG
257 => l_qte_line_dtl_rec.SERVICE_COTERMINATE_FLAG,
258 p_SERVICE_DURATION => l_qte_line_dtl_rec.SERVICE_DURATION,
259 p_SERVICE_PERIOD => l_qte_line_dtl_rec.SERVICE_PERIOD,
260 p_SERVICE_UNIT_SELLING_PERCENT
261 => l_qte_line_dtl_rec.SERVICE_UNIT_SELLING_PERCENT,
262 p_SERVICE_UNIT_LIST_PERCENT
263 => l_qte_line_dtl_rec.SERVICE_UNIT_LIST_PERCENT,
264 p_SERVICE_NUMBER => l_qte_line_dtl_rec.SERVICE_NUMBER,
265 p_UNIT_PERCENT_BASE_PRICE
266 => l_qte_line_dtl_rec.UNIT_PERCENT_BASE_PRICE,
267 p_ATTRIBUTE_CATEGORY => l_qte_line_dtl_rec.ATTRIBUTE_CATEGORY,
268 p_ATTRIBUTE1 => l_qte_line_dtl_rec.ATTRIBUTE1,
269 p_ATTRIBUTE2 => l_qte_line_dtl_rec.ATTRIBUTE2,
270 p_ATTRIBUTE3 => l_qte_line_dtl_rec.ATTRIBUTE3,
271 p_ATTRIBUTE4 => l_qte_line_dtl_rec.ATTRIBUTE4,
272 p_ATTRIBUTE5 => l_qte_line_dtl_rec.ATTRIBUTE5,
273 p_ATTRIBUTE6 => l_qte_line_dtl_rec.ATTRIBUTE6,
274 p_ATTRIBUTE7 => l_qte_line_dtl_rec.ATTRIBUTE7,
275 p_ATTRIBUTE8 => l_qte_line_dtl_rec.ATTRIBUTE8,
276 p_ATTRIBUTE9 => l_qte_line_dtl_rec.ATTRIBUTE9,
277 p_ATTRIBUTE10 => l_qte_line_dtl_rec.ATTRIBUTE10,
278 p_ATTRIBUTE11 => l_qte_line_dtl_rec.ATTRIBUTE11,
279 p_ATTRIBUTE12 => l_qte_line_dtl_rec.ATTRIBUTE12,
280 p_ATTRIBUTE13 => l_qte_line_dtl_rec.ATTRIBUTE13,
281 p_ATTRIBUTE14 => l_qte_line_dtl_rec.ATTRIBUTE14,
282 p_ATTRIBUTE15 => l_qte_line_dtl_rec.ATTRIBUTE15,
283 p_ATTRIBUTE16 => l_qte_line_dtl_rec.ATTRIBUTE16,
284 p_ATTRIBUTE17 => l_qte_line_dtl_rec.ATTRIBUTE17,
285 p_ATTRIBUTE18 => l_qte_line_dtl_rec.ATTRIBUTE18,
286 p_ATTRIBUTE19 => l_qte_line_dtl_rec.ATTRIBUTE19,
287 p_ATTRIBUTE20 => l_qte_line_dtl_rec.ATTRIBUTE20,
288 p_SERVICE_REF_TYPE_CODE => l_qte_line_dtl_rec.SERVICE_REF_TYPE_CODE,
289 p_SERVICE_REF_ORDER_NUMBER
290 => l_qte_line_dtl_rec.SERVICE_REF_ORDER_NUMBER,
291 p_SERVICE_REF_LINE_NUMBER
292 => l_qte_line_dtl_rec.SERVICE_REF_LINE_NUMBER,
293 p_SERVICE_REF_LINE_ID => l_qte_line_dtl_rec.SERVICE_REF_LINE_ID,
294 p_SERVICE_REF_SYSTEM_ID => l_qte_line_dtl_rec.SERVICE_REF_SYSTEM_ID,
295 p_SERVICE_REF_OPTION_NUMB
296 => l_qte_line_dtl_rec.SERVICE_REF_OPTION_NUMB,
297 p_SERVICE_REF_SHIPMENT_NUMB
298 => l_qte_line_dtl_rec.SERVICE_REF_SHIPMENT_NUMB,
299 p_RETURN_REF_TYPE => l_qte_line_dtl_rec.RETURN_REF_TYPE,
300 p_RETURN_REF_HEADER_ID => l_qte_line_dtl_rec.RETURN_REF_HEADER_ID,
301 p_RETURN_REF_LINE_ID => l_qte_line_dtl_rec.RETURN_REF_LINE_ID,
302 p_RETURN_ATTRIBUTE1 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE1,
303 p_RETURN_ATTRIBUTE2 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE2,
304 p_RETURN_ATTRIBUTE3 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE3,
305 p_RETURN_ATTRIBUTE4 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE4,
306 p_RETURN_ATTRIBUTE5 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE5,
307 p_RETURN_ATTRIBUTE6 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE6,
308 p_RETURN_ATTRIBUTE7 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE7,
309 p_RETURN_ATTRIBUTE8 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE8,
310 p_RETURN_ATTRIBUTE9 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE9,
311 p_RETURN_ATTRIBUTE10 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE10,
312 p_RETURN_ATTRIBUTE11 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE11,
313 p_RETURN_ATTRIBUTE15 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE15,
314 p_RETURN_ATTRIBUTE12 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE12,
315 p_RETURN_ATTRIBUTE13 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE13,
316 p_RETURN_ATTRIBUTE14 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE14,
317 p_RETURN_REASON_CODE => l_qte_line_dtl_rec.RETURN_REASON_CODE,
318 p_CONFIG_ITEM_ID => l_qte_line_dtl_rec.CONFIG_ITEM_ID,
319 p_REF_TYPE_CODE => l_qte_line_dtl_rec.REF_TYPE_CODE,
320 p_REF_LINE_ID => l_qte_line_dtl_rec.REF_LINE_ID,
321 p_INSTANCE_ID => l_qte_line_dtl_rec.INSTANCE_ID,
322 p_BOM_SORT_ORDER => l_qte_line_dtl_rec.BOM_SORT_ORDER,
323 p_CONFIG_DELTA => l_qte_line_dtl_rec.CONFIG_DELTA,
324 p_CONFIG_INSTANCE_NAME => l_qte_line_dtl_rec.CONFIG_INSTANCE_NAME,
325 P_OBJECT_VERSION_NUMBER => l_qte_line_dtl_rec.OBJECT_VERSION_NUMBER,
326 p_top_model_line_id => l_qte_line_dtl_rec.top_model_line_id,
327 p_ato_line_id => l_qte_line_dtl_rec.ato_line_id,
328 p_component_sequence_id => l_qte_line_dtl_rec.component_sequence_id
329 );
330 END LOOP;
331 IF aso_debug_pub.g_debug_flag = 'Y' THEN
332 aso_debug_pub.add('Insert_Quote_lines - quote_line_details.insert_row '|| x_return_status, 1, 'N');
333 end if;
334
335 -- if service is immediate create a relationship line
336
337 IF aso_debug_pub.g_debug_flag = 'Y' THEN
338 aso_debug_pub.add('service item is ' || x_return_status, 1, 'Y');
339 end if;
340
341 IF l_qte_line_dtl_rec.service_ref_type_code = 'QUOTE' THEN
342
343 l_line_rtlship_rec.operation_code := 'CREATE';
344 l_line_rtlship_rec.quote_line_id
345 := l_qte_line_dtl_rec.SERVICE_REF_LINE_ID;
346 l_line_rtlship_rec.related_quote_line_id
347 := x_qte_line_rec.quote_line_id;
348 l_line_rtlship_rec.relationship_type_code := 'SERVICE';
349 l_line_rtlship_rec.reciprocal_flag := FND_API.G_FALSE;
350
351 ASO_LINE_RLTSHIP_PVT.Create_line_rltship(
352 P_Api_Version_Number => 1.0,
353 P_LINE_RLTSHIP_Rec => l_line_rtlship_rec,
354 X_LINE_RELATIONSHIP_ID => x_relationship_id,
355 X_Return_Status => x_return_status,
356 X_Msg_Count => x_msg_count,
357 X_Msg_Data => x_msg_data
358 );
359
360
361 END IF;
362
363
364
365 -- check for duplicate promotions, see bug 4521799
366 IF aso_debug_pub.g_debug_flag = 'Y' THEN
367 aso_debug_pub.add('Before calling Validate_Promotion price_attr_tbl.count: '|| p_price_attributes_tbl.count, 1, 'Y');
368 END IF;
369
370 ASO_VALIDATE_PVT.Validate_Promotion (
371 P_Api_Version_Number => 1.0,
372 P_Init_Msg_List => FND_API.G_FALSE,
373 P_Commit => FND_API.G_FALSE,
374 p_price_attr_tbl => p_price_attributes_tbl,
375 x_price_attr_tbl => lx_price_attr_tbl,
376 x_return_status => x_return_status,
377 x_msg_count => x_msg_count,
378 x_msg_data => x_msg_data);
379
380 IF aso_debug_pub.g_debug_flag = 'Y' THEN
381 aso_debug_pub.add('after calling Validate_Promotion ', 1, 'Y');
382 aso_debug_pub.add('Validate_Promotion Return Status: '||x_return_status, 1, 'Y');
383 END IF;
384
385 if x_return_status <> fnd_api.g_ret_sts_success then
386 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
387 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
388 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
389 RAISE FND_API.G_EXC_ERROR;
390 ELSE
391 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
392 END IF;
393 end if;
394
395
396 -- end of check for duplicate promotions
397
398
399 -- inserting rows into the aso_price_attributes
400
401 FOR i in 1..p_price_attributes_tbl.count LOOP
402
403 l_price_attributes_rec := p_price_attributes_tbl(i);
404 l_price_attributes_rec.quote_line_id := x_qte_line_rec.quote_line_id;
405 l_price_attributes_rec.quote_header_id := p_qte_line_rec.quote_header_id;
406 x_price_attributes_tbl(i) := l_price_attributes_rec;
407 -- BC4J Fix
408 --x_price_attributes_tbl(i).price_attribute_id := NULL;
409 ASO_PRICE_ATTRIBUTES_PKG.Insert_Row(
410 px_PRICE_ATTRIBUTE_ID => x_price_attributes_tbl(i).price_attribute_id,
411 p_CREATION_DATE => SYSDATE,
412 p_CREATED_BY => G_USER_ID,
413 p_LAST_UPDATE_DATE => SYSDATE,
414 p_LAST_UPDATED_BY => G_USER_ID,
415 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
416 p_REQUEST_ID => p_qte_line_rec.REQUEST_ID,
417 p_PROGRAM_APPLICATION_ID => p_qte_line_rec.PROGRAM_APPLICATION_ID,
418 p_PROGRAM_ID => p_qte_line_rec.PROGRAM_ID,
419 p_PROGRAM_UPDATE_DATE => p_qte_line_rec.PROGRAM_UPDATE_DATE,
420 p_QUOTE_HEADER_ID => p_qte_line_rec.QUOTE_HEADER_ID,
421 p_QUOTE_LINE_ID => l_price_attributes_rec.quote_line_id,
422 p_FLEX_TITLE => l_price_attributes_rec.flex_title,
423 p_PRICING_CONTEXT => l_price_attributes_rec.pricing_context,
424 p_PRICING_ATTRIBUTE1 => l_price_attributes_rec.PRICING_ATTRIBUTE1,
425 p_PRICING_ATTRIBUTE2 => l_price_attributes_rec.PRICING_ATTRIBUTE2,
426 p_PRICING_ATTRIBUTE3 => l_price_attributes_rec.PRICING_ATTRIBUTE3,
427 p_PRICING_ATTRIBUTE4 => l_price_attributes_rec.PRICING_ATTRIBUTE4,
428 p_PRICING_ATTRIBUTE5 => l_price_attributes_rec.PRICING_ATTRIBUTE5,
429 p_PRICING_ATTRIBUTE6 => l_price_attributes_rec.PRICING_ATTRIBUTE6,
430 p_PRICING_ATTRIBUTE7 => l_price_attributes_rec.PRICING_ATTRIBUTE7,
431 p_PRICING_ATTRIBUTE8 => l_price_attributes_rec.PRICING_ATTRIBUTE8,
432 p_PRICING_ATTRIBUTE9 => l_price_attributes_rec.PRICING_ATTRIBUTE9,
433 p_PRICING_ATTRIBUTE10 => l_price_attributes_rec.PRICING_ATTRIBUTE10,
434 p_PRICING_ATTRIBUTE11 => l_price_attributes_rec.PRICING_ATTRIBUTE11,
435 p_PRICING_ATTRIBUTE12 => l_price_attributes_rec.PRICING_ATTRIBUTE12,
436 p_PRICING_ATTRIBUTE13 => l_price_attributes_rec.PRICING_ATTRIBUTE13,
437 p_PRICING_ATTRIBUTE14 => l_price_attributes_rec.PRICING_ATTRIBUTE14,
438 p_PRICING_ATTRIBUTE15 => l_price_attributes_rec.PRICING_ATTRIBUTE15,
439 p_PRICING_ATTRIBUTE16 => l_price_attributes_rec.PRICING_ATTRIBUTE16,
440 p_PRICING_ATTRIBUTE17 => l_price_attributes_rec.PRICING_ATTRIBUTE17,
441 p_PRICING_ATTRIBUTE18 => l_price_attributes_rec.PRICING_ATTRIBUTE18,
442 p_PRICING_ATTRIBUTE19 => l_price_attributes_rec.PRICING_ATTRIBUTE19,
443 p_PRICING_ATTRIBUTE20 => l_price_attributes_rec.PRICING_ATTRIBUTE20,
444 p_PRICING_ATTRIBUTE21 => l_price_attributes_rec.PRICING_ATTRIBUTE21,
445 p_PRICING_ATTRIBUTE22 => l_price_attributes_rec.PRICING_ATTRIBUTE22,
446 p_PRICING_ATTRIBUTE23 => l_price_attributes_rec.PRICING_ATTRIBUTE23,
447 p_PRICING_ATTRIBUTE24 => l_price_attributes_rec.PRICING_ATTRIBUTE24,
448 p_PRICING_ATTRIBUTE25 => l_price_attributes_rec.PRICING_ATTRIBUTE25,
449 p_PRICING_ATTRIBUTE26 => l_price_attributes_rec.PRICING_ATTRIBUTE26,
450 p_PRICING_ATTRIBUTE27 => l_price_attributes_rec.PRICING_ATTRIBUTE27,
451 p_PRICING_ATTRIBUTE28 => l_price_attributes_rec.PRICING_ATTRIBUTE28,
452 p_PRICING_ATTRIBUTE29 => l_price_attributes_rec.PRICING_ATTRIBUTE29,
453 p_PRICING_ATTRIBUTE30 => l_price_attributes_rec.PRICING_ATTRIBUTE30,
454 p_PRICING_ATTRIBUTE31 => l_price_attributes_rec.PRICING_ATTRIBUTE31,
455 p_PRICING_ATTRIBUTE32 => l_price_attributes_rec.PRICING_ATTRIBUTE32,
456 p_PRICING_ATTRIBUTE33 => l_price_attributes_rec.PRICING_ATTRIBUTE33,
457 p_PRICING_ATTRIBUTE34 => l_price_attributes_rec.PRICING_ATTRIBUTE34,
458 p_PRICING_ATTRIBUTE35 => l_price_attributes_rec.PRICING_ATTRIBUTE35,
459 p_PRICING_ATTRIBUTE36 => l_price_attributes_rec.PRICING_ATTRIBUTE36,
460 p_PRICING_ATTRIBUTE37 => l_price_attributes_rec.PRICING_ATTRIBUTE37,
461 p_PRICING_ATTRIBUTE38 => l_price_attributes_rec.PRICING_ATTRIBUTE38,
462 p_PRICING_ATTRIBUTE39 => l_price_attributes_rec.PRICING_ATTRIBUTE39,
463 p_PRICING_ATTRIBUTE40 => l_price_attributes_rec.PRICING_ATTRIBUTE40,
464 p_PRICING_ATTRIBUTE41 => l_price_attributes_rec.PRICING_ATTRIBUTE41,
465 p_PRICING_ATTRIBUTE42 => l_price_attributes_rec.PRICING_ATTRIBUTE42,
466 p_PRICING_ATTRIBUTE43 => l_price_attributes_rec.PRICING_ATTRIBUTE43,
467 p_PRICING_ATTRIBUTE44 => l_price_attributes_rec.PRICING_ATTRIBUTE44,
468 p_PRICING_ATTRIBUTE45 => l_price_attributes_rec.PRICING_ATTRIBUTE45,
469 p_PRICING_ATTRIBUTE46 => l_price_attributes_rec.PRICING_ATTRIBUTE46,
470 p_PRICING_ATTRIBUTE47 => l_price_attributes_rec.PRICING_ATTRIBUTE47,
471 p_PRICING_ATTRIBUTE48 => l_price_attributes_rec.PRICING_ATTRIBUTE48,
472 p_PRICING_ATTRIBUTE49 => l_price_attributes_rec.PRICING_ATTRIBUTE49,
473 p_PRICING_ATTRIBUTE50 => l_price_attributes_rec.PRICING_ATTRIBUTE50,
474 p_PRICING_ATTRIBUTE51 => l_price_attributes_rec.PRICING_ATTRIBUTE51,
475 p_PRICING_ATTRIBUTE52 => l_price_attributes_rec.PRICING_ATTRIBUTE52,
476 p_PRICING_ATTRIBUTE53 => l_price_attributes_rec.PRICING_ATTRIBUTE53,
477 p_PRICING_ATTRIBUTE54 => l_price_attributes_rec.PRICING_ATTRIBUTE54,
478 p_PRICING_ATTRIBUTE55 => l_price_attributes_rec.PRICING_ATTRIBUTE55,
479 p_PRICING_ATTRIBUTE56 => l_price_attributes_rec.PRICING_ATTRIBUTE56,
480 p_PRICING_ATTRIBUTE57 => l_price_attributes_rec.PRICING_ATTRIBUTE57,
481 p_PRICING_ATTRIBUTE58 => l_price_attributes_rec.PRICING_ATTRIBUTE58,
482 p_PRICING_ATTRIBUTE59 => l_price_attributes_rec.PRICING_ATTRIBUTE59,
483 p_PRICING_ATTRIBUTE60 => l_price_attributes_rec.PRICING_ATTRIBUTE60,
484 p_PRICING_ATTRIBUTE61 => l_price_attributes_rec.PRICING_ATTRIBUTE61,
485 p_PRICING_ATTRIBUTE62 => l_price_attributes_rec.PRICING_ATTRIBUTE62,
486 p_PRICING_ATTRIBUTE63 => l_price_attributes_rec.PRICING_ATTRIBUTE63,
487 p_PRICING_ATTRIBUTE64 => l_price_attributes_rec.PRICING_ATTRIBUTE64,
488 p_PRICING_ATTRIBUTE65 => l_price_attributes_rec.PRICING_ATTRIBUTE65,
489 p_PRICING_ATTRIBUTE66 => l_price_attributes_rec.PRICING_ATTRIBUTE66,
490 p_PRICING_ATTRIBUTE67 => l_price_attributes_rec.PRICING_ATTRIBUTE67,
491 p_PRICING_ATTRIBUTE68 => l_price_attributes_rec.PRICING_ATTRIBUTE68,
492 p_PRICING_ATTRIBUTE69 => l_price_attributes_rec.PRICING_ATTRIBUTE69,
493 p_PRICING_ATTRIBUTE70 => l_price_attributes_rec.PRICING_ATTRIBUTE70,
494 p_PRICING_ATTRIBUTE71 => l_price_attributes_rec.PRICING_ATTRIBUTE71,
495 p_PRICING_ATTRIBUTE72 => l_price_attributes_rec.PRICING_ATTRIBUTE72,
496 p_PRICING_ATTRIBUTE73 => l_price_attributes_rec.PRICING_ATTRIBUTE73,
497 p_PRICING_ATTRIBUTE74 => l_price_attributes_rec.PRICING_ATTRIBUTE74,
498 p_PRICING_ATTRIBUTE75 => l_price_attributes_rec.PRICING_ATTRIBUTE75,
499 p_PRICING_ATTRIBUTE76 => l_price_attributes_rec.PRICING_ATTRIBUTE76,
500 p_PRICING_ATTRIBUTE77 => l_price_attributes_rec.PRICING_ATTRIBUTE77,
501 p_PRICING_ATTRIBUTE78 => l_price_attributes_rec.PRICING_ATTRIBUTE78,
502 p_PRICING_ATTRIBUTE79 => l_price_attributes_rec.PRICING_ATTRIBUTE79,
503 p_PRICING_ATTRIBUTE80 => l_price_attributes_rec.PRICING_ATTRIBUTE80,
504 p_PRICING_ATTRIBUTE81 => l_price_attributes_rec.PRICING_ATTRIBUTE81,
505 p_PRICING_ATTRIBUTE82 => l_price_attributes_rec.PRICING_ATTRIBUTE82,
506 p_PRICING_ATTRIBUTE83 => l_price_attributes_rec.PRICING_ATTRIBUTE83,
507 p_PRICING_ATTRIBUTE84 => l_price_attributes_rec.PRICING_ATTRIBUTE84,
508 p_PRICING_ATTRIBUTE85 => l_price_attributes_rec.PRICING_ATTRIBUTE85,
509 p_PRICING_ATTRIBUTE86 => l_price_attributes_rec.PRICING_ATTRIBUTE86,
510 p_PRICING_ATTRIBUTE87 => l_price_attributes_rec.PRICING_ATTRIBUTE87,
511 p_PRICING_ATTRIBUTE88 => l_price_attributes_rec.PRICING_ATTRIBUTE88,
512 p_PRICING_ATTRIBUTE89 => l_price_attributes_rec.PRICING_ATTRIBUTE89,
513 p_PRICING_ATTRIBUTE90 => l_price_attributes_rec.PRICING_ATTRIBUTE90,
514 p_PRICING_ATTRIBUTE91 => l_price_attributes_rec.PRICING_ATTRIBUTE91,
515 p_PRICING_ATTRIBUTE92 => l_price_attributes_rec.PRICING_ATTRIBUTE92,
516 p_PRICING_ATTRIBUTE93 => l_price_attributes_rec.PRICING_ATTRIBUTE93,
517 p_PRICING_ATTRIBUTE94 => l_price_attributes_rec.PRICING_ATTRIBUTE94,
518 p_PRICING_ATTRIBUTE95 => l_price_attributes_rec.PRICING_ATTRIBUTE95,
519 p_PRICING_ATTRIBUTE96 => l_price_attributes_rec.PRICING_ATTRIBUTE96,
520 p_PRICING_ATTRIBUTE97 => l_price_attributes_rec.PRICING_ATTRIBUTE97,
521 p_PRICING_ATTRIBUTE98 => l_price_attributes_rec.PRICING_ATTRIBUTE98,
522 p_PRICING_ATTRIBUTE99 => l_price_attributes_rec.PRICING_ATTRIBUTE99,
523 p_PRICING_ATTRIBUTE100 => l_price_attributes_rec.PRICING_ATTRIBUTE100,
524 p_CONTEXT => l_price_attributes_rec.CONTEXT,
525 p_ATTRIBUTE1 => l_price_attributes_rec.ATTRIBUTE1,
526 p_ATTRIBUTE2 => l_price_attributes_rec.ATTRIBUTE2,
527 p_ATTRIBUTE3 => l_price_attributes_rec.ATTRIBUTE3,
528 p_ATTRIBUTE4 => l_price_attributes_rec.ATTRIBUTE4,
529 p_ATTRIBUTE5 => l_price_attributes_rec.ATTRIBUTE5,
530 p_ATTRIBUTE6 => l_price_attributes_rec.ATTRIBUTE6,
531 p_ATTRIBUTE7 => l_price_attributes_rec.ATTRIBUTE7,
532 p_ATTRIBUTE8 => l_price_attributes_rec.ATTRIBUTE8,
533 p_ATTRIBUTE9 => l_price_attributes_rec.ATTRIBUTE9,
534 p_ATTRIBUTE10 => l_price_attributes_rec.ATTRIBUTE10,
535 p_ATTRIBUTE11 => l_price_attributes_rec.ATTRIBUTE11,
536 p_ATTRIBUTE12 => l_price_attributes_rec.ATTRIBUTE12,
537 p_ATTRIBUTE13 => l_price_attributes_rec.ATTRIBUTE13,
538 p_ATTRIBUTE14 => l_price_attributes_rec.ATTRIBUTE14,
539 p_ATTRIBUTE15 => l_price_attributes_rec.ATTRIBUTE15,
540 p_ATTRIBUTE16 => l_price_attributes_rec.ATTRIBUTE16,
541 p_ATTRIBUTE17 => l_price_attributes_rec.ATTRIBUTE17,
542 p_ATTRIBUTE18 => l_price_attributes_rec.ATTRIBUTE18,
543 p_ATTRIBUTE19 => l_price_attributes_rec.ATTRIBUTE19,
544 p_ATTRIBUTE20 => l_price_attributes_rec.ATTRIBUTE20,
545 p_OBJECT_VERSION_NUMBER => l_price_attributes_rec.OBJECT_VERSION_NUMBER
546 );
547
548 END LOOP;
549
550 IF aso_debug_pub.g_debug_flag = 'Y' THEN
551 aso_debug_pub.add('Insert_Quote_lines - price_attr.insert_row ', 1, 'N');
552 end if;
553
554 --- insert into salescredit table
555
556 FOR i in 1..p_Sales_Credit_Tbl.count LOOP
557
558 l_Sales_Credit_rec := p_sales_credit_tbl(i);
559 l_sales_credit_rec.quote_line_id := x_qte_line_rec.quote_line_id;
560 l_sales_credit_rec.quote_header_id := p_qte_line_rec.quote_header_id;
561 x_sales_credit_tbl(i) := l_sales_credit_rec;
562 -- BC4J Fix
563 --x_sales_credit_tbl(i).sales_credit_id := NULL;
564 ASO_SALES_CREDITS_PKG.Insert_Row(
565 p_CREATION_DATE => SYSDATE,
566 p_CREATED_BY => G_USER_ID,
567 p_LAST_UPDATED_BY => G_USER_ID,
568 p_LAST_UPDATE_DATE => SYSDATE,
569 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
570 p_REQUEST_ID => l_sales_CREDIT_rec.REQUEST_ID,
571 p_PROGRAM_APPLICATION_ID => l_sales_CREDIT_rec.PROGRAM_APPLICATION_ID,
572 p_PROGRAM_ID => l_sales_CREDIT_rec.PROGRAM_ID,
573 p_PROGRAM_UPDATE_DATE => l_sales_CREDIT_rec.PROGRAM_UPDATE_DATE,
574 px_SALES_CREDIT_ID => x_SALES_CREDIT_tbl(i).SALES_CREDIT_ID,
575 p_QUOTE_HEADER_ID => l_sales_CREDIT_rec.QUOTE_HEADER_ID,
576 p_QUOTE_LINE_ID => l_sales_CREDIT_rec.QUOTE_LINE_ID,
577 p_PERCENT => l_sales_CREDIT_rec.PERCENT,
578 p_RESOURCE_ID => l_sales_CREDIT_rec.RESOURCE_ID,
579 p_RESOURCE_GROUP_ID => l_sales_CREDIT_rec.RESOURCE_GROUP_ID,
580 p_EMPLOYEE_PERSON_ID => l_sales_CREDIT_rec.EMPLOYEE_PERSON_ID,
581 p_SALES_CREDIT_TYPE_ID => l_sales_CREDIT_rec.SALES_CREDIT_TYPE_ID,
582 -- p_SECURITY_GROUP_ID => l_sales_CREDIT_rec.SECURITY_GROUP_ID,
583 p_ATTRIBUTE_CATEGORY_CODE => l_sales_CREDIT_rec.ATTRIBUTE_CATEGORY_CODE,
584 p_ATTRIBUTE1 => l_sales_CREDIT_rec.ATTRIBUTE1,
585 p_ATTRIBUTE2 => l_sales_CREDIT_rec.ATTRIBUTE2,
586 p_ATTRIBUTE3 => l_sales_CREDIT_rec.ATTRIBUTE3,
587 p_ATTRIBUTE4 => l_sales_CREDIT_rec.ATTRIBUTE4,
588 p_ATTRIBUTE5 => l_sales_CREDIT_rec.ATTRIBUTE5,
589 p_ATTRIBUTE6 => l_sales_CREDIT_rec.ATTRIBUTE6,
590 p_ATTRIBUTE7 => l_sales_CREDIT_rec.ATTRIBUTE7,
591 p_ATTRIBUTE8 => l_sales_CREDIT_rec.ATTRIBUTE8,
592 p_ATTRIBUTE9 => l_sales_CREDIT_rec.ATTRIBUTE9,
593 p_ATTRIBUTE10 => l_sales_CREDIT_rec.ATTRIBUTE10,
594 p_ATTRIBUTE11 => l_sales_CREDIT_rec.ATTRIBUTE11,
595 p_ATTRIBUTE12 => l_sales_CREDIT_rec.ATTRIBUTE12,
596 p_ATTRIBUTE13 => l_sales_CREDIT_rec.ATTRIBUTE13,
597 p_ATTRIBUTE14 => l_sales_CREDIT_rec.ATTRIBUTE14,
598 p_ATTRIBUTE15 => l_sales_CREDIT_rec.ATTRIBUTE15,
599 p_ATTRIBUTE16 => l_sales_CREDIT_rec.ATTRIBUTE16,
600 p_ATTRIBUTE17 => l_sales_CREDIT_rec.ATTRIBUTE17,
601 p_ATTRIBUTE18 => l_sales_CREDIT_rec.ATTRIBUTE18,
602 p_ATTRIBUTE19 => l_sales_CREDIT_rec.ATTRIBUTE19,
603 p_ATTRIBUTE20 => l_sales_CREDIT_rec.ATTRIBUTE20,
604 p_SYSTEM_ASSIGNED_FLAG => 'N',
605 p_CREDIT_RULE_ID => l_sales_CREDIT_rec.CREDIT_RULE_ID,
606 p_OBJECT_VERSION_NUMBER => l_sales_CREDIT_rec.OBJECT_VERSION_NUMBER);
607
608 END LOOP;
609
610 -- insert into aso_price_adjustments
611
612 -- l_price_adj_attr_tbl := p_price_adj_attr_tbl;
613
614
615
616 FOR i IN 1..P_Shipment_Tbl.count LOOP
617
618 l_shipment_rec := p_shipment_tbl(i);
619 l_shipment_rec.quote_line_id := x_qte_line_rec.quote_line_id;
620 l_shipment_rec.quote_header_id := p_qte_line_rec.quote_header_id;
621 x_shipment_tbl(i) := l_shipment_rec;
622 -- BC4J Fix
623 x_shipment_tbl(i).shipment_id := p_shipment_tbl(i).shipment_id;
624 -- x_shipment_tbl(i).shipment_id := null;
625 l_shipment_rec.ship_method_code_from := l_shipment_rec.ship_method_code;
626 l_shipment_rec.freight_terms_code_from := l_shipment_rec.freight_terms_code;
627 x_shipment_tbl(i).ship_method_code_from := l_shipment_rec.ship_method_code_from;
628 x_shipment_tbl(i).freight_terms_code_from := l_shipment_rec.freight_terms_code_from;
629
630 IF aso_debug_pub.g_debug_flag = 'Y' THEN
631 aso_debug_pub.add('Before ASO_SHIPMENTS_PKG.insert_rows Quote Line- p_shipment_tbl(1).ship_method_code'||p_shipment_tbl(1).ship_method_code, 1, 'Y');
632 aso_debug_pub.add('Before ASO_SHIPMENTS_PKG.insert_rows Quote Line- p_shipment_tbl(1).freight_terms_code'||p_shipment_tbl(1).freight_terms_code, 1, 'Y');
633 END IF;
634
635 ASO_SHIPMENTS_PKG.Insert_Row(
636 px_SHIPMENT_ID => x_shipment_tbl(i).SHIPMENT_ID,
637 p_CREATION_DATE => SYSDATE,
638 p_CREATED_BY => G_USER_ID,
639 p_LAST_UPDATE_DATE => SYSDATE,
640 p_LAST_UPDATED_BY => G_USER_ID,
641 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
642 p_REQUEST_ID => l_shipment_rec.REQUEST_ID,
643 p_PROGRAM_APPLICATION_ID => l_shipment_rec.PROGRAM_APPLICATION_ID,
644 p_PROGRAM_ID => l_shipment_rec.PROGRAM_ID,
645 p_PROGRAM_UPDATE_DATE => l_shipment_rec.PROGRAM_UPDATE_DATE,
646 p_QUOTE_HEADER_ID => l_shipment_rec.QUOTE_HEADER_ID,
647 p_QUOTE_LINE_ID => l_shipment_rec.QUOTE_LINE_ID,
648 p_PROMISE_DATE => l_shipment_rec.PROMISE_DATE,
649 p_REQUEST_DATE => l_shipment_rec.REQUEST_DATE,
650 p_SCHEDULE_SHIP_DATE => l_shipment_rec.SCHEDULE_SHIP_DATE,
651 p_SHIP_TO_PARTY_SITE_ID => l_shipment_rec.SHIP_TO_PARTY_SITE_ID,
652 p_SHIP_TO_PARTY_ID => l_shipment_rec.SHIP_TO_PARTY_ID,
653 p_SHIP_TO_CUST_ACCOUNT_ID => l_shipment_rec.SHIP_TO_CUST_ACCOUNT_ID ,
654 p_SHIP_PARTIAL_FLAG => l_shipment_rec.SHIP_PARTIAL_FLAG,
655 p_SHIP_SET_ID => l_shipment_rec.SHIP_SET_ID,
656 p_SHIP_METHOD_CODE => l_shipment_rec.SHIP_METHOD_CODE,
657 p_FREIGHT_TERMS_CODE => l_shipment_rec.FREIGHT_TERMS_CODE,
658 p_FREIGHT_CARRIER_CODE => l_shipment_rec.FREIGHT_CARRIER_CODE,
659 p_FOB_CODE => l_shipment_rec.FOB_CODE,
660 p_SHIPPING_INSTRUCTIONS => l_shipment_rec.SHIPPING_INSTRUCTIONS,
661 p_PACKING_INSTRUCTIONS => l_shipment_rec.PACKING_INSTRUCTIONS,
662 p_SHIPMENT_PRIORITY_CODE => l_shipment_rec.SHIPMENT_PRIORITY_CODE,
663 p_SHIP_QUOTE_PRICE => l_shipment_rec.SHIP_QUOTE_PRICE,
664 p_QUANTITY => l_shipment_rec.QUANTITY,
665 p_RESERVED_QUANTITY => l_shipment_rec.RESERVED_QUANTITY,
666 p_RESERVATION_ID => l_shipment_rec.RESERVATION_ID,
667 p_ORDER_LINE_ID => l_shipment_rec.ORDER_LINE_ID,
668 p_ATTRIBUTE_CATEGORY => l_shipment_rec.ATTRIBUTE_CATEGORY,
669 p_ATTRIBUTE1 => l_shipment_rec.ATTRIBUTE1,
670 p_ATTRIBUTE2 => l_shipment_rec.ATTRIBUTE2,
671 p_ATTRIBUTE3 => l_shipment_rec.ATTRIBUTE3,
672 p_ATTRIBUTE4 => l_shipment_rec.ATTRIBUTE4,
673 p_ATTRIBUTE5 => l_shipment_rec.ATTRIBUTE5,
674 p_ATTRIBUTE6 => l_shipment_rec.ATTRIBUTE6,
675 p_ATTRIBUTE7 => l_shipment_rec.ATTRIBUTE7,
676 p_ATTRIBUTE8 => l_shipment_rec.ATTRIBUTE8,
677 p_ATTRIBUTE9 => l_shipment_rec.ATTRIBUTE9,
678 p_ATTRIBUTE10 => l_shipment_rec.ATTRIBUTE10,
679 p_ATTRIBUTE11 => l_shipment_rec.ATTRIBUTE11,
680 p_ATTRIBUTE12 => l_shipment_rec.ATTRIBUTE12,
681 p_ATTRIBUTE13 => l_shipment_rec.ATTRIBUTE13,
682 p_ATTRIBUTE14 => l_shipment_rec.ATTRIBUTE14,
683 p_ATTRIBUTE15 => l_shipment_rec.ATTRIBUTE15,
684 p_ATTRIBUTE16 => l_shipment_rec.ATTRIBUTE16,
685 p_ATTRIBUTE17 => l_shipment_rec.ATTRIBUTE17,
686 p_ATTRIBUTE18 => l_shipment_rec.ATTRIBUTE18,
687 p_ATTRIBUTE19 => l_shipment_rec.ATTRIBUTE19,
688 p_ATTRIBUTE20 => l_shipment_rec.ATTRIBUTE20,
689 p_SHIP_FROM_ORG_ID => l_shipment_rec.SHIP_FROM_ORG_ID,
690 p_SHIP_TO_CUST_PARTY_ID => l_shipment_rec.SHIP_TO_CUST_PARTY_ID,
691 p_SHIP_METHOD_CODE_FROM => l_shipment_rec.SHIP_METHOD_CODE_FROM,
692 p_FREIGHT_TERMS_CODE_FROM => l_shipment_rec.FREIGHT_TERMS_CODE_FROM,
693 p_OBJECT_VERSION_NUMBER => l_shipment_rec.OBJECT_VERSION_NUMBER,
694 p_REQUEST_DATE_TYPE => l_shipment_rec.REQUEST_DATE_TYPE,
695 p_DEMAND_CLASS_CODE => l_shipment_rec.DEMAND_CLASS_CODE
696 );
697
698 FOR j IN 1..P_Freight_Charge_Tbl.count LOOP
699 IF l_freight_charge_tbl(j).shipment_index = i THEN
700 l_freight_charge_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
701 END IF;
702
703 END LOOP;
704
705 FOR j in 1..P_Tax_Detail_Tbl.count LOOP
706 IF l_tax_detail_tbl(j).shipment_index = i THEN
707 l_tax_detail_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
708 END IF;
709 END LOOP;
710
711 FOR j in 1..l_line_attribs_Tbl.count LOOP
712 IF l_line_attribs_tbl(j).shipment_index = i THEN
713 l_line_attribs_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
714 END IF;
715
716 END LOOP;
717
718 FOR j in 1..P_Payment_Tbl.count LOOP
719 IF l_payment_tbl(j).shipment_index = i THEN
720 l_payment_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
721 END IF;
722
723 END LOOP;
724
725 FOR j in 1..P_Price_Adj_Tbl.count LOOP
726 IF l_Price_Adj_tbl(j).shipment_index = i THEN
727 l_Price_Adj_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
728 END IF;
729
730 END LOOP;
731
732 FOR j in 1..P_Quote_Party_Tbl.count LOOP
733 IF l_quote_party_tbl(j).shipment_index = i THEN
734 l_quote_party_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
735 END IF;
736 END LOOP;
737
738
739 END LOOP;
740 IF aso_debug_pub.g_debug_flag = 'Y' THEN
741 aso_debug_pub.add('Insert_Quote_lines - shipments.insert_row ', 1, 'N');
742 end if;
743
744 FOR i IN 1..l_Freight_Charge_Tbl.count LOOP
745 l_freight_charge_rec := l_freight_charge_tbl(i);
746 l_freight_charge_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
747 x_freight_charge_tbl(i) := l_freight_charge_rec;
748 -- BC4J Fix
749 --x_FREIGHT_CHARGE_tbl(i).freight_charge_id := NULL;
750
751 -- insert rows into aso_freight_charges
752
753 ASO_FREIGHT_CHARGES_PKG.Insert_Row(
754 px_FREIGHT_CHARGE_ID => x_FREIGHT_CHARGE_tbl(i).freight_charge_id,
755 p_CREATION_DATE => SYSDATE,
756 p_CREATED_BY => G_USER_ID,
757 p_LAST_UPDATE_DATE => SYSDATE,
758 p_LAST_UPDATED_BY => G_USER_ID,
759 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
760 p_REQUEST_ID => l_freight_charge_rec.REQUEST_ID,
761 p_PROGRAM_APPLICATION_ID
762 => l_freight_charge_rec.PROGRAM_APPLICATION_ID,
763 p_PROGRAM_ID => l_freight_charge_rec.PROGRAM_ID,
764 p_PROGRAM_UPDATE_DATE => l_freight_charge_rec.PROGRAM_UPDATE_DATE,
765 p_QUOTE_SHIPMENT_ID => l_freight_charge_rec.QUOTE_SHIPMENT_ID,
766 p_FREIGHT_CHARGE_TYPE_ID
767 => l_freight_charge_rec.FREIGHT_CHARGE_TYPE_ID,
768 p_CHARGE_AMOUNT => l_freight_charge_rec.CHARGE_AMOUNT,
769 p_ATTRIBUTE_CATEGORY => l_freight_charge_rec.ATTRIBUTE_CATEGORY,
770 p_ATTRIBUTE1 => l_freight_charge_rec.ATTRIBUTE1,
771 p_ATTRIBUTE2 => l_freight_charge_rec.ATTRIBUTE2,
772 p_ATTRIBUTE3 => l_freight_charge_rec.ATTRIBUTE3,
773 p_ATTRIBUTE4 => l_freight_charge_rec.ATTRIBUTE4,
774 p_ATTRIBUTE5 => l_freight_charge_rec.ATTRIBUTE5,
775 p_ATTRIBUTE6 => l_freight_charge_rec.ATTRIBUTE6,
776 p_ATTRIBUTE7 => l_freight_charge_rec.ATTRIBUTE7,
777 p_ATTRIBUTE8 => l_freight_charge_rec.ATTRIBUTE8,
778 p_ATTRIBUTE9 => l_freight_charge_rec.ATTRIBUTE9,
779 p_ATTRIBUTE10 => l_freight_charge_rec.ATTRIBUTE10,
780 p_ATTRIBUTE11 => l_freight_charge_rec.ATTRIBUTE11,
781 p_ATTRIBUTE12 => l_freight_charge_rec.ATTRIBUTE12,
782 p_ATTRIBUTE13 => l_freight_charge_rec.ATTRIBUTE13,
783 p_ATTRIBUTE14 => l_freight_charge_rec.ATTRIBUTE14,
784 p_ATTRIBUTE15 => l_freight_charge_rec.ATTRIBUTE15);
785
786 END LOOP;
787 IF aso_debug_pub.g_debug_flag = 'Y' THEN
788 aso_debug_pub.add('Insert_Quote_lines - after frieght.insert_row '||x_return_status, 1, 'N');
789 end if;
790
791 FOR i IN 1..P_tax_detail_Tbl.count LOOP
792 l_tax_detail_rec := l_tax_detail_tbl(i);
793 l_tax_detail_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
794 l_tax_detail_rec.quote_header_id := p_qte_line_rec.quote_header_id;
795 x_tax_detail_tbl(i) := l_tax_detail_rec;
796 -- BC4J Fix
797 --x_tax_detail_tbl(i).TAX_DETAIL_ID := NULL;
798
799 ASO_TAX_DETAILS_PKG.Insert_Row(
800 px_TAX_DETAIL_ID => x_tax_detail_tbl(i).TAX_DETAIL_ID,
801 p_CREATION_DATE => SYSDATE,
802 p_CREATED_BY => G_USER_ID,
803 p_LAST_UPDATE_DATE => SYSDATE,
804 p_LAST_UPDATED_BY => G_USER_ID,
805 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
806 p_REQUEST_ID => l_tax_detail_rec.REQUEST_ID,
807 p_PROGRAM_APPLICATION_ID =>l_tax_detail_rec.PROGRAM_APPLICATION_ID,
808 p_PROGRAM_ID => l_tax_detail_rec.PROGRAM_ID,
809 p_PROGRAM_UPDATE_DATE=> l_tax_detail_rec.PROGRAM_UPDATE_DATE,
810 p_QUOTE_HEADER_ID => l_tax_detail_rec.QUOTE_HEADER_ID,
811 p_QUOTE_LINE_ID => l_tax_detail_rec.QUOTE_LINE_ID,
812 p_QUOTE_SHIPMENT_ID => l_tax_detail_rec.QUOTE_SHIPMENT_ID,
813 p_ORIG_TAX_CODE => l_tax_detail_rec.ORIG_TAX_CODE,
814 p_TAX_CODE => l_tax_detail_rec.TAX_CODE,
815 p_TAX_RATE => l_tax_detail_rec.TAX_RATE,
816 p_TAX_DATE => l_tax_detail_rec.TAX_DATE,
817 p_TAX_AMOUNT => l_tax_detail_rec.TAX_AMOUNT,
818 p_TAX_EXEMPT_FLAG => l_tax_detail_rec.TAX_EXEMPT_FLAG,
819 p_TAX_EXEMPT_NUMBER => l_tax_detail_rec.TAX_EXEMPT_NUMBER,
820 p_TAX_EXEMPT_REASON_CODE =>l_tax_detail_rec.TAX_EXEMPT_REASON_CODE,
821 p_ATTRIBUTE_CATEGORY => l_tax_detail_rec.ATTRIBUTE_CATEGORY,
822 p_ATTRIBUTE1 => l_tax_detail_rec.ATTRIBUTE1,
823 p_ATTRIBUTE2 => l_tax_detail_rec.ATTRIBUTE2,
824 p_ATTRIBUTE3 => l_tax_detail_rec.ATTRIBUTE3,
825 p_ATTRIBUTE4 => l_tax_detail_rec.ATTRIBUTE4,
826 p_ATTRIBUTE5 => l_tax_detail_rec.ATTRIBUTE5,
827 p_ATTRIBUTE6 => l_tax_detail_rec.ATTRIBUTE6,
828 p_ATTRIBUTE7 => l_tax_detail_rec.ATTRIBUTE7,
829 p_ATTRIBUTE8 => l_tax_detail_rec.ATTRIBUTE8,
830 p_ATTRIBUTE9 => l_tax_detail_rec.ATTRIBUTE9,
831 p_ATTRIBUTE10 => l_tax_detail_rec.ATTRIBUTE10,
832 p_ATTRIBUTE11 => l_tax_detail_rec.ATTRIBUTE11,
833 p_ATTRIBUTE12 => l_tax_detail_rec.ATTRIBUTE12,
834 p_ATTRIBUTE13 => l_tax_detail_rec.ATTRIBUTE13,
835 p_ATTRIBUTE14 => l_tax_detail_rec.ATTRIBUTE14,
836 p_ATTRIBUTE15 => l_tax_detail_rec.ATTRIBUTE15,
837 p_ATTRIBUTE16 => l_tax_detail_rec.ATTRIBUTE16,
838 p_ATTRIBUTE17 => l_tax_detail_rec.ATTRIBUTE17,
839 p_ATTRIBUTE18 => l_tax_detail_rec.ATTRIBUTE18,
840 p_ATTRIBUTE19 => l_tax_detail_rec.ATTRIBUTE19,
841 p_ATTRIBUTE20 => l_tax_detail_rec.ATTRIBUTE20,
842 p_TAX_INCLUSIVE_FLAG => l_tax_detail_rec.TAX_INCLUSIVE_FLAG,
843 p_OBJECT_VERSION_NUMBER => l_tax_detail_rec.OBJECT_VERSION_NUMBER,
844 p_TAX_RATE_ID => l_tax_detail_rec.TAX_RATE_ID
845 );
846 END LOOP;
847 IF aso_debug_pub.g_debug_flag = 'Y' THEN
848 aso_debug_pub.add('Insert_Quote_lines - after tax_details.insert_row '|| x_return_status, 1, 'N');
849 end if;
850
851 FOR i IN 1..l_Price_Adj_Tbl.count LOOP
852 l_price_adj_rec := l_price_adj_tbl(i);
853 l_price_adj_rec.quote_line_id := x_qte_line_rec.quote_line_id;
854 l_price_adj_rec.quote_header_id := p_qte_line_rec.quote_header_id;
855 x_price_adj_tbl(i) := l_price_adj_rec;
856 -- BC4J Fix
857 --x_price_adj_tbl(i).PRICE_ADJUSTMENT_ID := NULL;
858 ASO_PRICE_ADJUSTMENTS_PKG.Insert_Row(
859 px_PRICE_ADJUSTMENT_ID => x_price_adj_tbl(i).PRICE_ADJUSTMENT_ID,
860 p_CREATION_DATE => SYSDATE,
861 p_CREATED_BY => G_USER_ID,
862 p_LAST_UPDATE_DATE => SYSDATE,
863 p_LAST_UPDATED_BY => G_USER_ID,
864 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
865 p_PROGRAM_APPLICATION_ID =>l_price_adj_rec.PROGRAM_APPLICATION_ID,
866 p_PROGRAM_ID => l_price_adj_rec.PROGRAM_ID,
867 p_PROGRAM_UPDATE_DATE => l_price_adj_rec.PROGRAM_UPDATE_DATE,
868 p_REQUEST_ID => l_price_adj_rec.REQUEST_ID,
869 p_QUOTE_HEADER_ID => l_price_adj_rec.QUOTE_HEADER_ID,
870 p_QUOTE_LINE_ID => l_price_adj_rec.QUOTE_LINE_ID,
871 p_QUOTE_SHIPMENT_ID => l_price_adj_rec.QUOTE_SHIPMENT_ID,
872 p_MODIFIER_HEADER_ID => l_price_adj_rec.MODIFIER_HEADER_ID,
873 p_MODIFIER_LINE_ID => l_price_adj_rec.MODIFIER_LINE_ID,
874 p_MODIFIER_LINE_TYPE_CODE
875 => l_price_adj_rec.MODIFIER_LINE_TYPE_CODE,
876 p_MODIFIER_MECHANISM_TYPE_CODE
877 => l_price_adj_rec.MODIFIER_MECHANISM_TYPE_CODE,
878 p_MODIFIED_FROM => l_price_adj_rec.MODIFIED_FROM,
879 p_MODIFIED_TO => l_price_adj_rec.MODIFIED_TO,
880 p_OPERAND => l_price_adj_rec.OPERAND,
881 p_ARITHMETIC_OPERATOR => l_price_adj_rec.ARITHMETIC_OPERATOR,
882 p_AUTOMATIC_FLAG => l_price_adj_rec.AUTOMATIC_FLAG,
883 p_UPDATE_ALLOWABLE_FLAG => l_price_adj_rec.UPDATE_ALLOWABLE_FLAG,
884 p_UPDATED_FLAG => l_price_adj_rec.UPDATED_FLAG,
885 p_APPLIED_FLAG => l_price_adj_rec.APPLIED_FLAG,
886 p_ON_INVOICE_FLAG => l_price_adj_rec.ON_INVOICE_FLAG,
887 p_PRICING_PHASE_ID => l_price_adj_rec.PRICING_PHASE_ID,
888 p_ATTRIBUTE_CATEGORY => l_price_adj_rec.ATTRIBUTE_CATEGORY,
889 p_ATTRIBUTE1 => l_price_adj_rec.ATTRIBUTE1,
890 p_ATTRIBUTE2 => l_price_adj_rec.ATTRIBUTE2,
891 p_ATTRIBUTE3 => l_price_adj_rec.ATTRIBUTE3,
892 p_ATTRIBUTE4 => l_price_adj_rec.ATTRIBUTE4,
893 p_ATTRIBUTE5 => l_price_adj_rec.ATTRIBUTE5,
894 p_ATTRIBUTE6 => l_price_adj_rec.ATTRIBUTE6,
895 p_ATTRIBUTE7 => l_price_adj_rec.ATTRIBUTE7,
896 p_ATTRIBUTE8 => l_price_adj_rec.ATTRIBUTE8,
897 p_ATTRIBUTE9 => l_price_adj_rec.ATTRIBUTE9,
898 p_ATTRIBUTE10 => l_price_adj_rec.ATTRIBUTE10,
899 p_ATTRIBUTE11 => l_price_adj_rec.ATTRIBUTE11,
900 p_ATTRIBUTE12 => l_price_adj_rec.ATTRIBUTE12,
901 p_ATTRIBUTE13 => l_price_adj_rec.ATTRIBUTE13,
902 p_ATTRIBUTE14 => l_price_adj_rec.ATTRIBUTE14,
903 p_ATTRIBUTE15 => l_price_adj_rec.ATTRIBUTE15,
904 p_ATTRIBUTE16 => l_price_adj_rec.ATTRIBUTE16,
905 p_ATTRIBUTE17 => l_price_adj_rec.ATTRIBUTE17,
906 p_ATTRIBUTE18 => l_price_adj_rec.ATTRIBUTE18,
907 p_ATTRIBUTE19 => l_price_adj_rec.ATTRIBUTE19,
908 p_ATTRIBUTE20 => l_price_adj_rec.ATTRIBUTE20,
909 p_ORIG_SYS_DISCOUNT_REF => l_price_adj_rec.ORIG_SYS_DISCOUNT_REF ,
910 p_CHANGE_SEQUENCE => l_price_adj_rec.CHANGE_SEQUENCE ,
911 -- p_LIST_HEADER_ID => l_price_adj_rec. ,
912 -- p_LIST_LINE_ID => l_price_adj_rec. ,
913 -- p_LIST_LINE_TYPE_CODE => l_price_adj_rec.,
914 p_UPDATE_ALLOWED => l_price_adj_rec.UPDATE_ALLOWED,
915 p_CHANGE_REASON_CODE => l_price_adj_rec.CHANGE_REASON_CODE,
916 p_CHANGE_REASON_TEXT => l_price_adj_rec.CHANGE_REASON_TEXT,
917 p_COST_ID => l_price_adj_rec.COST_ID ,
918 p_TAX_CODE => l_price_adj_rec.TAX_CODE,
919 p_TAX_EXEMPT_FLAG => l_price_adj_rec.TAX_EXEMPT_FLAG,
920 p_TAX_EXEMPT_NUMBER => l_price_adj_rec.TAX_EXEMPT_NUMBER,
921 p_TAX_EXEMPT_REASON_CODE => l_price_adj_rec.TAX_EXEMPT_REASON_CODE,
922 p_PARENT_ADJUSTMENT_ID => l_price_adj_rec.PARENT_ADJUSTMENT_ID,
923 p_INVOICED_FLAG => l_price_adj_rec.INVOICED_FLAG,
924 p_ESTIMATED_FLAG => l_price_adj_rec.ESTIMATED_FLAG,
925 p_INC_IN_SALES_PERFORMANCE => l_price_adj_rec.INC_IN_SALES_PERFORMANCE,
926 p_SPLIT_ACTION_CODE => l_price_adj_rec.SPLIT_ACTION_CODE,
927 p_ADJUSTED_AMOUNT => l_price_adj_rec.ADJUSTED_AMOUNT ,
928 p_CHARGE_TYPE_CODE => l_price_adj_rec.CHARGE_TYPE_CODE,
929 p_CHARGE_SUBTYPE_CODE => l_price_adj_rec.CHARGE_SUBTYPE_CODE,
930 p_RANGE_BREAK_QUANTITY => l_price_adj_rec.RANGE_BREAK_QUANTITY,
931 p_ACCRUAL_CONVERSION_RATE => l_price_adj_rec.ACCRUAL_CONVERSION_RATE ,
932 p_PRICING_GROUP_SEQUENCE => l_price_adj_rec.PRICING_GROUP_SEQUENCE,
933 p_ACCRUAL_FLAG => l_price_adj_rec.ACCRUAL_FLAG,
934 p_LIST_LINE_NO => l_price_adj_rec.LIST_LINE_NO,
935 p_SOURCE_SYSTEM_CODE => l_price_adj_rec.SOURCE_SYSTEM_CODE ,
936 p_BENEFIT_QTY => l_price_adj_rec.BENEFIT_QTY,
937 p_BENEFIT_UOM_CODE => l_price_adj_rec.BENEFIT_UOM_CODE,
938 p_PRINT_ON_INVOICE_FLAG => l_price_adj_rec.PRINT_ON_INVOICE_FLAG,
939 p_EXPIRATION_DATE => l_price_adj_rec.EXPIRATION_DATE,
940 p_REBATE_TRANSACTION_TYPE_CODE => l_price_adj_rec.REBATE_TRANSACTION_TYPE_CODE,
941 p_REBATE_TRANSACTION_REFERENCE => l_price_adj_rec.REBATE_TRANSACTION_REFERENCE,
942 p_REBATE_PAYMENT_SYSTEM_CODE => l_price_adj_rec.REBATE_PAYMENT_SYSTEM_CODE,
943 p_REDEEMED_DATE => l_price_adj_rec.REDEEMED_DATE,
944 p_REDEEMED_FLAG => l_price_adj_rec.REDEEMED_FLAG,
945 p_MODIFIER_LEVEL_CODE => l_price_adj_rec.MODIFIER_LEVEL_CODE,
946 p_PRICE_BREAK_TYPE_CODE => l_price_adj_rec.PRICE_BREAK_TYPE_CODE ,
947 p_SUBSTITUTION_ATTRIBUTE => l_price_adj_rec.SUBSTITUTION_ATTRIBUTE,
948 p_PRORATION_TYPE_CODE => l_price_adj_rec.PRORATION_TYPE_CODE ,
949 p_INCLUDE_ON_RETURNS_FLAG => l_price_adj_rec.INCLUDE_ON_RETURNS_FLAG,
950 p_CREDIT_OR_CHARGE_FLAG => l_price_adj_rec.CREDIT_OR_CHARGE_FLAG,
951 p_OPERAND_PER_PQTY => l_price_adj_rec.OPERAND_PER_PQTY,
952 p_ADJUSTED_AMOUNT_PER_PQTY => l_price_adj_rec.ADJUSTED_AMOUNT_PER_PQTY,
953 p_OBJECT_VERSION_NUMBER => l_price_adj_rec.OBJECT_VERSION_NUMBER
954 );
955
956 FOR j in 1..l_price_adj_attr_tbl.count LOOP
957 IF l_price_adj_attr_tbl(j).price_adj_index = i THEN
958 l_price_adj_attr_tbl(j).price_adjustment_id
959 := x_price_adj_tbl(i).PRICE_ADJUSTMENT_ID;
960 END IF;
961 END LOOP;
962
963 END LOOP;
964 IF aso_debug_pub.g_debug_flag = 'Y' THEN
965 aso_debug_pub.add('Insert_Quote_lines - after price_adj.insert_row ', 1, 'N');
966 end if;
967
968
969 x_price_adj_attr_tbl := l_price_adj_attr_tbl;
970
971 FOR i in 1..l_price_adj_attr_tbl.count LOOP
972 -- BC4J Fix
973 --x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID := NULL;
974 ASO_PRICE_ADJ_ATTRIBS_PKG.Insert_Row(
975 px_PRICE_ADJ_ATTRIB_ID
976 => x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID,
977 p_CREATION_DATE => SYSDATE,
978 p_CREATED_BY => G_USER_ID,
979 p_LAST_UPDATE_DATE => SYSDATE,
980 p_LAST_UPDATED_BY => G_USER_ID,
981 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
982 p_PROGRAM_APPLICATION_ID
983 =>l_price_adj_attr_tbl(i).PROGRAM_APPLICATION_ID,
984 p_PROGRAM_ID => l_price_adj_attr_tbl(i).PROGRAM_ID,
985 p_PROGRAM_UPDATE_DATE =>l_price_adj_attr_tbl(i).PROGRAM_UPDATE_DATE,
986 p_REQUEST_ID => l_price_adj_attr_tbl(i).REQUEST_ID,
987 p_PRICE_ADJUSTMENT_ID => l_price_adj_attr_tbl(i).PRICE_ADJUSTMENT_ID,
988 p_PRICING_CONTEXT => l_price_adj_attr_tbl(i).PRICING_CONTEXT,
989 p_PRICING_ATTRIBUTE => l_price_adj_attr_tbl(i).PRICING_ATTRIBUTE,
990 p_PRICING_ATTR_VALUE_FROM
991 => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_FROM,
992 p_PRICING_ATTR_VALUE_TO
993 => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_TO,
994 p_COMPARISON_OPERATOR
995 => l_price_adj_attr_tbl(i).COMPARISON_OPERATOR,
996 p_FLEX_TITLE => l_price_adj_attr_tbl(i).FLEX_TITLE,
997 P_OBJECT_VERSION_NUMBER => l_price_adj_attr_tbl(i).OBJECT_VERSION_NUMBER
998 );
999
1000 END LOOP;
1001
1002 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1003 aso_debug_pub.add('Insert_Quote_lines - price_adj_attr.insert_row ', 1, 'N');
1004 end if;
1005
1006
1007 FOR i IN 1..l_Payment_Tbl.count LOOP
1008
1009 l_payment_rec := l_payment_tbl(i);
1010 l_payment_rec.quote_line_id := x_qte_line_rec.quote_line_id;
1011 l_payment_rec.quote_header_id := p_qte_line_rec.quote_header_id;
1012 x_payment_tbl(i) := l_payment_rec;
1013 l_payment_rec.payment_term_id_from := l_payment_tbl(i).payment_term_id;
1014
1015 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1016 aso_debug_pub.add('Inside ASO_PAYMENTS_PKG - Insert Rows l_payment_tbl(i).payment_term_id'||l_payment_tbl(i).payment_term_id, 1, 'Y');
1017 aso_debug_pub.add('Inside ASO_PAYMENTS_PKG - Insert Rows l_payment_rec.PAYMENT_TERM_ID_FROM'||l_payment_rec.PAYMENT_TERM_ID_FROM, 1, 'Y');
1018 END IF;
1019 -- BC4J Fix
1020 --x_payment_tbl(i).PAYMENT_ID := NULL;
1021 x_payment_tbl(i).PAYMENT_TERM_ID_FROM := l_payment_rec.PAYMENT_TERM_ID_FROM;
1022
1023 -- Suyog Payments Changes
1024
1025 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1026 aso_debug_pub.add('Insert_Quote_Line_Rows: Before call to create_payment_row ', 1, 'Y');
1027 END IF;
1028
1029 aso_payment_int.create_payment_row(p_payment_rec => l_payment_rec ,
1030 x_payment_rec => x_payment_tbl(i),
1031 x_return_status => x_return_status,
1032 x_msg_count => x_msg_count,
1033 x_msg_data => x_msg_data);
1034
1035 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1036 aso_debug_pub.add('Insert_Quote_Line_Rows: After call to create_payment_row: x_return_status: '||x_return_status, 1, 'Y');
1037 END IF;
1038
1039 if x_return_status <> fnd_api.g_ret_sts_success then
1040 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1041 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1042 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1043 RAISE FND_API.G_EXC_ERROR;
1044 ELSE
1045 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1046 END IF;
1047 end if;
1048
1049 x_payment_tbl(i).payment_term_id_from := l_payment_rec.payment_term_id_from;
1050
1051 -- End Suyog Payment Changes
1052 END LOOP;
1053
1054 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1055 aso_debug_pub.add('Insert_Quote_lines - payment.insert_row ', 1, 'N');
1056 end if;
1057
1058 -- insert rows into aso_shipments_tbl
1059
1060
1061 -- insert into quote party table
1062
1063 FOR i IN 1..l_quote_party_Tbl.count LOOP
1064 l_quote_party_rec := l_quote_party_tbl(i);
1065 l_quote_party_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
1066 l_quote_party_rec.quote_header_id := p_qte_line_rec.quote_header_id;
1067 x_quote_party_tbl(i) := l_quote_party_rec;
1068 -- BC4J Fix
1069 --x_quote_party_tbl(i).QUOTE_PARTY_ID := NULL;
1070
1071 ASO_QUOTE_PARTIES_PKG.Insert_Row(
1072 px_QUOTE_PARTY_ID => x_quote_party_tbl(i).QUOTE_PARTY_ID,
1073 p_CREATION_DATE => SYSDATE,
1074 p_CREATED_BY => G_USER_ID,
1075 p_LAST_UPDATE_DATE => SYSDATE,
1076 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1077 p_LAST_UPDATED_BY => G_USER_ID,
1078 p_REQUEST_ID => l_QUOTE_PARTY_rec.REQUEST_ID,
1079 p_PROGRAM_APPLICATION_ID =>l_QUOTE_PARTY_rec.PROGRAM_APPLICATION_ID,
1080 p_PROGRAM_ID => l_QUOTE_PARTY_rec.PROGRAM_ID,
1081 p_PROGRAM_UPDATE_DATE => l_QUOTE_PARTY_rec.PROGRAM_UPDATE_DATE,
1082 p_QUOTE_HEADER_ID => l_QUOTE_PARTY_rec.QUOTE_HEADER_ID,
1083 p_QUOTE_LINE_ID => l_QUOTE_PARTY_rec.QUOTE_LINE_ID,
1084 p_QUOTE_SHIPMENT_ID => l_QUOTE_PARTY_rec.QUOTE_SHIPMENT_ID,
1085 p_PARTY_TYPE => l_QUOTE_PARTY_rec.PARTY_TYPE,
1086 p_PARTY_ID => l_QUOTE_PARTY_rec.PARTY_ID,
1087 p_PARTY_OBJECT_TYPE => l_QUOTE_PARTY_rec.PARTY_OBJECT_TYPE,
1088 p_PARTY_OBJECT_ID => l_QUOTE_PARTY_rec.PARTY_OBJECT_ID,
1089 p_ATTRIBUTE_CATEGORY => l_QUOTE_PARTY_rec.ATTRIBUTE_CATEGORY,
1090 p_ATTRIBUTE1 => l_QUOTE_PARTY_rec.ATTRIBUTE1,
1091 p_ATTRIBUTE2 => l_QUOTE_PARTY_rec.ATTRIBUTE2,
1092 p_ATTRIBUTE3 => l_QUOTE_PARTY_rec.ATTRIBUTE3,
1093 p_ATTRIBUTE4 => l_QUOTE_PARTY_rec.ATTRIBUTE4,
1094 p_ATTRIBUTE5 => l_QUOTE_PARTY_rec.ATTRIBUTE5,
1095 p_ATTRIBUTE6 => l_QUOTE_PARTY_rec.ATTRIBUTE6,
1096 p_ATTRIBUTE7 => l_QUOTE_PARTY_rec.ATTRIBUTE7,
1097 p_ATTRIBUTE8 => l_QUOTE_PARTY_rec.ATTRIBUTE8,
1098 p_ATTRIBUTE9 => l_QUOTE_PARTY_rec.ATTRIBUTE9,
1099 p_ATTRIBUTE10 => l_QUOTE_PARTY_rec.ATTRIBUTE10,
1100 p_ATTRIBUTE11 => l_QUOTE_PARTY_rec.ATTRIBUTE11,
1101 p_ATTRIBUTE12 => l_QUOTE_PARTY_rec.ATTRIBUTE12,
1102 p_ATTRIBUTE13 => l_QUOTE_PARTY_rec.ATTRIBUTE13,
1103 p_ATTRIBUTE14 => l_QUOTE_PARTY_rec.ATTRIBUTE14,
1104 p_ATTRIBUTE15 => l_QUOTE_PARTY_rec.ATTRIBUTE15,
1105 -- p_SECURITY_GROUP_ID => p_QUOTE_PARTY_rec.SECURITY_GROUP_ID);
1106 p_OBJECT_VERSION_NUMBER => l_QUOTE_PARTY_rec.OBJECT_VERSION_NUMBER);
1107
1108 END LOOP;
1109
1110
1111 FOR i IN 1..l_line_attribs_Tbl.count LOOP
1112 l_line_attribs_rec := l_line_attribs_tbl(i);
1113 l_line_attribs_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
1114 l_line_attribs_rec.quote_header_id := x_qte_line_rec.QUOTE_HEADER_ID;
1115 x_line_attribs_ext_tbl(i) := l_line_attribs_rec;
1116 -- BC4J Fix
1117 --x_LINE_ATTRIBS_EXT_TBL(i).LINE_ATTRIBUTE_ID := NULL;
1118
1119 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Insert_Row(
1120 px_LINE_ATTRIBUTE_ID => x_LINE_ATTRIBS_EXT_TBL(i).LINE_ATTRIBUTE_ID,
1121 p_CREATION_DATE => SYSDATE,
1122 p_CREATED_BY => G_USER_ID,
1123 p_LAST_UPDATE_DATE => SYSDATE,
1124 p_LAST_UPDATED_BY => G_USER_ID,
1125 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1126 p_REQUEST_ID => l_LINE_ATTRIBS_rec.REQUEST_ID,
1127 p_PROGRAM_APPLICATION_ID =>l_LINE_ATTRIBS_rec.PROGRAM_APPLICATION_ID,
1128 p_PROGRAM_ID => l_LINE_ATTRIBS_rec.PROGRAM_ID,
1129 p_PROGRAM_UPDATE_DATE => l_LINE_ATTRIBS_rec.PROGRAM_UPDATE_DATE,
1130 p_APPLICATION_ID => l_LINE_ATTRIBS_rec.APPLICATION_ID,
1131 p_STATUS => l_LINE_ATTRIBS_rec.STATUS,
1132 p_QUOTE_HEADER_ID => l_LINE_ATTRIBS_rec.QUOTE_HEADER_ID,
1133 p_QUOTE_LINE_ID => l_LINE_ATTRIBS_rec.QUOTE_LINE_ID,
1134 p_QUOTE_SHIPMENT_ID => l_LINE_ATTRIBS_rec.QUOTE_SHIPMENT_ID,
1135 p_ATTRIBUTE_TYPE_CODE => l_LINE_ATTRIBS_rec.ATTRIBUTE_TYPE_CODE,
1136 p_NAME => l_LINE_ATTRIBS_rec.NAME,
1137 p_VALUE => l_LINE_ATTRIBS_rec.VALUE,
1138 p_VALUE_TYPE => l_LINE_ATTRIBS_rec.VALUE_TYPE,
1139 p_START_DATE_ACTIVE => l_LINE_ATTRIBS_rec.START_DATE_ACTIVE,
1140 p_END_DATE_ACTIVE => l_LINE_ATTRIBS_rec.END_DATE_ACTIVE,
1141 P_OBJECT_VERSION_NUMBER => l_LINE_ATTRIBS_rec.OBJECT_VERSION_NUMBER);
1142 END LOOP;
1143
1144 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1145 aso_debug_pub.add('Insert_Quote_lines - line_attribs.insert_row ', 1, 'N');
1146 end if;
1147
1148 -- Change START
1149 -- Release 12 TAP Changes
1150 -- Girish Sachdeva 8/30/2005
1151 -- Adding the call to insert record in the ASO_CHANGED_QUOTES
1152
1153 -- Finding the quote number
1154 open get_quote_number(X_Qte_Line_Rec.QUOTE_HEADER_ID);
1155 fetch get_quote_number into l_quote_number;
1156 if get_quote_number%FOUND then
1157 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1158 aso_debug_pub.add('ASO_QUOTE_LINES_PVT.Insert_Quote_lines : Calling ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES, quote number : ' || l_quote_number, 1, 'Y');
1159 END IF;
1160
1161 -- Call to insert record in ASO_CHANGED_QUOTES
1162 ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES(l_quote_number);
1163 end if;
1164 close get_quote_number;
1165
1166 -- Change END
1167
1168 END;
1169
1170 PROCEDURE Populate_Quote_Line(
1171 P_Qte_Line_Rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_qte_line_REC,
1172 P_Control_REC IN ASO_QUOTE_PUB.Control_Rec_Type := ASO_QUOTE_PUB.G_MISS_Control_Rec,
1173 P_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Payment_TBL,
1174 P_Price_Adj_Tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Price_Adj_TBL,
1175 P_Qte_Line_Dtl_tbl IN ASO_QUOTE_PUB.Qte_Line_Dtl_tbl_Type := ASO_QUOTE_PUB.G_MISS_qte_line_dtl_TBL,
1176 P_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_shipment_TBL,
1177 P_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_MISS_tax_detail_TBL,
1178 P_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type := ASO_QUOTE_PUB.G_MISS_freight_charge_TBL,
1179 P_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Price_attributes_TBL,
1180 P_Price_Adj_Attr_Tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type := ASO_QUOTE_PUB.G_Miss_PRICE_ADJ_ATTR_Tbl,
1181 P_Line_Attribs_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_type := ASO_QUOTE_PUB.G_Miss_Line_Attribs_Ext_Tbl,
1182 P_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl,
1183 P_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl,
1184 P_Update_Header_Flag IN VARCHAR2 := FND_API.G_TRUE,
1185 P_operation_code IN VARCHAR2,
1186 X_Qte_Line_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Rec_Type,
1187 X_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
1188 X_Price_Adj_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
1189 X_Qte_Line_Dtl_TBL OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Dtl_TBL_Type,
1190 X_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Tbl_Type,
1191 X_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
1192 X_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type ,
1193 X_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type ,
1194 X_Price_Adj_Attr_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
1195 X_Line_Attribs_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_type,
1196 X_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
1197 X_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
1198 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1199 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1200 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1201
1202 )
1203 IS
1204
1205 /* 2633507 - hyang: using lc_organization_id as cursor variable */
1206
1207 CURSOR C_item1(inv1 NUMBER, lc_organization_id NUMBER) IS
1208 select primary_uom_code, service_item_flag,serviceable_product_flag,ship_model_complete_flag,
1209 payment_terms_id,config_model_type
1210 from mtl_system_items_b
1211 where inventory_item_id = inv1
1212 and organization_id = lc_organization_id;
1213
1214 CURSOR C_shipment IS
1215 SELECT count(*) ,sum(quantity)
1216 FROM aso_shipments
1217 WHERE quote_line_id = p_qte_line_rec.quote_line_id;
1218
1219 CURSOR C_header IS
1220 SELECT quote_header_id, organization_id, inventory_item_id
1221 FROM aso_quote_lines_all
1222 WHERE quote_line_id = p_qte_line_rec.quote_line_id;
1223
1224 CURSOR C_customer IS
1225 SELECT cust_account_id, party_id
1226 FROM aso_quote_headers_all
1227 WHERE quote_header_id = p_qte_line_rec.quote_header_id;
1228
1229 CURSOR C_service_item IS
1230 SELECT qln.start_date_active, qln.end_date_active,
1231 detail.service_duration, detail.service_period,
1232 detail.service_coterminate_flag,
1233 qhd.cust_account_id, qhd.party_id
1234 FROM aso_quote_lines_all qln,
1235 aso_quote_line_details detail,
1236 aso_quote_headers_all qhd
1237 WHERE detail.quote_line_id = qln.quote_line_id
1238 AND qln.quote_line_id = p_qte_line_rec.quote_line_id
1239 AND qln.quote_header_id = qhd.quote_header_id;
1240
1241 CURSOR C_org_id IS
1242 SELECT org_id
1243 FROM aso_quote_headers_all
1244 WHERE quote_header_id = p_qte_line_rec.quote_header_id;
1245
1246 CURSOR c_line_number ( p_quote_line_id NUMBER ) IS
1247 SELECT line_number
1248 FROM aso_quote_lines_all
1249 where quote_line_id = p_quote_line_id;
1250
1251 cursor c_config_item_id( p_config_header_id number, p_config_revision_num number,
1252 p_component_code varchar2 ) is
1253 select config_item_id, bom_sort_order
1254 from cz_config_details_v
1255 where config_hdr_id = p_config_header_id and
1256 config_rev_nbr = p_config_revision_num and
1257 component_code = p_component_code;
1258
1259 cursor c_bom_sort_order( p_config_header_id number, p_config_revision_num number,
1260 p_config_item_id number ) is
1261 select bom_sort_order
1262 from cz_config_details_v
1263 where config_hdr_id = p_config_header_id and
1264 config_rev_nbr = p_config_revision_num and
1265 config_item_id = p_config_item_id;
1266
1267 -- Recurring charges Change
1268 CURSOR c_periodicity(p_inventory_item_id IN Number, p_organization_id IN Number) IS
1269 SELECT charge_periodicity_code
1270 FROM mtl_system_items_b
1271 WHERE inventory_item_id = p_inventory_item_id
1272 AND organization_id = p_organization_id;
1273
1274 Cursor get_hdr_term(l_qte_hdr_id number) is
1275 select payment_term_id
1276 from aso_payments
1277 where quote_header_id = l_qte_hdr_id
1278 and quote_line_id is null;
1279
1280 l_hdr_term_id number := null;
1281 l_uom_code VARCHAR2(3);
1282 l_service_item_flag VARCHAR2(1);
1283 l_total_shipment_quantity NUMBER := 0;
1284 l_total_quantity NUMBER;
1285 l_shipment_quantity NUMBER;
1286 l_shipment_rec_count NUMBER;
1287 l_line_number NUMBER;
1288 l_check VARCHAR2(1) := FND_API.G_FALSE;
1289 l_customer_id NUMBER;
1290 l_acct NUMBER;
1291 l_party NUMBER;
1292 l_coterminate_flag VARCHAR2(1);
1293 l_start_date DATE;
1294 l_end_date DATE;
1295 l_service_period VARCHAR2(200);
1296 l_service_duration NUMBER;
1297 calc_service VARCHAR2(1) := FND_API.G_FALSE;
1298 l_inventory_item_id NUMBER;
1299 l_organization_id NUMBER;
1300 i NUMBER;
1301 l_serviceable_line_number NUMBER;
1302 l_serviceable_product_flag VARCHAR2(1);
1303
1304 -- local variables
1305 l_Qte_Line_Rec ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_qte_line_REC;
1306 l_Payment_Tbl ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Payment_TBL;
1307 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Price_Adj_TBL;
1308 l_Qte_Line_Dtl_rec ASO_QUOTE_PUB.Qte_Line_Dtl_rec_Type := ASO_QUOTE_PUB.G_MISS_qte_line_dtl_REC;
1309 l_Shipment_Tbl ASO_QUOTE_PUB.Shipment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_shipment_TBL;
1310 l_Tax_Detail_Tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_MISS_tax_detail_TBL;
1311 l_Freight_Charge_Tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type := ASO_QUOTE_PUB.G_MISS_freight_charge_TBL;
1312 l_Line_Rltship_Tbl ASO_QUOTE_PUB.Line_Rltship_Tbl_Type := ASO_QUOTE_PUB.G_MISS_line_rltship_TBL;
1313 l_Price_Attributes_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Price_attributes_TBL;
1314 l_Price_Adj_rltship_Tbl ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type := ASO_QUOTE_PUB.G_MISS_price_adj_rltship_TBL;
1315 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type := ASO_QUOTE_PUB.G_Miss_PRICE_ADJ_ATTR_Tbl;
1316 l_Line_Attribs_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_type := ASO_QUOTE_PUB.G_Miss_Line_Attribs_Ext_Tbl;
1317 l_Qte_Line_Dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_tbl_Type := ASO_QUOTE_PUB.G_MISS_qte_line_dtl_TBL;
1318 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
1319 l_hd_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
1320 l_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
1321 l_hd_price_attr_tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
1322
1323 l_call_get_duration VARCHAR2(1) := FND_API.G_FALSE;
1324 /* New Variable for changes */
1325 l_Qte_Line_Dtl_tbl_out ASO_QUOTE_PUB.Qte_Line_Dtl_tbl_Type;
1326 l_qte_line_rec_out ASO_QUOTE_PUB.Qte_Line_Rec_Type;
1327 l_ship_model_complete_flag VARCHAR2(1);
1328 l_master_organization_id number;
1329 l_payment_term_id number;
1330 l_installment_option varchar2(240);
1331 l_config_model_type varchar2(1);
1332
1333 BEGIN
1334
1335 X_Return_Status := FND_API.G_RET_STS_SUCCESS;
1336
1337 l_Qte_Line_Rec := p_Qte_Line_Rec ;
1338 l_Payment_Tbl := p_Payment_Tbl ;
1339 l_Price_Adj_Tbl := p_Price_Adj_Tbl ;
1340 l_Qte_Line_Dtl_tbl := p_Qte_Line_Dtl_tbl ;
1341 l_Shipment_Tbl := p_Shipment_Tbl ;
1342 l_Tax_Detail_Tbl := p_Tax_Detail_Tbl ;
1343 l_Freight_Charge_Tbl := p_Freight_Charge_Tbl ;
1344 l_Price_Attributes_Tbl := p_Price_Attributes_Tbl ;
1345 l_Price_Adj_Attr_Tbl := p_Price_Adj_Attr_Tbl ;
1346 l_Line_Attribs_Ext_Tbl := p_Line_Attribs_Ext_Tbl;
1347
1348 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1349 aso_debug_pub.add('Populate_Quote_lines - Begin ', 1, 'Y');
1350 end if;
1351
1352 -- default quantity for every shipment line is 1
1353
1354
1355 IF p_operation_code = 'CREATE' THEN
1356
1357 -- default org id from header
1358
1359 IF l_qte_line_rec.org_id is NULL OR l_qte_line_rec.org_id = FND_API.G_MISS_NUM THEN
1360
1361 OPEN C_org_id;
1362 FETCH C_org_id into l_qte_line_rec.org_id;
1363
1364 IF (C_org_id%NOTFOUND) THEN
1365
1366 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1367 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1368 FND_MESSAGE.Set_Token('COLUMN', 'ORG_ID', FALSE);
1369 FND_MSG_PUB.ADD;
1370 END IF;
1371
1372 END IF;
1373
1374 CLOSE C_org_id;
1375
1376 END IF;
1377
1378 -- default organization_id from profile
1379
1380 IF l_qte_line_rec.organization_id is NULL or l_qte_line_rec.organization_id = FND_API.G_MISS_NUM THEN
1381
1382 l_qte_line_rec.organization_id := oe_profile.value('OE_ORGANIZATION_ID',l_qte_line_rec.org_id);
1383
1384 IF l_qte_line_rec.organization_id is NULL or l_qte_line_rec.organization_id = FND_API.G_MISS_NUM THEN
1385
1386 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1387 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
1388 FND_MESSAGE.Set_Token('COLUMN', 'ORGANIZATION_ID', FALSE);
1389 FND_MSG_PUB.ADD;
1390 END IF;
1391
1392 END IF;
1393
1394 if aso_debug_pub.g_debug_flag = 'Y' then
1395 aso_debug_pub.add('Populate_Quote_lines: l_qte_line_rec.organization_id: '||l_qte_line_rec.organization_id);
1396 end if;
1397
1398 END IF;
1399
1400
1401 -- item_type code
1402
1403 IF l_qte_line_rec.item_type_code is NULL OR l_qte_line_rec.item_type_code = FND_API.G_MISS_CHAR THEN
1404
1405 SELECT Decode(i.bom_item_type , 1, 'MDL',2,'OPT',3,'PLN',4,'STD')
1406 INTO l_qte_line_rec.item_type_code
1407 FROM mtl_system_items_b i
1408 WHERE inventory_item_id = l_qte_line_rec.inventory_item_id
1409 AND organization_id = l_qte_line_rec.organization_id;
1410
1411 IF (SQL%NOTFOUND) THEN
1412
1413 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1414 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_COLUMN');
1415 FND_MESSAGE.Set_Token('COLUMN', 'ITEM TYPE CODE', FALSE);
1416 FND_MSG_PUB.ADD;
1417 END IF;
1418
1419 END IF;
1420
1421 END IF; --IF l_qte_line_rec.item_type_code is NULL OR l_qte_line_rec.item_type_code = FND_API.G_MISS_CHAR
1422
1423
1424
1425
1426
1427 -- Recurring charges Change
1428 -- default charge_periodicity_code from Inventory
1429
1430 if p_control_rec.defaulting_fwk_flag = 'N' then
1431
1432 IF l_qte_line_rec.charge_periodicity_code is NULL OR l_qte_line_rec.charge_periodicity_code = FND_API.G_MISS_CHAR THEN
1433
1434 l_master_organization_id := oe_sys_parameters.value(param_name => 'MASTER_ORGANIZATION_ID', p_org_id => l_qte_line_rec.org_id);
1435
1436 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1437 aso_debug_pub.add('Populate_Quote_lines: l_master_organization_id: '|| l_master_organization_id, 1, 'N');
1438 END IF;
1439
1440 OPEN c_periodicity(l_qte_line_rec.inventory_item_id, l_master_organization_id);
1441 FETCH c_periodicity INTO l_qte_line_rec.charge_periodicity_code;
1442
1443 IF c_periodicity%NOTFOUND THEN
1444 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1445 aso_debug_pub.add('Populate_Quote_lines: IF c_periodicity%NOTFOUND invitem'||l_qte_line_rec.inventory_item_id, 1, 'N');
1446 END IF;
1447 END IF;
1448
1449 close c_periodicity;
1450
1451 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1452 aso_debug_pub.add('Populate_Quote_lines: l_qte_line_rec.charge_periodicity_code: '|| l_qte_line_rec.charge_periodicity_code, 1, 'N');
1453 END IF;
1454 END IF;
1455 end if;
1456
1457
1458 IF l_qte_line_rec.quantity is null or l_qte_line_rec.quantity = FND_API.G_MISS_NUM THEN
1459 l_qte_line_rec.quantity := nvl(fnd_profile.value(name => 'ASO_DEFAULT_QTY'),1);
1460 END IF;
1461
1462
1463 OPEN C_Shipment;
1464 FETCH C_shipment INTO l_shipment_rec_count, l_total_shipment_quantity;
1465
1466 IF C_shipment%FOUND THEN
1467 CLOSE C_Shipment;
1468
1469 IF l_shipment_rec_count > 0 THEN
1470
1471 FOR i IN 1..l_shipment_tbl.count LOOP
1472 IF l_shipment_tbl(i).operation_code = 'CREATE' THEN
1473 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1474 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_SHIPMENTS');
1475 FND_MSG_PUB.ADD;
1476 END IF;
1477 raise FND_API.G_EXC_ERROR;
1478 END IF;
1479 END LOOP;
1480
1481 END IF;
1482
1483 ELSE
1484 CLOSE C_Shipment;
1485 END IF;
1486
1487
1488 IF l_shipment_tbl.count > 1 THEN
1489
1490 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1491 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_SHIPMENTS');
1492 FND_MSG_PUB.ADD;
1493 END IF;
1494 raise FND_API.G_EXC_ERROR;
1495
1496 ELSIF l_shipment_tbl.count > 0 THEN
1497
1498 IF l_qte_line_rec.quantity <> l_shipment_tbl(1).quantity THEN
1499 l_shipment_tbl(1).quantity := l_qte_line_rec.quantity;
1500 END IF;
1501 END IF;
1502
1503
1504 Open C_Item1(p_qte_line_rec.inventory_item_id, l_qte_line_rec.organization_id);
1505 Fetch C_Item1 into l_uom_code, l_service_item_flag,l_serviceable_product_flag,l_ship_model_complete_flag,l_payment_term_id,l_config_model_type;
1506
1507 If C_Item1%NOTFOUND Then
1508
1509 CLOSE C_Item1;
1510 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1511 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_INFO');
1512 FND_MESSAGE.Set_Token('COLUMN','ITEM RELATED', FALSE);
1513 FND_MSG_PUB.Add;
1514 END IF;
1515 raise FND_API.G_EXC_ERROR;
1516
1517 ELSE
1518
1519 -- pnpl changes
1520 l_installment_option := oe_sys_parameters.value(param_name => 'INSTALLMENT_OPTIONS',
1521 p_org_id =>l_qte_line_rec.org_id);
1522
1523 if (l_installment_option = 'ENABLE_PAY_NOW') THEN
1524
1525 --if ((p_control_rec.defaulting_fwk_flag = 'N') and (l_installment_option = 'ENABLE_PAYNOW')) THEN
1526
1527 if (l_payment_term_id is not null and l_payment_term_id <> fnd_api.g_miss_num) then
1528
1529 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1530 aso_debug_pub.add('Populate_Quote_lines:Setting the payment term for line from item master ', 1, 'N');
1531 END IF;
1532
1533 IF (l_payment_tbl.count = 0) THEN
1534 l_payment_tbl(1).operation_code := 'CREATE';
1535 l_payment_tbl(1).quote_header_id := l_qte_line_rec.quote_header_id ;
1536 l_payment_tbl(1).payment_term_id := l_payment_term_id;
1537 l_payment_tbl(1).qte_line_index := 1;
1538 ELSIF (l_payment_tbl.count= 1 and l_payment_tbl(1).payment_term_id = FND_API.G_MISS_NUM
1539 and l_payment_tbl(1).operation_code = 'CREATE') THEN
1540 l_payment_tbl(1).payment_term_id := l_payment_term_id;
1541 End if;
1542 end if;
1543
1544 end if; -- check for installment option
1545
1546 -- end of pnpl changes
1547
1548
1549 -- default uom code
1550
1551 IF l_qte_line_rec.uom_code IS NULL OR l_qte_line_rec.uom_code = FND_API.G_MISS_CHAR THEN
1552 l_qte_line_rec.uom_code := l_uom_code;
1553 END IF;
1554
1555 -- Default the ship model complete flag and config model type
1556 IF nvl(l_qte_line_rec.item_type_code,'XXX') <> 'CFG' THEN
1557 l_qte_line_rec.ship_model_complete_flag := nvl(l_ship_model_complete_flag,'N');
1558 l_qte_line_rec.config_model_type := l_config_model_type;
1559 END IF;
1560
1561 --Default Service Item Flag and Serviceable Product Flag
1562 if aso_debug_pub.g_debug_flag = 'Y' THEN
1563 aso_debug_pub.add('Populate_Quote_lines CREATE- l_service_item_flag is '||l_service_item_flag, 1, 'N');
1564 aso_debug_pub.add('Populate_Quote_lines CREATE- l_serviceable_product_flag is '||l_serviceable_product_flag, 1, 'N');
1565 end if;
1566
1567 l_qte_line_rec.service_item_flag := nvl(l_service_item_flag,'N');
1568 l_qte_line_rec.serviceable_product_flag := nvl(l_serviceable_product_flag,'N');
1569
1570 -- find end date for service
1571
1572 IF nvl(l_service_item_flag,'N') = 'Y' THEN
1573
1574 IF P_Qte_Line_Rec.start_date_active is NULL OR P_Qte_Line_Rec.start_date_active = FND_API.G_MISS_DATE THEN
1575
1576 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1577 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_COLUMN');
1578 FND_MESSAGE.Set_Token('COLUMN', 'START_DATE_ACTIVE', FALSE);
1579 FND_MSG_PUB.ADD;
1580 END IF;
1581 RAISE FND_API.G_EXC_ERROR;
1582
1583 END IF;
1584
1585 -- if account id is not null use account id otherwise use party id
1586
1587 Open C_customer;
1588 Fetch C_customer into l_acct, l_party;
1589
1590 IF C_customer%NOTFOUND THEN
1591
1592 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1593 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_COLUMN');
1594 FND_MESSAGE.Set_Token('COLUMN', 'CUSTOMER_INFO', FALSE);
1595 FND_MSG_PUB.ADD;
1596 END IF;
1597 END IF;
1598
1599 Close C_customer;
1600
1601 IF l_acct is NOT NULL THEN
1602 l_customer_id := l_acct;
1603 ELSE
1604 l_customer_id := l_party;
1605 END IF;
1606
1607 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1608 aso_debug_pub.add('Populate_Quote_lines:Create :before get service attr ', 1, 'N');
1609 end if;
1610
1611 ASO_SERVICE_CONTRACTS_INT.Get_service_attributes(
1612 P_Api_Version_Number => 1,
1613 P_init_msg_list => FND_API.G_FALSE,
1614 P_Qte_Line_Rec => P_Qte_Line_Rec,
1615 P_Qte_Line_Dtl_tbl => P_Qte_Line_Dtl_tbl,
1616 X_msg_Count => X_msg_Count,
1617 X_msg_Data => X_msg_Data,
1618 X_Return_Status => X_Return_Status);
1619
1620 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1621 aso_debug_pub.add('Populate_Quote_lines:Create :after get service attr '||X_Return_Status, 1, 'N');
1622 end if;
1623
1624 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1625 RAISE FND_API.G_EXC_ERROR;
1626 END IF;
1627
1628 -- New code begins 04/26/2002
1629
1630 if aso_debug_pub.g_debug_flag = 'Y' THEN
1631 aso_debug_pub.add('Populate_quote_lines: l_qte_line_dtl_tbl.count: '|| l_qte_line_dtl_tbl.count,1,'N');
1632 aso_debug_pub.add('Populate_quote_lines: p_qte_line_dtl_tbl.count: '|| p_qte_line_dtl_tbl.count,1,'N');
1633 end if;
1634
1635 l_call_get_duration := FND_API.G_FALSE;
1636
1637 IF l_qte_line_rec.end_date_active is NOT NULL AND l_qte_line_rec.end_date_active = FND_API.G_MISS_DATE THEN
1638
1639 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1640 aso_debug_pub.add('Populate_quote_lines: First IF cond G_MISS_DATE', 1, 'N');
1641 end if;
1642
1643 IF l_qte_line_dtl_tbl.count > 0 THEN
1644 l_qte_line_rec.end_date_active := null;
1645 l_call_get_duration := FND_API.G_TRUE;
1646 ELSE
1647 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1648 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_SRV_INFO5');
1649 FND_MSG_PUB.Add;
1650 END IF;
1651 RAISE FND_API.G_EXC_ERROR;
1652 END IF;
1653
1654 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1655 aso_debug_pub.add('Populate_quote_lines: l_qte_line_rec.end_date_active: '|| l_qte_line_rec.end_date_active,1,'N');
1656 end if;
1657
1658 IF l_qte_line_dtl_tbl(1).Service_Duration is NOT NULL AND l_qte_line_dtl_tbl(1).Service_Duration = FND_API.G_MISS_NUM THEN
1659 l_qte_line_dtl_tbl(1).Service_Duration := null;
1660 END IF;
1661
1662 if aso_debug_pub.g_debug_flag = 'Y' THEN
1663 aso_debug_pub.add('Populate_quote_lines: l_qte_line_dtl_tbl(1).Service_Duration: '|| l_qte_line_dtl_tbl(1).Service_Duration,1,'N');
1664 end if;
1665
1666 IF l_qte_line_dtl_tbl(1).Service_period is NOT NULL AND l_qte_line_dtl_tbl(1).Service_period = FND_API.G_MISS_CHAR THEN
1667 l_qte_line_dtl_tbl(1).Service_period := null;
1668 END IF;
1669
1670 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1671 aso_debug_pub.add('Populate_quote_lines: l_qte_line_dtl_tbl(1).Service_period: '|| l_qte_line_dtl_tbl(1).Service_period,1,'N');
1672 end if;
1673
1674 IF l_qte_line_dtl_tbl(1).service_coterminate_flag is NOT NULL AND l_qte_line_dtl_tbl(1).service_coterminate_flag <> FND_API.G_MISS_CHAR THEN
1675 l_qte_line_dtl_tbl(1).service_coterminate_flag := null;
1676 END IF;
1677
1678 if aso_debug_pub.g_debug_flag = 'Y' THEN
1679 aso_debug_pub.add('Populate_quote_lines: l_qte_line_dtl_tbl(1).service_coterminate_flag: '|| l_qte_line_dtl_tbl(1).service_coterminate_flag,1,'N');
1680 end if;
1681
1682 ELSIF l_qte_line_rec.end_date_active IS NOT NULL AND l_qte_line_dtl_tbl.count = 0 THEN
1683
1684 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1685 aso_debug_pub.add('Populate_quote_lines: ELSIF Cond not G_MISS_DATE but not null', 1, 'N');
1686 end if;
1687
1688 ASO_Service_Contracts_INT.Get_Duration(
1689 P_Api_Version_Number => 1.0,
1690 X_msg_Count => x_msg_count ,
1691 X_msg_Data => x_msg_data ,
1692 X_Return_Status => x_return_status,
1693 P_customer_id => l_customer_id,
1694 P_system_id => null,
1695 P_Service_Duration => null,
1696 P_service_period => null ,
1697 P_coterm_checked_yn => null,
1698 P_start_date => l_qte_line_rec.start_date_active,
1699 P_end_date => l_qte_line_rec.end_date_active,
1700 X_service_duration => l_qte_line_dtl_tbl_out(1).Service_Duration,
1701 X_service_period => l_qte_line_dtl_tbl_out(1).service_period,
1702 X_new_end_date => l_qte_line_rec_out.end_date_active );
1703
1704 l_qte_line_dtl_tbl(1).Service_Duration := l_qte_line_dtl_tbl_out(1).Service_Duration;
1705 l_qte_line_dtl_tbl(1).service_period := l_qte_line_dtl_tbl_out(1).service_period;
1706 l_qte_line_rec.end_date_active := l_qte_line_rec_out.end_date_active;
1707
1708 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1709 aso_debug_pub.add('Populate_Quote_lines: After call to ASO Get_Duration x_return_status: '||X_Return_Status, 1, 'N');
1710 aso_debug_pub.add('After call to ASO Get_Duration: l_qte_line_rec.end_date_active: '||l_qte_line_rec.end_date_active, 1, 'N');
1711 aso_debug_pub.add('After call to ASO Get_Duration: l_qte_line_dtl_tbl(1).service_period: '||l_qte_line_dtl_tbl(1).service_period, 1, 'N');
1712 aso_debug_pub.add('After call to ASO Get_Duration: l_qte_line_dtl_tbl(1).Service_Duration: '||l_qte_line_dtl_tbl(1).Service_Duration, 1, 'N');
1713 end if;
1714
1715 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1716 RAISE FND_API.G_EXC_ERROR;
1717 END IF;
1718
1719 ELSIF l_qte_line_rec.end_date_active IS NULL AND l_qte_line_dtl_tbl.count = 0 THEN
1720
1721 if aso_debug_pub.g_debug_flag = 'Y' THEN
1722 aso_debug_pub.add('Populate_quote_lines: ELSEIF Cond end date IS NULL and l_qte_line_dtl_tbl.count = 0', 1, 'N');
1723 end if;
1724
1725 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1726 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_SRV_INFO5');
1727 FND_MSG_PUB.Add;
1728 END IF;
1729
1730 RAISE FND_API.G_EXC_ERROR;
1731
1732 ELSE
1733
1734 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1735 aso_debug_pub.add('Populate_quote_lines: ELSE Cond not end date NULL', 1, 'N');
1736 end if;
1737
1738 l_call_get_duration := FND_API.G_TRUE;
1739
1740 IF l_qte_line_dtl_tbl(1).Service_Duration is NOT NULL
1741 AND l_qte_line_dtl_tbl(1).Service_Duration = FND_API.G_MISS_NUM THEN
1742
1743 l_qte_line_dtl_tbl(1).Service_Duration := null;
1744 END IF;
1745
1746 IF l_qte_line_dtl_tbl(1).Service_period is NOT NULL
1747 AND l_qte_line_dtl_tbl(1).Service_period = FND_API.G_MISS_CHAR THEN
1748
1749 l_qte_line_dtl_tbl(1).Service_period := null;
1750 END IF;
1751
1752 IF l_qte_line_dtl_tbl(1).service_coterminate_flag is NOT NULL
1753 AND l_qte_line_dtl_tbl(1).service_coterminate_flag <> FND_API.G_MISS_CHAR THEN
1754
1755 l_qte_line_dtl_tbl(1).service_coterminate_flag := null;
1756 END IF;
1757
1758 END IF;
1759
1760 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1761 aso_debug_pub.add('Populate_quote_lines: Before call to Get_Duration: l_call_get_duration: '||l_call_get_duration,1,'N');
1762 end if;
1763
1764 IF l_call_get_duration = FND_API.G_TRUE THEN
1765
1766 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1767 aso_debug_pub.add('Populate_quote_lines: Inside IF l_call_get_duration = FND_API.G_TRUE Cond ', 1, 'N');
1768 end if;
1769
1770 ASO_Service_Contracts_INT.Get_Duration(
1771 P_Api_Version_Number => 1.0,
1772 X_msg_Count => x_msg_count ,
1773 X_msg_Data => x_msg_data ,
1774 X_Return_Status => x_return_status,
1775 P_customer_id => l_customer_id,
1776 P_system_id => null,
1777 P_Service_Duration => l_qte_line_dtl_tbl(1).Service_Duration,
1778 P_service_period => l_qte_line_dtl_tbl(1).service_period ,
1779 P_coterm_checked_yn => l_qte_line_dtl_tbl(1).service_coterminate_flag,
1780 P_start_date => l_qte_line_rec.start_date_active,
1781 P_end_date => l_qte_line_rec.end_date_active,
1782 X_service_duration => l_qte_line_dtl_tbl_out(1).Service_Duration,
1783 X_service_period => l_qte_line_dtl_tbl_out(1).service_period,
1784 X_new_end_date => l_qte_line_rec_out.end_date_active );
1785
1786 l_qte_line_dtl_tbl(1).Service_Duration := l_qte_line_dtl_tbl_out(1).Service_Duration;
1787 l_qte_line_dtl_tbl(1).service_period := l_qte_line_dtl_tbl_out(1).service_period;
1788 l_qte_line_rec.end_date_active := l_qte_line_rec_out.end_date_active;
1789
1790 if aso_debug_pub.g_debug_flag = 'Y' THEN
1791 aso_debug_pub.add('Populate_Quote_lines: After call to ASO Get_Duration x_return_status: '||X_Return_Status, 1, 'N');
1792 aso_debug_pub.add('After call to ASO Get_Duration: l_qte_line_rec.end_date_active: '||l_qte_line_rec.end_date_active, 1, 'N');
1793 aso_debug_pub.add('After call to ASO Get_Duration: l_qte_line_dtl_tbl(1).service_period: '||l_qte_line_dtl_tbl(1).service_period, 1, 'N');
1794 aso_debug_pub.add('After call to ASO Get_Duration: l_qte_line_dtl_tbl(1).Service_Duration: '||l_qte_line_dtl_tbl(1).Service_Duration, 1, 'N');
1795 end if;
1796
1797 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1798 RAISE FND_API.G_EXC_ERROR;
1799 END IF;
1800
1801 END IF; --l_call_get_duration = FND_API.G_TRUE
1802
1803 END IF; -- Service_item_flag
1804
1805 --populate the config_item_id and bom_sort_order column values from cz_config_details_v
1806 --view if the calling application is passing config_header_id, config_revision_num and
1807 --component_code values. Fix for Bug#2980130
1808
1809 if aso_debug_pub.g_debug_flag = 'Y' then
1810 aso_debug_pub.add('Before populating config_item_id,bom_sort_order. Operation_code = CREATE');
1811 aso_debug_pub.add('l_qte_line_dtl_tbl.count: ' || l_qte_line_dtl_tbl.count);
1812 end if;
1813
1814 for i in 1 .. l_qte_line_dtl_tbl.count loop
1815
1816 if aso_debug_pub.g_debug_flag = 'Y' then
1817 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').config_header_id: '||l_qte_line_dtl_tbl(i).config_header_id);
1818 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').config_revision_num: '||l_qte_line_dtl_tbl(i).config_revision_num);
1819 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').component_code: '||l_qte_line_dtl_tbl(i).component_code);
1820 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').config_item_id: '||l_qte_line_dtl_tbl(i).config_item_id);
1821 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').bom_sort_order: '||l_qte_line_dtl_tbl(i).bom_sort_order);
1822 end if;
1823
1824 if ( l_qte_line_dtl_tbl(i).config_header_id is not null and
1825 l_qte_line_dtl_tbl(i).config_header_id <> fnd_api.g_miss_num ) and
1826 ( l_qte_line_dtl_tbl(i).config_revision_num is not null and
1827 l_qte_line_dtl_tbl(i).config_revision_num <> fnd_api.g_miss_num ) and
1828 l_qte_line_dtl_tbl(i).operation_code = 'CREATE' then
1829
1830 if ( l_qte_line_dtl_tbl(i).config_item_id is null or l_qte_line_dtl_tbl(i).config_item_id = fnd_api.g_miss_num ) then
1831
1832 open c_config_item_id( l_qte_line_dtl_tbl(i).config_header_id,
1833 l_qte_line_dtl_tbl(i).config_revision_num,
1834 l_qte_line_dtl_tbl(i).component_code );
1835
1836 fetch c_config_item_id into l_qte_line_dtl_tbl(i).config_item_id, l_qte_line_dtl_tbl(i).bom_sort_order;
1837
1838 if aso_debug_pub.g_debug_flag = 'Y' then
1839 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').config_item_id: '||l_qte_line_dtl_tbl(i).config_item_id);
1840 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').bom_sort_order: '||l_qte_line_dtl_tbl(i).bom_sort_order);
1841 end if;
1842
1843 if c_config_item_id%notfound then
1844
1845 if aso_debug_pub.g_debug_flag = 'Y' then
1846 aso_debug_pub.add('Inside c_config_item_id%notfound cond.');
1847 end if;
1848
1849 close c_config_item_id;
1850 raise fnd_api.g_exc_error;
1851 end if;
1852
1853 close c_config_item_id;
1854
1855 elsif ( l_qte_line_dtl_tbl(i).bom_sort_order is null or l_qte_line_dtl_tbl(i).bom_sort_order = fnd_api.g_miss_char ) then
1856
1857 open c_bom_sort_order( l_qte_line_dtl_tbl(i).config_header_id,
1858 l_qte_line_dtl_tbl(i).config_revision_num,
1859 l_qte_line_dtl_tbl(i).config_item_id );
1860
1861 fetch c_bom_sort_order into l_qte_line_dtl_tbl(i).bom_sort_order;
1862
1863 if aso_debug_pub.g_debug_flag = 'Y' then
1864 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').bom_sort_order: '||l_qte_line_dtl_tbl(i).bom_sort_order);
1865 end if;
1866
1867 if c_bom_sort_order%notfound then
1868
1869 if aso_debug_pub.g_debug_flag = 'Y' then
1870 aso_debug_pub.add('Inside c_bom_sort_order%notfound cond.');
1871 end if;
1872
1873 close c_bom_sort_order;
1874 raise fnd_api.g_exc_error;
1875
1876 end if;
1877 close c_bom_sort_order;
1878
1879 end if; --l_qte_line_dtl_tbl(i).config_item_id is null or l_qte_line_dtl_tbl(i).config_item_id = fnd_api.g_miss_num
1880
1881 end if; --l_qte_line_dtl_tbl(i).config_header_id is not null and
1882
1883 end loop;
1884
1885 --end of fix for Bug#2980130
1886
1887 X_Qte_Line_Dtl_tbl := l_qte_line_dtl_tbl;
1888
1889
1890 --Set the line_number of service items to the line_number of serviceable item, if the
1891 --service is attached to a quote line
1892
1893 IF nvl(l_service_item_flag,'N') = 'Y' AND l_qte_line_dtl_tbl.count > 0 THEN
1894
1895 IF l_qte_line_dtl_tbl(1).service_ref_line_id IS NOT NULL
1896 AND l_qte_line_dtl_tbl(1).service_ref_type_code = 'QUOTE' THEN
1897
1898 OPEN c_line_number(l_qte_line_dtl_tbl(1).service_ref_line_id);
1899 FETCH c_line_number INTO l_serviceable_line_number;
1900
1901 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1902 aso_debug_pub.add('Populate_quote_lines: l_serviceable_line_number: '|| l_serviceable_line_number);
1903 end if;
1904
1905 IF c_line_number%FOUND AND l_serviceable_line_number IS NOT NULL THEN
1906 l_qte_line_rec.line_number := l_serviceable_line_number;
1907 ELSE
1908
1909 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1910 aso_debug_pub.add('Line Number does not exist for the serviceable item of the service');
1911 end if;
1912 END IF;
1913
1914 CLOSE c_line_number;
1915
1916 END IF;
1917
1918 END IF; --nvl(l_service_item_flag,'N') = 'Y' AND l_qte_line_dtl_tbl.count > 0
1919
1920 --End of service line_number code
1921
1922 --Populate configured lines line number
1923
1924 IF l_qte_line_rec.item_type_code = 'CFG' AND l_qte_line_dtl_tbl.count > 0 THEN
1925
1926 IF l_qte_line_dtl_tbl(1).ref_line_id IS NOT NULL AND l_qte_line_dtl_tbl(1).ref_type_code = 'CONFIG' THEN
1927
1928 open c_line_number(l_qte_line_dtl_tbl(1).ref_line_id);
1929 fetch c_line_number into l_qte_line_rec.line_number;
1930
1931 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1932 aso_debug_pub.add('Populate_quote_lines: parent line_number: '|| l_qte_line_rec.line_number);
1933 end if;
1934
1935 IF c_line_number%notfound THEN
1936
1937 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1938 aso_debug_pub.add('parent line number does not exist for this child line');
1939 end if;
1940
1941 ELSIF l_qte_line_rec.line_number is null THEN
1942
1943 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1944 aso_debug_pub.add('parent line_number of this child line is null');
1945 end if;
1946
1947 END IF;
1948
1949 close c_line_number;
1950 END IF;
1951
1952 END IF; --IF l_qte_line_rec.item_type_code = 'CFG' AND l_qte_line_dtl_tbl.count > 0 THEN
1953
1954 End if; --If C_Item1%NOTFOUND Then
1955
1956 Close C_Item1;
1957
1958
1959 IF (l_qte_line_rec.line_number IS NULL OR l_qte_line_rec.line_number = FND_API.G_MISS_NUM) THEN
1960
1961 SELECT max(line_number) into l_line_number
1962 FROM aso_quote_lines_all
1963 WHERE quote_header_id = l_qte_line_rec.quote_header_id;
1964
1965 IF (SQL%NOTFOUND) OR l_line_number is NULL THEN
1966 l_line_number := 0;
1967 END IF;
1968
1969 l_qte_line_rec.line_number := l_line_number + 10000;
1970
1971 END IF;
1972
1973 if aso_debug_pub.g_debug_flag = 'Y' THEN
1974 aso_debug_pub.add('Populate_Quote_lines - line_number: '||l_qte_line_rec.line_number, 1, 'N');
1975 end if;
1976
1977 -- there should be atleast one shipment record for every quote line record
1978
1979 IF l_shipment_tbl.count < 1 THEN
1980
1981 l_shipment_tbl(1).quote_header_id := l_qte_line_rec.quote_header_id;
1982 l_shipment_tbl(1).quote_line_id := l_qte_line_rec.quote_line_id;
1983 l_shipment_tbl(1).quantity := l_qte_line_rec.quantity;
1984
1985 END IF;
1986
1987
1988 END IF; --IF p_operation_code = 'CREATE'
1989
1990
1991
1992 IF p_operation_code = 'UPDATE' THEN
1993
1994 l_qte_line_rec.service_item_flag := fnd_api.g_miss_char;
1995 l_qte_line_rec.serviceable_product_flag := fnd_api.g_miss_char;
1996 l_qte_line_rec.config_model_type := fnd_api.g_miss_char;
1997
1998
1999 --Made changes in cursor to select inventory_item_id for Bug#2930734
2000
2001 OPEN C_header;
2002 FETCH C_header into l_qte_line_rec.quote_header_id, l_organization_id, l_inventory_item_id;
2003
2004 IF (C_header%NOTFOUND) THEN
2005
2006 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2007
2008 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
2009 FND_MESSAGE.Set_Token('COLUMN', 'QUOTE_ID', FALSE);
2010 FND_MESSAGE.Set_Token('VALUE', TO_CHAR(l_qte_line_rec.quote_header_id), FALSE);
2011 FND_MSG_PUB.ADD;
2012 END IF;
2013
2014 END IF;
2015 CLOSE C_header;
2016
2017 --Made the following changes for Bug#2930734
2018
2019 IF l_qte_line_rec.organization_id IS NULL OR l_qte_line_rec.organization_id = FND_API.G_MISS_NUM THEN
2020 l_qte_line_rec.organization_id := l_organization_id;
2021 END IF;
2022
2023 if l_qte_line_rec.inventory_item_id = fnd_api.g_miss_num then
2024 l_qte_line_rec.inventory_item_id := l_inventory_item_id;
2025 end if;
2026
2027 if aso_debug_pub.g_debug_flag = 'Y' then
2028 aso_debug_pub.add('populate_quote_line: operation_code: UPDATE');
2029 aso_debug_pub.add('l_qte_line_rec.organization_id: '||l_qte_line_rec.organization_id);
2030 aso_debug_pub.add('l_qte_line_rec.inventory_item_id: '||l_qte_line_rec.inventory_item_id);
2031 end if;
2032
2033 --End of change for Bug#2930734
2034
2035 open c_shipment;
2036 fetch c_shipment into l_shipment_rec_count, l_total_shipment_quantity;
2037
2038 IF (C_Shipment%NOTFOUND) THEN
2039
2040 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2041 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_SHIPMENT');
2042 FND_MESSAGE.Set_Token('LINE', to_char(p_qte_line_rec.quote_line_id), FALSE);
2043 END IF;
2044
2045 END IF;
2046
2047 CLOSE C_Shipment;
2048
2049
2050 -- Added by bmishra on 05/15/2001
2051
2052 IF l_qte_line_rec.quantity is null then
2053
2054 l_qte_line_rec.quantity := nvl(fnd_profile.value(name => 'ASO_DEFAULT_QTY'),1);
2055
2056 ELSIF l_qte_line_rec.quantity = FND_API.G_MISS_NUM THEN
2057
2058 select quantity into l_qte_line_rec.quantity from aso_quote_lines_All
2059 where quote_line_id = l_qte_line_rec.quote_line_id;
2060
2061 END IF;
2062
2063
2064 IF l_shipment_tbl.count > 1 THEN
2065
2066 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2067 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_SHIPMENTS');
2068 FND_MSG_PUB.ADD;
2069 END IF;
2070 raise FND_API.G_EXC_ERROR;
2071
2072 ELSIF l_shipment_tbl.count > 0 THEN
2073
2074 IF l_qte_line_rec.quantity <> l_shipment_tbl(1).quantity THEN
2075 l_shipment_tbl(1).quantity := l_qte_line_rec.quantity;
2076 END IF;
2077
2078 ELSIF l_shipment_tbl.count = 0 AND l_shipment_rec_count = 1 THEN
2079
2080 -- update the existing rec
2081
2082 SELECT shipment_id into l_shipment_tbl(1).shipment_id
2083 FROM aso_shipments
2084 WHERE quote_line_id = l_qte_line_rec.quote_line_id
2085 AND quote_header_id = l_qte_line_rec.quote_header_id;
2086
2087 l_shipment_tbl(1).quote_header_id := l_qte_line_rec.quote_header_id;
2088 l_shipment_tbl(1).quote_line_id := l_qte_line_rec.quote_line_id;
2089 l_shipment_tbl(1).quantity := l_qte_line_rec.quantity;
2090 l_shipment_tbl(1).operation_code := 'UPDATE';
2091
2092 END IF;
2093
2094 -- If the operation code is 'CREATE' in shipment table then raise an error
2095
2096 IF l_shipment_rec_count > 0 THEN
2097
2098 FOR i IN 1..l_shipment_tbl.count LOOP
2099
2100 IF l_shipment_tbl(i).operation_code = 'CREATE' THEN
2101 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2102 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_SHIPMENT');
2103 FND_MSG_PUB.ADD;
2104 END IF;
2105 raise FND_API.G_EXC_ERROR;
2106 END IF;
2107
2108 END LOOP;
2109
2110 END IF;
2111
2112
2113 open c_item1(l_qte_line_rec.inventory_item_id, l_qte_line_rec.organization_id);
2114 fetch c_item1 into l_uom_code, l_service_item_flag, l_serviceable_product_flag, l_ship_model_complete_flag, l_payment_term_id, l_config_model_type;
2115
2116 if (c_item1%notfound) then
2117
2118 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2119 aso_debug_pub.add('Populate_Quote_lines: c_item1%NOTFOUND true, raising error', 1, 'N');
2120 END IF;
2121
2122 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2123 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_INFO');
2124 FND_MESSAGE.Set_Token ('INFO', 'ITEM RELATED', FALSE);
2125 FND_MSG_PUB.Add;
2126 END IF;
2127
2128 close c_item1;
2129 raise FND_API.G_EXC_ERROR;
2130
2131 end if;
2132
2133 close c_item1;
2134
2135 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2136 aso_debug_pub.add('Populate_Quote_lines: l_uom_code: '|| l_uom_code, 1, 'N');
2137 aso_debug_pub.add('Populate_Quote_lines: l_service_item_flag: '|| l_service_item_flag, 1, 'N');
2138 aso_debug_pub.add('Populate_Quote_lines: l_serviceable_product_flag: '|| l_serviceable_product_flag, 1, 'N');
2139 aso_debug_pub.add('Populate_Quote_lines: l_ship_model_complete_flag: '|| l_ship_model_complete_flag, 1, 'N');
2140 aso_debug_pub.add('Populate_Quote_lines: l_payment_term_id: '|| l_payment_term_id, 1, 'N');
2141 aso_debug_pub.add('Populate_Quote_lines: l_config_model_type: '|| l_config_model_type, 1, 'N');
2142 END IF;
2143
2144
2145 IF nvl(l_service_item_flag,'N') = 'Y' THEN
2146
2147 --if start_date_active is null then raise error
2148
2149 if p_qte_line_rec.start_date_active is NULL then
2150
2151 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2152 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_COLUMN');
2153 FND_MESSAGE.Set_Token('COLUMN', 'START_DATE_ACTIVE', FALSE);
2154 FND_MSG_PUB.ADD;
2155 END IF;
2156
2157 RAISE FND_API.G_EXC_ERROR;
2158
2159 end if;
2160
2161 --Check if any of the service attributes has changed
2162
2163 l_call_get_duration := FND_API.G_FALSE;
2164
2165 if (p_qte_line_rec.start_date_active <> FND_API.G_MISS_DATE) OR (p_qte_line_rec.end_date_active <> FND_API.G_MISS_DATE) then
2166
2167 l_call_get_duration := FND_API.G_TRUE;
2168
2169 elsif p_qte_line_dtl_tbl.count > 0 then
2170
2171 if (p_qte_line_dtl_tbl(1).service_duration <> FND_API.G_MISS_NUM) OR (p_qte_line_dtl_tbl(1).service_period <> FND_API.G_MISS_CHAR) then
2172
2173 l_call_get_duration := FND_API.G_TRUE;
2174
2175 end if;
2176
2177 end if;
2178
2179 if l_call_get_duration = FND_API.G_TRUE then
2180
2181 OPEN C_service_item;
2182 FETCH C_service_item INTO l_start_date, l_end_date, l_service_duration, l_service_period, l_coterminate_flag, l_customer_id, l_party;
2183
2184 IF (C_service_item%NOTFOUND) THEN
2185
2186 CLOSE C_service_item;
2187
2188 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2189 aso_debug_pub.add('Populate_Quote_lines: C_service_item%NOTFOUND true, raising error', 1, 'N');
2190 END IF;
2191
2192 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2193 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_INFO');
2194 FND_MESSAGE.Set_Token('INFO', 'SERVICE RELATED', FALSE);
2195 FND_MSG_PUB.ADD;
2196 END IF;
2197
2198 RAISE FND_API.G_EXC_ERROR;
2199
2200 END IF;
2201
2202 CLOSE C_service_item;
2203
2204 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2205 aso_debug_pub.add('Populate_Quote_lines: l_start_date: '|| l_start_date, 1, 'N');
2206 aso_debug_pub.add('Populate_Quote_lines: l_end_date: '|| l_end_date, 1, 'N');
2207 aso_debug_pub.add('Populate_Quote_lines: l_service_duration: '|| l_service_duration, 1, 'N');
2208 aso_debug_pub.add('Populate_Quote_lines: l_service_period: '|| l_service_period, 1, 'N');
2209 aso_debug_pub.add('Populate_Quote_lines: l_coterminate_flag: '|| l_coterminate_flag, 1, 'N');
2210 aso_debug_pub.add('Populate_Quote_lines: l_customer_id: '|| l_customer_id, 1, 'N');
2211 aso_debug_pub.add('Populate_Quote_lines: l_party: '|| l_party, 1, 'N');
2212 aso_debug_pub.add('Populate_Quote_lines:Update :before call to ASO_SERVICE_CONTRACTS_INT.Get_service_attributes', 1, 'N');
2213 END IF;
2214
2215 ASO_SERVICE_CONTRACTS_INT.Get_service_attributes( P_Api_Version_Number => 1,
2216 P_init_msg_list => FND_API.G_FALSE,
2217 P_Qte_Line_Rec => P_Qte_Line_Rec,
2218 P_Qte_Line_Dtl_tbl => P_Qte_Line_Dtl_tbl,
2219 X_msg_Count => X_msg_Count,
2220 X_msg_Data => X_msg_Data,
2221 X_Return_Status => X_Return_Status );
2222
2223 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2224 aso_debug_pub.add('Populate_Quote_lines:after call to Get_service_attributes: X_Return_Status: '|| X_Return_Status, 1, 'N');
2225 end if;
2226
2227 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2228 RAISE FND_API.G_EXC_ERROR;
2229 END IF;
2230
2231 --print the input parameter values
2232
2233 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2234
2235 aso_debug_pub.add('Populate_Quote_lines: p_qte_line_rec.start_date_active: '|| p_qte_line_rec.start_date_active, 1, 'N');
2236 aso_debug_pub.add('Populate_Quote_lines: p_qte_line_rec.end_date_active: '|| p_qte_line_rec.end_date_active, 1, 'N');
2237 aso_debug_pub.add('Populate_Quote_lines: p_qte_line_dtl_tbl.count: '|| p_qte_line_dtl_tbl.count, 1, 'N');
2238
2239 IF l_qte_line_dtl_tbl.count > 0 THEN
2240
2241 aso_debug_pub.add('p_qte_line_dtl_tbl(1).Service_Duration: '|| p_qte_line_dtl_tbl(1).Service_Duration, 1, 'N');
2242 aso_debug_pub.add('p_qte_line_dtl_tbl(1).service_period: '|| p_qte_line_dtl_tbl(1).service_period, 1, 'N');
2243 aso_debug_pub.add('p_qte_line_dtl_tbl(1).service_coterminate_flag: '|| p_qte_line_dtl_tbl(1).service_coterminate_flag, 1, 'N');
2244
2245 end if;
2246
2247 END IF;
2248
2249
2250 --Now check which service attribute value has changed
2251
2252 if aso_debug_pub.g_debug_flag = 'Y' then
2253 aso_debug_pub.add('Populate_quote_lines: p_qte_line_dtl_tbl.count: '|| p_qte_line_dtl_tbl.count, 1, 'N');
2254 end if;
2255
2256 if p_qte_line_dtl_tbl.count = 0 then
2257
2258 l_qte_line_dtl_tbl := aso_utility_pvt.Query_Line_Dtl_Rows(l_qte_line_rec.quote_line_id);
2259
2260 if aso_debug_pub.g_debug_flag = 'Y' then
2261 aso_debug_pub.add('After querying line detail tbl from db: l_qte_line_dtl_tbl.count: '|| l_qte_line_dtl_tbl.count, 1, 'N');
2262 end if;
2263
2264 if l_qte_line_dtl_tbl.count = 0 then
2265
2266 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2267 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_SRV_INFO5');
2268 FND_MSG_PUB.Add;
2269 END IF;
2270
2271 RAISE FND_API.G_EXC_ERROR;
2272
2273 else
2274
2275 l_qte_line_dtl_tbl(1).operation_code := 'UPDATE';
2276
2277 end if;
2278
2279 end if;
2280
2281 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2282 aso_debug_pub.add('Populate_quote_lines: l_qte_line_rec.start_date_active: '|| l_qte_line_rec.start_date_active,1,'N');
2283 aso_debug_pub.add('Populate_quote_lines: l_qte_line_rec.end_date_active: '|| l_qte_line_rec.end_date_active,1,'N');
2284 end if;
2285
2286 IF p_qte_line_rec.start_date_active = FND_API.G_MISS_DATE THEN
2287 l_qte_line_rec.start_date_active := l_start_date;
2288 END IF;
2289
2290 IF p_qte_line_rec.end_date_active = FND_API.G_MISS_DATE THEN
2291 l_qte_line_rec.end_date_active := null;
2292 END IF;
2293
2294 if aso_debug_pub.g_debug_flag = 'Y' then
2295 aso_debug_pub.add('Populate_quote_lines: p_qte_line_dtl_tbl.count: '|| p_qte_line_dtl_tbl.count, 1, 'N');
2296 end if;
2297
2298 if p_qte_line_dtl_tbl.count > 0 then
2299
2300 IF l_qte_line_dtl_tbl(1).Service_Duration = FND_API.G_MISS_NUM THEN
2301 l_qte_line_dtl_tbl(1).Service_Duration := l_service_duration;
2302 END IF;
2303
2304 IF l_qte_line_dtl_tbl(1).Service_period = FND_API.G_MISS_CHAR THEN
2305 l_qte_line_dtl_tbl(1).Service_period := l_service_period;
2306 END IF;
2307
2308 IF l_qte_line_dtl_tbl(1).service_coterminate_flag = FND_API.G_MISS_CHAR THEN
2309 l_qte_line_dtl_tbl(1).service_coterminate_flag := l_coterminate_flag;
2310 END IF;
2311
2312 end if;
2313
2314 IF l_customer_id is NULL OR l_customer_id = FND_API.G_MISS_NUM THEN
2315 l_customer_id := l_party;
2316 END IF;
2317
2318 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2319 aso_debug_pub.add('Populate_quote_lines: l_qte_line_dtl_tbl(1).Service_Duration: '|| l_qte_line_dtl_tbl(1).Service_Duration,1,'N');
2320 aso_debug_pub.add('Populate_quote_lines: l_qte_line_dtl_tbl(1).Service_period: '|| l_qte_line_dtl_tbl(1).Service_period,1,'N');
2321 aso_debug_pub.add('l_qte_line_dtl_tbl(1).service_coterminate_flag: '|| l_qte_line_dtl_tbl(1).service_coterminate_flag,1,'N');
2322 aso_debug_pub.add('Populate_quote_lines: Before call to Get_Duration: l_call_get_duration: '||l_call_get_duration,1,'N');
2323 end if;
2324
2325
2326 ASO_Service_Contracts_INT.Get_Duration(
2327 P_Api_Version_Number => 1.0,
2328 X_msg_Count => x_msg_count ,
2329 X_msg_Data => x_msg_data ,
2330 X_Return_Status => x_return_status,
2331 P_customer_id => l_customer_id,
2332 P_system_id => null,
2333 P_Service_Duration => l_qte_line_dtl_tbl(1).Service_Duration,
2334 P_service_period => l_qte_line_dtl_tbl(1).service_period ,
2335 P_coterm_checked_yn => l_qte_line_dtl_tbl(1).service_coterminate_flag,
2336 P_start_date => l_qte_line_rec.start_date_active,
2337 P_end_date => l_qte_line_rec.end_date_active,
2338 X_service_duration => l_qte_line_dtl_tbl_out(1).Service_Duration,
2339 X_service_period => l_qte_line_dtl_tbl_out(1).service_period,
2340 X_new_end_date => l_qte_line_rec_out.end_date_active );
2341
2342 l_qte_line_dtl_tbl(1).Service_Duration := l_qte_line_dtl_tbl_out(1).Service_Duration;
2343 l_qte_line_dtl_tbl(1).service_period := l_qte_line_dtl_tbl_out(1).service_period;
2344 l_qte_line_rec.end_date_active := l_qte_line_rec_out.end_date_active;
2345
2346 if aso_debug_pub.g_debug_flag = 'Y' then
2347 aso_debug_pub.add('Populate_Quote_lines: After call to ASO Get_Duration x_return_status: '||X_Return_Status, 1, 'N');
2348 aso_debug_pub.add('l_qte_line_rec.end_date_active: '|| l_qte_line_rec.end_date_active, 1, 'N');
2349 aso_debug_pub.add('l_qte_line_dtl_tbl(1).service_period: '|| l_qte_line_dtl_tbl(1).service_period, 1, 'N');
2350 aso_debug_pub.add('l_qte_line_dtl_tbl(1).Service_Duration: '|| l_qte_line_dtl_tbl(1).Service_Duration, 1, 'N');
2351 end if;
2352
2353 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2354 RAISE FND_API.G_EXC_ERROR;
2355 END IF;
2356
2357 end if; --if l_call_get_duration = fnd_api.g_true then
2358
2359 end if; -- service item flag = 'Y'
2360
2361 --Set the line_number of service items to the line_number of serviceable item, if the
2362 --service is attached to a quote line
2363
2364 IF nvl(l_service_item_flag,'N') = 'Y' AND p_qte_line_dtl_tbl.count > 0 THEN
2365
2366 IF l_qte_line_dtl_tbl(1).service_ref_line_id IS NOT NULL AND l_qte_line_dtl_tbl(1).service_ref_type_code = 'QUOTE' THEN
2367
2368 OPEN c_line_number(l_qte_line_dtl_tbl(1).service_ref_line_id);
2369 FETCH c_line_number INTO l_serviceable_line_number;
2370
2371 if aso_debug_pub.g_debug_flag = 'Y' then
2372 aso_debug_pub.add('Populate_quote_lines: l_serviceable_line_number: '|| l_serviceable_line_number);
2373 end if;
2374
2375 IF c_line_number%FOUND AND l_serviceable_line_number IS NOT NULL THEN
2376 l_qte_line_rec.line_number := l_serviceable_line_number;
2377 ELSE
2378 if aso_debug_pub.g_debug_flag = 'Y' then
2379 aso_debug_pub.add('Line Number does not exist for the serviceable item of the service');
2380 end if;
2381 END IF;
2382
2383 CLOSE c_line_number;
2384
2385 END IF;
2386
2387 END IF;
2388
2389 --End of service line_number code
2390
2391
2392 --populate the config_item_id and bom_sort_order column values from cz_config_details_v
2393 --view if the calling application is passing config_header_id, config_revision_num and
2394 --component_code values. Fix for Bug#2980130
2395
2396 if aso_debug_pub.g_debug_flag = 'Y' then
2397
2398 aso_debug_pub.add('Before populating config_item_id,bom_sort_order. Operation_code = UPDATE');
2399 aso_debug_pub.add('l_qte_line_dtl_tbl.count: ' || l_qte_line_dtl_tbl.count);
2400
2401 end if;
2402
2403 for i in 1 .. l_qte_line_dtl_tbl.count loop
2404
2405 if aso_debug_pub.g_debug_flag = 'Y' then
2406
2407 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').config_header_id: '||l_qte_line_dtl_tbl(i).config_header_id);
2408 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').config_revision_num: '||l_qte_line_dtl_tbl(i).config_revision_num);
2409 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').component_code: '||l_qte_line_dtl_tbl(i).component_code);
2410 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').config_item_id: '||l_qte_line_dtl_tbl(i).config_item_id);
2411 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').bom_sort_order: '||l_qte_line_dtl_tbl(i).bom_sort_order);
2412
2413 end if;
2414
2415 if ( l_qte_line_dtl_tbl(i).config_header_id is not null and
2416 l_qte_line_dtl_tbl(i).config_header_id <> fnd_api.g_miss_num ) and
2417 ( l_qte_line_dtl_tbl(i).config_revision_num is not null and
2418 l_qte_line_dtl_tbl(i).config_revision_num <> fnd_api.g_miss_num ) and
2419 l_qte_line_dtl_tbl(i).operation_code = 'CREATE' then
2420
2421 if ( l_qte_line_dtl_tbl(i).config_item_id is null or
2422 l_qte_line_dtl_tbl(i).config_item_id = fnd_api.g_miss_num ) then
2423
2424 open c_config_item_id( l_qte_line_dtl_tbl(i).config_header_id,
2425 l_qte_line_dtl_tbl(i).config_revision_num,
2426 l_qte_line_dtl_tbl(i).component_code );
2427
2428
2429
2430 fetch c_config_item_id into l_qte_line_dtl_tbl(i).config_item_id,
2431 l_qte_line_dtl_tbl(i).bom_sort_order;
2432
2433 if aso_debug_pub.g_debug_flag = 'Y' then
2434
2435 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').config_item_id: '||l_qte_line_dtl_tbl(i).config_item_id);
2436 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').bom_sort_order: '||l_qte_line_dtl_tbl(i).bom_sort_order);
2437
2438 end if;
2439
2440 if c_config_item_id%notfound then
2441
2442 if aso_debug_pub.g_debug_flag = 'Y' then
2443 aso_debug_pub.add('Inside c_config_item_id%notfound cond.');
2444 end if;
2445
2446 close c_config_item_id;
2447 raise fnd_api.g_exc_error;
2448
2449 end if;
2450
2451 close c_config_item_id;
2452
2453 elsif ( l_qte_line_dtl_tbl(i).bom_sort_order is null or
2454 l_qte_line_dtl_tbl(i).bom_sort_order = fnd_api.g_miss_char ) then
2455
2456 open c_bom_sort_order( l_qte_line_dtl_tbl(i).config_header_id,
2457 l_qte_line_dtl_tbl(i).config_revision_num,
2458 l_qte_line_dtl_tbl(i).config_item_id );
2459
2460 fetch c_bom_sort_order into l_qte_line_dtl_tbl(i).bom_sort_order;
2461
2462 if aso_debug_pub.g_debug_flag = 'Y' then
2463
2464 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').bom_sort_order: '||l_qte_line_dtl_tbl(i).bom_sort_order);
2465
2466 end if;
2467
2468 if c_bom_sort_order%notfound then
2469
2470 if aso_debug_pub.g_debug_flag = 'Y' then
2471 aso_debug_pub.add('Inside c_bom_sort_order%notfound cond.');
2472 end if;
2473
2474 close c_bom_sort_order;
2475 raise fnd_api.g_exc_error;
2476
2477 end if;
2478
2479 close c_bom_sort_order;
2480
2481 end if;
2482
2483 end if;
2484
2485 end loop;
2486
2487 --end of fix for Bug#2980130
2488
2489 END IF; -- operation code 'update'
2490
2491
2492 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2493 aso_debug_pub.add('Populate_Quote_lines:Update :after update '||X_Return_Status, 1, 'N');
2494 end if;
2495
2496
2497 X_Qte_Line_Rec := l_qte_line_rec;
2498 X_Qte_Line_Dtl_TBL := l_Qte_Line_Dtl_TBL;
2499 X_Payment_Tbl := l_payment_tbl;
2500 X_Price_Adj_Tbl := l_price_adj_tbl;
2501 X_Shipment_Tbl := l_shipment_tbl;
2502 X_Tax_Detail_Tbl := l_tax_detail_tbl;
2503 X_Freight_Charge_Tbl := l_freight_charge_tbl;
2504 X_Price_Attributes_Tbl := l_price_attributes_tbl;
2505 X_Price_Adj_Attr_Tbl := l_price_adj_attr_tbl;
2506 X_Line_Attribs_Ext_Tbl := l_line_attribs_ext_tbl;
2507 X_Sales_Credit_tbl := p_sales_credit_tbl;
2508 X_quote_party_tbl := p_quote_party_tbl;
2509 END;
2510
2511
2512
2513
2514
2515 -- *******************************************************
2516 -- Start of Comments
2517 -- *******************************************************
2518 -- API Name: Create_Quote_Lines
2519 -- Type : Private
2520 -- Pre-Req :
2521 -- Parameters:
2522 -- IN
2523 -- p_api_version_number IN NUMBER Required
2524 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
2525 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
2526 -- P_qte_lines_Rec IN qte_line_Rec_Type Required
2527 -- P_Payment_Tbl IN Payment_Tbl_Type
2528 -- P_Price_Adj_Tbl IN Price_Adj_Tbl_Type
2529 -- P_Qte_Line_Dtl_Rec IN Qte_Line_Dtl_Rec_Type
2530 -- P_Shipment_Tbl IN Shipment_Tbl_Type
2531 -- P_Tax_Details_Tbl IN Tax_Details_Tbl_Type
2532 -- P_Freight_Charges_Tbl IN Freight_Charges_Tbl_Type
2533 -- P_Line_Relationship_Tbl IN Line_Relationship_Tbl_Type
2534 -- P_Price_Attributes_Tbl IN Price_Attributes_Tbl_Type
2535 -- P_Price_Adj_Relationship_Tbl IN Price_Adj_Relationship_Tbl_Type
2536 -- P_Update_Header_Flag IN VARCHAR2 Optional Default = FND_API.G_TRUE
2537
2538 -- OUT:
2539 -- X_quote_line_id OUT NOCOPY /* file.sql.39 change */ NUMBER,
2540 -- x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2541 -- x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
2542 -- x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2543 -- Version : Current version 2.0
2544 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
2545 -- and basic operation, developer must manually add parameters and business logic as necessary.
2546 --
2547 -- End of Comments
2548 --
2549 PROCEDURE Create_Quote_Lines(
2550 P_Api_Version_Number IN NUMBER,
2551 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
2552 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
2553 P_Validation_Level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2554 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type := ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec,
2555 P_Qte_Line_Rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_qte_line_REC,
2556 P_Control_REC IN ASO_QUOTE_PUB.Control_Rec_Type := ASO_QUOTE_PUB.G_MISS_Control_Rec,
2557 P_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Payment_TBL,
2558 P_Price_Adj_Tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Price_Adj_TBL,
2559 P_Qte_Line_Dtl_tbl IN ASO_QUOTE_PUB.Qte_Line_Dtl_tbl_Type := ASO_QUOTE_PUB.G_MISS_qte_line_dtl_TBL,
2560 P_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_shipment_TBL,
2561 P_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_MISS_tax_detail_TBL,
2562 P_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type := ASO_QUOTE_PUB.G_MISS_freight_charge_TBL,
2563 P_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Price_attributes_TBL,
2564 P_Price_Adj_Attr_Tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type := ASO_QUOTE_PUB.G_Miss_PRICE_ADJ_ATTR_Tbl,
2565 P_Line_Attribs_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_type := ASO_QUOTE_PUB.G_Miss_Line_Attribs_Ext_Tbl,
2566 P_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl,
2567 P_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl,
2568 P_Update_Header_Flag IN VARCHAR2 := 'Y',
2569 X_Qte_Line_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Rec_Type,
2570 X_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
2571 X_Price_Adj_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
2572 X_Qte_Line_Dtl_tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Dtl_TBL_Type,
2573 X_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Tbl_Type,
2574 X_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
2575 X_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type ,
2576 X_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type ,
2577 X_Price_Adj_Attr_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
2578 X_Line_Attribs_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_type,
2579 X_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
2580 X_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
2581 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
2582 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
2583 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2584 )
2585 IS
2586
2587 Cursor C_Get_quote(c_QUOTE_HEADER_ID Number) IS
2588 Select LAST_UPDATE_DATE, QUOTE_STATUS_ID, QUOTE_NUMBER, TOTAL_ADJUSTED_PERCENT
2589 From ASO_QUOTE_HEADERS_ALL
2590 Where QUOTE_HEADER_ID = c_QUOTE_HEADER_ID;
2591
2592 CURSOR C_Qte_Status(c_qte_status_id NUMBER) IS
2593 SELECT UPDATE_ALLOWED_FLAG, AUTO_VERSION_FLAG FROM ASO_QUOTE_STATUSES_B
2594 WHERE quote_status_id = c_qte_status_id;
2595
2596 CURSOR C_Qte_Version (X_qte_number NUMBER) IS
2597 SELECT max(quote_version)
2598 FROM ASO_QUOTE_HEADERS_ALL
2599 WHERE quote_number = X_qte_number;
2600
2601 CURSOR get_cust_acct(cust_QUOTE_HEADER_ID Number) IS
2602 SELECT CUST_ACCOUNT_ID
2603 FROM ASO_QUOTE_HEADERS_ALL
2604 WHERE QUOTE_HEADER_ID = cust_QUOTE_HEADER_ID;
2605
2606 CURSOR c_reservation(C_inv_item_id NUMBER,C_Organization_id NUMBER) IS
2607 SELECT INVENTORY_ITEM_ID,ORGANIZATION_ID FROM mtl_system_items_b
2608 WHERE RESERVABLE_TYPE =1 AND
2609 MTL_TRANSACTIONS_ENABLED_FLAG = 'Y' AND
2610 INVENTORY_ITEM_ID= C_inv_item_id AND
2611 ORGANIZATION_ID = C_Organization_id;
2612
2613
2614 Cursor C_exp_date(c_QUOTE_HEADER_ID Number) IS
2615 Select quote_expiration_date
2616 From ASO_QUOTE_HEADERS_ALL
2617 Where QUOTE_HEADER_ID = c_QUOTE_HEADER_ID;
2618
2619 CURSOR C_org_id IS
2620 SELECT org_id
2621 FROM aso_quote_headers_all
2622 WHERE quote_header_id = p_qte_line_rec.quote_header_id;
2623
2624 cursor c_service (p_qln_id number)is
2625 select service_item_flag,serviceable_product_flag
2626 from aso_quote_lines_All
2627 where quote_line_id = p_qln_id;
2628
2629 --New code for Bug # 2498942 fix
2630
2631 CURSOR C_line_category_code(p_quote_line_id NUMBER) IS
2632 SELECT line_category_code
2633 FROM aso_quote_lines_all
2634 WHERE quote_line_id = p_quote_line_id;
2635
2636 --End of new code for Bug # 2498942 fix
2637
2638 Cursor c_container_item_check (C_inv_item_id NUMBER,C_Organization_id NUMBER) IS
2639 select config_model_type
2640 from mtl_system_items_b
2641 where INVENTORY_ITEM_ID= C_inv_item_id
2642 AND ORGANIZATION_ID = C_Organization_id;
2643
2644
2645 CURSOR c_header_org IS
2646 SELECT org_id,quote_type FROM aso_quote_headers_all
2647 WHERE quote_header_id = P_qte_line_rec.quote_header_id;
2648
2649
2650
2651 l_api_version_number NUMBER := 1.0;
2652 l_last_update_date DATE;
2653 l_api_name VARCHAR2(50) := 'Create_Quote_Lines';
2654 l_Return_Status VARCHAR2(50);
2655 l_Msg_Count NUMBER;
2656 l_Msg_Data VARCHAR2(240);
2657 l_qte_status_id NUMBER;
2658 l_update_allowed VARCHAR2(1);
2659 l_auto_version VARCHAR2(1);
2660 l_quote_number NUMBER;
2661 l_old_header_rec ASO_QUOTE_PUB.qte_header_rec_type;
2662 l_qte_header_rec ASO_QUOTE_PUB.qte_header_rec_type;
2663 l_quote_version NUMBER;
2664 x_quote_header_id NUMBER;
2665 l_hd_discount_percent NUMBER;
2666 l_control_rec ASO_QUOTE_PUB.Control_REc_Type := p_control_rec;
2667 l_pricing_control_rec ASO_PRICING_INT.PRICING_CONTROL_REC_TYPE;
2668 l_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
2669 l_hd_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
2670 l_hd_price_attr_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
2671 x_qte_line_tbl ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
2672 l_organization_id NUMBER;
2673 l_invoice_org_id NUMBER;
2674 l_ship_org_id NUMBER;
2675 l_cust_acct NUMBER;
2676 l_inv_item NUMBER;
2677 l_org_id NUMBER;
2678 l_quote_exp_date DATE;
2679
2680 l_service_item_flag varchar2(1);
2681 l_serviceable_product_flag varchar2(1);
2682 l_service varchar2(1);
2683 l_call_update varchar2(1);
2684 l_line_category_code VARCHAR2(30);
2685 l_db_order_type_id Number;
2686
2687 -- local variables
2688 l_Qte_Line_Rec ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_qte_line_REC;
2689 l_Payment_Tbl ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Payment_TBL;
2690 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Price_Adj_TBL;
2691 l_Qte_Line_Dtl_rec ASO_QUOTE_PUB.Qte_Line_Dtl_rec_Type := ASO_QUOTE_PUB.G_MISS_qte_line_dtl_REC;
2692 l_Shipment_Tbl ASO_QUOTE_PUB.Shipment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_shipment_TBL;
2693 l_Tax_Detail_Tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_MISS_tax_detail_TBL;
2694 l_Freight_Charge_Tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type := ASO_QUOTE_PUB.G_MISS_freight_charge_TBL;
2695 l_Line_Rltship_Tbl ASO_QUOTE_PUB.Line_Rltship_Tbl_Type := ASO_QUOTE_PUB.G_MISS_line_rltship_TBL;
2696 l_Price_Attributes_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Price_attributes_TBL;
2697 l_Price_Adj_rltship_Tbl ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type := ASO_QUOTE_PUB.G_MISS_price_adj_rltship_TBL;
2698 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type := ASO_QUOTE_PUB.G_Miss_PRICE_ADJ_ATTR_Tbl;
2699 l_Line_Attribs_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_type := ASO_QUOTE_PUB.G_Miss_Line_Attribs_Ext_Tbl;
2700 l_Qte_Line_Dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_tbl_Type := ASO_QUOTE_PUB.G_MISS_qte_line_dtl_TBL;
2701 l_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl;
2702 l_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl;
2703 l_qte_line_tbl ASO_QUOTE_PUB.Qte_Line_tbl_Type := ASO_QUOTE_PUB.G_MISS_QTE_LINE_TBL;
2704 l_tax_control_rec ASO_TAX_INT.Tax_control_rec_type;
2705 x_tax_amount NUMBER;
2706 l_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type := ASO_QUOTE_PUB.G_MISS_TAX_DETAIL_REC;
2707 lx_tax_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
2708 my_message VARCHAR2(2000);
2709
2710 l_copy_quote_control_rec aso_copy_quote_pub.copy_quote_control_rec_type;
2711 l_copy_quote_header_rec aso_copy_quote_pub.copy_quote_header_rec_type;
2712 l_qte_nbr number;
2713 l_shipment_tbl_out ASO_QUOTE_PUB.Shipment_Tbl_Type;
2714
2715 --new code to call overload pricing_order procedure
2716 lx_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
2717 lx_qte_line_tbl ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
2718 lx_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_tbl_Type;
2719 lx_price_adj_tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
2720 lx_price_adj_attr_tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
2721 lx_price_adj_rltship_tbl ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type;
2722
2723 -- bmishra defaulting framework
2724 l_def_control_rec ASO_DEFAULTING_INT.Control_Rec_Type := ASO_DEFAULTING_INT.G_MISS_CONTROL_REC;
2725 l_db_object_name VARCHAR2(30);
2726 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
2727 l_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type := ASO_QUOTE_PUB.G_MISS_Payment_REC;
2728 lx_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
2729 lx_hd_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
2730 lx_hd_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
2731 lx_hd_misc_rec ASO_DEFAULTING_INT.Header_Misc_Rec_Type;
2732 lx_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
2733 lx_ln_misc_rec ASO_DEFAULTING_INT.Line_Misc_Rec_Type;
2734 lx_ln_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
2735 lx_ln_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
2736 lx_ln_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
2737 lx_changed_flag VARCHAR2(1);
2738 lx_ln_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
2739 lx_ln_Shipment_Tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
2740 l_Orig_Payment_Tbl ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Payment_TBL;
2741 l_container_item_flag varchar2(1) := null;
2742 l_is_model_published number;
2743 l_def_Qte_Line_Rec ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_qte_line_REC;
2744 l_quote_type VARCHAR2(1) := null;
2745 l_header_org_id NUMBER;
2746
2747
2748 BEGIN
2749
2750 -- Standard Start of API savepoint
2751 SAVEPOINT CREATE_quote_lines_PVT;
2752
2753 -- Standard call to check for call compatibility.
2754 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
2755 p_api_version_number,
2756 l_api_name,
2757 G_PKG_NAME) THEN
2758 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2759 END IF;
2760
2761 -- Initialize message list if p_init_msg_list is set to TRUE.
2762 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2763 FND_MSG_PUB.initialize;
2764 END IF;
2765
2766 -- Initialize API return status to SUCCESS
2767 x_return_status := FND_API.G_RET_STS_SUCCESS;
2768
2769 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2770 aso_debug_pub.add('Create_Quote_lines - Begin ', 1, 'Y');
2771 aso_debug_pub.add('P_Control_REC.AUTO_VERSION_FLAG: '||nvl(P_Control_REC.AUTO_VERSION_FLAG,'null'),1,'N');
2772 aso_debug_pub.add('P_Control_REC.pricing_request_type: '||nvl(P_Control_REC.pricing_request_type,'null'),1,'N');
2773 aso_debug_pub.add('P_Control_REC.header_pricing_event: '||nvl(P_Control_REC.header_pricing_event,'null'),1,'N');
2774 aso_debug_pub.add('P_Control_REC.line_pricing_event: '||nvl(P_Control_REC.line_pricing_event,'null'),1,'N');
2775 aso_debug_pub.add('P_Control_REC.CALCULATE_TAX_FLAG: '||nvl(P_Control_REC.CALCULATE_TAX_FLAG,'null'),1,'N');
2776 aso_debug_pub.add('P_Control_REC.CALCULATE_FREIGHT_CHARGE_FLAG: '||nvl(P_Control_REC.CALCULATE_FREIGHT_CHARGE_FLAG,'null'),1,'N');
2777 aso_debug_pub.add('P_Control_REC.COPY_TASK_FLAG: '||nvl(P_Control_REC.COPY_TASK_FLAG,'null'),1,'N');
2778 aso_debug_pub.add('P_Control_REC.COPY_NOTES_FLAG: '||nvl(P_Control_REC.COPY_NOTES_FLAG,'null'),1,'N');
2779 aso_debug_pub.add('P_Control_REC.COPY_ATT_FLAG: '||nvl(P_Control_REC.COPY_ATT_FLAG,'null'),1,'N');
2780 aso_debug_pub.add('P_Qte_Line_Rec.OPERATION_CODE: '||nvl(P_Qte_Line_Rec.OPERATION_CODE,'null'),1,'N');
2781 --aso_debug_pub.add('P_Qte_Line_Rec.QUOTE_LINE_ID: '||nvl(P_Qte_Line_Rec.QUOTE_LINE_ID,'null'),1,'N');
2782 aso_debug_pub.add('P_Qte_Line_Rec.QUOTE_HEADER_ID: '||nvl(to_char(P_Qte_Line_Rec.QUOTE_HEADER_ID),'null'),1,'N');
2783 aso_debug_pub.add('P_Qte_Line_Rec.LINE_CATEGORY_CODE: '||nvl(P_Qte_Line_Rec.LINE_CATEGORY_CODE,'null'),1,'N');
2784 aso_debug_pub.add('P_Qte_Line_Rec.ITEM_TYPE_CODE: '||nvl(P_Qte_Line_Rec.ITEM_TYPE_CODE,'null'),1,'N');
2785 aso_debug_pub.add('P_Qte_Line_Rec.ORDER_LINE_TYPE_ID: '||nvl(to_char(P_Qte_Line_Rec.ORDER_LINE_TYPE_ID),'null'),1,'N');
2786 aso_debug_pub.add('P_Qte_Line_Rec.INVOICE_TO_PARTY_SITE_ID: '||nvl(to_char(P_Qte_Line_Rec.INVOICE_TO_PARTY_SITE_ID),'null'),1,'N');
2787 aso_debug_pub.add('P_Qte_Line_Rec.INVOICE_TO_PARTY_ID: '||nvl(to_char(P_Qte_Line_Rec.INVOICE_TO_PARTY_ID),'null'),1,'N');
2788 aso_debug_pub.add('P_Qte_Line_Rec.INVOICE_TO_CUST_ACCOUNT_ID: '||nvl(to_char(P_Qte_Line_Rec.INVOICE_TO_CUST_ACCOUNT_ID),'null'),1,'N');
2789 aso_debug_pub.add('P_Qte_Line_Rec.INVENTORY_ITEM_ID: '||nvl(to_char(P_Qte_Line_Rec.INVENTORY_ITEM_ID),'null'),1,'N');
2790 aso_debug_pub.add('P_Qte_Line_Rec.QUANTITY: '||nvl(to_char(P_Qte_Line_Rec.QUANTITY),'null'),1,'N');
2791 aso_debug_pub.add('P_Qte_Line_Rec.UOM_CODE: '||nvl(P_Qte_Line_Rec.UOM_CODE,'null'),1,'N');
2792 aso_debug_pub.add('P_Qte_Line_Rec.PRICING_QUANTITY_UOM: '||nvl(P_Qte_Line_Rec.PRICING_QUANTITY_UOM,'null'),1,'N');
2793 aso_debug_pub.add('P_Qte_Line_Rec.PRICE_LIST_ID: '||nvl(to_char(P_Qte_Line_Rec.PRICE_LIST_ID),'null'),1,'N');
2794 aso_debug_pub.add('P_Qte_Line_Rec.PRICE_LIST_LINE_ID: '||nvl(to_char(P_Qte_Line_Rec.PRICE_LIST_LINE_ID),'null'),1,'N');
2795 aso_debug_pub.add('P_Qte_Line_Rec.CURRENCY_CODE: '||nvl(P_Qte_Line_Rec.CURRENCY_CODE,'null'),1,'N');
2796 aso_debug_pub.add('P_Qte_Line_Rec.RELATED_ITEM_ID: '||nvl(to_char(P_Qte_Line_Rec.RELATED_ITEM_ID),'null'),1,'N');
2797 aso_debug_pub.add('P_Qte_Line_Rec.org_id: '||nvl(to_char(P_Qte_Line_Rec.org_id),'null'));
2798 end if;
2799 --
2800 -- API body
2801 --
2802
2803 -- ******************************************************************
2804 -- Validate Environment
2805 -- ******************************************************************
2806 IF FND_GLOBAL.User_Id IS NULL THEN
2807 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2808 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
2809 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
2810 FND_MSG_PUB.ADD;
2811 END IF;
2812 RAISE FND_API.G_EXC_ERROR;
2813 END IF;
2814
2815
2816
2817 IF (p_update_header_flag = 'Y') THEN
2818
2819
2820 Open C_Get_quote( p_qte_line_rec.QUOTE_HEADER_ID);
2821 Fetch C_Get_quote into l_LAST_UPDATE_DATE, l_qte_status_id, l_quote_number, l_hd_discount_percent;
2822
2823 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2824 aso_debug_pub.add('After c_get_quote',1,'N');
2825 aso_debug_pub.add('l_qte_status_id: '||nvl(to_char(l_qte_status_id),'null'),1,'N');
2826 aso_debug_pub.add('l_quote_number: '||nvl(to_char(l_quote_number),'null'),1,'N');
2827 aso_debug_pub.add('l_hd_discount_percent: '||nvl(to_char(l_hd_discount_percent),'null'),1,'N');
2828 end if;
2829
2830
2831 If ( C_Get_quote%NOTFOUND) Then
2832
2833 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2834 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_UPDATE_TARGET');
2835 FND_MESSAGE.Set_Token ('INFO', 'quote', FALSE);
2836 FND_MSG_PUB.Add;
2837 END IF;
2838 raise FND_API.G_EXC_ERROR;
2839 END IF;
2840 Close C_Get_quote;
2841
2842 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2843 aso_debug_pub.add('After C_Get_quote Cursor call ',1,'N');
2844 end if;
2845
2846 If (l_last_update_date is NULL or l_last_update_date = FND_API.G_MISS_Date ) Then
2847 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2848 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_ID');
2849 FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
2850 FND_MSG_PUB.ADD;
2851 END IF;
2852 raise FND_API.G_EXC_ERROR;
2853 End if;
2854
2855 -- Check Whether record has been changed by someone else
2856
2857 If (trunc(l_last_update_date) <> trunc(p_control_rec.last_update_date)) Then
2858 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2859 FND_MESSAGE.Set_Name('ASO', 'API_RECORD_CHANGED');
2860 FND_MESSAGE.Set_Token('INFO', 'quote', FALSE);
2861 FND_MSG_PUB.ADD;
2862 END IF;
2863 raise FND_API.G_EXC_ERROR;
2864 End if;
2865
2866 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2867 aso_debug_pub.add('After Last update date validation',1,'N');
2868 end if;
2869
2870 Open c_qte_status (l_qte_status_id);
2871 Fetch C_qte_status into l_update_allowed, l_auto_version;
2872
2873 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2874 aso_debug_pub.add('after c_qte_status',1,'N');
2875 aso_debug_pub.add('l_update_allowed: '|| nvl(l_update_allowed,'null'),1,'N');
2876 aso_debug_pub.add('l_auto_version: '|| nvl(l_auto_version,'null'),1,'N');
2877 end if;
2878
2879 -- hyang quote_status
2880 -- removed checking of update_allowed_flag
2881 -- end of hyang quote_status
2882 Close c_qte_status;
2883
2884 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2885 aso_debug_pub.add('After c_qte_status cursor call',1,'N');
2886 end if;
2887
2888 --If the control rec does not set auto version to 'Y' then it should not be versioned
2889
2890 IF p_control_rec.auto_version_flag = FND_API.G_TRUE AND NVL(l_auto_version,'Y') = 'Y' THEN
2891
2892 OPEN C_Qte_Version(l_quote_number);
2893 FETCH C_Qte_Version into l_quote_version;
2894 l_quote_version := nvl(l_quote_version, 0) + 1;
2895 CLOSE C_Qte_Version;
2896 ELSE
2897 l_auto_version := 'N';
2898
2899 END IF;
2900
2901 -- update Quote Header
2902
2903 -- validate header information
2904
2905 IF l_auto_version = 'Y' THEN
2906
2907 l_old_header_rec := ASO_UTILITY_PVT.Query_Header_Row(p_qte_line_rec.QUOTE_HEADER_ID);
2908
2909 -- header should be updated only if the flag is set to 'Y'
2910 -- update quote header with the new version number
2911 -- should be called after querying the existing rec and before copying
2912
2913 l_copy_quote_control_rec.new_version := FND_API.G_TRUE;
2914 l_copy_quote_header_rec.quote_header_id := l_old_header_rec.quote_header_id;
2915
2916 aso_copy_quote_pvt.copy_quote( P_Api_Version_Number => 1.0,
2917 P_Init_Msg_List => FND_API.G_FALSE,
2918 P_Commit => FND_API.G_FALSE,
2919 P_Copy_Quote_Header_Rec => l_copy_quote_header_rec,
2920 P_Copy_Quote_Control_Rec => l_copy_quote_control_rec,
2921 X_Qte_Header_Id => x_quote_header_id,
2922 X_Qte_Number => l_qte_nbr,
2923 X_Return_Status => l_return_status,
2924 X_Msg_Count => x_msg_count,
2925 X_Msg_Data => x_msg_data
2926 );
2927
2928 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2929 aso_debug_pub.add('Create_Quote_Lines: After copy_quote l_return_status: '|| l_return_status);
2930 aso_debug_pub.add('Create_Quote_Lines: After copy_quote x_quote_header_id: '|| x_quote_header_id);
2931 aso_debug_pub.add('Create_Quote_Lines: After copy_quote l_qte_nbr: '|| l_qte_nbr);
2932 end if;
2933
2934 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2935
2936 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2937
2938 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2939 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
2940 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
2941 FND_MSG_PUB.ADD;
2942 END IF;
2943
2944 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2945
2946 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2947
2948 x_return_status := FND_API.G_RET_STS_ERROR;
2949
2950 END IF;
2951
2952 update aso_quote_headers_all
2953 set quote_version = l_quote_version + 1,
2954 max_version_flag = 'Y',
2955 last_update_date = sysdate,
2956 last_updated_by = fnd_global.user_id,
2957 last_update_login = fnd_global.conc_login_id
2958 where quote_header_id = p_qte_line_rec.quote_header_id;
2959
2960 update aso_quote_headers_all
2961 set max_version_flag = 'N',
2962 quote_version = l_old_header_rec.quote_version,
2963 last_update_date = sysdate,
2964 last_updated_by = fnd_global.user_id,
2965 last_update_login = fnd_global.conc_login_id
2966 where quote_header_id = x_quote_header_id;
2967
2968 update aso_quote_headers_all
2969 set quote_version = l_quote_version,
2970 last_update_date = sysdate,
2971 last_updated_by = fnd_global.user_id,
2972 last_update_login = fnd_global.conc_login_id
2973 where quote_header_id = p_qte_line_rec.quote_header_id;
2974
2975 END IF; -- auto_version set to 'Y'
2976
2977 END IF; -- header update flag
2978
2979
2980 -- bmishra line defaulting framework begin
2981 OPEN c_header_org;
2982 FETCH c_header_org INTO l_header_org_id,l_quote_type;
2983 CLOSE c_header_org;
2984
2985
2986 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2987 aso_debug_pub.add('Create_Quote_Line: l_header_org_id'||l_header_org_id, 1, 'Y');
2988 aso_debug_pub.add('Create_Quote_Line:l_quote_type'||l_quote_type, 1, 'Y');
2989 aso_debug_pub.add('Create_Quote_Line: Before defaulting framework', 1, 'Y');
2990 aso_debug_pub.add('Create_Quote_Line: populate defaulting control record from the line control record', 1, 'Y');
2991 END IF ;
2992
2993 l_def_control_rec.Dependency_Flag := p_control_rec.Dependency_Flag;
2994 l_def_control_rec.Defaulting_Flag := p_control_rec.Defaulting_Flag;
2995 l_def_control_rec.Application_Type_Code := p_control_rec.Application_Type_Code;
2996 l_def_control_rec.Defaulting_Flow_Code := 'CREATE';
2997
2998 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2999 aso_debug_pub.add('Defaulting_Fwk_Flag: '|| p_control_rec.Defaulting_Fwk_Flag, 1, 'Y');
3000 aso_debug_pub.add('Dependency_Flag: '|| l_def_control_rec.Dependency_Flag, 1, 'Y');
3001 aso_debug_pub.add('Defaulting_Flag: '|| l_def_control_rec.Defaulting_Flag, 1, 'Y');
3002 aso_debug_pub.add('Application_Type_Code: '|| l_def_control_rec.Application_Type_Code, 1, 'Y');
3003 aso_debug_pub.add('Defaulting_Flow_Code: '|| l_def_control_rec.Defaulting_Flow_Code, 1, 'Y');
3004 END IF ;
3005
3006 IF l_def_control_rec.application_type_code = 'QUOTING HTML' OR l_def_control_rec.application_type_code = 'QUOTING FORM' THEN
3007 l_db_object_name := ASO_QUOTE_HEADERS_PVT.G_QUOTE_LINE_DB_NAME;
3008 ELSIF l_def_control_rec.application_type_code = 'ISTORE' THEN
3009 l_db_object_name := ASO_QUOTE_HEADERS_PVT.G_STORE_CART_LINE_DB_NAME;
3010 ELSE
3011 l_control_rec.Defaulting_Fwk_Flag := 'N';
3012 END IF;
3013
3014 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3015 aso_debug_pub.add('Pick '||l_db_object_name ||' based on calling application '||l_def_control_rec.application_type_code, 1, 'Y');
3016 END IF ;
3017
3018 IF p_shipment_tbl.count > 0 THEN
3019 l_shipment_rec := p_shipment_tbl(1);
3020 END IF;
3021
3022 IF p_payment_tbl.count > 0 THEN
3023 l_payment_rec := p_payment_tbl(1);
3024 END IF;
3025
3026 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3027 aso_debug_pub.add('Create_Quote_Line - Before Calling Default_Entity procedure', 1, 'Y');
3028 END IF ;
3029
3030 IF l_control_rec.defaulting_fwk_flag = 'Y' AND nvl(l_quote_type,'X') <> 'T' THEN
3031
3032 l_def_Qte_Line_Rec := p_qte_line_rec;
3033 l_def_Qte_Line_Rec.org_id := l_header_org_id;
3034
3035
3036 ASO_DEFAULTING_INT.Default_Entity ( p_api_version => 1.0,
3037 p_control_rec => l_def_control_rec,
3038 p_database_object_name => l_db_object_name,
3039 p_quote_line_rec => l_def_Qte_Line_Rec,
3040 p_line_shipment_rec => l_shipment_rec,
3041 p_line_payment_rec => l_payment_rec,
3042 x_quote_header_rec => l_qte_header_rec,
3043 x_header_misc_rec => lx_hd_misc_rec,
3044 x_header_shipment_rec => lx_hd_shipment_rec,
3045 x_header_payment_rec => lx_hd_payment_rec,
3046 x_header_tax_detail_rec => lx_hd_tax_detail_rec,
3047 x_quote_line_rec => lx_qte_line_rec,
3048 x_line_misc_rec => lx_ln_misc_rec,
3049 x_line_shipment_rec => lx_ln_shipment_rec,
3050 x_line_payment_rec => lx_ln_payment_rec,
3051 x_line_tax_detail_rec => lx_ln_tax_detail_rec,
3052 x_changed_flag => lx_changed_flag,
3053 x_return_status => x_return_status,
3054 x_msg_count => x_msg_count,
3055 x_msg_data => x_msg_data);
3056
3057 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3058 aso_debug_pub.add('Create_Quote_line: After call to ASO_DEFAULTING_INT.Default_Entity', 1, 'Y');
3059 aso_debug_pub.add('Create_Quote_line: x_return_status: '|| x_return_status, 1, 'Y');
3060 end if;
3061
3062 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3063
3064 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3065 FND_MESSAGE.Set_Name('ASO', 'ASO_API_ERROR_DEFAULTING');
3066 FND_MSG_PUB.ADD;
3067 END IF;
3068
3069 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3070 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3071 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3072 RAISE FND_API.G_EXC_ERROR;
3073 END IF;
3074
3075 END IF;
3076
3077 IF aso_quote_headers_pvt.Shipment_Null_Rec_Exists(lx_ln_shipment_rec, l_db_object_name) THEN
3078 lx_ln_shipment_tbl(1) := lx_ln_shipment_rec;
3079 END IF;
3080
3081 -- IF aso_quote_headers_pvt.Payment_Null_Rec_Exists(lx_ln_payment_rec, l_db_object_name) THEN
3082 lx_ln_payment_tbl(1) := lx_ln_payment_rec;
3083 -- END IF;
3084
3085 ELSE
3086
3087 lx_qte_line_rec := p_qte_line_rec;
3088 lx_ln_shipment_tbl := p_shipment_tbl;
3089 lx_ln_payment_tbl := p_payment_tbl;
3090
3091 END IF;
3092
3093
3094 -- bmishra defaulting framework end
3095
3096
3097 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
3098
3099 -- item type code must exist in aso_lookups and the item, item type
3100 -- should exist in mtl_system_items
3101
3102 ASO_VALIDATE_PVT.Validate_item_type_code(
3103 p_init_msg_list => FND_API.G_FALSE,
3104 p_item_type_code => lx_qte_line_rec.item_type_code,
3105 x_return_status => x_return_status,
3106 x_msg_count => x_msg_count,
3107 x_msg_data => x_msg_data);
3108
3109 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3110 RAISE FND_API.G_EXC_ERROR;
3111 END IF;
3112
3113 -- invoice_to_party_id must exist and be active in HZ_PARTIES,
3114 -- and have the usage INVOICE.
3115
3116 ASO_VALIDATE_PVT.Validate_Party (
3117 p_init_msg_list => FND_API.G_FALSE,
3118 p_party_id => lx_qte_line_rec.invoice_to_party_id,
3119 p_party_usage => 'INVOICE',
3120 x_return_status => x_return_status,
3121 x_msg_count => x_msg_count,
3122 x_msg_data => x_msg_data);
3123 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3124 RAISE FND_API.G_EXC_ERROR;
3125 END IF;
3126
3127 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3128 aso_debug_pub.add('Create_Quote_lines - after validate_party ', 1, 'N');
3129 end if;
3130
3131 -- price list must exist and be active in OE_PRICE_LISTS
3132 ASO_VALIDATE_PVT.Validate_PriceList (
3133 p_init_msg_list => FND_API.G_FALSE,
3134 p_price_list_id => lx_qte_line_rec.price_list_id,
3135 x_return_status => x_return_status,
3136 x_msg_count => x_msg_count,
3137 x_msg_data => x_msg_data);
3138
3139 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3140 RAISE FND_API.G_EXC_ERROR;
3141 END IF;
3142
3143
3144 ASO_VALIDATE_PVT.Validate_Quote_Price_Exp(
3145 p_init_msg_list => FND_API.G_FALSE,
3146 p_price_list_id => lx_qte_line_rec.price_list_id,
3147 p_quote_expiration_date => l_quote_exp_date,
3148 x_return_status => x_return_status,
3149 x_msg_count => x_msg_count,
3150 x_msg_data => x_msg_data);
3151
3152 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3153 RAISE FND_API.G_EXC_ERROR;
3154 END IF;
3155
3156 -- shp_to_party_id must exist and be active in HZ_PARTIES and have the usage SHIP.
3157 For i in 1..lx_ln_shipment_tbl.count LOOP
3158
3159 ASO_VALIDATE_PVT.Validate_Party (
3160 p_init_msg_list => FND_API.G_FALSE,
3161 p_party_id => lx_ln_shipment_tbl(i).ship_to_party_id,
3162 p_party_usage => 'SHIP',
3163 x_return_status => x_return_status,
3164 x_msg_count => x_msg_count,
3165 x_msg_data => x_msg_data);
3166
3167 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3168 RAISE FND_API.G_EXC_ERROR;
3169 END IF;
3170
3171 END LOOP;
3172
3173 ASO_VALIDATE_PVT.Validate_Marketing_Source_Code(
3174 p_init_msg_list => FND_API.G_FALSE,
3175 p_mkting_source_code_id => lx_qte_line_rec.marketing_source_code_id,
3176 x_return_status => x_return_status,
3177 x_msg_count => x_msg_count,
3178 x_msg_data => x_msg_data);
3179
3180 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3181 RAISE FND_API.G_EXC_ERROR;
3182 END IF;
3183
3184 FOR i in 1..p_qte_line_dtl_tbl.count LOOP
3185
3186 ASO_VALIDATE_PVT.Validate_Service_Duration(
3187 p_init_msg_list => FND_API.G_FALSE,
3188 p_service_duration => p_qte_line_dtl_tbl(i).service_duration,
3189 x_return_status => x_return_status,
3190 x_msg_count => x_msg_count,
3191 x_msg_data => x_msg_data);
3192
3193 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3194 RAISE FND_API.G_EXC_ERROR;
3195 END IF;
3196
3197 END LOOP;
3198
3199
3200 FOR i in 1..p_sales_credit_tbl.count LOOP
3201
3202 if aso_debug_pub.g_debug_flag = 'Y' then
3203 aso_debug_pub.add('p_sales_credit_tbl('||i||').operation_code: '|| p_sales_credit_tbl(i).operation_code,1,'Y');
3204 end if;
3205
3206 if (p_sales_credit_tbl(i).operation_code = 'CREATE' or p_sales_credit_tbl(i).operation_code = 'UPDATE') then
3207
3208 ASO_VALIDATE_PVT.Validate_Resource_id(
3209 p_init_msg_list => FND_API.G_FALSE,
3210 p_resource_id => p_sales_credit_tbl(i).resource_id,
3211 x_return_status => x_return_status,
3212 x_msg_count => x_msg_count,
3213 x_msg_data => x_msg_data);
3214
3215 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3216
3217 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3218 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_SALES_REP_ID');
3219 FND_MSG_PUB.ADD;
3220 END IF;
3221 RAISE FND_API.G_EXC_ERROR;
3222
3223 END IF;
3224
3225 ASO_VALIDATE_PVT.Validate_Resource_group_id(
3226 p_init_msg_list => FND_API.G_FALSE,
3227 p_resource_group_id => p_sales_credit_tbl(i).resource_group_id,
3228 x_return_status => x_return_status,
3229 x_msg_count => x_msg_count,
3230 x_msg_data => x_msg_data);
3231
3232 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3233 RAISE FND_API.G_EXC_ERROR;
3234 END IF;
3235
3236 ASO_VALIDATE_PVT.Validate_Salescredit_Type(
3237 p_init_msg_list => FND_API.G_FALSE,
3238 p_salescredit_type_id => p_sales_credit_tbl(i).sales_credit_type_id,
3239 x_return_status => x_return_status,
3240 x_msg_count => x_msg_count,
3241 x_msg_data => x_msg_data);
3242
3243 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3244 RAISE FND_API.G_EXC_ERROR;
3245 END IF;
3246
3247 ASO_VALIDATE_PVT.Validate_EmployPerson(
3248 p_init_msg_list => FND_API.G_FALSE,
3249 p_employee_id => p_sales_credit_tbl(i).employee_person_id,
3250 x_return_status => x_return_status,
3251 x_msg_count => x_msg_count,
3252 x_msg_data => x_msg_data);
3253
3254 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3255 RAISE FND_API.G_EXC_ERROR;
3256 END IF;
3257
3258 end if;
3259
3260 END LOOP;
3261
3262 FOR i in 1..p_quote_party_tbl.count LOOP
3263
3264 ASO_VALIDATE_PVT.Validate_Party_Type(
3265 p_init_msg_list => FND_API.G_FALSE,
3266 p_party_type => p_quote_party_tbl(i).party_type,
3267 x_return_status => x_return_status,
3268 x_msg_count => x_msg_count,
3269 x_msg_data => x_msg_data);
3270
3271 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3272 RAISE FND_API.G_EXC_ERROR;
3273 END IF;
3274
3275 ASO_VALIDATE_PVT.Validate_Party(
3276 p_init_msg_list => FND_API.G_FALSE,
3277 p_party_id => p_quote_party_tbl(i).party_id,
3278 p_party_usage => null,
3279 x_return_status => x_return_status,
3280 x_msg_count => x_msg_count,
3281 x_msg_data => x_msg_data);
3282
3283 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3284 RAISE FND_API.G_EXC_ERROR;
3285 END IF;
3286
3287 ASO_VALIDATE_PVT.Validate_Party_Object_Type(
3288 p_init_msg_list => FND_API.G_FALSE,
3289 p_party_object_type => p_quote_party_tbl(i).party_object_type,
3290 x_return_status => x_return_status,
3291 x_msg_count => x_msg_count,
3292 x_msg_data => x_msg_data);
3293
3294 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3295 RAISE FND_API.G_EXC_ERROR;
3296 END IF;
3297
3298 END LOOP;
3299
3300
3301 ASO_VALIDATE_PVT.Validate_MiniSite(
3302 p_init_msg_list => FND_API.G_FALSE,
3303 p_minisite_id => lx_qte_line_rec.minisite_id,
3304 x_return_status => x_return_status,
3305 x_msg_count => x_msg_count,
3306 x_msg_data => x_msg_data);
3307 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3308 RAISE FND_API.G_EXC_ERROR;
3309 END IF;
3310
3311 ASO_VALIDATE_PVT.Validate_Section(
3312 p_init_msg_list => FND_API.G_FALSE,
3313 p_section_id => lx_qte_line_rec.section_id,
3314 x_return_status => x_return_status,
3315 x_msg_count => x_msg_count,
3316 x_msg_data => x_msg_data);
3317 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3318 RAISE FND_API.G_EXC_ERROR;
3319 END IF;
3320
3321 END IF;
3322
3323
3324
3325 IF p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_RECORD THEN
3326
3327 -- if organization id does not exist then it should be defaulted
3328
3329 IF lx_qte_line_rec.organization_id is NULL or
3330 lx_qte_line_rec.organization_id = FND_API.G_MISS_NUM THEN
3331
3332 -- default org id from header
3333
3334 IF lx_qte_line_rec.org_id is NULL OR lx_qte_line_rec.org_id = FND_API.G_MISS_NUM THEN
3335
3336 OPEN C_org_id;
3337 FETCH C_org_id into l_org_id;
3338 IF C_org_id%NOTFOUND THEN
3339
3340 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3341 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
3342 FND_MESSAGE.Set_Token('COLUMN', 'ORG_ID', FALSE);
3343 FND_MSG_PUB.ADD;
3344 END IF;
3345 END IF;
3346 CLOSE C_org_id;
3347 END IF;
3348
3349 l_organization_id := oe_profile.value('OE_ORGANIZATION_ID', l_org_id);
3350
3351 ELSE
3352
3353 l_organization_id := lx_qte_line_rec.organization_id;
3354
3355 END IF;
3356
3357
3358 -- UOM must exist and should be in ASO_I_UNITS_OF_MEASURE
3359
3360 ASO_VALIDATE_PVT.Validate_UOM_code(
3361 p_init_msg_list => FND_API.G_FALSE,
3362 p_uom_code => lx_qte_line_rec.uom_code,
3363 p_organization_id => l_organization_id,
3364 p_inventory_item_id => lx_qte_line_rec.inventory_item_id,
3365 x_return_status => x_return_status,
3366 x_msg_count => x_msg_count,
3367 x_msg_data => x_msg_data);
3368
3369 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3370 RAISE FND_API.G_EXC_ERROR;
3371 END IF;
3372
3373 if aso_debug_pub.g_debug_flag = 'Y' THEN
3374 aso_debug_pub.add('Create_Quote_lines - After validate_UOM_code ', 1, 'N');
3375 end if;
3376
3377 ASO_VALIDATE_PVT.Validate_For_GreaterEndDate (
3378 p_init_msg_list => FND_API.G_FALSE,
3379 p_start_date => lx_qte_line_rec.start_date_active,
3380 p_end_date => lx_qte_line_rec.end_date_active,
3381 x_return_status => x_return_status,
3382 x_msg_count => x_msg_count,
3383 x_msg_data => x_msg_data);
3384
3385 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3386
3387 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3388 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_END_DATE');
3389 FND_MSG_PUB.ADD;
3390 END IF;
3391 RAISE FND_API.G_EXC_ERROR;
3392 END IF;
3393
3394 FOR i in 1..p_qte_line_dtl_tbl.count LOOP
3395 ASO_VALIDATE_PVT.Validate_Returns(
3396 p_init_msg_list => FND_API.G_FALSE,
3397 p_return_ref_type_code => p_qte_line_dtl_tbl(i).return_ref_type,
3398 p_return_ref_header_id => p_qte_line_dtl_tbl(i).return_ref_header_id,
3399 p_return_ref_line_id => p_qte_line_dtl_tbl(i).return_ref_line_id,
3400 x_return_status => x_return_status,
3401 x_msg_count => x_msg_count,
3402 x_msg_data => x_msg_data);
3403
3404 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3405 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3406 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
3407 FND_MESSAGE.Set_Token('INFO', 'RETURN', FALSE);
3408 FND_MSG_PUB.ADD;
3409 END IF;
3410 RAISE FND_API.G_EXC_ERROR;
3411 END IF;
3412 END LOOP;
3413
3414 -- tax_exempt_flag must be in 'E', 'R' and 'S'
3415 -- and tax_exempt_reason_code must exist if tax_exempt_flag is 'E'.
3416 FOR i in 1..p_tax_detail_tbl.count LOOP
3417 ASO_VALIDATE_PVT.Validate_Tax_Exemption (
3418 p_init_msg_list => FND_API.G_FALSE,
3419 p_tax_exempt_flag => p_tax_detail_tbl(i).tax_exempt_flag,
3420 p_tax_exempt_reason_code=> p_tax_detail_tbl(i).tax_exempt_reason_code,
3421 x_return_status => x_return_status,
3422 x_msg_count => x_msg_count,
3423 x_msg_data => x_msg_data);
3424 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3425 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3426 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
3427 FND_MESSAGE.Set_Token('INFO', 'TAX', FALSE);
3428 FND_MSG_PUB.ADD;
3429 END IF;
3430 RAISE FND_API.G_EXC_ERROR;
3431 END IF;
3432 END LOOP;
3433
3434 FOR i in 1..p_qte_line_dtl_tbl.count LOOP
3435 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3436 aso_debug_pub.add('ASO_QUOTE_LINES_PVT:Create_Quote_Lines:config_header_id: '|| p_qte_line_dtl_tbl(i).config_header_id,1,'N');
3437 aso_debug_pub.add('ASO_QUOTE_LINES_PVT:Create_Quote_Lines:config_revision_num: '|| p_qte_line_dtl_tbl(i).config_revision_num,1,'N');
3438 aso_debug_pub.add('ASO_QUOTE_LINES_PVT:Create_Quote_Lines:component_code: '|| p_qte_line_dtl_tbl(i).component_code,1,'N');
3439 aso_debug_pub.add('ASO_QUOTE_LINES_PVT:Create_Quote_Lines:config_item_id: '|| p_qte_line_dtl_tbl(i).config_item_id,1,'N');
3440 end if;
3441
3442 -- We will add config_item_id when we will implement solution model
3443 IF ((p_qte_line_dtl_tbl(i).config_header_id IS NOT NULL AND
3444 p_qte_line_dtl_tbL(i).config_header_id <> FND_API.G_MISS_NUM) AND
3445 (p_qte_line_dtl_tbl(i).config_revision_num IS NOT NULL AND
3446 p_qte_line_dtl_tbl(i).config_revision_num <> FND_API.G_MISS_NUM) AND
3447 (p_qte_line_dtl_tbl(i).config_item_id IS NOT NULL AND
3448 p_qte_line_dtl_tbl(i).config_item_id <> FND_API.G_MISS_NUM)) THEN
3449
3450 ASO_VALIDATE_PVT.Validate_Configuration(
3451 p_init_msg_list => FND_API.G_FALSE,
3452 p_config_header_id => p_qte_line_dtl_tbl(i).config_header_id,
3453 p_config_revision_num => p_qte_line_dtl_tbl(i).config_revision_num,
3454 p_config_item_id => p_qte_line_dtl_tbl(i).config_item_id,
3455 x_return_status => x_return_status,
3456 x_msg_count => x_msg_count,
3457 x_msg_data => x_msg_data);
3458
3459 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3460 aso_debug_pub.add('Create_Quote_Lines after Validate_Configuration :x_return_status:'||x_return_status,1,'N');
3461 end if;
3462 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3463 RAISE FND_API.G_EXC_ERROR;
3464 END IF;
3465 END IF;
3466 END LOOP;
3467
3468
3469 FOR i in 1..p_qte_line_dtl_tbl.count LOOP
3470 ASO_VALIDATE_PVT.Validate_Delayed_Service(
3471 p_init_msg_list => FND_API.G_FALSE,
3472 p_service_ref_type_code
3473 => p_qte_line_dtl_tbl(i).service_ref_type_code,
3474 p_service_ref_line_id
3475 => p_qte_line_dtl_tbl(i).service_ref_line_id,
3476 p_service_ref_system_id
3477 => p_qte_line_dtl_tbl(i).service_ref_system_id,
3478 x_return_status => x_return_status,
3479 x_msg_count => x_msg_count,
3480 x_msg_data => x_msg_data);
3481 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3482 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3483 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
3484 FND_MESSAGE.Set_Token('INFO', 'DELAYED_SERVICE', FALSE);
3485 FND_MSG_PUB.ADD;
3486 END IF;
3487 RAISE FND_API.G_EXC_ERROR;
3488 END IF;
3489 END LOOP;
3490
3491
3492
3493 FOR i in 1..p_quote_party_tbl.count LOOP
3494 ASO_VALIDATE_PVT.Validate_Party_Object_Id(
3495 p_init_msg_list => FND_API.G_FALSE,
3496 p_party_id => p_quote_party_tbl(i).party_id,
3497 p_party_object_type => p_quote_party_tbl(i).party_object_type,
3498 p_party_object_id => p_quote_party_tbl(i).party_object_id,
3499 x_return_status => x_return_status,
3500 x_msg_count => x_msg_count,
3501 x_msg_data => x_msg_data);
3502 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3503 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3504 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
3505 FND_MESSAGE.Set_Token('INFO', 'PARTY OBJECT ID', FALSE);
3506 FND_MSG_PUB.ADD;
3507 END IF;
3508 RAISE FND_API.G_EXC_ERROR;
3509 END IF;
3510 END LOOP;
3511
3512
3513 -- rahsan 10/11/2000
3514 -- new validation for ship_from_org_id
3515
3516 IF lx_ln_shipment_tbl.count > 0 THEN
3517
3518 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3519 aso_debug_pub.add('Create_Quote_Lines: Before Validate_ship_from_org_ID', 1, 'Y');
3520 aso_debug_pub.add('Create_Quote_Lines: lx_qte_line_rec.quote_header_id: '||lx_qte_line_rec.quote_header_id, 1, 'Y');
3521 aso_debug_pub.add('Create_Quote_Lines: lx_qte_line_rec.quote_line_id: '||lx_qte_line_rec.quote_line_id, 1, 'Y');
3522 aso_debug_pub.add('Create_Quote_Lines: lx_ln_shipment_tbl(1).quote_line_id: '||lx_ln_shipment_tbl(1).quote_line_id, 1, 'Y');
3523 aso_debug_pub.add('Create_Quote_Lines: lx_qte_line_rec.inventory_item_id: '||lx_qte_line_rec.inventory_item_id, 1, 'Y');
3524 aso_debug_pub.add('Create_Quote_Lines: lx_ln_shipment_tbl(1).ship_from_org_id: '||lx_ln_shipment_tbl(1).ship_from_org_id, 1, 'Y');
3525 end if;
3526
3527 IF lx_ln_shipment_tbl(1).ship_from_org_id IS NOT NULL AND lx_ln_shipment_tbl(1).ship_from_org_id <> FND_API.G_MISS_NUM THEN
3528 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3529 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Create_Quote_Lines: before Validate_ship_from_org_ID', 1, 'Y');
3530 end if;
3531 ASO_VALIDATE_PVT.Validate_ship_from_org_ID(
3532 P_qte_line_rec => lx_qte_line_rec,
3533 P_Shipment_rec => lx_ln_shipment_tbl(1),
3534 x_return_status => x_return_status);
3535
3536 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3537 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Create_Quote_Lines: after Validate_ship_from_org_ID', 1, 'Y');
3538 end if;
3539 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3540 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3541 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Create_Quote_Lines: after Validate_ship_from_org_ID: <> SUCCESS', 1, 'Y');
3542 end if;
3543
3544 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3545 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SHIP_FROM_ORG_ID');
3546 FND_MESSAGE.Set_Token('SHIP_FROM_ORG_ID', lx_ln_shipment_tbl(1).ship_from_org_id, FALSE);
3547 FND_MESSAGE.Set_Token('INVENTORY_ITEM_ID', lx_qte_line_rec.inventory_item_id, FALSE);
3548 FND_MSG_PUB.ADD;
3549 END IF;
3550
3551 RAISE FND_API.G_EXC_ERROR;
3552 END IF;
3553 END IF;
3554
3555 ELSE
3556
3557 l_hd_shipment_rec := NULL;
3558
3559 l_hd_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows(
3560 P_Qte_Header_Id => lx_qte_line_rec.quote_header_id,
3561 P_Qte_Line_Id => NULL
3562 );
3563
3564 IF l_hd_shipment_tbl.count = 1 THEN
3565 l_hd_shipment_rec := l_hd_shipment_tbl(1);
3566 END IF;
3567
3568 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3569 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Create_Quote_Lines: before Validate_ship_from_org_ID: lx_qte_line_rec.quote_header_id: '||lx_qte_line_rec.quote_header_id, 1, 'Y');
3570 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Create_Quote_Lines: before Validate_ship_from_org_ID: lx_qte_line_rec.inventory_item_id: '||lx_qte_line_rec.inventory_item_id, 1, 'Y');
3571 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Create_Quote_Lines: before Validate_ship_from_org_ID: l_hd_shipment_rec.ship_from_org_id: '||l_hd_shipment_rec.ship_from_org_id, 1, 'Y');
3572 end if;
3573
3574 IF l_hd_shipment_rec.ship_from_org_id IS NOT NULL AND l_hd_shipment_rec.ship_from_org_id <> FND_API.G_MISS_NUM THEN
3575 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3576 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Create_Quote_Lines: before Validate_ship_from_org_ID (no ln_shipment_tbl)', 1, 'Y');
3577 end if;
3578 ASO_VALIDATE_PVT.Validate_ship_from_org_ID(
3579 P_Qte_Line_rec => lx_qte_line_rec,
3580 P_Shipment_rec => l_hd_shipment_rec,
3581 x_return_status => x_return_status
3582 );
3583
3584 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3585 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Create_Quote_Lines: after Validate_ship_from_org_ID (no ln_shipment_tbl)', 1, 'Y');
3586 end if;
3587 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3588 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3589 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Create_Quote_Lines: after Validate_ship_from_org_ID: <> SUCCESS', 1, 'Y');
3590 end if;
3591
3592 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3593 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SHIP_FROM_ORG_ID');
3594 FND_MESSAGE.Set_Token('SHIP_FROM_ORG_ID', l_hd_shipment_rec.ship_from_org_id, FALSE);
3595 FND_MESSAGE.Set_Token('INVENTORY_ITEM_ID', lx_qte_line_rec.inventory_item_id, FALSE);
3596 FND_MSG_PUB.ADD;
3597 END IF;
3598
3599 RAISE FND_API.G_EXC_ERROR;
3600 END IF;
3601 END IF;
3602
3603 END IF;
3604
3605 -- end new validation for ship_from_org_id
3606
3607
3608 END IF;
3609
3610 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3611 aso_debug_pub.add('Create_Quote_lines - before populate_quote_line ', 1, 'Y');
3612 end if;
3613
3614 Populate_Quote_Line(
3615 P_Qte_Line_Rec => lx_qte_line_rec ,
3616 P_Control_Rec => l_Control_Rec ,
3617 P_Payment_Tbl => lx_ln_Payment_Tbl ,
3618 P_Price_Adj_Tbl => P_Price_Adj_Tbl ,
3619 P_Qte_Line_Dtl_tbl => P_Qte_line_dtl_tbl ,
3620 P_Shipment_Tbl => lx_ln_shipment_tbl ,
3621 P_Tax_Detail_Tbl => P_Tax_Detail_Tbl ,
3622 P_Freight_Charge_Tbl => P_Freight_Charge_Tbl ,
3623 P_Price_Attributes_Tbl => P_Price_Attributes_Tbl ,
3624 P_Price_Adj_Attr_Tbl => P_Price_Adj_Attr_Tbl ,
3625 P_Line_Attribs_Ext_Tbl => P_Line_Attribs_Ext_Tbl ,
3626 P_Sales_Credit_Tbl => P_sales_credit_tbl,
3627 P_Quote_Party_Tbl => P_quote_party_tbl,
3628 P_Operation_Code => 'CREATE' ,
3629 X_Qte_Line_Rec => l_Qte_Line_Rec ,
3630 X_Payment_Tbl => l_Payment_Tbl ,
3631 X_Price_Adj_Tbl => l_Price_Adj_Tbl ,
3632 X_Qte_Line_Dtl_tbl => l_Qte_Line_Dtl_tbl ,
3633 X_Shipment_Tbl => l_Shipment_Tbl ,
3634 X_Tax_Detail_Tbl => l_Tax_Detail_Tbl ,
3635 X_Freight_Charge_Tbl => l_Freight_Charge_Tbl ,
3636 X_Price_Attributes_Tbl => l_Price_Attributes_Tbl ,
3637 X_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl ,
3638 X_Line_Attribs_Ext_Tbl => l_Line_Attribs_Ext_Tbl,
3639 X_Sales_Credit_Tbl => l_sales_credit_tbl,
3640 x_Quote_Party_Tbl => l_quote_party_tbl,
3641 X_Return_Status => X_return_status,
3642 X_Msg_Count => x_msg_count,
3643 X_Msg_Data => x_msg_data );
3644
3645 -- copy the payment tbl to another variable, since the payment tbl count may change becoz
3646 -- of the payment validation which is done later
3647 l_orig_payment_tbl := l_Payment_Tbl;
3648
3649 -- check return status
3650 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3651 aso_debug_pub.add('Create_Quote_lines - after populate_quote_line '||x_return_status, 1, 'Y');
3652 end if;
3653
3654 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3655 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3656 FND_MESSAGE.Set_Name('ASO', 'ASO_POPULATING_COLUMNS');
3657 FND_MESSAGE.Set_Token('LINE' , x_qte_line_rec.line_number, FALSE);
3658 FND_MSG_PUB.ADD;
3659 END IF;
3660
3661 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3662 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3663 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3664 RAISE FND_API.G_EXC_ERROR;
3665 END IF;
3666
3667 END IF;
3668
3669 -- check if the item being added is a MDL and a Network Container
3670 -- if so, then it must be published otherwise raise error
3671 open c_container_item_check(l_qte_line_rec.inventory_item_id, l_Qte_Line_Rec.organization_id);
3672 fetch c_container_item_check into l_container_item_flag;
3673 close c_container_item_check;
3674
3675 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3676 ASO_DEBUG_PUB.add(' l_container_item_flag = '|| l_container_item_flag , 1, 'Y');
3677 END IF;
3678
3679
3680 IF ( l_qte_line_rec.item_type_code = 'MDL' and l_container_item_flag = 'N' ) THEN
3681
3682 -- call the cz api to check if the model is published
3683 l_is_model_published := CZ_CF_API.ui_for_item(inventory_item_id => l_qte_line_rec.inventory_item_id,
3684 organization_id => l_Qte_Line_Rec.organization_id,
3685 config_creation_date => sysdate ,
3686 ui_type => 'DHTML',
3687 user_id => FND_API.G_MISS_NUM,
3688 responsibility_id => FND_PROFILE.value('RESP_ID'),
3689 calling_application_id => fnd_profile.VALUE('RESP_APPL_ID')
3690 );
3691
3692 IF (l_is_model_published is null or l_is_model_published = 101 ) THEN
3693 --cz_cf_api.NATIVEBOM_UI_DEF
3694 -- this means the model is not published , raise error
3695 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3696 FND_MESSAGE.Set_Name('ASO', 'ASO_NO_CFG_UI');
3697 FND_MSG_PUB.ADD;
3698 END IF;
3699
3700 RAISE FND_API.G_EXC_ERROR;
3701 END IF;
3702 END IF;
3703
3704 --inter entity validations
3705
3706 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3707 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: CREATE_QUOTE_LINES: Begin Inter entity validations');
3708 end if;
3709
3710 IF p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_INTER_ENTITY THEN
3711
3712 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3713 ASO_DEBUG_PUB.add('cq organization_id = '||nvl(to_char(l_Qte_Line_Rec.organization_id),'null') , 1, 'Y');
3714 ASO_DEBUG_PUB.add('cq Inventory_item_id = '||l_qte_line_rec.inventory_item_id, 1, 'Y');
3715 END IF;
3716
3717 -- validate inventory item id. item should be active
3718 ASO_VALIDATE_PVT.Validate_Inventory_Item(
3719 p_init_msg_list => FND_API.G_FALSE,
3720 p_inventory_item_id => l_qte_line_rec.inventory_item_id,
3721 p_organization_id => l_Qte_Line_Rec.organization_id,
3722 x_return_status => x_return_status,
3723 x_msg_count => x_msg_count,
3724 x_msg_data => x_msg_data);
3725 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3726 RAISE FND_API.G_EXC_ERROR;
3727 END IF;
3728
3729 -- bug 5196952 validate the ship method code
3730 if (l_Shipment_Tbl.count > 0 ) then
3731
3732 IF (l_Shipment_Tbl(1).ship_method_code is not null and l_Shipment_Tbl(1).ship_method_code <> fnd_api.g_miss_char) then
3733
3734 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3735 aso_debug_pub.add('Create_Quote_lines - before validate ship_method_code ', 1, 'N');
3736 end if;
3737 ASO_VALIDATE_PVT.validate_ship_method_code
3738 (
3739 p_init_msg_list => fnd_api.g_false,
3740 p_qte_header_id => fnd_api.g_miss_num,
3741 p_qte_line_id => fnd_api.g_miss_num,
3742 p_organization_id => lx_qte_line_rec.organization_id,
3743 p_ship_method_code => l_Shipment_Tbl(1).ship_method_code,
3744 p_operation_code => 'CREATE',
3745 x_return_status => x_return_status,
3746 x_msg_count => x_msg_count,
3747 x_msg_data => x_msg_data);
3748
3749 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3750 aso_debug_pub.add('Create_Quote_lines - After validate ship_method_code ', 1, 'N');
3751 end if;
3752
3753 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3754 RAISE FND_API.G_EXC_ERROR;
3755 END IF;
3756 end if; -- end if for ship method code check
3757 end if; -- end if for the ship tbl count
3758
3759
3760 FOR i in 1..p_qte_line_dtl_tbl.count LOOP
3761
3762 ASO_VALIDATE_PVT.Validate_Service(
3763 p_init_msg_list => FND_API.G_FALSE,
3764 p_inventory_item_id => l_qte_line_rec.inventory_item_id,
3765 p_start_date_active => l_qte_line_rec.start_date_active,
3766 p_end_date_active => l_qte_line_rec.end_date_active,
3767 p_service_duration => p_qte_line_dtl_tbl(i).service_duration,
3768 p_service_period => p_qte_line_dtl_tbl(i).service_period,
3769 p_service_coterminate_flag => p_qte_line_dtl_tbl(i).service_coterminate_flag,
3770 p_organization_id => l_Qte_Line_Rec.organization_id,
3771 x_return_status => x_return_status,
3772 x_msg_count => x_msg_count,
3773 x_msg_data => x_msg_data);
3774
3775 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3776
3777 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3778 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
3779 FND_MESSAGE.Set_Token('INFO','SERVICE', FALSE);
3780 FND_MSG_PUB.ADD;
3781 END IF;
3782
3783 RAISE FND_API.G_EXC_ERROR;
3784
3785 END IF;
3786
3787
3788 --validate service period
3789
3790 ASO_VALIDATE_PVT.Validate_UOM_code(
3791 p_init_msg_list => FND_API.G_FALSE,
3792 p_uom_code => p_qte_line_dtl_tbl(i).service_period,
3793 p_organization_id => l_qte_line_rec.organization_id,
3794 p_inventory_item_id => l_qte_line_rec.inventory_item_id,
3795 x_return_status => x_return_status,
3796 x_msg_count => x_msg_count,
3797 x_msg_data => x_msg_data);
3798
3799 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3800 RAISE FND_API.G_EXC_ERROR;
3801 END IF;
3802
3803
3804 --New code for Bug # 2498942 fix
3805
3806 IF p_qte_line_dtl_tbl(i).service_ref_type_code = 'QUOTE'
3807 AND p_qte_line_dtl_tbl(i).service_ref_line_id IS NOT NULL
3808 AND p_qte_line_dtl_tbl(i).service_ref_line_id <> FND_API.G_MISS_NUM THEN
3809
3810 OPEN C_line_category_code(p_qte_line_dtl_tbl(i).service_ref_line_id);
3811 FETCH C_line_category_code INTO l_line_category_code;
3812
3813 IF C_line_category_code%FOUND AND l_line_category_code = 'RETURN' THEN
3814
3815 CLOSE C_line_category_code;
3816
3817 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3818 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SERVICE_REFERENCE');
3819 FND_MSG_PUB.ADD;
3820 END IF;
3821
3822 RAISE FND_API.G_EXC_ERROR;
3823
3824 END IF;
3825
3826 CLOSE C_line_category_code;
3827
3828 END IF;
3829
3830
3831 --New code for Bug#3280130
3832
3833 if p_qte_line_dtl_tbl(i).service_ref_line_id is not null and
3834 p_qte_line_dtl_tbl(i).service_ref_line_id <> fnd_api.g_miss_num then
3835
3836 if p_qte_line_dtl_tbl(i).service_ref_type_code is null or
3837 p_qte_line_dtl_tbl(i).service_ref_type_code = fnd_api.g_miss_char then
3838
3839 x_return_status := fnd_api.g_ret_sts_error;
3840
3841 IF fnd_msg_pub.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3842 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
3843 FND_MESSAGE.Set_Token('COLUMN', 'SERVICE_REF_TYPE_CODE', FALSE);
3844 FND_MESSAGE.Set_Token('VALUE', p_qte_line_dtl_tbl(i).service_ref_type_code,FALSE);
3845 FND_MSG_PUB.ADD;
3846 END IF;
3847
3848 raise fnd_api.g_exc_error;
3849
3850 else
3851
3852 if aso_debug_pub.g_debug_flag = 'Y' then
3853 aso_debug_pub.add('CREATE_QUOTE_LINES: Before calling aso_validate_pvt.validate_service_ref_line_id');
3854 end if;
3855
3856 aso_validate_pvt.validate_service_ref_line_id (
3857 p_init_msg_list => fnd_api.g_false,
3858 p_service_ref_type_code => p_qte_line_dtl_tbl(i).service_ref_type_code,
3859 p_service_ref_line_id => p_qte_line_dtl_tbl(i).service_ref_line_id,
3860 p_qte_header_id => l_qte_line_rec.quote_header_id,
3861 x_return_status => x_return_status,
3862 x_msg_count => x_msg_count,
3863 x_msg_data => x_msg_data);
3864
3865 if aso_debug_pub.g_debug_flag = 'Y' then
3866 aso_debug_pub.add('CREATE_QUOTE_LINES: After calling aso_validate_pvt.validate_service_ref_line_id');
3867 aso_debug_pub.add('CREATE_QUOTE_LINES: x_return_status: '|| x_return_status);
3868 end if;
3869
3870 if x_return_status <> fnd_api.g_ret_sts_success then
3871 raise fnd_api.g_exc_error;
3872 end if;
3873
3874 end if;
3875
3876 end if;
3877
3878 --End new code for Bug#3280130
3879
3880 END LOOP;
3881
3882 END IF;
3883
3884 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3885 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: CREATE_QUOTE_LINES: End of Inter entity validations');
3886 end if;
3887
3888
3889 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3890
3891 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3892 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
3893 FND_MSG_PUB.ADD;
3894 END IF;
3895
3896 RAISE FND_API.G_EXC_ERROR;
3897
3898 END IF;
3899
3900
3901 l_qte_header_rec := ASO_UTILITY_PVT.Query_Header_Row(l_qte_line_rec.QUOTE_HEADER_ID);
3902
3903 -- IF NVL(FND_PROFILE.value('ASO_TCA_VALIDATE'),'N') = 'Y' THEN
3904 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3905 aso_debug_pub.add('Validation level is set',1,'N');
3906 end if;
3907
3908 ASO_CHECK_TCA_PVT.check_line_account_info(
3909 p_api_version => 1.0,
3910 p_init_msg_list => FND_API.G_FALSE,
3911 p_cust_account_id => l_qte_header_rec.cust_account_id,
3912 p_qte_line_rec => l_qte_line_rec,
3913 p_line_shipment_tbl => l_shipment_tbl,
3914 p_application_type_code => l_control_rec.application_type_code,
3915 x_return_status => l_return_status,
3916 x_msg_count => l_msg_count,
3917 x_msg_data => l_msg_data );
3918
3919 IF l_Return_Status <> FND_API.G_RET_STS_SUCCESS THEN
3920 raise FND_API.G_EXC_ERROR;
3921 END IF;
3922 -- END IF;
3923
3924 ASO_TRADEIN_PVT.LineType(
3925 p_init_msg_list => FND_API.G_FALSE,
3926 p_qte_header_rec => l_qte_header_rec,
3927 p_qte_line_rec => l_qte_line_rec,
3928 x_return_status => x_return_status,
3929 x_msg_count => x_msg_count,
3930 x_msg_data => x_msg_data);
3931
3932 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3933 RAISE FND_API.G_EXC_ERROR;
3934 END IF;
3935 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3936 aso_debug_pub.add('after order type'|| x_return_status, 1, 'Y');
3937 END IF;
3938
3939
3940 If (p_qte_header_rec.order_type_id = FND_API.G_MISS_NUM )then -- [This is for backward compatibility]
3941 l_db_order_type_id := l_qte_header_rec.order_type_id;
3942 else
3943 l_db_order_type_id := p_qte_header_rec.order_type_id;
3944 end if;
3945
3946 If (l_db_order_type_id = l_qte_header_rec.order_type_id) and (l_qte_line_rec.order_line_type_id <> FND_API.G_MISS_NUM) then
3947 ASO_validate_PVT.Validate_ln_type_for_ord_type(
3948 p_init_msg_list => FND_API.G_FALSE,
3949 p_qte_header_rec => l_qte_header_rec,
3950 P_Qte_Line_rec => l_qte_line_rec,
3951 x_return_status => x_return_status,
3952 x_msg_count => x_msg_count,
3953 x_msg_data => x_msg_data);
3954
3955 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3956 RAISE FND_API.G_EXC_ERROR;
3957 END IF;
3958 End if;
3959
3960 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3961 aso_debug_pub.add('x_return_status for Validate_ln_type_for_ord_type'|| x_return_status, 1, 'Y');
3962 END IF;
3963
3964 aso_validate_pvt.Validate_po_line_number
3965 (
3966 p_init_msg_list => fnd_api.g_false,
3967 p_qte_header_rec => l_qte_header_rec,
3968 P_Qte_Line_rec => l_qte_line_rec,
3969 x_return_status => x_return_status,
3970 x_msg_count => x_msg_count,
3971 x_msg_data => x_msg_data);
3972
3973 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3974 RAISE FND_API.G_EXC_ERROR;
3975 END IF;
3976
3977 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3978 aso_debug_pub.add('x_return_status for Validate_po_line_number'|| x_return_status, 1, 'Y');
3979 END IF;
3980
3981
3982 ASO_TRADEIN_PVT.Validate_Line_Tradein(
3983 p_init_msg_list => FND_API.G_FALSE,
3984 p_qte_header_rec => l_qte_header_rec,
3985 P_Qte_Line_rec => l_qte_line_rec,
3986 x_return_status => x_return_status,
3987 x_msg_count => x_msg_count,
3988 x_msg_data => x_msg_data);
3989
3990 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3991 RAISE FND_API.G_EXC_ERROR;
3992 END IF;
3993
3994 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3995 aso_debug_pub.add('ASO_QUOTE_LINES Create_Quote_lines - after validate_line_tradein '||x_return_status, 1, 'Y');
3996 end if;
3997
3998 ASO_TRADEIN_PVT.Validate_IB_Return_Qty(
3999 p_init_msg_list => FND_API.G_FALSE,
4000 p_Qte_Line_rec => l_qte_line_rec,
4001 p_Qte_Line_Dtl_Tbl => l_qte_line_dtl_tbl,
4002 x_return_status => x_return_status,
4003 x_msg_count => x_msg_count,
4004 x_msg_data => x_msg_data);
4005
4006 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4007 RAISE FND_API.G_EXC_ERROR;
4008 END IF;
4009 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4010 aso_debug_pub.add('ASO_QUOTE_LINES Create_Quote_lines - after validate_IB_Return_Qty '||x_return_status, 1, 'Y');
4011 end if;
4012
4013 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
4014 ASO_VALIDATE_PVT.Validate_Sales_Credit_Return(
4015 p_init_msg_list => FND_API.G_FALSE,
4016 p_sales_credit_tbl => p_sales_credit_tbl,
4017 p_qte_line_rec => l_qte_line_rec,
4018 x_return_status => x_return_status,
4019 x_msg_count => x_msg_count,
4020 x_msg_data => x_msg_data);
4021 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4022 RAISE FND_API.G_EXC_ERROR;
4023 END IF;
4024 END IF;
4025
4026 -- EDU
4027 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4028 aso_debug_pub.add('Create_Quote_Line - before Validate_Agreement:l_qte_line_rec.Agreement_Id: '||l_qte_line_rec.Agreement_Id, 1, 'N');
4029 end if;
4030
4031 IF (l_qte_line_rec.Agreement_Id IS NOT NULL AND
4032 l_qte_line_rec.Agreement_Id <> FND_API.G_MISS_NUM) THEN
4033 ASO_VALIDATE_PVT.Validate_Agreement(
4034 p_init_msg_list => FND_API.G_FALSE,
4035 P_Agreement_Id => l_qte_line_rec.Agreement_Id,
4036 x_return_status => x_return_status,
4037 x_msg_count => x_msg_count,
4038 x_msg_data => x_msg_data);
4039 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4040 aso_debug_pub.add('Create_Quote_Line - after Validate_Agreement:x_return_status: '||x_return_status, 1, 'N');
4041 end if;
4042
4043 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4044 RAISE FND_API.G_EXC_ERROR;
4045 END IF;
4046 END IF;
4047 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4048 aso_debug_pub.add('Create_Quote - after Validate_Agreement:l_qte_line_rec.UOM_Code: '||l_qte_line_rec.UOM_Code,1, 'N');
4049 aso_debug_pub.add('Create_Quote - after Validate_Agreement:l_qte_line_rec.Quantity: '||l_qte_line_rec.Quantity,1, 'N');
4050 end if;
4051 IF l_qte_line_rec.UOM_Code = 'ENR' THEN
4052 IF l_qte_line_rec.Quantity <> 1 THEN
4053 x_return_status := FND_API.G_RET_STS_ERROR;
4054 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4055 FND_MESSAGE.Set_Name('ASO', 'ASO_EDU_INVALID_QTY');
4056 FND_MSG_PUB.ADD;
4057 END IF;
4058 RAISE FND_API.G_EXC_ERROR;
4059 END IF;
4060 END IF;
4061 -- EDU
4062
4063 -- Validate the invoice to cust party id and payment info, if any
4064 IF l_payment_tbl.count = 0 then
4065 l_payment_tbl := aso_utility_pvt.Query_Payment_Rows( p_qte_line_rec.QUOTE_HEADER_ID,p_qte_line_rec.quote_line_id);
4066 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4067 aso_debug_pub.add('Before calling Validate_cc_info payment_tbl count is: '|| l_payment_tbl.count, 1, 'Y');
4068 END IF;
4069 End if;
4070
4071 IF l_payment_tbl.count > 0 then
4072 l_payment_rec := l_payment_tbl(1);
4073 IF l_payment_rec.payment_type_code = 'CREDIT_CARD' THEN
4074 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4075 aso_debug_pub.add('Before calling Validate_cc_info ', 1, 'Y');
4076 END IF;
4077 l_qte_header_rec := ASO_UTILITY_PVT.Query_Header_Row (p_qte_line_rec.Quote_Header_Id );
4078
4079 aso_validate_pvt.Validate_cc_info
4080 (
4081 p_init_msg_list => fnd_api.g_false,
4082 p_payment_rec => l_payment_rec,
4083 p_qte_header_rec => l_qte_header_rec,
4084 P_Qte_Line_rec => p_qte_line_rec,
4085 x_return_status => x_return_status,
4086 x_msg_count => x_msg_count,
4087 x_msg_data => x_msg_data);
4088
4089 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4090 aso_debug_pub.add('after calling Validate_cc_info ', 1, 'Y');
4091 aso_debug_pub.add('Validate_cc_info Return Status: '||x_return_status, 1, 'Y');
4092 END IF;
4093
4094 if x_return_status <> fnd_api.g_ret_sts_success then
4095 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4096 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4097 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
4098 RAISE FND_API.G_EXC_ERROR;
4099 ELSE
4100 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4101 END IF;
4102 end if;
4103 END IF;
4104
4105 End if;
4106 -- the payment tbl count may have been changed, hence re-set back the value
4107 l_Payment_Tbl := l_orig_payment_tbl ;
4108
4109 Insert_Quote_Line_Rows(
4110 P_Qte_Line_Rec => l_Qte_Line_Rec ,
4111 P_Control_Rec => l_Control_Rec ,
4112 P_Payment_Tbl => l_Payment_Tbl ,
4113 P_Price_Adj_Tbl => l_Price_Adj_Tbl ,
4114 P_Qte_Line_Dtl_tbl => l_Qte_Line_Dtl_tbl ,
4115 P_Shipment_Tbl => l_Shipment_Tbl ,
4116 P_Tax_Detail_Tbl => l_Tax_Detail_Tbl ,
4117 P_Freight_Charge_Tbl => l_Freight_Charge_Tbl ,
4118 P_Price_Attributes_Tbl => l_Price_Attributes_Tbl ,
4119 P_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl ,
4120 P_Line_Attribs_Ext_Tbl => l_Line_Attribs_Ext_Tbl,
4121 P_Sales_Credit_Tbl => l_sales_credit_tbl,
4122 P_Quote_Party_Tbl => l_quote_party_tbl,
4123 X_Qte_Line_Rec => X_Qte_Line_Rec ,
4124 X_Payment_Tbl => X_Payment_Tbl ,
4125 X_Price_Adj_Tbl => X_Price_Adj_Tbl ,
4126 X_Qte_Line_Dtl_tbl => X_Qte_Line_Dtl_tbl ,
4127 X_Shipment_Tbl => X_Shipment_Tbl ,
4128 X_Tax_Detail_Tbl => X_Tax_Detail_Tbl ,
4129 X_Freight_Charge_Tbl => X_Freight_Charge_Tbl ,
4130 X_Price_Attributes_Tbl => X_Price_Attributes_Tbl ,
4131 X_Price_Adj_Attr_Tbl => X_Price_Adj_Attr_Tbl ,
4132 X_Line_Attribs_Ext_Tbl => X_Line_Attribs_Ext_Tbl,
4133 X_Sales_Credit_Tbl =>x_sales_credit_tbl,
4134 X_Quote_Party_Tbl =>x_quote_party_tbl,
4135 X_Return_Status => X_return_status,
4136 X_Msg_Count => x_msg_count,
4137 X_Msg_Data => x_msg_data
4138 );
4139
4140 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4141 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4142 FND_MESSAGE.Set_Name('ASO', 'ASO_INSERT_ERROR');
4143 FND_MSG_PUB.ADD;
4144 END IF;
4145 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4146 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4147 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
4148 RAISE FND_API.G_EXC_ERROR;
4149 END IF;
4150 END IF;
4151
4152 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4153 aso_debug_pub.add('Create_Quote_lines - after insert_quote_line_rows '||x_return_status, 1, 'Y');
4154 end if;
4155
4156 -- Service line quantity update Bmishra 01/09/02
4157 l_call_update := FND_API.G_FALSE;
4158 OPEN c_service (X_Qte_Line_Rec.quote_line_id);
4159
4160 FETCH c_service INTO l_service_item_flag, l_serviceable_product_flag;
4161 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4162 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Create_Quote_lines: l_service_item_flag'||l_service_item_flag,1, 'N');
4163 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Create_Quote_lines: l_serviceable_product_flag'||l_serviceable_product_flag,1, 'N');
4164 end if;
4165 IF c_service%FOUND THEN
4166 CLOSE c_service;
4167 IF l_service_item_flag = 'Y' THEN
4168 l_service := FND_API.G_TRUE;
4169 l_call_update := FND_API.G_TRUE;
4170 ELSIF l_serviceable_product_flag = 'Y' THEN
4171 l_service := FND_API.G_FALSE;
4172 l_call_update := FND_API.G_TRUE;
4173 END IF;
4174
4175 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4176 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Create_Quote_lines: l_call_update'||l_call_update,1, 'N');
4177 end if;
4178
4179 IF l_call_update = FND_API.G_TRUE THEN
4180 ASO_QUOTE_LINES_PVT.service_item_qty_update
4181 (p_qte_line_rec => X_Qte_Line_Rec ,
4182 p_service_item_flag => l_service,
4183 x_return_status => X_return_status
4184 );
4185 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4186 aso_debug_pub.add('Create_Quote_lines - after call to ASO_QUOTE_LINES_PVT.service_item_qty_update '|| x_return_status, 1, 'Y');
4187 end if;
4188 END IF;
4189 ELSE
4190 CLOSE c_service;
4191 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4192 aso_debug_pub.add('Create_quote_lines, Item not found in inventry',1,'N');
4193 end if;
4194 END IF;
4195
4196
4197 -- sales credits
4198 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4199 aso_debug_pub.add('Validate_Quote_Percent: BEFORE: X_Qte_Line_Rec.quote_header_id: '||X_Qte_Line_Rec.quote_header_id,1,'N');
4200 aso_debug_pub.add('Validate_Quote_Percent: BEFORE: X_Qte_Line_Rec.quote_line_id: '||X_Qte_Line_Rec.quote_line_id,1,'N');
4201 end if;
4202
4203 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
4204 IF x_sales_credit_tbl.count > 0 THEN
4205 IF x_sales_credit_tbl(1).quote_header_id IS NULL OR x_sales_credit_tbl(1).quote_header_id = FND_API.G_MISS_NUM THEN
4206 x_sales_credit_tbl(1).quote_header_id := X_Qte_Line_Rec.quote_header_id;
4207 END IF;
4208 IF x_sales_credit_tbl(1).quote_line_id IS NULL OR x_sales_credit_tbl(1).quote_line_id = FND_API.G_MISS_NUM THEN
4209 x_sales_credit_tbl(1).quote_line_id := X_Qte_Line_Rec.quote_line_id;
4210 END IF;
4211
4212 ASO_VALIDATE_PVT.Validate_Quote_Percent(
4213 p_init_msg_list => FND_API.G_FALSE,
4214 p_sales_credit_tbl => x_sales_credit_tbl,
4215 x_return_status => x_return_status,
4216 x_msg_count => x_msg_count,
4217 x_msg_data => x_msg_data
4218 );
4219 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4220 RAISE FND_API.G_EXC_ERROR;
4221 END IF;
4222 END IF;
4223 END IF;
4224
4225 -- end sales credits
4226
4227
4228 IF l_control_rec.line_pricing_event IS NOT NULL AND
4229 l_control_rec.line_pricing_event <> FND_API.G_MISS_CHAR THEN
4230
4231 -- call pricing engine
4232
4233 l_pricing_control_rec.pricing_event := l_control_rec.line_pricing_event;
4234 l_pricing_control_rec.request_type := l_control_rec.pricing_request_type;
4235 l_pricing_control_rec.price_mode := l_control_rec.price_mode;
4236
4237 l_qte_line_tbl(1) := l_qte_line_rec;
4238
4239 --New Code to call overload pricing_order
4240
4241 l_hd_price_attr_tbl := aso_utility_pvt.query_price_attr_rows(l_qte_header_rec.quote_header_id,null);
4242 l_hd_shipment_tbl := aso_utility_pvt.query_shipment_rows(l_qte_header_rec.quote_header_id,null);
4243
4244 if l_hd_shipment_tbl.count = 1 then
4245 l_hd_shipment_rec := l_hd_shipment_tbl(1);
4246 end if;
4247
4248
4249 ASO_PRICING_INT.Pricing_Order(
4250 P_Api_Version_Number => 1.0,
4251 P_Init_Msg_List => fnd_api.g_false,
4252 P_Commit => fnd_api.g_false,
4253 p_control_rec => l_pricing_control_rec,
4254 p_qte_header_rec => l_qte_header_rec,
4255 p_hd_shipment_rec => l_hd_shipment_rec,
4256 p_hd_price_attr_tbl => l_hd_price_attr_tbl,
4257 p_qte_line_tbl => l_qte_line_tbl,
4258 x_qte_header_rec => lx_qte_header_rec,
4259 x_qte_line_tbl => lx_qte_line_tbl,
4260 x_qte_line_dtl_tbl => lx_qte_line_dtl_tbl,
4261 x_price_adj_tbl => lx_price_adj_tbl,
4262 x_price_adj_attr_tbl => lx_price_adj_attr_tbl,
4263 x_price_adj_rltship_tbl => lx_price_adj_rltship_tbl,
4264 x_return_status => x_return_status,
4265 x_msg_count => x_msg_count,
4266 x_msg_data => x_msg_data );
4267
4268 if lx_qte_line_tbl.count > 0 then
4269 x_qte_line_rec := lx_qte_line_tbl(1);
4270 end if;
4271
4272 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4273
4274 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4275
4276 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4277
4278 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
4279
4280 RAISE FND_API.G_EXC_ERROR;
4281
4282 END IF;
4283
4284 END IF;
4285
4286
4287 END IF; -- pricing
4288
4289 /*
4290 *
4291 *
4292 IF l_control_rec.CALCULATE_TAX_FLAG = 'Y'THEN
4293 l_tax_control_rec.tax_level := 'SHIPPING';
4294 l_tax_control_rec.update_db := 'Y' ; --FND_API.G_TRUE;
4295
4296 l_tax_detail_rec.quote_header_id := l_qte_line_rec.quote_header_id;
4297 l_tax_detail_rec.quote_line_id := l_qte_line_rec.quote_line_id;
4298
4299 -- added to calc tax based on accounts
4300 OPEN get_cust_acct( l_qte_line_rec.QUOTE_HEADER_ID);
4301 FETCH get_cust_acct into l_cust_acct;
4302 IF get_cust_acct%NOTFOUND THEN
4303 NULL;
4304 END IF;
4305 CLOSE get_cust_acct;
4306
4307 IF( l_qte_line_rec.invoice_to_party_site_id is not NULL
4308 AND l_qte_line_rec.invoice_to_party_site_id <> FND_API.G_MISS_NUM )
4309 AND (l_cust_Acct is NOT NULL AND l_cust_acct <> FND_API.G_MISS_NUM) THEN
4310
4311 ASO_PARTY_INT.GET_ACCT_SITE_USES (
4312 p_api_version => 1.0
4313 ,P_Cust_Account_Id => l_cust_acct
4314 ,P_Party_Site_Id => l_qte_line_rec.invoice_to_party_site_id
4315 ,P_Acct_Site_type => 'BILL_TO'
4316 ,x_return_status => l_return_status
4317 ,x_msg_count => l_msg_count
4318 ,x_msg_data => l_msg_data
4319 ,x_site_use_id => l_invoice_org_id
4320 );
4321 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4322 aso_debug_pub.add('Create_Quote_lines - after create_acct_site_uses- invoice_org_id: '||nvl(to_char(l_invoice_org_id),'null'), 1, 'N');
4323 end if;
4324 IF L_Return_Status <> FND_API.G_RET_STS_SUCCESS THEN
4325 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
4326 THEN
4327 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_ID');
4328 FND_MESSAGE.Set_Token('COLUMN', 'INVOICE_TO_SITE_USE_ID',FALSE);
4329 FND_MSG_PUB.ADD;
4330 END IF;
4331 -- raise FND_API.G_EXC_ERROR;
4332 END IF;
4333 END IF;
4334
4335 lx_tax_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows(l_qte_line_rec.quote_header_id,x_qte_line_rec.quote_line_id);
4336
4337 FOR i in 1..lx_tax_shipment_tbl.count LOOP
4338 l_tax_detail_rec.quote_shipment_id := lx_tax_shipment_tbl(i).shipment_id;
4339
4340 IF (lx_tax_shipment_tbl(i).ship_to_party_site_id is not NULL AND lx_tax_shipment_tbl(i).ship_to_party_site_id <> FND_API.G_MISS_NUM)
4341 AND(l_cust_acct is NOT NULL AND l_cust_acct <> FND_API.G_MISS_NUM )
4342 THEN
4343 ASO_PARTY_INT.GET_ACCT_SITE_USES (
4344 p_api_version => 1.0
4345 ,P_Cust_Account_Id => l_cust_acct
4346 ,P_Party_Site_Id => lx_tax_shipment_tbl(i).ship_to_party_site_id
4347 ,P_Acct_Site_type => 'SHIP_TO'
4348 ,x_return_status => l_return_status
4349 ,x_msg_count => l_msg_count
4350 ,x_msg_data => l_msg_data
4351 ,x_site_use_id => l_ship_org_id
4352 );
4353
4354 IF L_Return_Status <> FND_API.G_RET_STS_SUCCESS THEN
4355 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
4356 THEN
4357 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_ID');
4358 FND_MESSAGE.Set_Token('COLUMN', 'INVOICE_TO_SITE_USE_ID',FALSE);
4359 FND_MSG_PUB.ADD;
4360 END IF;
4361 -- raise FND_API.G_EXC_ERROR;
4362 END IF;
4363
4364 END IF;
4365
4366 ASO_TAX_INT.Calculate_Tax(
4367 P_Api_Version_Number => 1.0,
4368 p_quote_header_id => l_qte_line_rec.quote_header_id,
4369 P_Tax_Control_Rec => l_tax_control_rec,
4370 x_tax_amount => x_tax_amount ,
4371 x_tax_detail_tbl => l_tax_detail_tbl,
4372 X_Return_Status => x_return_status ,
4373 X_Msg_Count => x_msg_count ,
4374 X_Msg_Data => x_msg_data );
4375
4376
4377 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4378 aso_debug_pub.add('Create_Quote_lines - after_calculate_tax- tax_amount: '||nvl(to_char(x_tax_amount),'null'), 1, 'N');
4379 end if;
4380
4381 if l_tax_detail_tbl.count > 0 then
4382 x_tax_detail_tbl(i) := l_tax_detail_tbl(1);
4383 end if;
4384
4385 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4386 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4387 FND_MESSAGE.Set_Name('ASO', 'ASO_TAX_CALCULATION');
4388 FND_MSG_PUB.ADD;
4389 END IF;
4390 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4391 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4392 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
4393 RAISE FND_API.G_EXC_ERROR;
4394 END IF;
4395 END IF;
4396 END LOOP;
4397
4398 END IF;
4399
4400 *
4401 */
4402
4403 -- check the profile option for reservation and create reservation if needed
4404
4405 IF FND_PROFILE.Value('ASO_RESERVATION_LEVEL') = 'AUTO_CART' THEN
4406 l_shipment_tbl := x_shipment_tbl;
4407
4408 OPEN c_reservation(x_qte_line_rec.inventory_item_id,x_qte_line_rec.organization_id);
4409 FETCH c_reservation INTO l_inv_item,l_organization_id;
4410 IF c_reservation%FOUND THEN
4411
4412 FOR i in 1..l_shipment_tbl.count LOOP
4413 ASO_RESERVATION_INT.Create_reservation(
4414 P_Api_Version_Number => 1.0,
4415 p_line_rec => x_qte_line_rec,
4416 p_shipment_rec => l_shipment_tbl(i),
4417 X_Return_Status => x_return_status,
4418 X_Msg_Count => x_msg_count,
4419 X_Msg_Data => x_msg_data,
4420 X_quantity_reserved => l_shipment_tbl_out(i).reserved_quantity,
4421 X_reservation_id => l_shipment_tbl_out(i).reservation_id
4422 );
4423
4424 l_shipment_tbl(i).reserved_quantity := l_shipment_tbl_out(i).reserved_quantity;
4425 l_shipment_tbl(i).reservation_id := l_shipment_tbl_out(i).reservation_id;
4426
4427
4428 UPDATE ASO_SHIPMENTS
4429 SET reservation_id = l_shipment_tbl(i).reservation_id,
4430 reserved_quantity = l_shipment_tbl(i).reserved_quantity,
4431 last_update_date = sysdate,
4432 last_updated_by = fnd_global.user_id,
4433 last_update_login = fnd_global.conc_login_id
4434 WHERE shipment_id = l_shipment_tbl(i).shipment_id;
4435
4436 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4437 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4438 FND_MESSAGE.Set_Name('ASO', 'ASO_CREATING_RESERVATION');
4439 FND_MESSAGE.Set_Token('LINE' , x_qte_line_rec.line_number, FALSE);
4440 FND_MSG_PUB.ADD;
4441 END IF;
4442 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4443 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4444 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
4445 RAISE FND_API.G_EXC_ERROR;
4446 END IF;
4447 END IF;
4448
4449
4450 END LOOP;
4451
4452 END IF;
4453 CLOSE c_reservation;
4454 END IF; --automatic reservation
4455
4456
4457 IF p_update_header_flag = 'Y' THEN
4458
4459 -- Update Quote total info (do summation to get TOTAL_LIST_PRICE,
4460 -- TOTAL_ADJUSTED_AMOUNT, TOTAL_TAX, TOTAL_SHIPPING_CHARGE, SURCHARGE,
4461 -- TOTAL_QUOTE_PRICE, PAYMENT_AMOUNT)
4462 -- IF calculate_tax_flag = 'N', not summation on line level tax,
4463 -- just take the value of p_qte_rec.total_tax as the total_tax
4464 -- IF calculate_Freight_Charge = 'N', not summation on line level freight charge,
4465 -- just take the value of p_qte_rec.total_freight_charge
4466 -- how can i get the calc_tax_flag and calc_freight_charge_flag ??
4467
4468 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4469 aso_debug_pub.add('Create_Quote_lines - before update_quote_total '||l_return_status, 1, 'Y');
4470 end if;
4471
4472 ASO_QUOTE_HEADERS_PVT.Update_Quote_Total (
4473 P_Qte_Header_id => x_Qte_line_rec.quote_header_id,
4474 P_calculate_tax => l_control_rec.CALCULATE_TAX_FLAG,
4475 P_calculate_freight_charge=> l_control_rec.calculate_freight_charge_flag,
4476 p_control_rec => l_control_rec,
4477 X_Return_Status => l_return_status,
4478 X_Msg_Count => x_msg_count,
4479 X_Msg_Data => x_msg_data);
4480
4481 IF l_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4482 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4483 FND_MESSAGE.Set_Name('ASO', 'ASO_UPDATE_QUOTE_TOTAL');
4484 -- FND_MESSAGE.Set_Token('LINE' , x_qte_line_rec.line_number, FALSE);
4485 FND_MSG_PUB.ADD;
4486 END IF;
4487 END IF;
4488
4489
4490 IF l_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4491 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4492 FND_MESSAGE.Set_Name('ASO', 'ASO_UPDATE_QUOTE_TOTAL');
4493 -- FND_MESSAGE.Set_Token('LINE' , x_qte_line_rec.line_number, FALSE);
4494 FND_MSG_PUB.ADD;
4495 END IF;
4496 END IF;
4497
4498 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4499 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4500 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4501 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
4502 x_return_status := FND_API.G_RET_STS_ERROR;
4503 RAISE FND_API.G_EXC_ERROR;
4504 END IF;
4505
4506 END IF;
4507
4508 -- Change START
4509 -- Release 12 TAP Changes
4510 -- Girish Sachdeva 8/30/2005
4511 -- Adding the call to insert record in the ASO_CHANGED_QUOTES
4512
4513 SELECT quote_number
4514 INTO l_quote_number
4515 FROM aso_quote_headers_all -- bug 8968033
4516 WHERE quote_header_id = x_Qte_line_rec.quote_header_id ;
4517
4518 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4519 aso_debug_pub.add('ASO_QUOTE_LINES_PVT.Create_Quote_lines : Calling ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES, quote number : ' || l_quote_number, 1, 'Y');
4520 END IF;
4521
4522 -- Call to insert record in ASO_CHANGED_QUOTES
4523 ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES(l_quote_number);
4524
4525 -- Change END
4526
4527
4528 --
4529 -- End of API body
4530 --
4531
4532 -- Standard check for p_commit
4533 IF FND_API.to_Boolean( p_commit )
4534 THEN
4535 COMMIT WORK;
4536 END IF;
4537
4538
4539
4540 -- Standard call to get message count and if count is 1, get message info.
4541 FND_MSG_PUB.Count_And_Get
4542 ( p_count => x_msg_count,
4543 p_data => x_msg_data
4544 );
4545
4546 EXCEPTION
4547 WHEN FND_API.G_EXC_ERROR THEN
4548 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
4549 P_API_NAME => L_API_NAME
4550 ,P_PKG_NAME => G_PKG_NAME
4551 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
4552 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
4553 ,P_SQLCODE => SQLCODE
4554 ,P_SQLERRM => SQLERRM
4555 ,X_MSG_COUNT => X_MSG_COUNT
4556 ,X_MSG_DATA => X_MSG_DATA
4557 ,X_RETURN_STATUS => X_RETURN_STATUS);
4558
4559 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4560 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
4561 P_API_NAME => L_API_NAME
4562 ,P_PKG_NAME => G_PKG_NAME
4563 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
4564 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
4565 ,P_SQLCODE => SQLCODE
4566 ,P_SQLERRM => SQLERRM
4567 ,X_MSG_COUNT => X_MSG_COUNT
4568 ,X_MSG_DATA => X_MSG_DATA
4569 ,X_RETURN_STATUS => X_RETURN_STATUS);
4570
4571 WHEN OTHERS THEN
4572 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
4573 P_API_NAME => L_API_NAME
4574 ,P_PKG_NAME => G_PKG_NAME
4575 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
4576 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
4577 ,P_SQLCODE => SQLCODE
4578 ,P_SQLERRM => SQLERRM
4579 ,X_MSG_COUNT => X_MSG_COUNT
4580 ,X_MSG_DATA => X_MSG_DATA
4581 ,X_RETURN_STATUS => X_RETURN_STATUS);
4582
4583 End Create_quote_lines;
4584
4585
4586
4587
4588 -- *******************************************************
4589 -- Start of Comments
4590 -- *******************************************************
4591 -- API Name: Update_Quote_Line
4592 -- Type : Public
4593 -- Pre-Req :
4594 -- Parameters:
4595 -- IN
4596 -- p_api_version_number IN NUMBER Required
4597 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
4598 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
4599 -- p_identity_salesforce_id IN NUMBER Optional Default = NULL
4600 -- P_qte_lines_Rec IN qte_line_Rec_Type Required
4601 -- P_quote_header_id IN NUMBER Required
4602 -- P_header_last_update_date IN DATE Required
4603 -- P_Payment_Tbl IN Payment_Tbl_Type
4604 -- P_Price_Adj_Tbl IN Price_Adj_Tbl_Type
4605 -- P_Qte_Line_Dtl_Rec IN Qte_Line_Dtl_Rec_Type
4606 -- P_Shipment_Tbl IN Shipment_Tbl_Type
4607 -- P_Tax_Details_Tbl IN Tax_Details_Tbl_Type
4608 -- P_Freight_Charges_Tbl IN Freight_Charges_Tbl_Type
4609 -- P_Line_Relationship_Tbl IN Line_Relationship_Tbl_Type
4610 -- P_Price_Attributes_Tbl IN Price_Attributes_Tbl_Type
4611 -- P_Price_Adj_Relationship_Tbl IN Price_Adj_Relationship_Tbl_Type
4612 -- P_Update_Header_Flag IN VARCHAR2 Optional Default = FND_API.G_TRUE
4613 -- OUT:
4614 -- X_quote_line_id OUT NOCOPY /* file.sql.39 change */ NUMBER,
4615 -- x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
4616 -- x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
4617 -- x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
4618 -- Version : Current version 2.0
4619 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
4620 -- and basic operation, developer must manually add parameters and business logic as necessary.
4621 --
4622 -- End of Comments
4623 --
4624 -- Hint: Add corresponding update detail table procedures if it's master-detail relationship.
4625
4626 PROCEDURE Update_Quote_Line(
4627 P_Api_Version_Number IN NUMBER,
4628 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
4629 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
4630 P_Validation_Level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
4631 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type := ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec,
4632 P_Qte_Line_Rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_qte_line_REC,
4633 P_Control_REC IN ASO_QUOTE_PUB.Control_Rec_Type := ASO_QUOTE_PUB.G_MISS_Control_Rec,
4634 P_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Payment_TBL,
4635 P_Price_Adj_Tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Price_Adj_TBL,
4636 P_Qte_Line_Dtl_tbl IN ASO_QUOTE_PUB.Qte_Line_Dtl_tbl_Type := ASO_QUOTE_PUB.G_MISS_qte_line_dtl_TBL,
4637 P_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_shipment_TBL,
4638 P_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_MISS_tax_detail_TBL,
4639 P_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type := ASO_QUOTE_PUB.G_MISS_freight_charge_TBL,
4640 P_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Price_attributes_TBL,
4641 P_Price_Adj_Attr_Tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type := ASO_QUOTE_PUB.G_Miss_PRICE_ADJ_ATTR_Tbl,
4642 P_Line_Attribs_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_type := ASO_QUOTE_PUB.G_Miss_Line_Attribs_Ext_Tbl,
4643 P_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl,
4644 P_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl,
4645 P_Update_Header_Flag IN VARCHAR2 := 'Y',
4646 X_Qte_Line_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Rec_Type,
4647 X_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
4648 X_Price_Adj_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
4649 X_Qte_Line_Dtl_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type,
4650 X_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Tbl_Type,
4651 X_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
4652 X_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type ,
4653 X_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type ,
4654 X_Price_Adj_Attr_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
4655 X_Line_Attribs_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_type,
4656 X_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
4657 X_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
4658 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
4659 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
4660 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
4661 )
4662 IS
4663 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
4664 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
4665
4666 Cursor C_Get_quote(c_QUOTE_LINE_ID Number) IS
4667 SELECT head.LAST_UPDATE_DATE, head.QUOTE_STATUS_ID, head.QUOTE_NUMBER,
4668 head.TOTAL_ADJUSTED_PERCENT,head.quote_expiration_date
4669 FROM ASO_QUOTE_HEADERS_ALL head,
4670 ASO_QUOTE_LINES_ALL line
4671 WHERE head.QUOTE_HEADER_ID = line.QUOTE_HEADER_ID
4672 AND line.QUOTE_LINE_ID = c_QUOTE_LINE_ID;
4673
4674 CURSOR C_Qte_Status(c_qte_status_id NUMBER) IS
4675 SELECT UPDATE_ALLOWED_FLAG, AUTO_VERSION_FLAG FROM ASO_QUOTE_STATUSES_B
4676 WHERE quote_status_id = c_qte_status_id;
4677
4678 CURSOR C_Qte_Version (X_qte_number NUMBER) IS
4679 SELECT max(quote_version)
4680 FROM ASO_QUOTE_HEADERS_ALL
4681 WHERE quote_number = X_qte_number;
4682
4683 CURSOR C_Inst_Details (X_shipment_id NUMBER) IS
4684 SELECT sum(customer_product_quantity) FROM cs_line_inst_details
4685 WHERE quote_line_shipment_id = X_shipment_id;
4686
4687 -- hyang csi change 1935614
4688 CURSOR C_CSI_Details (X_quote_line_id NUMBER) IS
4689 select b.quantity
4690 from csi_t_transaction_lines a, csi_t_txn_line_details b
4691 where a.source_transaction_table='ASO_QUOTE_LINES_ALL'
4692 and a.source_transaction_id = x_quote_line_id
4693 and a.transaction_line_id = b.transaction_line_id;
4694
4695 CURSOR C_ship_partial (l_quote_line_id NUMBER) IS
4696 SELECT count(*)
4697 FROM aso_shipments
4698 WHERE quote_line_id = l_quote_line_id;
4699
4700 CURSOR get_cust_acct(cust_QUOTE_HEADER_ID Number) IS
4701 SELECT CUST_ACCOUNT_ID
4702 FROM ASO_QUOTE_HEADERS_ALL
4703 WHERE QUOTE_HEADER_ID = cust_QUOTE_HEADER_ID;
4704
4705 Cursor C_exp_date(c_QUOTE_HEADER_ID Number) IS
4706 Select quote_expiration_date
4707 From ASO_QUOTE_HEADERS_ALL
4708 Where QUOTE_HEADER_ID = c_QUOTE_HEADER_ID;
4709
4710 CURSOR C_org_id IS
4711 SELECT org_id
4712 FROM aso_quote_lines_all
4713 WHERE quote_line_id = p_qte_line_rec.quote_line_id;
4714
4715 CURSOR c_inventory_item_id IS
4716 select inventory_item_id
4717 from aso_quote_lines_all
4718 where quote_line_id = P_Qte_Line_Rec.quote_line_id;
4719
4720 cursor c_service (p_qln_id number)is
4721 select service_item_flag,serviceable_product_flag
4722 from aso_quote_lines_All
4723 where quote_line_id = p_qln_id;
4724
4725 CURSOR C_qln_exist IS
4726 select quote_line_id from aso_quote_lines_all
4727 where quote_line_id = p_qte_line_rec.quote_line_id;
4728
4729 -- Cursor declaration for line_category_code and order_line_type_id change bug # 2208195
4730 cursor c_line_category_code(p_quote_line_id NUMBER) is
4731 select line_category_code
4732 from aso_quote_lines_all
4733 where quote_line_id = p_quote_line_id;
4734
4735 cursor c_order_line_type_id(p_quote_line_id NUMBER) is
4736 select a.line_category_code, a.order_line_type_id, b.config_header_id, b.config_revision_num
4737 from aso_quote_lines_all a, aso_quote_line_details b
4738 where a.quote_line_id = b.quote_line_id
4739 and a.quote_line_id = p_quote_line_id;
4740
4741 cursor c_item_type_code is
4742 select item_type_code
4743 from aso_quote_lines_all
4744 where quote_line_id = p_qte_line_rec.quote_line_id;
4745
4746 --New code for Bug # 2498942 fix
4747
4748 cursor c_service_exist is
4749 select quote_line_id
4750 from aso_quote_line_details
4751 where service_ref_line_id = p_qte_line_rec.quote_line_id;
4752
4753 --New Code for updating PBH
4754
4755 cursor c_pbh( p_price_adjustment_id number ) is
4756 select price_adjustment_id
4757 from aso_price_adj_relationships a
4758 where a.price_adjustment_id = ( select price_adjustment_id
4759 from aso_price_adjustments b
4760 where a.price_adjustment_id = b.price_adjustment_id
4761 and b.MODIFIER_LINE_TYPE_CODE = 'PBH')
4762 and a.rltd_price_adj_id = p_price_adjustment_id;
4763
4764 l_price_adjustment_id number;
4765
4766 l_api_version_number NUMBER := 1.0;
4767 l_last_update_date DATE;
4768 l_api_name VARCHAR2(50) := 'Update_Quote_Line';
4769 l_Return_Status VARCHAR2(50);
4770 l_Msg_Count NUMBER;
4771 l_Msg_Data VARCHAR2(240);
4772 l_qte_status_id NUMBER;
4773 l_update_allowed VARCHAR2(1);
4774 l_auto_version VARCHAR2(1);
4775 l_quote_number NUMBER;
4776 l_old_header_rec ASO_QUOTE_PUB.qte_header_rec_type;
4777 l_qte_header_rec ASO_QUOTE_PUB.qte_header_rec_type;
4778 l_quote_version NUMBER;
4779 x_quote_header_id NUMBER;
4780 l_hd_discount_percent NUMBER;
4781 header_id NUMBER;
4782 l_inventory_item_id NUMBER;
4783 l_organization_id NUMBER;
4784 l_ship_count NUMBER;
4785 l_cust_acct NUMBER;
4786 l_invoice_org_id NUMBER;
4787 l_ship_org_id NUMBER;
4788 l_org_id NUMBER;
4789 l_quote_exp_date DATE;
4790 l_service_item_flag varchar2(1);
4791 l_serviceable_product_flag varchar2(1);
4792 l_service varchar2(1);
4793 l_call_update varchar2(1);
4794 l_qln_exist NUMBER;
4795 l_line_category_code varchar2(30);
4796 l_order_line_type_id number;
4797 l_item_type_code varchar2(30);
4798 l_config_header_id number;
4799 l_config_revision_num number;
4800 l_db_order_type_id number;
4801
4802 l_Qte_Line_Rec ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_qte_line_REC;
4803 l_Payment_Tbl ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Payment_TBL;
4804 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Price_Adj_TBL;
4805 l_Qte_Line_Dtl_rec ASO_QUOTE_PUB.Qte_Line_Dtl_rec_Type := ASO_QUOTE_PUB.G_MISS_qte_line_dtl_REC;
4806 l_Shipment_Tbl ASO_QUOTE_PUB.Shipment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_shipment_TBL;
4807 l_Tax_Detail_Tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_MISS_tax_detail_TBL;
4808 l_Freight_Charge_Tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type := ASO_QUOTE_PUB.G_MISS_freight_charge_TBL;
4809 l_Line_Rltship_Tbl ASO_QUOTE_PUB.Line_Rltship_Tbl_Type := ASO_QUOTE_PUB.G_MISS_line_rltship_TBL;
4810 l_Price_Attributes_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Price_attributes_TBL;
4811 l_Price_Adj_rltship_Tbl ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type := ASO_QUOTE_PUB.G_MISS_price_adj_rltship_TBL;
4812 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type := ASO_QUOTE_PUB.G_Miss_PRICE_ADJ_ATTR_Tbl;
4813 l_Line_Attribs_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_type := ASO_QUOTE_PUB.G_Miss_Line_Attribs_Ext_Tbl;
4814 l_Qte_Line_Dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_tbl_Type := ASO_QUOTE_PUB.G_MISS_qte_line_dtl_TBL;
4815 l_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl;
4816 l_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl;
4817 l_qte_line_tbl ASO_QUOTE_PUB.Qte_Line_tbl_Type := ASO_QUOTE_PUB.G_MISS_QTE_LINE_TBL;
4818
4819 l_price_attributes_rec ASO_QUOTE_PUB.Price_Attributes_Rec_Type;
4820 l_price_adj_rec ASO_QUOTE_PUB.Price_Adj_Rec_Type;
4821 l_Price_Adj_Attr_rec ASO_QUOTE_PUB.Price_Adj_Attr_Rec_Type;
4822 l_Shipment_rec ASO_QUOTE_PUB.Shipment_rec_Type;
4823 l_Tax_Detail_rec ASO_QUOTE_PUB.Tax_Detail_rec_Type;
4824 l_payment_rec ASO_QUOTE_PUB.Payment_rec_Type;
4825 l_Freight_Charge_rec ASO_QUOTE_PUB.Freight_Charge_rec_Type;
4826 l_Line_Attribs_rec ASO_QUOTE_PUB.Line_Attribs_Ext_rec_type;
4827 l_Sales_Credit_rec ASO_QUOTE_PUB.Sales_Credit_rec_Type;
4828 l_Quote_Party_rec ASO_QUOTE_PUB.Quote_Party_rec_Type;
4829 lx_tax_shipment_tbl ASO_QUOTE_PUB.Shipment_tbl_Type;
4830 l_quantity NUMBER;
4831 my_message VARCHAR2(2000);
4832
4833 l_tax_control_rec ASO_TAX_INT.Tax_control_rec_type;
4834 x_tax_amount NUMBER;
4835 l_calc_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type := ASO_QUOTE_PUB.G_MISS_TAX_DETAIL_REC;
4836 l_pricing_control_rec ASO_PRICING_INT.PRICING_CONTROL_REC_TYPE;
4837
4838 l_db_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_Qte_Line_Rec;
4839 l_db_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Shipment_Tbl;
4840 l_db_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type := ASO_QUOTE_PUB.G_MISS_Shipment_Rec;
4841 l_hd_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Shipment_Tbl;
4842 l_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type := ASO_QUOTE_PUB.G_MISS_Shipment_Rec;
4843
4844 CURSOR c_line_relation (p_line_id number, p_rel_line_id number) IS
4845 SELECT 'x' FROM ASO_LINE_RELATIONSHIPS
4846 WHERE quote_line_id = p_line_id and
4847 related_quote_line_id = p_rel_line_id
4848 AND relationship_type_code = 'SERVICE';
4849
4850 CURSOR c_db_payment_terms(p_payment_id number) IS
4851 SELECT payment_term_id_from,payment_term_id
4852 FROM ASO_PAYMENTS
4853 WHERE payment_id = p_payment_id;
4854
4855 CURSOR c_db_ship_freight_terms(p_shipment_id number) IS
4856 SELECT ship_method_code_from,ship_method_code,
4857 Freight_terms_code_from,Freight_terms_code
4858 FROM ASO_SHIPMENTS
4859 WHERE shipment_id = p_shipment_id;
4860
4861 cursor c_service_ref_type_code(p_quote_line_detail_id number) is
4862 select service_ref_type_code from aso_quote_line_details
4863 where quote_line_detail_id = p_quote_line_detail_id;
4864
4865 cursor get_payment_type_code( l_payment_id Number) is
4866 select payment_type_code
4867 from aso_payments
4868 where payment_id = l_payment_id;
4869
4870 cursor get_bill_to_party( l_qte_line_id Number) is
4871 select invoice_to_cust_party_id
4872 from aso_quote_lines_all
4873 where quote_line_id = l_qte_line_id;
4874
4875 l_service_ref_type_code varchar2(30);
4876
4877 l_line_rel VARCHAR2(1);
4878 x_relationship_id NUMBER;
4879 l_line_rtlship_rec ASO_QUOTE_PUB.Line_Rltship_Rec_Type := ASO_QUOTE_PUB.G_MISS_Line_Rltship_REC;
4880 l_db_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_tbl_Type := ASO_QUOTE_PUB.G_MISS_qte_line_dtl_tbl;
4881
4882 l_copy_quote_control_rec aso_copy_quote_pub.copy_quote_control_rec_type;
4883 l_copy_quote_header_rec aso_copy_quote_pub.copy_quote_header_rec_type;
4884 l_qte_nbr number;
4885
4886 --new code to call overload pricing_order procedure
4887 l_hd_price_attr_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4888 lx_qte_line_tbl ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
4889 lx_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
4890 lx_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_tbl_Type;
4891 lx_price_adj_tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
4892 lx_price_adj_attr_tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
4893 lx_price_adj_rltship_tbl ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type;
4894
4895 -- bmishra defaulting framework
4896 l_def_control_rec ASO_DEFAULTING_INT.Control_Rec_Type := ASO_DEFAULTING_INT.G_MISS_CONTROL_REC;
4897 l_db_object_name VARCHAR2(30);
4898 --l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
4899 --l_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type := ASO_QUOTE_PUB.G_MISS_Payment_REC;
4900 lx_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
4901 lx_hd_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
4902 lx_hd_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
4903 lx_hd_misc_rec ASO_DEFAULTING_INT.Header_Misc_Rec_Type;
4904 lx_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
4905 lx_ln_misc_rec ASO_DEFAULTING_INT.Line_Misc_Rec_Type;
4906 lx_ln_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
4907 lx_ln_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
4908 lx_ln_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
4909 lx_changed_flag VARCHAR2(1);
4910 lx_ln_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
4911 lx_ln_Shipment_Tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
4912 l_control_rec ASO_QUOTE_PUB.Control_Rec_Type := p_control_rec;
4913 l_Orig_Payment_Tbl ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Payment_TBL;
4914 lx_price_attr_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4915
4916 /* Code change for Quoting Usability Sun ER Start */
4917
4918 l_def_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_Qte_Line_Rec;
4919 l_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type := p_qte_line_rec;
4920 l_ln_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type := p_payment_tbl;
4921 l_ln_Shipment_Tbl ASO_QUOTE_PUB.Shipment_Tbl_Type := p_shipment_tbl;
4922
4923 Cursor C_INVOICE_TO_CUSTOMER(P_QUOTE_LINE_ID IN NUMBER) IS
4924 SELECT INVOICE_TO_CUST_ACCOUNT_ID
4925 FROM ASO_QUOTE_LINES_ALL
4926 WHERE QUOTE_LINE_ID = P_QUOTE_LINE_ID;
4927
4928 l_INVOICE_TO_CUSTOMER Number;
4929
4930 CURSOR C_AGREEMENT(P_AGREEMENT_ID IN NUMBER,P_INVOICE_TO_CUSTOMER_ID IN NUMBER) IS
4931 SELECT 'x'
4932 FROM OE_AGREEMENTS_VL
4933 WHERE AGREEMENT_ID = P_AGREEMENT_ID
4934 AND INVOICE_TO_CUSTOMER_ID = P_INVOICE_TO_CUSTOMER_ID;
4935
4936 l_var varchar2(1);
4937
4938 /* Code change for Quoting Usability Sun ER End */
4939
4940 BEGIN
4941
4942 -- Standard Start of API savepoint
4943 SAVEPOINT UPDATE_quote_line_PVT;
4944
4945 -- Standard call to check for call compatibility.
4946 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
4947 p_api_version_number,
4948 l_api_name,
4949 G_PKG_NAME) THEN
4950 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4951 END IF;
4952
4953
4954 -- Initialize message list if p_init_msg_list is set to TRUE.
4955 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4956 FND_MSG_PUB.initialize;
4957 END IF;
4958
4959
4960 -- Initialize API return status to SUCCESS
4961 x_return_status := FND_API.G_RET_STS_SUCCESS;
4962
4963 if aso_debug_pub.g_debug_flag = 'Y' THEN
4964 aso_debug_pub.add('Update_Quote_line - Begin ', 1, 'Y');
4965 aso_debug_pub.add('P_Control_REC.AUTO_VERSION_FLAG: '||nvl(P_Control_REC.AUTO_VERSION_FLAG,'null'),1,'N');
4966 aso_debug_pub.add('P_Control_REC.pricing_request_type: '||nvl(P_Control_REC.pricing_request_type,'null'),1,'N');
4967 aso_debug_pub.add('P_Control_REC.header_pricing_event: '||nvl(P_Control_REC.header_pricing_event,'null'),1,'N');
4968 aso_debug_pub.add('P_Control_REC.line_pricing_event: '||nvl(P_Control_REC.line_pricing_event,'null'),1,'N');
4969 aso_debug_pub.add('P_Control_REC.CALCULATE_TAX_FLAG: '||nvl(P_Control_REC.CALCULATE_TAX_FLAG,'null'),1,'N');
4970 aso_debug_pub.add('P_Control_REC.CALCULATE_FREIGHT_CHARGE_FLAG: '||nvl(P_Control_REC.CALCULATE_FREIGHT_CHARGE_FLAG,'null'),1,'N');
4971 aso_debug_pub.add('P_Control_REC.COPY_TASK_FLAG: '||nvl(P_Control_REC.COPY_TASK_FLAG,'null'),1,'N');
4972 aso_debug_pub.add('P_Control_REC.COPY_NOTES_FLAG: '||nvl(P_Control_REC.COPY_NOTES_FLAG,'null'),1,'N');
4973 aso_debug_pub.add('P_Control_REC.COPY_ATT_FLAG: '||nvl(P_Control_REC.COPY_ATT_FLAG,'null'),1,'N');
4974 aso_debug_pub.add('P_Control_Rec.Change_Customer_flag: '||nvl(P_Control_Rec.Change_Customer_flag,'null'),1,'N'); -- Code change for Quoting Usability Sun ER
4975 aso_debug_pub.add('P_Qte_Line_Rec.OPERATION_CODE: '||nvl(P_Qte_Line_Rec.OPERATION_CODE,'null'),1,'N');
4976 aso_debug_pub.add('P_Qte_Line_Rec.QUOTE_LINE_ID: '||nvl(to_char(P_Qte_Line_Rec.QUOTE_LINE_ID),'null'),1,'N');
4977 aso_debug_pub.add('P_Qte_Line_Rec.QUOTE_HEADER_ID: '||nvl(to_char(P_Qte_Line_Rec.QUOTE_HEADER_ID),'null'),1,'N');
4978 aso_debug_pub.add('P_Qte_Line_Rec.LINE_CATEGORY_CODE: '||nvl(P_Qte_Line_Rec.LINE_CATEGORY_CODE,'null'),1,'N');
4979 aso_debug_pub.add('P_Qte_Line_Rec.ITEM_TYPE_CODE: '||nvl(P_Qte_Line_Rec.ITEM_TYPE_CODE,'null'),1,'N');
4980 aso_debug_pub.add('P_Qte_Line_Rec.ORDER_LINE_TYPE_ID: '||nvl(to_char(P_Qte_Line_Rec.ORDER_LINE_TYPE_ID),'null'),1,'N');
4981 aso_debug_pub.add('P_Qte_Line_Rec.INVOICE_TO_PARTY_SITE_ID: '||nvl(to_char(P_Qte_Line_Rec.INVOICE_TO_PARTY_SITE_ID),'null'),1,'N');
4982 aso_debug_pub.add('P_Qte_Line_Rec.INVOICE_TO_PARTY_ID: '||nvl(to_char(P_Qte_Line_Rec.INVOICE_TO_PARTY_ID),'null'),1,'N');
4983 aso_debug_pub.add('P_Qte_Line_Rec.INVOICE_TO_CUST_ACCOUNT_ID: '||nvl(to_char(P_Qte_Line_Rec.INVOICE_TO_CUST_ACCOUNT_ID),'null'),1,'N');
4984 aso_debug_pub.add('P_Qte_Line_Rec.INVENTORY_ITEM_ID: '||nvl(to_char(P_Qte_Line_Rec.INVENTORY_ITEM_ID),'null'),1,'N');
4985 aso_debug_pub.add('P_Qte_Line_Rec.QUANTITY: '||nvl(to_char(P_Qte_Line_Rec.QUANTITY),'null'),1,'N');
4986 aso_debug_pub.add('P_Qte_Line_Rec.UOM_CODE: '||nvl(P_Qte_Line_Rec.UOM_CODE,'null'),1,'N');
4987 aso_debug_pub.add('P_Qte_Line_Rec.PRICING_QUANTITY_UOM: '||nvl(P_Qte_Line_Rec.PRICING_QUANTITY_UOM,'null'),1,'N');
4988 aso_debug_pub.add('P_Qte_Line_Rec.PRICE_LIST_ID: '||nvl(to_char(P_Qte_Line_Rec.PRICE_LIST_ID),'null'),1,'N');
4989 aso_debug_pub.add('P_Qte_Line_Rec.PRICE_LIST_LINE_ID: '||nvl(to_char(P_Qte_Line_Rec.PRICE_LIST_LINE_ID),'null'),1,'N');
4990 aso_debug_pub.add('P_Qte_Line_Rec.CURRENCY_CODE: '||nvl(P_Qte_Line_Rec.CURRENCY_CODE,'null'),1,'N');
4991 aso_debug_pub.add('P_Qte_Line_Rec.RELATED_ITEM_ID: '||nvl(to_char(P_Qte_Line_Rec.RELATED_ITEM_ID),'null'),1,'N');
4992 aso_debug_pub.add('P_Qte_Line_Rec.org_id: '||nvl(to_char(P_Qte_Line_Rec.org_id),'null'));
4993 end if;
4994
4995 --
4996 -- API body
4997 --
4998
4999 -- ******************************************************************
5000 -- Validate Environment
5001 -- ******************************************************************
5002 IF FND_GLOBAL.User_Id IS NULL THEN
5003 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5004 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
5005 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
5006 FND_MSG_PUB.ADD;
5007 END IF;
5008 RAISE FND_API.G_EXC_ERROR;
5009 END IF;
5010
5011
5012 OPEN C_qln_exist;
5013 FETCH C_qln_exist into l_qln_exist;
5014
5015 IF c_qln_exist%NOTFOUND OR l_qln_exist = FND_API.G_MISS_NUM THEN
5016
5017 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5018 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_LINE');
5019 FND_MESSAGE.Set_Token ('VALUE', p_qte_line_rec.quote_line_id, FALSE);
5020 FND_MSG_PUB.ADD;
5021 END IF;
5022 CLOSE C_qln_exist;
5023 raise FND_API.G_EXC_ERROR;
5024
5025 END IF;
5026 CLOSE C_qln_exist;
5027
5028 IF (p_update_header_flag = 'Y') THEN
5029
5030 Open C_Get_quote( p_qte_line_rec.QUOTE_LINE_ID);
5031 Fetch C_Get_quote into l_LAST_UPDATE_DATE, l_qte_status_id, l_quote_number, l_hd_discount_percent,l_quote_exp_date;
5032
5033 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5034 aso_debug_pub.add('After c_get_quote',1,'N');
5035 aso_debug_pub.add('l_qte_status_id: '||l_qte_status_id,1,'N');
5036 aso_debug_pub.add('l_quote_number: '||nvl(to_char(l_quote_number),'null'),1,'N');
5037 aso_debug_pub.add('l_hd_discount_percent: '||nvl(to_char(l_hd_discount_percent),'null'),1,'N');
5038 end if;
5039
5040 If ( C_Get_quote%NOTFOUND) Then
5041 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5042 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_UPDATE_TARGET');
5043 FND_MESSAGE.Set_Token ('INFO', 'quote', FALSE);
5044 FND_MSG_PUB.Add;
5045 END IF;
5046 Close C_Get_quote;
5047 raise FND_API.G_EXC_ERROR;
5048 END IF;
5049 Close C_Get_quote;
5050
5051 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5052 aso_debug_pub.add('After C_Get_quote Cursor call ',1,'N');
5053 end if;
5054
5055 If (l_last_update_date is NULL or l_last_update_date = FND_API.G_MISS_Date ) Then
5056
5057 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5058 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_ID');
5059 FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
5060 FND_MSG_PUB.ADD;
5061 END IF;
5062 raise FND_API.G_EXC_ERROR;
5063 End if;
5064
5065 -- Check Whether record has been changed by someone else
5066 If (trunc(l_last_update_date) <> trunc(p_control_rec.last_update_date)) Then
5067
5068 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5069 FND_MESSAGE.Set_Name('ASO', 'API_RECORD_CHANGED');
5070 FND_MESSAGE.Set_Token('INFO', 'quote', FALSE);
5071 FND_MSG_PUB.ADD;
5072 END IF;
5073 raise FND_API.G_EXC_ERROR;
5074 End if;
5075
5076 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5077 aso_debug_pub.add('After Last update date validation',1,'N');
5078 end if;
5079
5080 Open c_qte_status (l_qte_status_id);
5081 Fetch C_qte_status into l_update_allowed, l_auto_version;
5082
5083 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5084 aso_debug_pub.add('after c_qte_status',1,'N');
5085 aso_debug_pub.add('l_update_allowed: '||l_update_allowed,1,'N');
5086 aso_debug_pub.add('l_auto_version: '||l_auto_version,1,'N');
5087 end if;
5088 Close c_qte_status;
5089
5090 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5091 aso_debug_pub.add('After c_qte_status cursor call',1,'N');
5092 end if;
5093
5094 -- the control rec does not set auto version to 'Y' then it should not be versioned
5095
5096 IF p_control_rec.auto_version_flag = FND_API.G_TRUE AND NVL(l_auto_version,'Y') = 'Y' THEN
5097
5098 OPEN C_Qte_Version(l_quote_number);
5099 FETCH C_Qte_Version into l_quote_version;
5100 l_quote_version := nvl(l_quote_version, 0) + 1;
5101 CLOSE C_Qte_Version;
5102 ELSE
5103 l_auto_version := 'N';
5104 END IF;
5105
5106 if aso_debug_pub.g_debug_flag = 'Y' THEN
5107 aso_debug_pub.add('after basic validations'|| x_return_status, 1, 'Y');
5108 end if;
5109
5110 IF l_auto_version = 'Y' THEN
5111
5112 l_old_header_rec := ASO_UTILITY_PVT.Query_Header_Row(p_qte_line_rec.QUOTE_HEADER_ID);
5113
5114 l_copy_quote_control_rec.new_version := FND_API.G_TRUE;
5115 l_copy_quote_header_rec.quote_header_id := l_old_header_rec.quote_header_id;
5116
5117 aso_copy_quote_pvt.copy_quote( P_Api_Version_Number => 1.0,
5118 P_Init_Msg_List => FND_API.G_FALSE,
5119 P_Commit => FND_API.G_FALSE,
5120 P_Copy_Quote_Header_Rec => l_copy_quote_header_rec,
5121 P_Copy_Quote_Control_Rec => l_copy_quote_control_rec,
5122 X_Qte_Header_Id => x_quote_header_id,
5123 X_Qte_Number => l_qte_nbr,
5124 X_Return_Status => l_return_status,
5125 X_Msg_Count => x_msg_count,
5126 X_Msg_Data => x_msg_data
5127 );
5128
5129 if aso_debug_pub.g_debug_flag = 'Y' then
5130 aso_debug_pub.add('Update_Quote_Line: After copy_quote');
5131 aso_debug_pub.add('After copy_quote l_return_status: ' || l_return_status);
5132 aso_debug_pub.add('After copy_quote x_quote_header_id: ' || x_quote_header_id);
5133 aso_debug_pub.add('After copy_quote l_qte_nbr: ' || l_qte_nbr);
5134 end if;
5135
5136 update aso_quote_headers_all
5137 set quote_version = l_quote_version + 1,
5138 max_version_flag = 'Y',
5139 last_update_date = sysdate,
5140 last_updated_by = fnd_global.user_id,
5141 last_update_login = fnd_global.conc_login_id
5142 where quote_header_id = p_qte_line_rec.quote_header_id;
5143
5144 update aso_quote_headers_all
5145 set max_version_flag = 'N',
5146 quote_version = l_old_header_rec.quote_version,
5147 last_update_date = sysdate,
5148 last_updated_by = fnd_global.user_id,
5149 last_update_login = fnd_global.conc_login_id
5150 where quote_header_id = x_quote_header_id;
5151
5152 update aso_quote_headers_all
5153 set quote_version = l_quote_version,
5154 last_update_date = sysdate,
5155 last_updated_by = fnd_global.user_id,
5156 last_update_login = fnd_global.conc_login_id
5157 where quote_header_id = p_qte_line_rec.quote_header_id;
5158
5159 END IF; -- auto version flag
5160
5161 END IF; -- update header flag
5162
5163 /* Code change for Quoting Usability Sun ER Start */
5164
5165 IF P_Control_Rec.Change_Customer_flag = FND_API.G_TRUE THEN
5166
5167 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5168 aso_debug_pub.add('Update_Quote_Line - P_Control_Rec.Change_Customer_flag is True', 1, 'Y');
5169 END IF ;
5170
5171 l_line_rec.INVOICE_TO_PARTY_SITE_ID := Null;
5172 l_line_rec.INVOICE_TO_PARTY_ID := Null;
5173 l_line_rec.INVOICE_TO_CUST_ACCOUNT_ID := Null;
5174 l_line_rec.INVOICE_TO_CUST_PARTY_ID := Null;
5175
5176 If (l_ln_Shipment_Tbl.COUNT > 0) then
5177 l_ln_Shipment_Tbl(1).SHIP_TO_CUST_ACCOUNT_ID := Null;
5178 l_ln_Shipment_Tbl(1).SHIP_TO_CUST_PARTY_ID := Null;
5179 l_ln_Shipment_Tbl(1).SHIP_TO_PARTY_ID := Null;
5180 l_ln_Shipment_Tbl(1).SHIP_TO_PARTY_SITE_ID := Null;
5181 l_ln_Shipment_Tbl(1).SHIP_TO_PARTY_NAME := Null;
5182 l_ln_Shipment_Tbl(1).SHIP_TO_CONTACT_FIRST_NAME := Null;
5183 l_ln_Shipment_Tbl(1).SHIP_TO_CONTACT_MIDDLE_NAME := Null;
5184 l_ln_Shipment_Tbl(1).SHIP_TO_CONTACT_LAST_NAME := Null;
5185 l_ln_Shipment_Tbl(1).SHIP_TO_ADDRESS1 := Null;
5186 l_ln_Shipment_Tbl(1).SHIP_TO_ADDRESS2 := Null;
5187 l_ln_Shipment_Tbl(1).SHIP_TO_ADDRESS3 := Null;
5188 l_ln_Shipment_Tbl(1).SHIP_TO_ADDRESS4 := Null;
5189 l_ln_Shipment_Tbl(1).SHIP_TO_COUNTRY_CODE := Null;
5190 l_ln_Shipment_Tbl(1).SHIP_TO_COUNTRY := Null;
5191 l_ln_Shipment_Tbl(1).SHIP_TO_CITY := Null;
5192 l_ln_Shipment_Tbl(1).SHIP_TO_POSTAL_CODE := Null;
5193 l_ln_Shipment_Tbl(1).SHIP_TO_STATE := Null;
5194 l_ln_Shipment_Tbl(1).SHIP_TO_PROVINCE := Null;
5195 l_ln_Shipment_Tbl(1).SHIP_TO_COUNTY := Null;
5196 l_ln_Shipment_Tbl(1).SHIP_METHOD_CODE := Null;
5197 l_ln_Shipment_Tbl(1).FREIGHT_TERMS_CODE := Null;
5198 l_ln_Shipment_Tbl(1).FOB_CODE := Null;
5199 l_ln_Shipment_Tbl(1).DEMAND_CLASS_CODE := Null;
5200 l_ln_Shipment_Tbl(1).SHIP_FROM_ORG_ID := Null;
5201 l_ln_Shipment_Tbl(1).REQUEST_DATE := Null;
5202 l_ln_Shipment_Tbl(1).SHIPMENT_PRIORITY_CODE := Null;
5203 l_ln_Shipment_Tbl(1).SHIPPING_INSTRUCTIONS := Null;
5204 l_ln_Shipment_Tbl(1).PACKING_INSTRUCTIONS := Null;
5205 End If;
5206
5207 l_line_rec.END_CUSTOMER_PARTY_ID := Null;
5208 l_line_rec.END_CUSTOMER_PARTY_SITE_ID := Null;
5209 l_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID := Null;
5210 l_line_rec.END_CUSTOMER_CUST_PARTY_ID := Null;
5211
5212 l_line_rec.PRICE_LIST_ID := Null;
5213 l_line_rec.CURRENCY_CODE := Null;
5214
5215 IF (l_line_rec.AGREEMENT_ID IS NOT NULL AND
5216 l_line_rec.AGREEMENT_ID <> FND_API.G_MISS_NUM) THEN
5217
5218 Open C_AGREEMENT(l_line_rec.AGREEMENT_ID,l_line_rec.INVOICE_TO_CUST_ACCOUNT_ID);
5219 Fetch C_AGREEMENT Into l_var;
5220 Close C_AGREEMENT;
5221
5222 If C_AGREEMENT%Found Then
5223 l_line_rec.AGREEMENT_ID := Null;
5224 End If;
5225 End If;
5226
5227 If (l_ln_payment_tbl.COUNT > 0) then
5228 If l_ln_payment_tbl(1).PAYMENT_TYPE_CODE In ('CHECK','CREDIT_CARD') Then
5229 If l_ln_payment_tbl(1).PAYMENT_TYPE_CODE = 'CREDIT_CARD' Then
5230 l_ln_payment_tbl(1).CREDIT_CARD_CODE := Null;
5231 l_ln_payment_tbl(1).CREDIT_CARD_HOLDER_NAME := Null;
5232 l_ln_payment_tbl(1).CREDIT_CARD_EXPIRATION_DATE := Null;
5233 l_ln_payment_tbl(1).cvv2 := Null;
5234 End If;
5235 l_ln_payment_tbl(1).PAYMENT_TYPE_CODE := NULL;
5236 l_ln_payment_tbl(1).PAYMENT_REF_NUMBER := Null;
5237 End If;
5238 l_ln_payment_tbl(1).CUST_PO_NUMBER := Null;
5239 l_ln_payment_tbl(1).CUST_PO_LINE_NUMBER := Null;
5240 l_ln_payment_tbl(1).PAYMENT_TERM_ID := Null;
5241 End If;
5242
5243 -- bmishra line defaulting framework begin
5244
5245 IF l_control_rec.defaulting_fwk_flag = 'Y' Then
5246
5247 l_def_qte_line_rec := l_line_rec;
5248
5249 IF l_ln_Shipment_Tbl.count > 0 THEN
5250 l_shipment_rec := l_ln_Shipment_Tbl(1);
5251 END IF;
5252
5253 IF l_ln_payment_tbl.count > 0 THEN
5254 l_payment_rec := l_ln_payment_tbl(1);
5255 END IF;
5256
5257 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5258 aso_debug_pub.add('Update_Quote_Line: Before defaulting framework', 1, 'Y');
5259 aso_debug_pub.add('Update_Quote_Line: populate defaulting control record from the line control record', 1, 'Y');
5260 END IF ;
5261
5262 l_def_control_rec.Dependency_Flag := p_control_rec.Dependency_Flag;
5263 l_def_control_rec.Defaulting_Flag := p_control_rec.Defaulting_Flag;
5264 l_def_control_rec.Application_Type_Code := p_control_rec.Application_Type_Code;
5265 l_def_control_rec.Defaulting_Flow_Code := 'UPDATE';
5266 l_def_control_rec.last_update_date := p_control_rec.last_update_date;
5267
5268 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5269 aso_debug_pub.add('Update_Quote_Line: Defaulting_Fwk_Flag: '|| p_control_rec.Defaulting_Fwk_Flag, 1, 'Y');
5270 aso_debug_pub.add('Update_Quote_Line: Dependency_Flag: '|| l_def_control_rec.Dependency_Flag, 1, 'Y');
5271 aso_debug_pub.add('Update_Quote_Line: Defaulting_Flag: '|| l_def_control_rec.Defaulting_Flag, 1, 'Y');
5272 aso_debug_pub.add('Update_Quote_Line: Application_Type_Code: '|| l_def_control_rec.Application_Type_Code, 1, 'Y');
5273 aso_debug_pub.add('Update_Quote_Line: Defaulting_Flow_Code: '|| l_def_control_rec.Defaulting_Flow_Code, 1, 'Y');
5274 aso_debug_pub.add('Update_Quote_Line: last_update_date: '|| l_def_control_rec.last_update_date, 1, 'Y');
5275 END IF ;
5276
5277 IF l_def_control_rec.application_type_code = 'QUOTING HTML' OR l_def_control_rec.application_type_code = 'QUOTING FORM' THEN
5278 l_db_object_name := ASO_QUOTE_HEADERS_PVT.G_QUOTE_LINE_DB_NAME;
5279 ELSIF l_def_control_rec.application_type_code = 'ISTORE' THEN
5280 l_db_object_name := ASO_QUOTE_HEADERS_PVT.G_STORE_CART_LINE_DB_NAME;
5281 ELSE
5282 l_control_rec.Defaulting_Fwk_Flag := 'N';
5283 END IF;
5284
5285 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5286 aso_debug_pub.add('Pick '||l_db_object_name ||' based on calling application '||l_def_control_rec.application_type_code, 1, 'Y');
5287 END IF ;
5288
5289 /* Removing Call for defaulting from create_quote_line */ -- un-commented for Quoting Usability Sun ER
5290
5291 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5292 aso_debug_pub.add('Update_Quote_Line - Before Calling Default_Entity procedure', 1, 'Y');
5293 END IF ;
5294
5295 ASO_DEFAULTING_INT.Default_Entity ( p_api_version => 1.0,
5296 p_control_rec => l_def_control_rec,
5297 p_database_object_name => l_db_object_name,
5298 p_quote_line_rec => l_def_qte_line_rec,
5299 p_line_shipment_rec => l_shipment_rec,
5300 p_line_payment_rec => l_payment_rec,
5301 x_quote_header_rec => l_qte_header_rec,
5302 x_header_misc_rec => lx_hd_misc_rec,
5303 x_header_shipment_rec => lx_hd_shipment_rec,
5304 x_header_payment_rec => lx_hd_payment_rec,
5305 x_header_tax_detail_rec => lx_hd_tax_detail_rec,
5306 x_quote_line_rec => lx_qte_line_rec,
5307 x_line_misc_rec => lx_ln_misc_rec,
5308 x_line_shipment_rec => lx_ln_shipment_rec,
5309 x_line_payment_rec => lx_ln_payment_rec,
5310 x_line_tax_detail_rec => lx_ln_tax_detail_rec,
5311 x_changed_flag => lx_changed_flag,
5312 x_return_status => x_return_status,
5313 x_msg_count => x_msg_count,
5314 x_msg_data => x_msg_data );
5315
5316 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5317 aso_debug_pub.add('Update_Quote_line: After call to ASO_DEFAULTING_INT.Default_Entity', 1, 'Y');
5318 aso_debug_pub.add('Update_Quote_line: x_return_status: '|| x_return_status, 1, 'Y');
5319 End If;
5320
5321 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5322
5323 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5324 FND_MESSAGE.Set_Name('ASO', 'ASO_API_ERROR_DEFAULTING');
5325 FND_MSG_PUB.ADD;
5326 END IF;
5327
5328 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
5329 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5330 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
5331 RAISE FND_API.G_EXC_ERROR;
5332 END IF;
5333 END IF;
5334
5335 IF aso_quote_headers_pvt.Shipment_Null_Rec_Exists(lx_ln_shipment_rec, l_db_object_name) THEN
5336 lx_ln_shipment_tbl(1) := lx_ln_shipment_rec;
5337 END IF;
5338
5339 IF aso_quote_headers_pvt.Payment_Null_Rec_Exists(lx_ln_payment_rec, l_db_object_name) THEN
5340 lx_ln_payment_tbl(1) := lx_ln_payment_rec;
5341 END IF;
5342 -- bmishra defaulting framework end
5343
5344 ELSE
5345
5346 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5347 aso_debug_pub.add('Update_Quote_Line - l_control_rec.defaulting_fwk_flag is N', 1, 'Y');
5348 END IF ;
5349
5350 lx_qte_line_rec := l_line_rec;
5351 lx_ln_shipment_tbl := l_ln_Shipment_Tbl;
5352 lx_ln_payment_tbl := l_ln_payment_tbl;
5353 END IF;
5354
5355 ELSIF P_Control_Rec.Change_Customer_flag = FND_API.G_FALSE THEN
5356
5357 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5358 aso_debug_pub.add('Update_Quote_Line - P_Control_Rec.Change_Customer_flag is FALSE', 1, 'Y');
5359 END IF ;
5360
5361 lx_qte_line_rec := p_qte_line_rec;
5362 lx_ln_shipment_tbl := p_shipment_tbl;
5363 lx_ln_payment_tbl := p_payment_tbl;
5364 END IF;
5365 /* Code change for Quoting Usability Sun ER End */
5366
5367 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5368 aso_debug_pub.add('Update_Quote_line - before validation', 1, 'Y');
5369 aso_debug_pub.add('Update_Quote_line: ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM: '||ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM, 1, 'Y');
5370 end if;
5371
5372 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
5373
5374 ASO_VALIDATE_PVT.Validate_Item_Type_Code(
5375 p_init_msg_list => FND_API.G_FALSE,
5376 p_item_type_code => lx_qte_line_rec.item_type_code,
5377 x_return_status => x_return_status,
5378 x_msg_count => x_msg_count,
5379 x_msg_data => x_msg_data);
5380
5381 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5382 RAISE FND_API.G_EXC_ERROR;
5383 END IF;
5384
5385 -- invoice_to_party_id must exist and be active in HZ_PARTIES and have the usage INVOICE.
5386
5387 ASO_VALIDATE_PVT.Validate_Party (
5388 p_init_msg_list => FND_API.G_FALSE,
5389 p_party_id => lx_qte_line_rec.invoice_to_party_id,
5390 p_party_usage => 'INVOICE',
5391 x_return_status => x_return_status,
5392 x_msg_count => x_msg_count,
5393 x_msg_data => x_msg_data);
5394
5395 if aso_debug_pub.g_debug_flag = 'Y' THEN
5396 aso_debug_pub.add('after validate invoice to party: x_return_status: '||x_return_status, 1, 'N');
5397 end if;
5398
5399 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5400 RAISE FND_API.G_EXC_ERROR;
5401 END IF;
5402
5403 ASO_VALIDATE_PVT.Validate_PartySite (
5404 p_init_msg_list => FND_API.G_FALSE,
5405 p_party_id => lx_qte_line_rec.invoice_to_party_id,
5406 p_party_site_id => lx_qte_line_rec.invoice_to_party_site_id,
5407 p_site_usage => 'INVOICE',
5408 x_return_status => x_return_status,
5409 x_msg_count => x_msg_count,
5410 x_msg_data => x_msg_data);
5411
5412 if aso_debug_pub.g_debug_flag = 'Y' THEN
5413 aso_debug_pub.add('after validate invoice to party site: x_return_status: '||x_return_status, 1, 'N');
5414 end if;
5415
5416 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5417 RAISE FND_API.G_EXC_ERROR;
5418 END IF;
5419
5420 -- price list must exist and be active in OE_PRICE_LISTS
5421 ASO_VALIDATE_PVT.Validate_PriceList (
5422 p_init_msg_list => FND_API.G_FALSE,
5423 p_price_list_id => lx_qte_line_rec.price_list_id,
5424 x_return_status => x_return_status,
5425 x_msg_count => x_msg_count,
5426 x_msg_data => x_msg_data);
5427
5428 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5429 RAISE FND_API.G_EXC_ERROR;
5430 END IF;
5431
5432 ASO_VALIDATE_PVT.Validate_Quote_Price_Exp(
5433 p_init_msg_list => FND_API.G_FALSE,
5434 p_price_list_id => lx_qte_line_rec.price_list_id,
5435 p_quote_expiration_date => l_quote_exp_date,
5436 x_return_status => x_return_status,
5437 x_msg_count => x_msg_count,
5438 x_msg_data => x_msg_data);
5439
5440 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5441
5442 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5443 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
5444 FND_MESSAGE.Set_Token('COLUMN', 'Price List Expires Before Quote', FALSE);
5445 FND_MSG_PUB.ADD;
5446 END IF;
5447
5448 RAISE FND_API.G_EXC_ERROR;
5449 END IF;
5450
5451 if aso_debug_pub.g_debug_flag = 'Y' THEN
5452 aso_debug_pub.add('After call to Validate_Quote_Price_Exp: x_return_status: '|| x_return_status, 1, 'Y');
5453 end if;
5454
5455 -- shp_to_party_id must exist and be active in HZ_PARTIES and have the usage SHIP.
5456
5457 For i in 1..lx_ln_shipment_tbl.count LOOP
5458
5459 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5460 aso_debug_pub.add('before validating ship_to party: '||nvl(to_char(lx_ln_shipment_tbl(i).ship_to_party_id), 'null'),1,'N');
5461 end if;
5462
5463 ASO_VALIDATE_PVT.Validate_Party (
5464 p_init_msg_list => FND_API.G_FALSE,
5465 p_party_id => lx_ln_shipment_tbl(i).ship_to_party_id,
5466 p_party_usage => 'SHIP',
5467 x_return_status => x_return_status,
5468 x_msg_count => x_msg_count,
5469 x_msg_data => x_msg_data);
5470
5471 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5472 aso_debug_pub.add('after validate ship to party: x_return_status: '||x_return_status, 1, 'N');
5473 end if;
5474
5475 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5476 RAISE FND_API.G_EXC_ERROR;
5477 END IF;
5478
5479 if aso_debug_pub.g_debug_flag = 'Y' THEN
5480 aso_debug_pub.add('before validating ship_to party site: '||nvl(to_char(lx_ln_shipment_tbl(i).ship_to_party_site_id),'null'),1,'N');
5481 end if;
5482
5483 ASO_VALIDATE_PVT.Validate_PartySite (
5484 p_init_msg_list => FND_API.G_FALSE,
5485 p_party_id => lx_ln_shipment_tbl(i).ship_to_party_id,
5486 p_party_site_id => lx_ln_shipment_tbl(i).ship_to_party_site_id,
5487 p_site_usage => 'SHIP',
5488 x_return_status => x_return_status,
5489 x_msg_count => x_msg_count,
5490 x_msg_data => x_msg_data);
5491
5492 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5493 aso_debug_pub.add('after validate ship to party site: x_return_status: '||x_return_status, 1, 'N');
5494 end if;
5495
5496 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5497 RAISE FND_API.G_EXC_ERROR;
5498 END IF;
5499
5500 End LOOP;
5501
5502
5503 ASO_VALIDATE_PVT.Validate_Marketing_Source_Code(
5504 p_init_msg_list => FND_API.G_FALSE,
5505 p_mkting_source_code_id => lx_qte_line_rec.marketing_source_code_id,
5506 x_return_status => x_return_status,
5507 x_msg_count => x_msg_count,
5508 x_msg_data => x_msg_data);
5509
5510 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5511 aso_debug_pub.add('after marketing source code: x_return_status: '|| x_return_status, 1, 'Y');
5512 end if;
5513
5514 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5515 RAISE FND_API.G_EXC_ERROR;
5516 END IF;
5517
5518
5519 FOR i in 1..p_qte_line_dtl_tbl.count LOOP
5520
5521 ASO_VALIDATE_PVT.Validate_Service_Duration(
5522 p_init_msg_list => FND_API.G_FALSE,
5523 p_service_duration => p_qte_line_dtl_tbl(i).service_duration,
5524 x_return_status => x_return_status,
5525 x_msg_count => x_msg_count,
5526 x_msg_data => x_msg_data);
5527
5528 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5529 aso_debug_pub.add('after service duration: x_return_status: '|| x_return_status, 1, 'Y');
5530 end if;
5531
5532 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5533 RAISE FND_API.G_EXC_ERROR;
5534 END IF;
5535
5536 END LOOP;
5537
5538
5539 FOR i in 1..p_sales_credit_tbl.count LOOP
5540
5541 if aso_debug_pub.g_debug_flag = 'Y' then
5542 aso_debug_pub.add('p_sales_credit_tbl('||i||').operation_code: '|| p_sales_credit_tbl(i).operation_code,1,'Y');
5543 end if;
5544
5545 if (p_sales_credit_tbl(i).operation_code = 'CREATE' or p_sales_credit_tbl(i).operation_code = 'UPDATE') then
5546
5547 ASO_VALIDATE_PVT.Validate_Resource_id(
5548 p_init_msg_list => FND_API.G_FALSE,
5549 p_resource_id => p_sales_credit_tbl(i).resource_id ,
5550 x_return_status => x_return_status,
5551 x_msg_count => x_msg_count,
5552 x_msg_data => x_msg_data);
5553
5554 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5555
5556 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5557 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_SALES_REP_ID');
5558 FND_MSG_PUB.ADD;
5559 END IF;
5560 RAISE FND_API.G_EXC_ERROR;
5561 END IF;
5562
5563 ASO_VALIDATE_PVT.Validate_Resource_group_id(
5564 p_init_msg_list => FND_API.G_FALSE,
5565 p_resource_group_id => p_sales_credit_tbl(i).resource_group_id,
5566 x_return_status => x_return_status,
5567 x_msg_count => x_msg_count,
5568 x_msg_data => x_msg_data);
5569
5570 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5571 RAISE FND_API.G_EXC_ERROR;
5572 END IF;
5573
5574 ASO_VALIDATE_PVT.Validate_Salescredit_Type(
5575 p_init_msg_list => FND_API.G_FALSE,
5576 p_salescredit_type_id => p_sales_credit_tbl(i).sales_credit_type_id,
5577 x_return_status => x_return_status,
5578 x_msg_count => x_msg_count,
5579 x_msg_data => x_msg_data);
5580
5581 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5582 RAISE FND_API.G_EXC_ERROR;
5583 END IF;
5584
5585 ASO_VALIDATE_PVT.Validate_EmployPerson(
5586 p_init_msg_list => FND_API.G_FALSE,
5587 p_employee_id => p_sales_credit_tbl(i).employee_person_id,
5588 x_return_status => x_return_status,
5589 x_msg_count => x_msg_count,
5590 x_msg_data => x_msg_data);
5591
5592 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5593 RAISE FND_API.G_EXC_ERROR;
5594 END IF;
5595
5596 end if;
5597
5598 END LOOP;
5599
5600
5601 /* commented by bmishra on 12/15/2004 as we are not using quote_party_tbl
5602 FOR i in 1..p_quote_party_tbl.count LOOP
5603
5604 ASO_VALIDATE_PVT.Validate_Party_Type(
5605 p_init_msg_list => FND_API.G_FALSE,
5606 p_party_type => p_quote_party_tbl(i).party_type,
5607 x_return_status => x_return_status,
5608 x_msg_count => x_msg_count,
5609 x_msg_data => x_msg_data);
5610
5611 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5612 RAISE FND_API.G_EXC_ERROR;
5613 END IF;
5614
5615 ASO_VALIDATE_PVT.Validate_Party(
5616 p_init_msg_list => FND_API.G_FALSE,
5617 p_party_id => p_quote_party_tbl(i).party_id,
5618 p_party_usage => null,
5619 x_return_status => x_return_status,
5620 x_msg_count => x_msg_count,
5621 x_msg_data => x_msg_data);
5622
5623 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5624 RAISE FND_API.G_EXC_ERROR;
5625 END IF;
5626
5627 ASO_VALIDATE_PVT.Validate_Party_Object_Type(
5628 p_init_msg_list => FND_API.G_FALSE,
5629 p_party_object_type => p_quote_party_tbl(i).party_object_type,
5630 x_return_status => x_return_status,
5631 x_msg_count => x_msg_count,
5632 x_msg_data => x_msg_data);
5633 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5634 RAISE FND_API.G_EXC_ERROR;
5635 END IF;
5636
5637 END LOOP;
5638 */
5639
5640
5641 ASO_VALIDATE_PVT.Validate_MiniSite(
5642 p_init_msg_list => FND_API.G_FALSE,
5643 p_minisite_id => lx_qte_line_rec.minisite_id,
5644 x_return_status => x_return_status,
5645 x_msg_count => x_msg_count,
5646 x_msg_data => x_msg_data);
5647
5648 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5649 RAISE FND_API.G_EXC_ERROR;
5650 END IF;
5651
5652 ASO_VALIDATE_PVT.Validate_Section(
5653 p_init_msg_list => FND_API.G_FALSE,
5654 p_section_id => lx_qte_line_rec.section_id,
5655 x_return_status => x_return_status,
5656 x_msg_count => x_msg_count,
5657 x_msg_data => x_msg_data);
5658
5659 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5660 RAISE FND_API.G_EXC_ERROR;
5661 END IF;
5662
5663 END IF;
5664
5665 l_db_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row( P_Qte_Line_Id => lx_qte_line_rec.quote_line_id);
5666
5667 l_db_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows( P_Qte_Header_Id => l_db_qte_line_rec.quote_header_id,
5668 P_Qte_Line_Id => l_db_qte_line_rec.quote_line_id);
5669
5670
5671 IF p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_RECORD THEN
5672
5673 IF lx_qte_line_rec.organization_id is NULL or lx_qte_line_rec.organization_id = FND_API.G_MISS_NUM THEN
5674
5675 IF lx_qte_line_rec.org_id is NULL OR lx_qte_line_rec.org_id = FND_API.G_MISS_NUM THEN
5676
5677 OPEN C_org_id;
5678 FETCH C_org_id into l_org_id;
5679
5680 IF C_org_id%NOTFOUND THEN
5681
5682 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5683 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
5684 FND_MESSAGE.Set_Token('COLUMN', 'ORG_ID', FALSE);
5685 FND_MSG_PUB.ADD;
5686 END IF;
5687
5688 END IF;
5689 CLOSE C_org_id;
5690
5691 END IF;
5692
5693 l_organization_id := oe_profile.value('OE_ORGANIZATION_ID', l_org_id);
5694
5695 ELSE
5696
5697 l_organization_id := lx_qte_line_rec.organization_id;
5698
5699 END IF;
5700
5701
5702 IF lx_qte_line_rec.inventory_item_id is NULL OR lx_qte_line_rec.inventory_item_id = FND_API.G_MISS_NUM THEN
5703
5704 SELECT inventory_item_id INTO l_inventory_item_id
5705 FROM aso_quote_lines_all
5706 WHERE quote_line_id = lx_qte_line_rec.quote_line_id;
5707
5708 ELSE
5709
5710 l_inventory_item_id := lx_qte_line_rec.inventory_item_id;
5711
5712 END IF;
5713
5714 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5715 aso_debug_pub.add('Update_Quote_Line: before Validate_UOM_code: l_organization_id: '|| l_organization_id, 1, 'N');
5716 aso_debug_pub.add('Update_Quote_Line: before Validate_UOM_code: l_inventory_item_id: '|| l_inventory_item_id, 1, 'N');
5717 end if;
5718
5719
5720 -- UOM must exist and should be in ASO_I_UNITS_OF_MEASURE
5721
5722 ASO_VALIDATE_PVT.Validate_UOM_code(
5723 p_init_msg_list => FND_API.G_FALSE,
5724 p_uom_code => lx_qte_line_rec.uom_code,
5725 p_organization_id => l_organization_id,
5726 p_inventory_item_id => l_inventory_item_id,
5727 x_return_status => x_return_status,
5728 x_msg_count => x_msg_count,
5729 x_msg_data => x_msg_data);
5730
5731 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5732 RAISE FND_API.G_EXC_ERROR;
5733 END IF;
5734
5735
5736 ASO_VALIDATE_PVT.Validate_For_GreaterEndDate (
5737 p_init_msg_list => FND_API.G_FALSE,
5738 p_start_date => lx_qte_line_rec.start_date_active,
5739 p_end_date => lx_qte_line_rec.end_date_active,
5740 x_return_status => x_return_status,
5741 x_msg_count => x_msg_count,
5742 x_msg_data => x_msg_data);
5743
5744 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5745
5746 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5747 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
5748 FND_MESSAGE.Set_Token('INFO', 'END_DATE', FALSE);
5749 FND_MSG_PUB.ADD;
5750 END IF;
5751 RAISE FND_API.G_EXC_ERROR;
5752 END IF;
5753
5754 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5755 aso_debug_pub.add('validate greater end date'|| x_return_status , 1, 'Y');
5756 end if;
5757
5758 FOR i in 1..p_qte_line_dtl_tbl.count LOOP
5759
5760 ASO_VALIDATE_PVT.Validate_Returns(
5761 p_init_msg_list => FND_API.G_FALSE,
5762 p_return_ref_type_code => p_qte_line_dtl_tbl(i).return_ref_type,
5763 p_return_ref_header_id => p_qte_line_dtl_tbl(i).return_ref_header_id,
5764 p_return_ref_line_id => p_qte_line_dtl_tbl(i).return_ref_line_id,
5765 x_return_status => x_return_status,
5766 x_msg_count => x_msg_count,
5767 x_msg_data => x_msg_data);
5768
5769 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5770
5771 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5772 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
5773 FND_MESSAGE.Set_Token('INFO', 'RETURN', FALSE);
5774 FND_MSG_PUB.ADD;
5775 END IF;
5776 RAISE FND_API.G_EXC_ERROR;
5777 END IF;
5778
5779 END LOOP;
5780
5781 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5782 aso_debug_pub.add('validate returns'|| x_return_status, 1, 'Y');
5783 end if;
5784
5785 -- tax_exempt_flag must be in 'E', 'R' and 'S'
5786 -- and tax_exempt_reason_code must exist if tax_exempt_flag is 'E'.
5787
5788 FOR i in 1..p_tax_detail_tbl.count LOOP
5789
5790 ASO_VALIDATE_PVT.Validate_Tax_Exemption (
5791 p_init_msg_list => FND_API.G_FALSE,
5792 p_tax_exempt_flag => p_tax_detail_tbl(i).tax_exempt_flag,
5793 p_tax_exempt_reason_code => p_tax_detail_tbl(i).tax_exempt_reason_code,
5794 x_return_status => x_return_status,
5795 x_msg_count => x_msg_count,
5796 x_msg_data => x_msg_data);
5797
5798 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5799
5800 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5801 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
5802 FND_MESSAGE.Set_Token('INFO', 'TAX', FALSE);
5803 FND_MSG_PUB.ADD;
5804 END IF;
5805 RAISE FND_API.G_EXC_ERROR;
5806 END IF;
5807
5808 END LOOP;
5809
5810 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5811 aso_debug_pub.add('validate tax exemption'|| x_return_status, 1, 'Y');
5812 end if;
5813
5814 FOR i in 1..p_qte_line_dtl_tbl.count LOOP
5815
5816 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5817 aso_debug_pub.add('ASO_QUOTE_LINES_PVT:Update_Quote_Lines:config_header_id: '|| p_qte_line_dtl_tbl(i).config_header_id,1,'N');
5818 aso_debug_pub.add('ASO_QUOTE_LINES_PVT:Update_Quote_Lines:config_revision_num: '|| p_qte_line_dtl_tbl(i).config_revision_num,1,'N');
5819 aso_debug_pub.add('ASO_QUOTE_LINES_PVT:Update_Quote_Lines:component_code: '|| p_qte_line_dtl_tbl(i).component_code,1,'N');
5820 aso_debug_pub.add('ASO_QUOTE_LINES_PVT:Update_Quote_Lines:config_item_id: '|| p_qte_line_dtl_tbl(i).config_item_id,1,'N');
5821 end if;
5822
5823 IF ((p_qte_line_dtl_tbl(i).config_header_id IS NOT NULL AND
5824 p_qte_line_dtl_tbL(i).config_header_id <> FND_API.G_MISS_NUM) AND
5825 (p_qte_line_dtl_tbl(i).config_revision_num IS NOT NULL AND
5826 p_qte_line_dtl_tbl(i).config_revision_num <> FND_API.G_MISS_NUM) AND
5827 (p_qte_line_dtl_tbl(i).config_item_id IS NOT NULL AND
5828 p_qte_line_dtl_tbl(i).config_item_id <> FND_API.G_MISS_NUM)) THEN
5829
5830 ASO_VALIDATE_PVT.Validate_Configuration(
5831 p_init_msg_list => FND_API.G_FALSE,
5832 p_config_header_id => p_qte_line_dtl_tbl(i).config_header_id,
5833 p_config_revision_num => p_qte_line_dtl_tbl(i).config_revision_num,
5834 p_config_item_id => p_qte_line_dtl_tbl(i).config_item_id,
5835 x_return_status => x_return_status,
5836 x_msg_count => x_msg_count,
5837 x_msg_data => x_msg_data);
5838
5839 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5840 aso_debug_pub.add('Update_Quote_Lines after Validate_Configuration :x_return_status:'||x_return_status,1, 'N');
5841 end if;
5842
5843 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5844
5845 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5846 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
5847 FND_MESSAGE.Set_Token('INFO', 'CONFIGURATION', FALSE);
5848 FND_MSG_PUB.ADD;
5849 END IF;
5850 RAISE FND_API.G_EXC_ERROR;
5851 END IF;
5852 END IF;
5853
5854 END LOOP;
5855
5856
5857 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5858 aso_debug_pub.add('validate configuration'|| x_return_status, 1, 'Y');
5859 end if;
5860
5861 FOR i in 1..p_qte_line_dtl_tbl.count LOOP
5862
5863 ASO_VALIDATE_PVT.Validate_Delayed_Service(
5864 p_init_msg_list => FND_API.G_FALSE,
5865 p_service_ref_type_code => p_qte_line_dtl_tbl(i).service_ref_type_code,
5866 p_service_ref_line_id => p_qte_line_dtl_tbl(i).service_ref_line_id,
5867 p_service_ref_system_id => p_qte_line_dtl_tbl(i).service_ref_system_id,
5868 x_return_status => x_return_status,
5869 x_msg_count => x_msg_count,
5870 x_msg_data => x_msg_data);
5871
5872 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5873
5874 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5875 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
5876 FND_MESSAGE.Set_Token('INFO', 'DELAYED SERVICE', FALSE);
5877 FND_MSG_PUB.ADD;
5878 END IF;
5879 RAISE FND_API.G_EXC_ERROR;
5880 END IF;
5881
5882 END LOOP;
5883
5884 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5885 aso_debug_pub.add('validate delayed service'|| x_return_status, 1, 'Y');
5886 end if;
5887
5888 /* commented by bmishra on 12/15/2004 as quote_party_tbl is obsoleted
5889
5890 FOR i in 1..p_quote_party_tbl.count LOOP
5891
5892 ASO_VALIDATE_PVT.Validate_Party_Object_Id(
5893 p_init_msg_list => FND_API.G_FALSE,
5894 p_party_id => p_quote_party_tbl(i).party_id,
5895 p_party_object_type => p_quote_party_tbl(i).party_object_type,
5896 p_party_object_id => p_quote_party_tbl(i).party_object_id,
5897 x_return_status => x_return_status,
5898 x_msg_count => x_msg_count,
5899 x_msg_data => x_msg_data);
5900 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5901 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5902 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
5903 FND_MESSAGE.Set_Token('INFO', 'PARTY OBJECT ID', FALSE);
5904 FND_MSG_PUB.ADD;
5905 END IF;
5906 RAISE FND_API.G_EXC_ERROR;
5907 END IF;
5908 END LOOP;
5909 */
5910
5911 -- new validation for ship_from_org_id
5912
5913 --l_db_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row( P_Qte_Line_Id => lx_qte_line_rec.quote_line_id);
5914
5915 -- l_db_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows( P_Qte_Header_Id => l_db_qte_line_rec.quote_header_id,
5916 -- P_Qte_Line_Id => l_db_qte_line_rec.quote_line_id);
5917
5918 IF l_db_shipment_tbl.count = 1 THEN
5919 l_db_shipment_rec := l_db_shipment_tbl(1);
5920 END IF;
5921
5922 IF lx_ln_shipment_tbl.count > 0 THEN
5923
5924 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5925 aso_debug_pub.add('Update_Quote_Line: before Validate_ship_from_org_ID', 1, 'Y');
5926 aso_debug_pub.add('lx_qte_line_rec.quote_header_id: '|| lx_qte_line_rec.quote_header_id, 1, 'Y');
5927 aso_debug_pub.add('lx_qte_line_rec.quote_line_id: '|| lx_qte_line_rec.quote_line_id, 1, 'Y');
5928 aso_debug_pub.add('lx_ln_shipment_tbl(1).quote_line_id: '|| lx_ln_shipment_tbl(1).quote_line_id, 1, 'Y');
5929 aso_debug_pub.add('lx_qte_line_rec.inventory_item_id: '|| lx_qte_line_rec.inventory_item_id, 1, 'Y');
5930 aso_debug_pub.add('l_db_qte_line_rec.inventory_item_id: '|| l_db_qte_line_rec.inventory_item_id, 1, 'Y');
5931 aso_debug_pub.add('lx_ln_shipment_tbl(1).ship_from_org_id: '|| lx_ln_shipment_tbl(1).ship_from_org_id,1,'Y');
5932 aso_debug_pub.add('l_db_shipment_rec.ship_from_org_id: '|| l_db_shipment_rec.ship_from_org_id, 1, 'Y');
5933 end if;
5934
5935 IF (l_db_shipment_rec.ship_from_org_id <> lx_ln_shipment_tbl(1).ship_from_org_id) OR
5936 ((l_db_qte_line_rec.inventory_item_id <> lx_qte_line_rec.inventory_item_id) AND
5937 ((lx_ln_shipment_tbl(1).ship_from_org_id IS NOT NULL) AND
5938 (lx_ln_shipment_tbl(1).ship_from_org_id <> FND_API.G_MISS_NUM))) THEN
5939
5940 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5941 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_Line: before Validate_ship_from_org_ID', 1, 'Y');
5942 end if;
5943
5944 ASO_VALIDATE_PVT.Validate_ship_from_org_ID(
5945 P_Qte_Line_rec => lx_qte_line_rec,
5946 P_Shipment_rec => lx_ln_shipment_tbl(1),
5947 x_return_status => x_return_status);
5948
5949 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5950 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_Line: after Validate_ship_from_org_ID', 1, 'Y');
5951 end if;
5952
5953 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5954
5955 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5956 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_Line: after Validate_ship_from_org_ID: <> SUCCESS', 1, 'Y');
5957 end if;
5958
5959 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5960 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SHIP_FROM_ORG_ID');
5961 FND_MESSAGE.Set_Token('SHIP_FROM_ORG_ID', lx_ln_shipment_tbl(1).ship_from_org_id, FALSE);
5962 FND_MESSAGE.Set_Token('INVENTORY_ITEM_ID', lx_qte_line_rec.inventory_item_id, FALSE);
5963 FND_MSG_PUB.ADD;
5964 END IF;
5965
5966 RAISE FND_API.G_EXC_ERROR;
5967
5968 END IF;
5969
5970 END IF;
5971
5972 ELSE
5973
5974 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5975 aso_debug_pub.add('Update_Quote_Line: before Validate_ship_from_org_ID.', 1, 'Y');
5976 aso_debug_pub.add('lx_qte_line_rec.quote_header_id: '|| lx_qte_line_rec.quote_header_id, 1, 'Y');
5977 aso_debug_pub.add('lx_qte_line_rec.quote_line_id: '|| lx_qte_line_rec.quote_line_id, 1, 'Y');
5978 aso_debug_pub.add('lx_qte_line_rec.inventory_item_id: '|| lx_qte_line_rec.inventory_item_id, 1, 'Y');
5979 aso_debug_pub.add('l_db_qte_line_rec.inventory_item_id: '|| l_db_qte_line_rec.inventory_item_id, 1, 'Y');
5980 aso_debug_pub.add('l_db_shipment_rec.ship_from_org_id: '|| l_db_shipment_rec.ship_from_org_id, 1, 'Y');
5981 end if;
5982
5983 IF (l_db_qte_line_rec.inventory_item_id <> lx_qte_line_rec.inventory_item_id) AND
5984 ((l_db_shipment_rec.ship_from_org_id IS NOT NULL) AND
5985 (l_db_shipment_rec.ship_from_org_id <> FND_API.G_MISS_NUM)) THEN
5986
5987 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5988 aso_debug_pub.add('Update_Quote_Line: before Validate_ship_from_org_ID (no lx_ln_shipment_tbl)', 1, 'Y');
5989 end if;
5990
5991 ASO_VALIDATE_PVT.Validate_ship_from_org_ID(
5992 P_Qte_Line_rec => lx_qte_line_rec,
5993 P_Shipment_rec => l_db_shipment_rec,
5994 x_return_status => x_return_status);
5995
5996 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5997 aso_debug_pub.add('Update_Quote_Line: after Validate_ship_from_org_ID (no lx_ln_shipment_tbl)', 1, 'Y');
5998 end if;
5999
6000 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6001
6002 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6003 aso_debug_pub.add('Update_Quote_Line: after Validate_ship_from_org_ID: <> SUCCESS (no lx_ln_shipment_tbl)', 1, 'Y');
6004 end if;
6005
6006 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6007 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SHIP_FROM_ORG_ID');
6008 FND_MESSAGE.Set_Token('SHIP_FROM_ORG_ID', l_db_shipment_rec.ship_from_org_id, FALSE);
6009 FND_MESSAGE.Set_Token('INVENTORY_ITEM_ID', lx_qte_line_rec.inventory_item_id, FALSE);
6010 FND_MSG_PUB.ADD;
6011 END IF;
6012
6013 RAISE FND_API.G_EXC_ERROR;
6014 END IF;
6015
6016 ELSE
6017
6018 IF (l_db_shipment_rec.ship_from_org_id IS NULL) OR (l_db_shipment_rec.ship_from_org_id = FND_API.G_MISS_NUM) THEN
6019
6020 l_hd_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows( P_Qte_Header_Id => l_db_qte_line_rec.quote_header_id,
6021 P_Qte_Line_Id => NULL);
6022
6023 IF l_hd_shipment_tbl.count = 1 THEN
6024 l_hd_shipment_rec := l_hd_shipment_tbl(1);
6025 END IF;
6026
6027 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6028 aso_debug_pub.add('before Validate_ship_from_org_ID: l_hd_shipment_rec.ship_from_org_id: '||l_hd_shipment_rec.ship_from_org_id, 1, 'Y');
6029 end if;
6030
6031 IF (l_db_qte_line_rec.inventory_item_id <> lx_qte_line_rec.inventory_item_id) AND
6032 ((l_hd_shipment_rec.ship_from_org_id IS NOT NULL) AND
6033 (l_hd_shipment_rec.ship_from_org_id <> FND_API.G_MISS_NUM)) THEN
6034
6035 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6036 aso_debug_pub.add('Update_Quote_Line: before Validate_ship_from_org_ID (no db_shipment_tbl)', 1, 'Y');
6037 end if;
6038
6039 ASO_VALIDATE_PVT.Validate_ship_from_org_ID(
6040 P_Qte_Line_rec => lx_qte_line_rec,
6041 P_Shipment_rec => l_hd_shipment_rec,
6042 x_return_status => x_return_status);
6043
6044 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6045 aso_debug_pub.add('Update_Quote_Line: after Validate_ship_from_org_ID (no db_shipment_tbl)', 1, 'Y');
6046 end if;
6047
6048 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6049
6050 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6051 aso_debug_pub.add('after Validate_ship_from_org_ID: <> SUCCESS (no db_shipment_tbl)', 1, 'Y');
6052 end if;
6053
6054 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6055 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SHIP_FROM_ORG_ID');
6056 FND_MESSAGE.Set_Token('SHIP_FROM_ORG_ID', l_hd_shipment_rec.ship_from_org_id, FALSE);
6057 FND_MESSAGE.Set_Token('INVENTORY_ITEM_ID', lx_qte_line_rec.inventory_item_id, FALSE);
6058 FND_MSG_PUB.ADD;
6059 END IF;
6060
6061 RAISE FND_API.G_EXC_ERROR;
6062 END IF;
6063
6064 END IF;
6065
6066 END IF;
6067
6068 END IF;
6069
6070 END IF;
6071
6072 -- end new validation for ship_from_org_id
6073
6074 END IF; --IF p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_RECORD
6075
6076
6077 -- if quantity is decreased check to see if the installation details quantity is not greater than the new quantity
6078 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6079 aso_debug_pub.add('Update_Quote_line - before Inst details and populate_quote_line ', 1, 'N');
6080 end if;
6081
6082 -- hyang csi change 1935614
6083
6084 FOR i IN 1..lx_ln_shipment_tbl.count LOOP
6085
6086 IF lx_ln_shipment_tbl(i).quantity <> FND_API.G_MISS_NUM THEN
6087
6088 if not (csi_utility_grp.ib_active()) then
6089
6090 Open C_inst_details( lx_ln_shipment_tbl(i).shipment_id);
6091 Fetch C_inst_details into l_quantity;
6092
6093 IF ( C_inst_details%FOUND) AND l_quantity > lx_ln_shipment_tbl(i).quantity Then
6094
6095 Close C_inst_details;
6096
6097 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6098 FND_MESSAGE.Set_Name('ASO', 'INST_DETAILS_EXIST');
6099 FND_MSG_PUB.ADD;
6100 END IF;
6101 raise FND_API.G_EXC_ERROR;
6102
6103 ELSE
6104 close C_inst_details;
6105
6106 END IF;
6107
6108 else
6109
6110 open c_csi_details(lx_qte_line_rec.QUOTE_LINE_ID);
6111 fetch c_csi_details into l_quantity;
6112
6113 if (c_csi_details%found) and (l_quantity > lx_ln_shipment_tbl(i).quantity) then
6114
6115 close c_csi_details;
6116
6117 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6118 FND_MESSAGE.Set_Name('ASO', 'INST_DETAILS_EXIST');
6119 FND_MSG_PUB.ADD;
6120 END IF;
6121 raise FND_API.G_EXC_ERROR;
6122
6123 else
6124 close c_csi_details;
6125
6126 end if;
6127
6128 end if;
6129
6130 END IF;
6131
6132 END LOOP;
6133
6134 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6135 aso_debug_pub.add('Update_Quote_Line - after Validate_Agreement:lx_qte_line_rec.UOM_Code: '||lx_qte_line_rec.UOM_Code,1, 'N');
6136 aso_debug_pub.add('Update_Quote_Line - after Validate_Agreement:lx_qte_line_rec.Quantity: '||lx_qte_line_rec.Quantity,1, 'N');
6137 end if;
6138
6139 IF lx_qte_line_rec.UOM_Code = 'ENR' THEN
6140
6141 IF lx_qte_line_rec.Quantity <> FND_API.G_MISS_NUM THEN
6142
6143 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6144 aso_debug_pub.add('Update_Quote_Line - Invalid Quantity for EDU: ',1, 'N');
6145 end if;
6146
6147 x_return_status := FND_API.G_RET_STS_ERROR;
6148 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6149 FND_MESSAGE.Set_Name('ASO', 'ASO_EDU_INVALID_QTY');
6150 FND_MSG_PUB.ADD;
6151 END IF;
6152 RAISE FND_API.G_EXC_ERROR;
6153
6154 END IF;
6155
6156 END IF;
6157
6158 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6159 aso_debug_pub.add('Update_Quote_Line - Before call to Populate_Quote_Line.',1, 'N');
6160 end if;
6161
6162 Populate_Quote_Line( P_Qte_Line_Rec => lx_qte_line_rec,
6163 P_Control_Rec => l_control_rec,
6164 P_Payment_Tbl => lx_ln_payment_tbl,
6165 P_Price_Adj_Tbl => P_Price_Adj_Tbl,
6166 P_Qte_Line_Dtl_tbl => P_Qte_Line_Dtl_tbl,
6167 P_Shipment_Tbl => lx_ln_shipment_tbl,
6168 P_Tax_Detail_Tbl => P_Tax_Detail_Tbl,
6169 P_Freight_Charge_Tbl => P_Freight_Charge_Tbl,
6170 P_Price_Attributes_Tbl => P_Price_Attributes_Tbl,
6171 P_Price_Adj_Attr_Tbl => P_Price_Adj_Attr_Tbl,
6172 P_Line_Attribs_Ext_Tbl => P_Line_Attribs_Ext_Tbl,
6173 P_Sales_Credit_Tbl => P_sales_credit_tbl,
6174 P_Quote_Party_Tbl => P_quote_party_tbl,
6175 P_Operation_Code => 'UPDATE',
6176 X_Qte_Line_Rec => l_Qte_Line_Rec,
6177 X_Payment_Tbl => l_Payment_Tbl,
6178 X_Price_Adj_Tbl => l_Price_Adj_Tbl,
6179 X_Qte_Line_Dtl_tbl => l_Qte_Line_Dtl_tbl,
6180 X_Shipment_Tbl => l_Shipment_Tbl,
6181 X_Tax_Detail_Tbl => l_Tax_Detail_Tbl,
6182 X_Freight_Charge_Tbl => l_Freight_Charge_Tbl,
6183 X_Price_Attributes_Tbl => l_Price_Attributes_Tbl,
6184 X_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl,
6185 X_Line_Attribs_Ext_Tbl => l_Line_Attribs_Ext_Tbl,
6186 X_Sales_Credit_Tbl => l_sales_credit_tbl,
6187 x_Quote_Party_Tbl => l_quote_party_tbl,
6188 X_Return_Status => X_return_status,
6189 X_Msg_Count => x_msg_count,
6190 X_Msg_Data => x_msg_data );
6191
6192 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6193 aso_debug_pub.add('Update_Quote_Line - After call to Populate_Quote_Line: x_return_status: '|| x_return_status ,1, 'N');
6194 end if;
6195
6196 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6197
6198 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6199 FND_MESSAGE.Set_Name('ASO', 'ASO_POPULATING_COLUMNS');
6200 FND_MESSAGE.Set_Token('LINE' , x_qte_line_rec.line_number, FALSE);
6201 FND_MSG_PUB.ADD;
6202 END IF;
6203
6204 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
6205 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6206 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
6207 RAISE FND_API.G_EXC_ERROR;
6208 END IF;
6209
6210 END IF;
6211 -- copy the orig payment tbl to another variable as the count of the payment tbl may get changed
6212 -- becoz of the payment validation which is done further down
6213 l_orig_payment_tbl := l_Payment_Tbl;
6214
6215 -- inter entity validations
6216 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6217 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: UPDATE_QUOTE_LINE: Begin Inter entity validations');
6218 end if;
6219
6220 IF p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_INTER_ENTITY THEN
6221
6222 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6223 ASO_DEBUG_PUB.add('UQ organization_id = '||nvl(to_char(l_Qte_Line_Rec.organization_id),'null') , 1, 'Y');
6224 ASO_DEBUG_PUB.add('UQ Inventory_item_id = '||l_Qte_Line_Rec.inventory_item_id, 1, 'Y');
6225 END IF;
6226
6227 IF l_Qte_Line_Rec.inventory_item_id <> FND_API.G_MISS_NUM THEN
6228
6229 ASO_VALIDATE_PVT.Validate_Inventory_Item(
6230 p_init_msg_list => FND_API.G_FALSE,
6231 p_inventory_item_id => l_Qte_Line_Rec.inventory_item_id,
6232 p_organization_id => l_Qte_Line_Rec.organization_id,
6233 x_return_status => x_return_status,
6234 x_msg_count => x_msg_count,
6235 x_msg_data => x_msg_data);
6236
6237 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6238 RAISE FND_API.G_EXC_ERROR;
6239 END IF;
6240 END IF ;
6241
6242 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6243 aso_debug_pub.add('after inventory item'|| x_return_status, 1, 'Y');
6244 end if;
6245
6246 -- bug 5196952
6247 if (P_shipment_Tbl.count > 0) then
6248
6249 IF ( p_shipment_tbl(1).ship_method_code is not null and p_shipment_tbl(1).ship_method_code <> fnd_api.g_miss_char) then
6250
6251 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6252 aso_debug_pub.add('Update_Quote_line - ship method codeof quote line is being updated ', 1, 'N');
6253 aso_debug_pub.add('Update_Quote_line - before validate ship_method_code ', 1, 'N');
6254 end if;
6255 ASO_VALIDATE_PVT.validate_ship_method_code
6256 (
6257 p_init_msg_list => fnd_api.g_false,
6258 p_qte_header_id => lx_qte_line_rec.quote_header_id,
6259 p_qte_line_id => lx_qte_line_rec.quote_line_id,
6260 p_organization_id => lx_qte_line_rec.organization_id,
6261 p_ship_method_code => p_shipment_tbl(1).ship_method_code,
6262 p_operation_code => 'UPDATE',
6263 x_return_status => x_return_status,
6264 x_msg_count => x_msg_count,
6265 x_msg_data => x_msg_data);
6266
6267 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6268 aso_debug_pub.add('Update_Quote_line - After validate ship_method_code ', 1, 'N');
6269 end if;
6270
6271 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6272 RAISE FND_API.G_EXC_ERROR;
6273 END IF;
6274 end if; -- end if for ship method code check
6275 elsif (lx_qte_line_rec.organization_id is not null and lx_qte_line_rec.organization_id <> fnd_api.g_miss_num and P_shipment_Tbl.count = 0) then
6276 -- this means the organization id on the qte line is being updated, hence need to validate the ship method code again for new organization id
6277 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6278 aso_debug_pub.add('Update_Quote_line - Organization id of quote line is being updated ', 1, 'N');
6279 aso_debug_pub.add('Update_Quote_line - before validate ship_method_code ', 1, 'N');
6280 end if;
6281 ASO_VALIDATE_PVT.validate_ship_method_code
6282 (
6283 p_init_msg_list => fnd_api.g_false,
6284 p_qte_header_id => lx_qte_line_rec.quote_header_id,
6285 p_qte_line_id => lx_qte_line_rec.quote_line_id,
6286 p_organization_id => lx_qte_line_rec.organization_id,
6287 p_ship_method_code => fnd_api.g_miss_char,
6288 p_operation_code => 'UPDATE',
6289 x_return_status => x_return_status,
6290 x_msg_count => x_msg_count,
6291 x_msg_data => x_msg_data);
6292
6293 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6294 aso_debug_pub.add('Update_Quote_line - After validate ship_method_code ', 1, 'N');
6295 end if;
6296
6297 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6298 RAISE FND_API.G_EXC_ERROR;
6299 END IF;
6300 end if; -- end if for shipment tbl check
6301
6302
6303 l_db_qte_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows (P_Qte_Line_Id => l_Qte_Line_Rec.quote_line_id );
6304
6305 FOR i in 1..l_qte_line_dtl_tbl.count LOOP
6306
6307 -- bug 4258846
6308 IF l_Qte_Line_Rec.start_date_active = FND_API.G_MISS_DATE THEN
6309 l_Qte_Line_Rec.start_date_active := l_db_qte_line_rec.start_date_active;
6310 END IF;
6311 IF l_Qte_Line_Rec.end_date_active = FND_API.G_MISS_DATE THEN
6312 l_Qte_Line_Rec.end_date_active := l_db_qte_line_rec.end_date_active;
6313 END IF;
6314 IF l_Qte_Line_Rec.organization_id = FND_API.G_MISS_NUM THEN
6315 l_Qte_Line_Rec.organization_id := l_db_qte_line_rec.organization_id;
6316 END IF;
6317
6318 IF l_db_qte_line_dtl_tbl.COUNT > 0 THEN
6319
6320 IF l_qte_line_dtl_tbl(i).service_duration = FND_API.G_MISS_NUM THEN
6321 l_qte_line_dtl_tbl(i).service_duration := l_db_qte_line_dtl_tbl(i).service_duration;
6322 END IF;
6323
6324 IF l_qte_line_dtl_tbl(i).service_period = FND_API.G_MISS_CHAR THEN
6325 l_qte_line_dtl_tbl(i).service_period := l_db_qte_line_dtl_tbl(i).service_period;
6326 END IF;
6327
6328 IF l_qte_line_dtl_tbl(i).service_coterminate_flag = FND_API.G_MISS_CHAR THEN
6329 l_qte_line_dtl_tbl(i).service_coterminate_flag := l_db_qte_line_dtl_tbl(i).service_coterminate_flag;
6330 END IF;
6331
6332 END IF;
6333
6334 ASO_VALIDATE_PVT.Validate_Service(
6335 p_init_msg_list => FND_API.G_FALSE,
6336 p_inventory_item_id => l_Qte_Line_Rec.inventory_item_id,
6337 p_start_date_active => l_Qte_Line_Rec.start_date_active,
6338 p_end_date_active => l_Qte_Line_Rec.end_date_active,
6339 p_service_duration => l_qte_line_dtl_tbl(i).service_duration,
6340 p_service_period => l_qte_line_dtl_tbl(i).service_period,
6341 p_service_coterminate_flag => l_qte_line_dtl_tbl(i).service_coterminate_flag,
6342 p_organization_id => l_Qte_Line_Rec.organization_id,
6343 x_return_status => x_return_status,
6344 x_msg_count => x_msg_count,
6345 x_msg_data => x_msg_data);
6346
6347 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6348 aso_debug_pub.add('Update_Quote_line: After Validate_Service: x_return_status: '|| x_return_status);
6349 end if;
6350
6351 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6352
6353 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6354 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
6355 FND_MESSAGE.Set_Token('INFO','SERVICE', FALSE);
6356 FND_MSG_PUB.ADD;
6357 END IF;
6358
6359 RAISE FND_API.G_EXC_ERROR;
6360
6361 END IF;
6362
6363 --validate service period
6364
6365 ASO_VALIDATE_PVT.Validate_UOM_code(
6366 p_init_msg_list => FND_API.G_FALSE,
6367 p_uom_code => l_qte_line_dtl_tbl(i).service_period,
6368 p_organization_id => l_Qte_Line_Rec.organization_id,
6369 p_inventory_item_id => l_Qte_Line_Rec.inventory_item_id,
6370 x_return_status => x_return_status,
6371 x_msg_count => x_msg_count,
6372 x_msg_data => x_msg_data);
6373
6374 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6375 aso_debug_pub.add('Update_Quote_line: After validate service period: x_return_status: '|| x_return_status);
6376 end if;
6377
6378 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6379 RAISE FND_API.G_EXC_ERROR;
6380 END IF;
6381
6382 --Service cannot be added to a product that is being returned
6383
6384 IF l_qte_line_dtl_tbl(i).service_ref_type_code = 'QUOTE'
6385 AND l_qte_line_dtl_tbl(i).service_ref_line_id IS NOT NULL
6386 AND l_qte_line_dtl_tbl(i).service_ref_line_id <> FND_API.G_MISS_NUM THEN
6387
6388 OPEN C_line_category_code(l_qte_line_dtl_tbl(i).service_ref_line_id);
6389 FETCH C_line_category_code INTO l_line_category_code;
6390
6391 IF C_line_category_code%FOUND AND l_line_category_code = 'RETURN' THEN
6392
6393 CLOSE C_line_category_code;
6394
6395 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6396 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SERVICE_REFERENCE');
6397 FND_MSG_PUB.ADD;
6398 END IF;
6399
6400 RAISE FND_API.G_EXC_ERROR;
6401
6402 END IF;
6403
6404 CLOSE C_line_category_code;
6405
6406 END IF;
6407
6408 --New code for Bug#3280130
6409
6410 if aso_debug_pub.g_debug_flag = 'Y' then
6411 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').service_ref_line_id: ' || l_qte_line_dtl_tbl(i).service_ref_line_id);
6412 end if;
6413
6414 if l_qte_line_dtl_tbl(i).service_ref_line_id is not null and
6415 l_qte_line_dtl_tbl(i).service_ref_line_id <> fnd_api.g_miss_num then
6416
6417 if aso_debug_pub.g_debug_flag = 'Y' then
6418 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').service_ref_type_code: ' || l_qte_line_dtl_tbl(i).service_ref_type_code);
6419 end if;
6420
6421 if l_qte_line_dtl_tbl(i).service_ref_type_code is null or
6422 l_qte_line_dtl_tbl(i).service_ref_type_code = fnd_api.g_miss_char then
6423
6424 open c_service_ref_type_code( l_qte_line_dtl_tbl(i).quote_line_detail_id );
6425 fetch c_service_ref_type_code into l_service_ref_type_code;
6426 close c_service_ref_type_code;
6427
6428 if aso_debug_pub.g_debug_flag = 'Y' then
6429 aso_debug_pub.add('l_service_ref_type_code: ' || l_service_ref_type_code);
6430 end if;
6431
6432 if l_service_ref_type_code is null then
6433
6434 x_return_status := fnd_api.g_ret_sts_error;
6435
6436 IF fnd_msg_pub.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6437 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
6438 FND_MESSAGE.Set_Token('COLUMN', 'SERVICE_REF_TYPE_CODE', FALSE);
6439 FND_MESSAGE.Set_Token('VALUE', l_qte_line_dtl_tbl(i).service_ref_type_code,FALSE);
6440 FND_MSG_PUB.ADD;
6441 END IF;
6442
6443 raise fnd_api.g_exc_error;
6444
6445 end if;
6446
6447 else
6448
6449 l_service_ref_type_code := l_qte_line_dtl_tbl(i).service_ref_type_code;
6450
6451 end if;
6452
6453 if aso_debug_pub.g_debug_flag = 'Y' then
6454 aso_debug_pub.add('l_service_ref_type_code: ' || l_service_ref_type_code);
6455 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').service_ref_line_id: ' || l_qte_line_dtl_tbl(i).service_ref_line_id);
6456 aso_debug_pub.add('UPDATE_QUOTE_LINE: Before calling aso_validate_pvt.validate_service_ref_line_id');
6457 end if;
6458
6459 aso_validate_pvt.validate_service_ref_line_id (
6460 p_init_msg_list => fnd_api.g_false,
6461 p_service_ref_type_code => l_service_ref_type_code,
6462 p_service_ref_line_id => l_qte_line_dtl_tbl(i).service_ref_line_id,
6463 p_qte_header_id => l_Qte_Line_Rec.quote_header_id,
6464 x_return_status => x_return_status,
6465 x_msg_count => x_msg_count,
6466 x_msg_data => x_msg_data);
6467
6468 if aso_debug_pub.g_debug_flag = 'Y' then
6469 aso_debug_pub.add('UPDATE_QUOTE_LINE: After calling aso_validate_pvt.validate_service_ref_line_id');
6470 aso_debug_pub.add('UPDATE_QUOTE_LINE: x_return_status: '|| x_return_status);
6471 end if;
6472
6473 if x_return_status <> fnd_api.g_ret_sts_success then
6474 raise fnd_api.g_exc_error;
6475 end if;
6476
6477 end if;
6478
6479 --End new code for Bug#3280130
6480
6481 END LOOP; -- FOR i in 1..l_qte_line_dtl_tbl.count LOOP
6482
6483 --You cannot select the line category code "Return" if a service is selected for a product.
6484
6485 IF l_Qte_Line_Rec.line_category_code = 'RETURN' THEN
6486
6487 OPEN c_service_exist;
6488 FETCH c_service_exist INTO l_qln_exist;
6489
6490 IF c_service_exist%FOUND THEN
6491
6492 CLOSE c_service_exist;
6493
6494 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6495 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_LINE_CATEGORY');
6496 FND_MSG_PUB.ADD;
6497 END IF;
6498
6499 RAISE FND_API.G_EXC_ERROR;
6500
6501 END IF;
6502
6503 CLOSE c_service_exist;
6504
6505 END IF;
6506
6507 END IF; -- inter entity validation
6508
6509 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6510 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: UPDATE_QUOTE_LINE: End of Inter entity validations');
6511 end if;
6512
6513
6514 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6515 RAISE FND_API.G_EXC_ERROR;
6516 END IF;
6517
6518 -- order_type must exist and be active in OE_ORDER_TYPES
6519 l_qte_header_rec := ASO_UTILITY_PVT.Query_Header_Row(l_Qte_Line_Rec.QUOTE_HEADER_ID);
6520
6521 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6522 aso_debug_pub.add('Validation level is set',1,'N');
6523 aso_debug_pub.add('l_control_rec.application_type_code: '|| l_control_rec.application_type_code ,1,'N');
6524 end if;
6525
6526 ASO_CHECK_TCA_PVT.check_line_account_info(
6527 p_api_version => 1.0,
6528 p_init_msg_list => FND_API.G_FALSE,
6529 p_cust_account_id => l_qte_header_rec.cust_account_id,
6530 p_qte_line_rec => l_Qte_Line_Rec,
6531 p_line_shipment_tbl => l_shipment_tbl,
6532 p_application_type_code => l_control_rec.application_type_code,
6533 x_return_status => l_return_status,
6534 x_msg_count => l_msg_count,
6535 x_msg_data => l_msg_data );
6536
6537 IF l_Return_Status <> FND_API.G_RET_STS_SUCCESS THEN
6538 raise FND_API.G_EXC_ERROR;
6539 END IF;
6540
6541 ASO_TRADEIN_PVT.LineType( p_init_msg_list => FND_API.G_FALSE,
6542 p_qte_header_rec => l_qte_header_rec,
6543 p_qte_line_rec => l_Qte_Line_Rec,
6544 x_return_status => x_return_status,
6545 x_msg_count => x_msg_count,
6546 x_msg_data => x_msg_data);
6547
6548 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6549 RAISE FND_API.G_EXC_ERROR;
6550 END IF;
6551
6552 if aso_debug_pub.g_debug_flag = 'Y' THEN
6553 aso_debug_pub.add('after order type'|| x_return_status, 1, 'Y');
6554 end if;
6555
6556 If (p_qte_header_rec.order_type_id = FND_API.G_MISS_NUM) then -- [This is for backward compatibility]
6557 l_db_order_type_id := l_qte_header_rec.order_type_id;
6558 else
6559 l_db_order_type_id := p_qte_header_rec.order_type_id;
6560 end if;
6561
6562 If (l_db_order_type_id = l_qte_header_rec.order_type_id) and (l_Qte_Line_Rec.order_line_type_id <> FND_API.G_MISS_NUM) Then
6563
6564 ASO_validate_PVT.Validate_ln_type_for_ord_type(
6565 p_init_msg_list => FND_API.G_FALSE,
6566 p_qte_header_rec => l_qte_header_rec,
6567 P_Qte_Line_rec => l_Qte_Line_Rec,
6568 x_return_status => x_return_status,
6569 x_msg_count => x_msg_count,
6570 x_msg_data => x_msg_data);
6571
6572 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6573 RAISE FND_API.G_EXC_ERROR;
6574 END IF;
6575
6576 End if;
6577
6578
6579 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
6580 aso_debug_pub.add('x_return_status for Validate_ln_type_for_ord_type'|| x_return_status, 1, 'Y');
6581 END IF;
6582
6583
6584 ASO_TRADEIN_PVT.Validate_Line_Tradein( p_init_msg_list => FND_API.G_FALSE,
6585 p_qte_header_rec => l_qte_header_rec,
6586 P_Qte_Line_rec => l_Qte_Line_Rec,
6587 x_return_status => x_return_status,
6588 x_msg_count => x_msg_count,
6589 x_msg_data => x_msg_data);
6590
6591 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6592 RAISE FND_API.G_EXC_ERROR;
6593 END IF;
6594
6595 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6596 aso_debug_pub.add('Update_Quote_Line - after Validate_Line_Tradein:x_return_status: '||x_return_status, 1, 'N');
6597 end if;
6598
6599 ASO_TRADEIN_PVT.Validate_IB_Return_Qty( p_init_msg_list => FND_API.G_FALSE,
6600 p_Qte_Line_rec => l_Qte_Line_Rec,
6601 p_Qte_Line_Dtl_Tbl => l_qte_line_dtl_tbl,
6602 x_return_status => x_return_status,
6603 x_msg_count => x_msg_count,
6604 x_msg_data => x_msg_data);
6605
6606 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6607 RAISE FND_API.G_EXC_ERROR;
6608 END IF;
6609
6610 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6611 aso_debug_pub.add('Update_Quote_Line - after Validate_IB_Return_Qty:x_return_status: '||x_return_status, 1, 'N');
6612 end if;
6613
6614 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
6615
6616 ASO_VALIDATE_PVT.Validate_Sales_Credit_Return(
6617 p_init_msg_list => FND_API.G_FALSE,
6618 p_sales_credit_tbl => p_sales_credit_tbl,
6619 p_qte_line_rec => l_Qte_Line_Rec,
6620 x_return_status => x_return_status,
6621 x_msg_count => x_msg_count,
6622 x_msg_data => x_msg_data);
6623
6624 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6625 RAISE FND_API.G_EXC_ERROR;
6626 END IF;
6627
6628 END IF;
6629
6630 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6631 aso_debug_pub.add('Update_Quote_Line - before Validate_Agreement:l_Qte_Line_Rec.Agreement_Id: '||l_Qte_Line_Rec.Agreement_Id, 1, 'N');
6632 end if;
6633
6634 IF (l_Qte_Line_Rec.Agreement_Id IS NOT NULL AND l_Qte_Line_Rec.Agreement_Id <> FND_API.G_MISS_NUM) THEN
6635
6636 ASO_VALIDATE_PVT.Validate_Agreement(
6637 p_init_msg_list => FND_API.G_FALSE,
6638 P_Agreement_Id => l_Qte_Line_Rec.Agreement_Id,
6639 x_return_status => x_return_status,
6640 x_msg_count => x_msg_count,
6641 x_msg_data => x_msg_data);
6642
6643 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6644 aso_debug_pub.add('Update_Quote_Line - after Validate_Agreement:x_return_status: '||x_return_status, 1, 'N');
6645 end if;
6646
6647 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6648 RAISE FND_API.G_EXC_ERROR;
6649 END IF;
6650
6651 END IF;
6652
6653 -- Validate the invoice to cust party id and payment info, if any
6654 IF l_payment_tbl.count = 0 then
6655 l_payment_tbl := aso_utility_pvt.Query_Payment_Rows( l_qte_line_rec.QUOTE_HEADER_ID,l_qte_line_rec.quote_line_id);
6656 Else
6657 -- check to see if the value has been changed, if not get orig value from db
6658 if l_payment_tbl(1).payment_type_code = fnd_api.g_miss_char then
6659 open get_payment_type_code(l_payment_tbl(1).payment_id);
6660 fetch get_payment_type_code into l_payment_tbl(1).payment_type_code;
6661 close get_payment_type_code;
6662 end if;
6663 End if;
6664
6665 -- bill to customer may not have been changed, if so get orig value from db
6666 if l_qte_line_rec.invoice_to_cust_party_id = fnd_api.g_miss_num then
6667 open get_bill_to_party(l_qte_line_rec.quote_line_id);
6668 fetch get_bill_to_party into l_qte_line_rec.invoice_to_cust_party_id;
6669 close get_bill_to_party;
6670 end if;
6671
6672 IF l_payment_tbl.count > 0 then
6673 l_payment_rec := l_payment_tbl(1);
6674 --IF l_payment_rec.payment_type_code = 'CREDIT_CARD' THEN
6675 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6676 aso_debug_pub.add('Before calling Validate_cc_info ', 1, 'Y');
6677 END IF;
6678 l_qte_header_rec := ASO_UTILITY_PVT.Query_Header_Row (l_qte_line_rec.Quote_Header_Id );
6679
6680 aso_validate_pvt.Validate_cc_info
6681 (
6682 p_init_msg_list => fnd_api.g_false,
6683 p_payment_rec => l_payment_rec,
6684 p_qte_header_rec => l_qte_header_rec,
6685 P_Qte_Line_rec => l_qte_line_rec,
6686 x_return_status => x_return_status,
6687 x_msg_count => x_msg_count,
6688 x_msg_data => x_msg_data);
6689
6690 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6691 aso_debug_pub.add('after calling Validate_cc_info ', 1, 'Y');
6692 aso_debug_pub.add('Validate_cc_info Return Status: '||x_return_status, 1, 'Y');
6693 END IF;
6694
6695 if x_return_status <> fnd_api.g_ret_sts_success then
6696 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
6697 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6698 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
6699 RAISE FND_API.G_EXC_ERROR;
6700 ELSE
6701 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6702 END IF;
6703 end if;
6704 --END IF;
6705
6706 End if;
6707
6708 -- rset the payment tbl as the original count may have been changed becoz of the validation
6709 l_Payment_Tbl := l_orig_payment_tbl;
6710
6711 x_qte_line_rec := l_Qte_Line_Rec;
6712
6713 ASO_QUOTE_LINES_PKG.Update_Row(
6714 p_QUOTE_LINE_ID => l_Qte_Line_Rec.QUOTE_LINE_ID,
6715 p_CREATION_DATE => l_qte_line_rec.creation_date,
6716 p_CREATED_BY => G_USER_ID,
6717 p_LAST_UPDATE_DATE => SYSDATE,
6718 p_LAST_UPDATED_BY => G_USER_ID,
6719 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
6720 p_REQUEST_ID => l_qte_line_rec.REQUEST_ID,
6721 p_PROGRAM_APPLICATION_ID => l_qte_line_rec.PROGRAM_APPLICATION_ID,
6722 p_PROGRAM_ID => l_qte_line_rec.PROGRAM_ID,
6723 p_PROGRAM_UPDATE_DATE => l_qte_line_rec.PROGRAM_UPDATE_DATE,
6724 p_QUOTE_HEADER_ID => l_qte_line_rec.QUOTE_HEADER_ID,
6725 p_ORG_ID => l_qte_line_rec.ORG_ID ,
6726 p_LINE_CATEGORY_CODE => l_qte_line_rec.LINE_CATEGORY_CODE ,
6727 p_ITEM_TYPE_CODE => l_qte_line_rec.ITEM_TYPE_CODE ,
6728 p_LINE_NUMBER => l_qte_line_rec.LINE_NUMBER,
6729 p_START_DATE_ACTIVE => trunc(l_qte_line_rec.START_DATE_ACTIVE),
6730 p_END_DATE_ACTIVE => trunc(l_qte_line_rec.END_DATE_ACTIVE) ,
6731 p_ORDER_LINE_TYPE_ID => l_qte_line_rec.ORDER_LINE_TYPE_ID ,
6732 p_INVOICE_TO_PARTY_SITE_ID
6733 => l_qte_line_rec.INVOICE_TO_PARTY_SITE_ID ,
6734 p_INVOICE_TO_PARTY_ID => l_qte_line_rec.INVOICE_TO_PARTY_ID ,
6735 p_INVOICE_TO_CUST_ACCOUNT_ID => l_qte_line_rec.INVOICE_TO_CUST_ACCOUNT_ID ,
6736 p_ORGANIZATION_ID => l_qte_line_rec.ORGANIZATION_ID,
6737 p_INVENTORY_ITEM_ID => l_qte_line_rec.INVENTORY_ITEM_ID ,
6738 p_QUANTITY => l_qte_line_rec.QUANTITY ,
6739 p_UOM_CODE => l_qte_line_rec.UOM_CODE ,
6740 p_MARKETING_SOURCE_CODE_ID
6741 => l_qte_line_rec.marketing_source_code_id,
6742 p_PRICE_LIST_ID => l_qte_line_rec.PRICE_LIST_ID ,
6743 p_PRICE_LIST_LINE_ID => l_qte_line_rec.PRICE_LIST_LINE_ID,
6744 p_CURRENCY_CODE => l_qte_line_rec.CURRENCY_CODE ,
6745 p_LINE_LIST_PRICE => l_qte_line_rec.LINE_LIST_PRICE ,
6746 p_LINE_ADJUSTED_AMOUNT => l_qte_line_rec.LINE_ADJUSTED_AMOUNT ,
6747 p_LINE_ADJUSTED_PERCENT => l_qte_line_rec.LINE_ADJUSTED_PERCENT ,
6748 p_LINE_QUOTE_PRICE => l_qte_line_rec.LINE_QUOTE_PRICE ,
6749 p_RELATED_ITEM_ID => l_qte_line_rec.RELATED_ITEM_ID ,
6750 p_ITEM_RELATIONSHIP_TYPE => l_qte_line_rec.ITEM_RELATIONSHIP_TYPE ,
6751 p_ACCOUNTING_RULE_ID => l_qte_line_rec.ACCOUNTING_RULE_ID,
6752 p_INVOICING_RULE_ID => l_qte_line_rec.INVOICING_RULE_ID,
6753 p_SPLIT_SHIPMENT_FLAG => l_qte_line_rec.SPLIT_SHIPMENT_FLAG ,
6754 p_BACKORDER_FLAG => l_qte_line_rec.BACKORDER_FLAG ,
6755 p_MINISITE_ID => l_qte_line_rec.MINISITE_ID,
6756 p_SECTION_ID => l_qte_line_rec.SECTION_ID,
6757 p_ATTRIBUTE_CATEGORY => l_qte_line_rec.ATTRIBUTE_CATEGORY,
6758 p_ATTRIBUTE1 => l_qte_line_rec.ATTRIBUTE1,
6759 p_ATTRIBUTE2 => l_qte_line_rec.ATTRIBUTE2,
6760 p_ATTRIBUTE3 => l_qte_line_rec.ATTRIBUTE3,
6761 p_ATTRIBUTE4 => l_qte_line_rec.ATTRIBUTE4,
6762 p_ATTRIBUTE5 => l_qte_line_rec.ATTRIBUTE5,
6763 p_ATTRIBUTE6 => l_qte_line_rec.ATTRIBUTE6,
6764 p_ATTRIBUTE7 => l_qte_line_rec.ATTRIBUTE7,
6765 p_ATTRIBUTE8 => l_qte_line_rec.ATTRIBUTE8,
6766 p_ATTRIBUTE9 => l_qte_line_rec.ATTRIBUTE9,
6767 p_ATTRIBUTE10 => l_qte_line_rec.ATTRIBUTE10,
6768 p_ATTRIBUTE11 => l_qte_line_rec.ATTRIBUTE11,
6769 p_ATTRIBUTE12 => l_qte_line_rec.ATTRIBUTE12,
6770 p_ATTRIBUTE13 => l_qte_line_rec.ATTRIBUTE13,
6771 p_ATTRIBUTE14 => l_qte_line_rec.ATTRIBUTE14,
6772 p_ATTRIBUTE15 => l_qte_line_rec.ATTRIBUTE15,
6773 p_ATTRIBUTE16 => l_qte_line_rec.ATTRIBUTE16,
6774 p_ATTRIBUTE17 => l_qte_line_rec.ATTRIBUTE17,
6775 p_ATTRIBUTE18 => l_qte_line_rec.ATTRIBUTE18,
6776 p_ATTRIBUTE19 => l_qte_line_rec.ATTRIBUTE19,
6777 p_ATTRIBUTE20 => l_qte_line_rec.ATTRIBUTE20,
6778 p_PRICED_PRICE_LIST_ID => l_qte_line_rec.PRICED_PRICE_LIST_ID,
6779 p_AGREEMENT_ID => l_qte_line_rec.AGREEMENT_ID,
6780 p_COMMITMENT_ID => l_qte_line_rec.COMMITMENT_ID,
6781 p_DISPLAY_ARITHMETIC_OPERATOR => l_qte_line_rec.DISPLAY_ARITHMETIC_OPERATOR,
6782 p_LINE_TYPE_SOURCE_FLAG => l_qte_line_rec.LINE_TYPE_SOURCE_FLAG,
6783 p_SERVICE_ITEM_FLAG => l_qte_line_rec.SERVICE_ITEM_FLAG,
6784 p_SERVICEABLE_PRODUCT_FLAG => l_qte_line_rec.SERVICEABLE_PRODUCT_FLAG,
6785 p_INVOICE_TO_CUST_PARTY_ID => l_qte_line_rec.INVOICE_TO_CUST_PARTY_ID,
6786 P_Selling_Price_Change => l_qte_line_rec.Selling_Price_Change,
6787 P_Recalculate_flag => l_qte_line_rec.recalculate_flag,
6788 p_pricing_line_type_indicator => l_qte_line_rec.pricing_line_type_indicator,
6789 p_END_CUSTOMER_PARTY_ID => l_Qte_Line_Rec.END_CUSTOMER_PARTY_ID,
6790 p_END_CUSTOMER_CUST_PARTY_ID => l_Qte_Line_Rec.END_CUSTOMER_CUST_PARTY_ID,
6791 p_END_CUSTOMER_PARTY_SITE_ID => l_Qte_Line_Rec.END_CUSTOMER_PARTY_SITE_ID,
6792 p_END_CUSTOMER_CUST_ACCOUNT_ID => l_Qte_Line_Rec.END_CUSTOMER_CUST_ACCOUNT_ID,
6793 p_OBJECT_VERSION_NUMBER => l_qte_line_rec.object_version_number,
6794 p_CHARGE_PERIODICITY_CODE => l_qte_line_rec.CHARGE_PERIODICITY_CODE, -- Recurring charges Change
6795 p_SHIP_MODEL_COMPLETE_FLAG => l_qte_line_rec.SHIP_MODEL_COMPLETE_FLAG,
6796 p_LINE_PAYNOW_CHARGES => l_qte_line_rec.LINE_PAYNOW_CHARGES,
6797 p_LINE_PAYNOW_TAX => l_qte_line_rec.LINE_PAYNOW_TAX,
6798 p_LINE_PAYNOW_SUBTOTAL => l_qte_line_rec.LINE_PAYNOW_SUBTOTAL,
6799 p_PRICING_QUANTITY_UOM => l_qte_line_rec.PRICING_QUANTITY_UOM,
6800 p_PRICING_QUANTITY => l_qte_line_rec.PRICING_QUANTITY,
6801 p_CONFIG_MODEL_TYPE => l_qte_line_rec.CONFIG_MODEL_TYPE
6802 );
6803
6804 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6805 aso_debug_pub.add('Update_Quote_line - after line.update ', 1, 'N');
6806 end if;
6807 -- line details
6808
6809 -- Start Updating Line_category_code and order_line_type_id of configured lines if Model
6810 -- line Line_category_code and order_line_type_id value has changed Bmishra 02/15/02
6811 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6812 aso_debug_pub.add('Update_Quote_lines - l_Qte_Line_Rec.line_category_code: '||l_Qte_Line_Rec.line_category_code, 1, 'Y');
6813 aso_debug_pub.add('Update_Quote_lines - l_Qte_Line_Rec.order_line_type_id: '||l_Qte_Line_Rec.order_line_type_id, 1, 'Y');
6814 end if;
6815 IF (l_Qte_Line_Rec.line_category_code <> FND_API.G_MISS_CHAR) OR
6816 (l_Qte_Line_Rec.order_line_type_id <> FND_API.G_MISS_NUM) THEN
6817 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6818 aso_debug_pub.add('Update_Quote_lines - l_Qte_Line_Rec.item_type_code: '||l_Qte_Line_Rec.item_type_code, 1, 'Y');
6819 end if;
6820 IF l_Qte_Line_Rec.item_type_code = FND_API.G_MISS_CHAR THEN
6821 OPEN c_item_type_code;
6822 FETCH c_item_type_code INTO l_item_type_code;
6823 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6824 aso_debug_pub.add('Update_Quote_lines - Cursor c_item_type_code: l_item_type_code: '||l_item_type_code, 1, 'Y');
6825 end if;
6826 CLOSE c_item_type_code;
6827 ELSIF l_Qte_Line_Rec.item_type_code = 'MDL' THEN
6828 l_item_type_code := l_Qte_Line_Rec.item_type_code;
6829 END IF;
6830
6831 IF l_item_type_code = 'MDL' THEN
6832
6833 OPEN c_order_line_type_id(l_Qte_Line_Rec.quote_line_id);
6834 FETCH c_order_line_type_id INTO l_line_category_code, l_order_line_type_id,
6835 l_config_header_id, l_config_revision_num;
6836
6837 if aso_debug_pub.g_debug_flag = 'Y' then
6838
6839 aso_debug_pub.add('c_order_line_type_id: l_line_category_code: '||l_line_category_code);
6840 aso_debug_pub.add('c_order_line_type_id: l_order_line_type_id: '||l_order_line_type_id);
6841 aso_debug_pub.add('c_order_line_type_id: l_config_header_id: '||l_config_header_id);
6842 aso_debug_pub.add('c_order_line_type_id: l_config_revision_num: '||l_config_revision_num);
6843
6844 end if;
6845
6846 CLOSE c_order_line_type_id;
6847
6848 BEGIN
6849
6850 if aso_debug_pub.g_debug_flag = 'Y' then
6851 aso_debug_pub.add('Update_Quote_lines - Updating l_line_category_code of children.');
6852 end if;
6853
6854 if l_config_header_id is not null and l_config_revision_num is not null then
6855
6856 update aso_quote_lines_all
6857 set line_category_code = l_line_category_code,
6858 order_line_type_id = l_order_line_type_id,
6859 last_update_date = sysdate,
6860 last_updated_by = fnd_global.user_id,
6861 last_update_login = fnd_global.conc_login_id
6862 where NVL(line_type_source_flag,'X') <> 'C'
6863 and quote_line_id in( select quote_line_id
6864 from aso_quote_line_details
6865 where ref_line_id is not null
6866 and ref_type_code = 'CONFIG'
6867 and config_header_id = l_config_header_id
6868 and config_revision_num = l_config_revision_num );
6869
6870 end if;
6871
6872
6873 EXCEPTION
6874
6875 WHEN OTHERS THEN
6876 x_return_status := FND_API.G_RET_STS_ERROR;
6877
6878 if aso_debug_pub.g_debug_flag = 'Y' then
6879 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_quote_line: line_category_code
6880 update, inside WHEN OTHERS EXCEPTION');
6881 end if;
6882
6883
6884 END;
6885
6886 END IF;
6887 END IF;
6888
6889 -- End Updating Line_category_code and order_line_type_id of configured lines if Model
6890 -- line Line_category_code and order_line_type_id value has changed 02/15/02
6891
6892
6893
6894 FOR i in 1..l_qte_line_dtl_tbl.count LOOP
6895 l_qte_line_dtl_rec := l_qte_line_dtl_tbl(i);
6896
6897
6898 IF l_qte_line_dtl_tbl(i).operation_code = 'CREATE' THEN
6899
6900
6901 l_qte_line_dtl_rec.quote_line_id := l_qte_line_rec.quote_line_id;
6902 x_qte_line_dtl_tbl(i) := l_qte_line_dtl_rec;
6903 -- BC4J Fix
6904 --x_qte_line_dtl_tbl(i).QUOTE_LINE_DETAIL_ID := null;
6905
6906 ASO_QUOTE_LINE_DETAILS_PKG.Insert_Row(
6907 px_QUOTE_LINE_DETAIL_ID
6908 => x_qte_line_dtl_tbl(i).QUOTE_LINE_DETAIL_ID,
6909 p_CREATION_DATE => SYSDATE,
6910 p_CREATED_BY => G_USER_ID,
6911 p_LAST_UPDATE_DATE => SYSDATE,
6912 p_LAST_UPDATED_BY => G_USER_ID,
6913 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
6914 p_REQUEST_ID => l_qte_line_dtl_rec.REQUEST_ID,
6915 p_PROGRAM_APPLICATION_ID
6916 => l_qte_line_dtl_rec.PROGRAM_APPLICATION_ID,
6917 p_PROGRAM_ID => l_qte_line_dtl_rec.PROGRAM_ID,
6918 p_PROGRAM_UPDATE_DATE => l_qte_line_dtl_rec.PROGRAM_UPDATE_DATE,
6919 p_QUOTE_LINE_ID => l_qte_line_dtl_rec.QUOTE_LINE_ID,
6920 p_CONFIG_HEADER_ID => l_qte_line_dtl_rec.CONFIG_HEADER_ID,
6921 p_CONFIG_REVISION_NUM => l_qte_line_dtl_rec.CONFIG_REVISION_NUM,
6922 p_COMPLETE_CONFIGURATION_FLAG
6923 => l_qte_line_dtl_rec.COMPLETE_CONFIGURATION_FLAG,
6924 p_VALID_CONFIGURATION_FLAG
6925 => l_qte_line_dtl_rec.VALID_CONFIGURATION_FLAG,
6926 p_COMPONENT_CODE => l_qte_line_dtl_rec.COMPONENT_CODE,
6927 p_SERVICE_COTERMINATE_FLAG
6928 => l_qte_line_dtl_rec.SERVICE_COTERMINATE_FLAG,
6929 p_SERVICE_DURATION => l_qte_line_dtl_rec.SERVICE_DURATION,
6930 p_SERVICE_PERIOD => l_qte_line_dtl_rec.SERVICE_PERIOD,
6931 p_SERVICE_UNIT_SELLING_PERCENT
6932 => l_qte_line_dtl_rec.SERVICE_UNIT_SELLING_PERCENT,
6933 p_SERVICE_UNIT_LIST_PERCENT
6934 => l_qte_line_dtl_rec.SERVICE_UNIT_LIST_PERCENT,
6935 p_SERVICE_NUMBER => l_qte_line_dtl_rec.SERVICE_NUMBER,
6936 p_UNIT_PERCENT_BASE_PRICE
6937 => l_qte_line_dtl_rec.UNIT_PERCENT_BASE_PRICE,
6938 p_ATTRIBUTE_CATEGORY => l_qte_line_dtl_rec.ATTRIBUTE_CATEGORY,
6939 p_ATTRIBUTE1 => l_qte_line_dtl_rec.ATTRIBUTE1,
6940 p_ATTRIBUTE2 => l_qte_line_dtl_rec.ATTRIBUTE2,
6941 p_ATTRIBUTE3 => l_qte_line_dtl_rec.ATTRIBUTE3,
6942 p_ATTRIBUTE4 => l_qte_line_dtl_rec.ATTRIBUTE4,
6943 p_ATTRIBUTE5 => l_qte_line_dtl_rec.ATTRIBUTE5,
6944 p_ATTRIBUTE6 => l_qte_line_dtl_rec.ATTRIBUTE6,
6945 p_ATTRIBUTE7 => l_qte_line_dtl_rec.ATTRIBUTE7,
6946 p_ATTRIBUTE8 => l_qte_line_dtl_rec.ATTRIBUTE8,
6947 p_ATTRIBUTE9 => l_qte_line_dtl_rec.ATTRIBUTE9,
6948 p_ATTRIBUTE10 => l_qte_line_dtl_rec.ATTRIBUTE10,
6949 p_ATTRIBUTE11 => l_qte_line_dtl_rec.ATTRIBUTE11,
6950 p_ATTRIBUTE12 => l_qte_line_dtl_rec.ATTRIBUTE12,
6951 p_ATTRIBUTE13 => l_qte_line_dtl_rec.ATTRIBUTE13,
6952 p_ATTRIBUTE14 => l_qte_line_dtl_rec.ATTRIBUTE14,
6953 p_ATTRIBUTE15 => l_qte_line_dtl_rec.ATTRIBUTE15,
6954 p_ATTRIBUTE16 => l_qte_line_dtl_rec.ATTRIBUTE16,
6955 p_ATTRIBUTE17 => l_qte_line_dtl_rec.ATTRIBUTE17,
6956 p_ATTRIBUTE18 => l_qte_line_dtl_rec.ATTRIBUTE18,
6957 p_ATTRIBUTE19 => l_qte_line_dtl_rec.ATTRIBUTE19,
6958 p_ATTRIBUTE20 => l_qte_line_dtl_rec.ATTRIBUTE20,
6959 p_SERVICE_REF_TYPE_CODE => l_qte_line_dtl_rec.SERVICE_REF_TYPE_CODE,
6960 p_SERVICE_REF_ORDER_NUMBER
6961 => l_qte_line_dtl_rec.SERVICE_REF_ORDER_NUMBER,
6962 p_SERVICE_REF_LINE_NUMBER
6963 => l_qte_line_dtl_rec.SERVICE_REF_LINE_NUMBER,
6964 p_SERVICE_REF_LINE_ID => l_qte_line_dtl_rec.SERVICE_REF_LINE_ID,
6965 p_SERVICE_REF_SYSTEM_ID => l_qte_line_dtl_rec.SERVICE_REF_SYSTEM_ID,
6966 p_SERVICE_REF_OPTION_NUMB
6967 => l_qte_line_dtl_rec.SERVICE_REF_OPTION_NUMB,
6968 p_SERVICE_REF_SHIPMENT_NUMB
6969 => l_qte_line_dtl_rec.SERVICE_REF_SHIPMENT_NUMB,
6970 p_RETURN_REF_TYPE => l_qte_line_dtl_rec.RETURN_REF_TYPE,
6971 p_RETURN_REF_HEADER_ID => l_qte_line_dtl_rec.RETURN_REF_HEADER_ID,
6972 p_RETURN_REF_LINE_ID => l_qte_line_dtl_rec.RETURN_REF_LINE_ID,
6973 p_RETURN_ATTRIBUTE1 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE1,
6974 p_RETURN_ATTRIBUTE2 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE2,
6975 p_RETURN_ATTRIBUTE3 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE3,
6976 p_RETURN_ATTRIBUTE4 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE4,
6977 p_RETURN_ATTRIBUTE5 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE5,
6978 p_RETURN_ATTRIBUTE6 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE6,
6979 p_RETURN_ATTRIBUTE7 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE7,
6980 p_RETURN_ATTRIBUTE8 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE8,
6981 p_RETURN_ATTRIBUTE9 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE9,
6982 p_RETURN_ATTRIBUTE10 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE10,
6983 p_RETURN_ATTRIBUTE11 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE11,
6984 p_RETURN_ATTRIBUTE15 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE15,
6985 p_RETURN_ATTRIBUTE12 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE12,
6986 p_RETURN_ATTRIBUTE13 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE13,
6987 p_RETURN_ATTRIBUTE14 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE14,
6988 p_RETURN_REASON_CODE => l_qte_line_dtl_rec.RETURN_REASON_CODE,
6989 p_CONFIG_ITEM_ID => l_qte_line_dtl_rec.CONFIG_ITEM_ID,
6990 p_REF_TYPE_CODE => l_qte_line_dtl_rec.REF_TYPE_CODE,
6991 p_REF_LINE_ID => l_qte_line_dtl_rec.REF_LINE_ID,
6992 p_INSTANCE_ID => l_qte_line_dtl_rec.INSTANCE_ID,
6993 p_BOM_SORT_ORDER => l_qte_line_dtl_rec.BOM_SORT_ORDER,
6994 p_CONFIG_DELTA => l_qte_line_dtl_rec.CONFIG_DELTA,
6995 p_CONFIG_INSTANCE_NAME => l_qte_line_dtl_rec.CONFIG_INSTANCE_NAME,
6996 p_OBJECT_VERSION_NUMBER => l_qte_line_dtl_rec.OBJECT_VERSION_NUMBER,
6997 p_top_model_line_id => l_qte_line_dtl_rec.top_model_line_id,
6998 p_ato_line_id => l_qte_line_dtl_rec.ato_line_id,
6999 p_component_sequence_id => l_qte_line_dtl_rec.component_sequence_id
7000 );
7001
7002 IF l_qte_line_dtl_rec.service_ref_type_code = 'QUOTE' THEN
7003 OPEN C_Line_relation(l_qte_line_dtl_rec.service_ref_line_id, l_qte_line_dtl_rec.quote_line_id);
7004 FETCH C_Line_relation INTO l_line_rel;
7005 IF C_Line_relation%NOTFOUND THEN
7006 l_line_rtlship_rec.operation_code := 'CREATE';
7007 l_line_rtlship_rec.quote_line_id := l_qte_line_dtl_rec.SERVICE_REF_LINE_ID;
7008 l_line_rtlship_rec.related_quote_line_id := x_qte_line_rec.quote_line_id;
7009 l_line_rtlship_rec.relationship_type_code := 'SERVICE';
7010 l_line_rtlship_rec.reciprocal_flag := FND_API.G_FALSE;
7011
7012 ASO_LINE_RLTSHIP_PVT.Create_line_rltship(
7013 P_Api_Version_Number => 1.0,
7014 P_LINE_RLTSHIP_Rec => l_line_rtlship_rec,
7015 X_LINE_RELATIONSHIP_ID => x_relationship_id,
7016 X_Return_Status => x_return_status,
7017 X_Msg_Count => x_msg_count,
7018 X_Msg_Data => x_msg_data
7019 );
7020 END IF;
7021 END IF;
7022
7023 ELSIF l_qte_line_dtl_tbl(i).operation_code = 'UPDATE' THEN
7024
7025 x_qte_line_dtl_tbl(i) := l_qte_line_dtl_rec;
7026
7027 ASO_QUOTE_LINE_DETAILS_PKG.Update_Row(
7028 p_QUOTE_LINE_DETAIL_ID => l_qte_line_dtl_rec.QUOTE_LINE_DETAIL_ID,
7029 p_CREATION_DATE => l_qte_line_dtl_rec.creation_date,
7030 p_CREATED_BY => G_USER_ID,
7031 p_LAST_UPDATE_DATE => SYSDATE,
7032 p_LAST_UPDATED_BY => G_USER_ID,
7033 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7034 p_REQUEST_ID => l_qte_line_dtl_rec.REQUEST_ID,
7035 p_PROGRAM_APPLICATION_ID
7036 => l_qte_line_dtl_rec.PROGRAM_APPLICATION_ID,
7037 p_PROGRAM_ID => l_qte_line_dtl_rec.PROGRAM_ID,
7038 p_PROGRAM_UPDATE_DATE => l_qte_line_dtl_rec.PROGRAM_UPDATE_DATE,
7039 p_QUOTE_LINE_ID => l_qte_line_dtl_rec.QUOTE_LINE_ID,
7040 p_CONFIG_HEADER_ID => l_qte_line_dtl_rec.CONFIG_HEADER_ID,
7041 p_CONFIG_REVISION_NUM => l_qte_line_dtl_rec.CONFIG_REVISION_NUM,
7042 p_COMPLETE_CONFIGURATION_FLAG
7043 => l_qte_line_dtl_rec.COMPLETE_CONFIGURATION_FLAG,
7044 p_VALID_CONFIGURATION_FLAG
7045 => l_qte_line_dtl_rec.VALID_CONFIGURATION_FLAG,
7046 p_COMPONENT_CODE => l_qte_line_dtl_rec.COMPONENT_CODE,
7047 p_SERVICE_COTERMINATE_FLAG
7048 => l_qte_line_dtl_rec.SERVICE_COTERMINATE_FLAG,
7049 p_SERVICE_DURATION => l_qte_line_dtl_rec.SERVICE_DURATION,
7050 p_SERVICE_PERIOD => l_qte_line_dtl_rec.SERVICE_PERIOD,
7051 p_SERVICE_UNIT_SELLING_PERCENT
7052 => l_qte_line_dtl_rec.SERVICE_UNIT_SELLING_PERCENT,
7053 p_SERVICE_UNIT_LIST_PERCENT
7054 => l_qte_line_dtl_rec.SERVICE_UNIT_LIST_PERCENT,
7055 p_SERVICE_NUMBER => l_qte_line_dtl_rec.SERVICE_NUMBER,
7056 p_UNIT_PERCENT_BASE_PRICE
7057 => l_qte_line_dtl_rec.UNIT_PERCENT_BASE_PRICE,
7058 p_ATTRIBUTE_CATEGORY => l_qte_line_dtl_rec.ATTRIBUTE_CATEGORY,
7059 p_ATTRIBUTE1 => l_qte_line_dtl_rec.ATTRIBUTE1,
7060 p_ATTRIBUTE2 => l_qte_line_dtl_rec.ATTRIBUTE2,
7061 p_ATTRIBUTE3 => l_qte_line_dtl_rec.ATTRIBUTE3,
7062 p_ATTRIBUTE4 => l_qte_line_dtl_rec.ATTRIBUTE4,
7063 p_ATTRIBUTE5 => l_qte_line_dtl_rec.ATTRIBUTE5,
7064 p_ATTRIBUTE6 => l_qte_line_dtl_rec.ATTRIBUTE6,
7065 p_ATTRIBUTE7 => l_qte_line_dtl_rec.ATTRIBUTE7,
7066 p_ATTRIBUTE8 => l_qte_line_dtl_rec.ATTRIBUTE8,
7067 p_ATTRIBUTE9 => l_qte_line_dtl_rec.ATTRIBUTE9,
7068 p_ATTRIBUTE10 => l_qte_line_dtl_rec.ATTRIBUTE10,
7069 p_ATTRIBUTE11 => l_qte_line_dtl_rec.ATTRIBUTE11,
7070 p_ATTRIBUTE12 => l_qte_line_dtl_rec.ATTRIBUTE12,
7071 p_ATTRIBUTE13 => l_qte_line_dtl_rec.ATTRIBUTE13,
7072 p_ATTRIBUTE14 => l_qte_line_dtl_rec.ATTRIBUTE14,
7073 p_ATTRIBUTE15 => l_qte_line_dtl_rec.ATTRIBUTE15,
7074 p_ATTRIBUTE16 => l_qte_line_dtl_rec.ATTRIBUTE16,
7075 p_ATTRIBUTE17 => l_qte_line_dtl_rec.ATTRIBUTE17,
7076 p_ATTRIBUTE18 => l_qte_line_dtl_rec.ATTRIBUTE18,
7077 p_ATTRIBUTE19 => l_qte_line_dtl_rec.ATTRIBUTE19,
7078 p_ATTRIBUTE20 => l_qte_line_dtl_rec.ATTRIBUTE20,
7079 p_SERVICE_REF_TYPE_CODE => l_qte_line_dtl_rec.SERVICE_REF_TYPE_CODE,
7080 p_SERVICE_REF_ORDER_NUMBER
7081 => l_qte_line_dtl_rec.SERVICE_REF_ORDER_NUMBER,
7082 p_SERVICE_REF_LINE_NUMBER
7083 => l_qte_line_dtl_rec.SERVICE_REF_LINE_NUMBER,
7084 p_SERVICE_REF_LINE_ID => l_qte_line_dtl_rec.SERVICE_REF_LINE_ID,
7085 p_SERVICE_REF_SYSTEM_ID => l_qte_line_dtl_rec.SERVICE_REF_SYSTEM_ID,
7086 p_SERVICE_REF_OPTION_NUMB
7087 => l_qte_line_dtl_rec.SERVICE_REF_OPTION_NUMB,
7088 p_SERVICE_REF_SHIPMENT_NUMB
7089 => l_qte_line_dtl_rec.SERVICE_REF_SHIPMENT_NUMB,
7090 p_RETURN_REF_TYPE => l_qte_line_dtl_rec.RETURN_REF_TYPE,
7091 p_RETURN_REF_HEADER_ID=> l_qte_line_dtl_rec.RETURN_REF_HEADER_ID,
7092 p_RETURN_REF_LINE_ID => l_qte_line_dtl_rec.RETURN_REF_LINE_ID,
7093 p_RETURN_ATTRIBUTE1 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE1,
7094 p_RETURN_ATTRIBUTE2 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE2,
7095 p_RETURN_ATTRIBUTE3 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE3,
7096 p_RETURN_ATTRIBUTE4 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE4,
7097 p_RETURN_ATTRIBUTE5 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE5,
7098 p_RETURN_ATTRIBUTE6 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE6,
7099 p_RETURN_ATTRIBUTE7 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE7,
7100 p_RETURN_ATTRIBUTE8 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE8,
7101 p_RETURN_ATTRIBUTE9 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE9,
7102 p_RETURN_ATTRIBUTE10 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE10,
7103 p_RETURN_ATTRIBUTE11 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE11,
7104 p_RETURN_ATTRIBUTE15 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE15,
7105 p_RETURN_ATTRIBUTE12 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE12,
7106 p_RETURN_ATTRIBUTE13 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE13,
7107 p_RETURN_ATTRIBUTE14 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE14,
7108 p_RETURN_REASON_CODE => l_qte_line_dtl_rec.RETURN_REASON_CODE,
7109 p_CONFIG_ITEM_ID => l_qte_line_dtl_rec.CONFIG_ITEM_ID,
7110 p_REF_TYPE_CODE => l_qte_line_dtl_rec.REF_TYPE_CODE,
7111 p_REF_LINE_ID => l_qte_line_dtl_rec.REF_LINE_ID,
7112 p_INSTANCE_ID => l_qte_line_dtl_rec.INSTANCE_ID,
7113 p_BOM_SORT_ORDER => l_qte_line_dtl_rec.BOM_SORT_ORDER,
7114 p_CONFIG_DELTA => l_qte_line_dtl_rec.CONFIG_DELTA,
7115 p_CONFIG_INSTANCE_NAME => l_qte_line_dtl_rec.CONFIG_INSTANCE_NAME,
7116 p_OBJECT_VERSION_NUMBER => l_qte_line_dtl_rec.OBJECT_VERSION_NUMBER,
7117 p_top_model_line_id => l_qte_line_dtl_rec.top_model_line_id,
7118 p_ato_line_id => l_qte_line_dtl_rec.ato_line_id,
7119 p_component_sequence_id => l_qte_line_dtl_rec.component_sequence_id
7120 );
7121
7122 l_db_qte_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows (P_Qte_Line_Id => x_qte_line_rec.quote_line_id );
7123 IF l_db_qte_line_dtl_tbl(1).service_ref_type_code = 'QUOTE' THEN
7124 OPEN C_Line_relation(l_db_qte_line_dtl_tbl(1).service_ref_line_id, l_db_qte_line_dtl_tbl(1).quote_line_id);
7125 FETCH C_Line_relation INTO l_line_rel;
7126 IF C_Line_relation%NOTFOUND THEN
7127 l_line_rtlship_rec.operation_code := 'CREATE';
7128 l_line_rtlship_rec.quote_line_id := l_db_qte_line_dtl_tbl(1).SERVICE_REF_LINE_ID;
7129 l_line_rtlship_rec.related_quote_line_id := x_qte_line_rec.quote_line_id;
7130 l_line_rtlship_rec.relationship_type_code := 'SERVICE';
7131 l_line_rtlship_rec.reciprocal_flag := FND_API.G_FALSE;
7132 ASO_LINE_RLTSHIP_PVT.Create_line_rltship(
7133 P_Api_Version_Number => 1.0,
7134 P_LINE_RLTSHIP_Rec => l_line_rtlship_rec,
7135 X_LINE_RELATIONSHIP_ID => x_relationship_id,
7136 X_Return_Status => x_return_status,
7137 X_Msg_Count => x_msg_count,
7138 X_Msg_Data => x_msg_data
7139 );
7140 END IF;
7141 END IF;
7142
7143 ELSIF l_qte_line_dtl_tbl(i).operation_code = 'DELETE' THEN
7144
7145 ASO_QUOTE_LINE_DETAILS_PKG.Delete_Row(
7146 p_QUOTE_LINE_DETAIL_ID => l_qte_line_dtl_rec.quote_line_detail_id);
7147 END IF;
7148
7149 END LOOP;
7150 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7151 aso_debug_pub.add('Update_Quote_line - after line_details.update ', 1, 'Y');
7152 end if;
7153
7154 -- Service line quantity update Bmishra 01/09/02
7155 l_call_update := FND_API.G_FALSE;
7156 IF l_Qte_Line_Rec.inventory_item_id = FND_API.G_MISS_NUM THEN
7157 OPEN c_inventory_item_id;
7158 FETCH c_inventory_item_id INTO l_Qte_Line_Rec.inventory_item_id;
7159 CLOSE c_inventory_item_id;
7160 END IF;
7161 OPEN c_service (l_Qte_Line_Rec.quote_line_id);
7162 FETCH c_service INTO l_service_item_flag, l_serviceable_product_flag;
7163 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7164 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_lines: l_service_item_flag'||l_service_item_flag,1,'N');
7165 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_lines: l_serviceable_product_flag'||l_serviceable_product_flag, 1, 'N');
7166 end if;
7167 IF c_service%FOUND THEN
7168 CLOSE c_service;
7169 IF l_service_item_flag = 'Y' THEN
7170 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7171 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_lines: Inside IF l_service_item_flag = Y',1,'N');
7172 end if;
7173 l_service := FND_API.G_TRUE;
7174 l_call_update := FND_API.G_TRUE;
7175 ELSIF l_serviceable_product_flag = 'Y' THEN
7176 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7177 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_lines: Inside IF l_serviceable_product_flag = Y',
7178 1,'N');
7179 end if;
7180 l_service := FND_API.G_FALSE;
7181 l_call_update := FND_API.G_TRUE;
7182 END IF;
7183
7184 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7185 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_lines: l_call_update'||l_call_update,1,'N');
7186 end if;
7187 IF l_call_update = FND_API.G_TRUE THEN
7188 ASO_QUOTE_LINES_PVT.service_item_qty_update
7189 (p_qte_line_rec => l_Qte_Line_Rec ,
7190 p_service_item_flag => l_service,
7191 x_return_status => X_return_status
7192 );
7193 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7194 aso_debug_pub.add('Update_Quote_lines - after call to ASO_QUOTE_LINES_PVT.service_item_qty_update '||x_return_status, 1, 'Y');
7195 end if;
7196 END IF;
7197 ELSE
7198 CLOSE c_service;
7199 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7200 aso_debug_pub.add('Update_quote_lines, Item not found in inventry',1,'N');
7201 end if;
7202 END IF;
7203
7204 -- End of Service line quantity update Bmishra 01/09/02
7205
7206
7207 -- sales credits
7208 FOR i in 1..p_Sales_Credit_Tbl.count LOOP
7209
7210 l_Sales_Credit_rec := p_sales_credit_tbl(i);
7211 x_sales_credit_tbl(i) := l_sales_credit_rec;
7212
7213 IF l_sales_credit_rec.operation_code = 'CREATE' THEN
7214 l_sales_credit_rec.quote_line_id := l_qte_line_rec.quote_line_id;
7215 l_sales_credit_rec.quote_header_id := l_qte_line_rec.quote_header_id;
7216 -- BC4J Fix
7217 --x_sales_credit_tbl(i).sales_credit_id := NULL;
7218 ASO_SALES_CREDITS_PKG.Insert_Row(
7219 p_CREATION_DATE => SYSDATE,
7220 p_CREATED_BY => G_USER_ID,
7221 p_LAST_UPDATED_BY => G_USER_ID,
7222 p_LAST_UPDATE_DATE => SYSDATE,
7223 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7224 p_REQUEST_ID => l_sales_CREDIT_rec.REQUEST_ID,
7225 p_PROGRAM_APPLICATION_ID => l_sales_CREDIT_rec.PROGRAM_APPLICATION_ID,
7226 p_PROGRAM_ID => l_sales_CREDIT_rec.PROGRAM_ID,
7227 p_PROGRAM_UPDATE_DATE => l_sales_CREDIT_rec.PROGRAM_UPDATE_DATE,
7228 px_SALES_CREDIT_ID => x_SALES_CREDIT_tbl(i).SALES_CREDIT_ID,
7229 p_QUOTE_HEADER_ID => l_sales_CREDIT_rec.QUOTE_HEADER_ID,
7230 p_QUOTE_LINE_ID => l_sales_CREDIT_rec.QUOTE_LINE_ID,
7231 p_PERCENT => l_sales_CREDIT_rec.PERCENT,
7232 p_RESOURCE_ID => l_sales_CREDIT_rec.RESOURCE_ID,
7233 p_RESOURCE_GROUP_ID => l_sales_CREDIT_rec.RESOURCE_GROUP_ID,
7234 p_EMPLOYEE_PERSON_ID => l_sales_CREDIT_rec.EMPLOYEE_PERSON_ID,
7235 p_SALES_CREDIT_TYPE_ID => l_sales_CREDIT_rec.SALES_CREDIT_TYPE_ID,
7236 -- p_SECURITY_GROUP_ID => l_sales_CREDIT_rec.SECURITY_GROUP_ID,
7237 p_ATTRIBUTE_CATEGORY_CODE => l_sales_CREDIT_rec.ATTRIBUTE_CATEGORY_CODE,
7238 p_ATTRIBUTE1 => l_sales_CREDIT_rec.ATTRIBUTE1,
7239 p_ATTRIBUTE2 => l_sales_CREDIT_rec.ATTRIBUTE2,
7240 p_ATTRIBUTE3 => l_sales_CREDIT_rec.ATTRIBUTE3,
7241 p_ATTRIBUTE4 => l_sales_CREDIT_rec.ATTRIBUTE4,
7242 p_ATTRIBUTE5 => l_sales_CREDIT_rec.ATTRIBUTE5,
7243 p_ATTRIBUTE6 => l_sales_CREDIT_rec.ATTRIBUTE6,
7244 p_ATTRIBUTE7 => l_sales_CREDIT_rec.ATTRIBUTE7,
7245 p_ATTRIBUTE8 => l_sales_CREDIT_rec.ATTRIBUTE8,
7246 p_ATTRIBUTE9 => l_sales_CREDIT_rec.ATTRIBUTE9,
7247 p_ATTRIBUTE10 => l_sales_CREDIT_rec.ATTRIBUTE10,
7248 p_ATTRIBUTE11 => l_sales_CREDIT_rec.ATTRIBUTE11,
7249 p_ATTRIBUTE12 => l_sales_CREDIT_rec.ATTRIBUTE12,
7250 p_ATTRIBUTE13 => l_sales_CREDIT_rec.ATTRIBUTE13,
7251 p_ATTRIBUTE14 => l_sales_CREDIT_rec.ATTRIBUTE14,
7252 p_ATTRIBUTE15 => l_sales_CREDIT_rec.ATTRIBUTE15,
7253 p_ATTRIBUTE16 => l_sales_CREDIT_rec.ATTRIBUTE16,
7254 p_ATTRIBUTE17 => l_sales_CREDIT_rec.ATTRIBUTE17,
7255 p_ATTRIBUTE18 => l_sales_CREDIT_rec.ATTRIBUTE18,
7256 p_ATTRIBUTE19 => l_sales_CREDIT_rec.ATTRIBUTE19,
7257 p_ATTRIBUTE20 => l_sales_CREDIT_rec.ATTRIBUTE20,
7258 p_SYSTEM_ASSIGNED_FLAG => 'N',
7259 p_CREDIT_RULE_ID => l_sales_CREDIT_rec.CREDIT_RULE_ID,
7260 p_OBJECT_VERSION_NUMBER => l_sales_CREDIT_rec.OBJECT_VERSION_NUMBER);
7261
7262 ELSIF l_sales_credit_rec.operation_code = 'UPDATE' THEN
7263 ASO_SALES_CREDITS_PKG.Update_Row(
7264 p_CREATION_DATE => l_sales_CREDIT_rec.creation_date,
7265 p_CREATED_BY => G_USER_ID,
7266 p_LAST_UPDATED_BY => G_USER_ID,
7267 p_LAST_UPDATE_DATE => SYSDATE,
7268 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7269 p_REQUEST_ID => l_sales_CREDIT_rec.REQUEST_ID,
7270 p_PROGRAM_APPLICATION_ID=> l_sales_CREDIT_rec.PROGRAM_APPLICATION_ID,
7271 p_PROGRAM_ID => l_sales_CREDIT_rec.PROGRAM_ID,
7272 p_PROGRAM_UPDATE_DATE => l_sales_CREDIT_rec.PROGRAM_UPDATE_DATE,
7273 p_SALES_CREDIT_ID => l_SALES_CREDIT_rec.SALES_CREDIT_ID,
7274 p_QUOTE_HEADER_ID => l_sales_CREDIT_rec.QUOTE_HEADER_ID,
7275 p_QUOTE_LINE_ID => l_sales_CREDIT_rec.QUOTE_LINE_ID,
7276 p_PERCENT => l_sales_CREDIT_rec.PERCENT,
7277 p_RESOURCE_ID => l_sales_CREDIT_rec.RESOURCE_ID,
7278 p_RESOURCE_GROUP_ID => l_sales_CREDIT_rec.RESOURCE_GROUP_ID,
7279 p_EMPLOYEE_PERSON_ID => l_sales_CREDIT_rec.EMPLOYEE_PERSON_ID,
7280 p_SALES_CREDIT_TYPE_ID => l_sales_CREDIT_rec.SALES_CREDIT_TYPE_ID,
7281 -- p_SECURITY_GROUP_ID => l_sales_CREDIT_rec.SECURITY_GROUP_ID,
7282 p_ATTRIBUTE_CATEGORY_CODE => l_sales_CREDIT_rec.ATTRIBUTE_CATEGORY_CODE,
7283 p_ATTRIBUTE1 => l_sales_CREDIT_rec.ATTRIBUTE1,
7284 p_ATTRIBUTE2 => l_sales_CREDIT_rec.ATTRIBUTE2,
7285 p_ATTRIBUTE3 => l_sales_CREDIT_rec.ATTRIBUTE3,
7286 p_ATTRIBUTE4 => l_sales_CREDIT_rec.ATTRIBUTE4,
7287 p_ATTRIBUTE5 => l_sales_CREDIT_rec.ATTRIBUTE5,
7288 p_ATTRIBUTE6 => l_sales_CREDIT_rec.ATTRIBUTE6,
7289 p_ATTRIBUTE7 => l_sales_CREDIT_rec.ATTRIBUTE7,
7290 p_ATTRIBUTE8 => l_sales_CREDIT_rec.ATTRIBUTE8,
7291 p_ATTRIBUTE9 => l_sales_CREDIT_rec.ATTRIBUTE9,
7292 p_ATTRIBUTE10 => l_sales_CREDIT_rec.ATTRIBUTE10,
7293 p_ATTRIBUTE11 => l_sales_CREDIT_rec.ATTRIBUTE11,
7294 p_ATTRIBUTE12 => l_sales_CREDIT_rec.ATTRIBUTE12,
7295 p_ATTRIBUTE13 => l_sales_CREDIT_rec.ATTRIBUTE13,
7296 p_ATTRIBUTE14 => l_sales_CREDIT_rec.ATTRIBUTE14,
7297 p_ATTRIBUTE15 => l_sales_CREDIT_rec.ATTRIBUTE15,
7298 p_ATTRIBUTE16 => l_sales_CREDIT_rec.ATTRIBUTE16,
7299 p_ATTRIBUTE17 => l_sales_CREDIT_rec.ATTRIBUTE17,
7300 p_ATTRIBUTE18 => l_sales_CREDIT_rec.ATTRIBUTE18,
7301 p_ATTRIBUTE19 => l_sales_CREDIT_rec.ATTRIBUTE19,
7302 p_ATTRIBUTE20 => l_sales_CREDIT_rec.ATTRIBUTE20,
7303 p_SYSTEM_ASSIGNED_FLAG => 'N',
7304 p_CREDIT_RULE_ID => l_sales_CREDIT_rec.CREDIT_RULE_ID,
7305 p_OBJECT_VERSION_NUMBER => l_sales_CREDIT_rec.OBJECT_VERSION_NUMBER);
7306
7307 ELSIF l_sales_credit_rec.operation_code = 'DELETE' THEN
7308 ASO_SALES_CREDITS_PKG.Delete_Row(
7309 p_SALES_CREDIT_ID => l_SALES_CREDIT_rec.SALES_CREDIT_ID);
7310
7311 END IF;
7312 END LOOP;
7313
7314
7315 -- sales credits
7316 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7317 aso_debug_pub.add('Validate_Quote_Percent: BEFORE: l_qte_line_rec.quote_header_id: '||l_qte_line_rec.quote_header_id,1,'N');
7318 aso_debug_pub.add('Validate_Quote_Percent: BEFORE: l_qte_line_rec.quote_line_id: '||l_qte_line_rec.quote_line_id,1,'N');
7319 end if;
7320
7321 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
7322 IF x_sales_credit_tbl.count > 0 THEN
7323 IF x_sales_credit_tbl(1).quote_header_id IS NULL OR x_sales_credit_tbl(1).quote_header_id = FND_API.G_MISS_NUM THEN
7324 x_sales_credit_tbl(1).quote_header_id := l_qte_line_rec.quote_header_id;
7325 END IF;
7326 IF x_sales_credit_tbl(1).quote_line_id IS NULL OR x_sales_credit_tbl(1).quote_line_id = FND_API.G_MISS_NUM THEN
7327 x_sales_credit_tbl(1).quote_line_id := l_qte_line_rec.quote_line_id;
7328 END IF;
7329
7330 ASO_VALIDATE_PVT.Validate_Quote_Percent(
7331 p_init_msg_list => FND_API.G_FALSE,
7332 p_sales_credit_tbl => x_sales_credit_tbl,
7333 x_return_status => x_return_status,
7334 x_msg_count => x_msg_count,
7335 x_msg_data => x_msg_data
7336 );
7337 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7338 RAISE FND_API.G_EXC_ERROR;
7339 END IF;
7340 END IF;
7341 END IF;
7342
7343 -- end sales credits
7344
7345 -- check for duplicate promotions, see bug 4521799
7346 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7347 aso_debug_pub.add('Before calling Validate_Promotion price_attr_tbl.count: '|| p_price_attributes_tbl.count, 1, 'Y');
7348 END IF;
7349
7350 ASO_VALIDATE_PVT.Validate_Promotion (
7351 P_Api_Version_Number => 1.0,
7352 P_Init_Msg_List => FND_API.G_FALSE,
7353 P_Commit => FND_API.G_FALSE,
7354 p_price_attr_tbl => p_price_attributes_tbl,
7355 x_price_attr_tbl => lx_price_attr_tbl,
7356 x_return_status => x_return_status,
7357 x_msg_count => x_msg_count,
7358 x_msg_data => x_msg_data);
7359
7360 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7361 aso_debug_pub.add('after calling Validate_Promotion ', 1, 'Y');
7362 aso_debug_pub.add('Validate_Promotion Return Status: '||x_return_status, 1, 'Y');
7363 END IF;
7364
7365 if x_return_status <> fnd_api.g_ret_sts_success then
7366 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
7367 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7368 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
7369 RAISE FND_API.G_EXC_ERROR;
7370 ELSE
7371 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7372 END IF;
7373 end if;
7374
7375
7376 -- end of check for duplicate promotions
7377
7378 -- price attributes
7379
7380 FOR i in 1..l_price_attributes_tbl.count LOOP
7381
7382 l_price_attributes_rec := l_price_attributes_tbl(i);
7383 -- l_price_attributes_rec.quote_line_id := p_qte_line_rec.quote_line_id;
7384 x_price_attributes_tbl(i) := l_price_attributes_rec;
7385
7386 IF l_price_attributes_rec.operation_code = 'CREATE' THEN
7387 l_price_attributes_rec.quote_line_id := l_qte_line_rec.quote_line_id;
7388 l_price_attributes_rec.quote_header_id := l_qte_line_rec.quote_header_id;
7389 -- BC4J Fix
7390 -- x_price_attributes_tbl(1).price_attribute_id := NULL;
7391
7392 ASO_PRICE_ATTRIBUTES_PKG.Insert_Row(
7393 px_PRICE_ATTRIBUTE_ID => x_price_attributes_tbl(i).price_attribute_id,
7394 p_CREATION_DATE => SYSDATE,
7395 p_CREATED_BY => G_USER_ID,
7396 p_LAST_UPDATE_DATE => SYSDATE,
7397 p_LAST_UPDATED_BY => G_USER_ID,
7398 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7399 p_REQUEST_ID => l_Qte_Line_Rec.REQUEST_ID,
7400 p_PROGRAM_APPLICATION_ID => l_Qte_Line_Rec.PROGRAM_APPLICATION_ID,
7401 p_PROGRAM_ID => l_Qte_Line_Rec.PROGRAM_ID,
7402 p_PROGRAM_UPDATE_DATE => l_Qte_Line_Rec.PROGRAM_UPDATE_DATE,
7403 p_QUOTE_HEADER_ID => l_Qte_Line_Rec.QUOTE_HEADER_ID,
7404 p_QUOTE_LINE_ID => l_price_attributes_rec.quote_line_id,
7405 p_FLEX_TITLE => l_price_attributes_rec.flex_title,
7406 p_PRICING_CONTEXT => l_price_attributes_rec.pricing_context,
7407 p_PRICING_ATTRIBUTE1 => l_price_attributes_rec.PRICING_ATTRIBUTE1,
7408 p_PRICING_ATTRIBUTE2 => l_price_attributes_rec.PRICING_ATTRIBUTE2,
7409 p_PRICING_ATTRIBUTE3 => l_price_attributes_rec.PRICING_ATTRIBUTE3,
7410 p_PRICING_ATTRIBUTE4 => l_price_attributes_rec.PRICING_ATTRIBUTE4,
7411 p_PRICING_ATTRIBUTE5 => l_price_attributes_rec.PRICING_ATTRIBUTE5,
7412 p_PRICING_ATTRIBUTE6 => l_price_attributes_rec.PRICING_ATTRIBUTE6,
7413 p_PRICING_ATTRIBUTE7 => l_price_attributes_rec.PRICING_ATTRIBUTE7,
7414 p_PRICING_ATTRIBUTE8 => l_price_attributes_rec.PRICING_ATTRIBUTE8,
7415 p_PRICING_ATTRIBUTE9 => l_price_attributes_rec.PRICING_ATTRIBUTE9,
7416 p_PRICING_ATTRIBUTE10 => l_price_attributes_rec.PRICING_ATTRIBUTE10,
7417 p_PRICING_ATTRIBUTE11 => l_price_attributes_rec.PRICING_ATTRIBUTE11,
7418 p_PRICING_ATTRIBUTE12 => l_price_attributes_rec.PRICING_ATTRIBUTE12,
7419 p_PRICING_ATTRIBUTE13 => l_price_attributes_rec.PRICING_ATTRIBUTE13,
7420 p_PRICING_ATTRIBUTE14 => l_price_attributes_rec.PRICING_ATTRIBUTE14,
7421 p_PRICING_ATTRIBUTE15 => l_price_attributes_rec.PRICING_ATTRIBUTE15,
7422 p_PRICING_ATTRIBUTE16 => l_price_attributes_rec.PRICING_ATTRIBUTE16,
7423 p_PRICING_ATTRIBUTE17 => l_price_attributes_rec.PRICING_ATTRIBUTE17,
7424 p_PRICING_ATTRIBUTE18 => l_price_attributes_rec.PRICING_ATTRIBUTE18,
7425 p_PRICING_ATTRIBUTE19 => l_price_attributes_rec.PRICING_ATTRIBUTE19,
7426 p_PRICING_ATTRIBUTE20 => l_price_attributes_rec.PRICING_ATTRIBUTE20,
7427 p_PRICING_ATTRIBUTE21 => l_price_attributes_rec.PRICING_ATTRIBUTE21,
7428 p_PRICING_ATTRIBUTE22 => l_price_attributes_rec.PRICING_ATTRIBUTE22,
7429 p_PRICING_ATTRIBUTE23 => l_price_attributes_rec.PRICING_ATTRIBUTE23,
7430 p_PRICING_ATTRIBUTE24 => l_price_attributes_rec.PRICING_ATTRIBUTE24,
7431 p_PRICING_ATTRIBUTE25 => l_price_attributes_rec.PRICING_ATTRIBUTE25,
7432 p_PRICING_ATTRIBUTE26 => l_price_attributes_rec.PRICING_ATTRIBUTE26,
7433 p_PRICING_ATTRIBUTE27 => l_price_attributes_rec.PRICING_ATTRIBUTE27,
7434 p_PRICING_ATTRIBUTE28 => l_price_attributes_rec.PRICING_ATTRIBUTE28,
7435 p_PRICING_ATTRIBUTE29 => l_price_attributes_rec.PRICING_ATTRIBUTE29,
7436 p_PRICING_ATTRIBUTE30 => l_price_attributes_rec.PRICING_ATTRIBUTE30,
7437 p_PRICING_ATTRIBUTE31 => l_price_attributes_rec.PRICING_ATTRIBUTE31,
7438 p_PRICING_ATTRIBUTE32 => l_price_attributes_rec.PRICING_ATTRIBUTE32,
7439 p_PRICING_ATTRIBUTE33 => l_price_attributes_rec.PRICING_ATTRIBUTE33,
7440 p_PRICING_ATTRIBUTE34 => l_price_attributes_rec.PRICING_ATTRIBUTE34,
7441 p_PRICING_ATTRIBUTE35 => l_price_attributes_rec.PRICING_ATTRIBUTE35,
7442 p_PRICING_ATTRIBUTE36 => l_price_attributes_rec.PRICING_ATTRIBUTE36,
7443 p_PRICING_ATTRIBUTE37 => l_price_attributes_rec.PRICING_ATTRIBUTE37,
7444 p_PRICING_ATTRIBUTE38 => l_price_attributes_rec.PRICING_ATTRIBUTE38,
7445 p_PRICING_ATTRIBUTE39 => l_price_attributes_rec.PRICING_ATTRIBUTE39,
7446 p_PRICING_ATTRIBUTE40 => l_price_attributes_rec.PRICING_ATTRIBUTE40,
7447 p_PRICING_ATTRIBUTE41 => l_price_attributes_rec.PRICING_ATTRIBUTE41,
7448 p_PRICING_ATTRIBUTE42 => l_price_attributes_rec.PRICING_ATTRIBUTE42,
7449 p_PRICING_ATTRIBUTE43 => l_price_attributes_rec.PRICING_ATTRIBUTE43,
7450 p_PRICING_ATTRIBUTE44 => l_price_attributes_rec.PRICING_ATTRIBUTE44,
7451 p_PRICING_ATTRIBUTE45 => l_price_attributes_rec.PRICING_ATTRIBUTE45,
7452 p_PRICING_ATTRIBUTE46 => l_price_attributes_rec.PRICING_ATTRIBUTE46,
7453 p_PRICING_ATTRIBUTE47 => l_price_attributes_rec.PRICING_ATTRIBUTE47,
7454 p_PRICING_ATTRIBUTE48 => l_price_attributes_rec.PRICING_ATTRIBUTE48,
7455 p_PRICING_ATTRIBUTE49 => l_price_attributes_rec.PRICING_ATTRIBUTE49,
7456 p_PRICING_ATTRIBUTE50 => l_price_attributes_rec.PRICING_ATTRIBUTE50,
7457 p_PRICING_ATTRIBUTE51 => l_price_attributes_rec.PRICING_ATTRIBUTE51,
7458 p_PRICING_ATTRIBUTE52 => l_price_attributes_rec.PRICING_ATTRIBUTE52,
7459 p_PRICING_ATTRIBUTE53 => l_price_attributes_rec.PRICING_ATTRIBUTE53,
7460 p_PRICING_ATTRIBUTE54 => l_price_attributes_rec.PRICING_ATTRIBUTE54,
7461 p_PRICING_ATTRIBUTE55 => l_price_attributes_rec.PRICING_ATTRIBUTE55,
7462 p_PRICING_ATTRIBUTE56 => l_price_attributes_rec.PRICING_ATTRIBUTE56,
7463 p_PRICING_ATTRIBUTE57 => l_price_attributes_rec.PRICING_ATTRIBUTE57,
7464 p_PRICING_ATTRIBUTE58 => l_price_attributes_rec.PRICING_ATTRIBUTE58,
7465 p_PRICING_ATTRIBUTE59 => l_price_attributes_rec.PRICING_ATTRIBUTE59,
7466 p_PRICING_ATTRIBUTE60 => l_price_attributes_rec.PRICING_ATTRIBUTE60,
7467 p_PRICING_ATTRIBUTE61 => l_price_attributes_rec.PRICING_ATTRIBUTE61,
7468 p_PRICING_ATTRIBUTE62 => l_price_attributes_rec.PRICING_ATTRIBUTE62,
7469 p_PRICING_ATTRIBUTE63 => l_price_attributes_rec.PRICING_ATTRIBUTE63,
7470 p_PRICING_ATTRIBUTE64 => l_price_attributes_rec.PRICING_ATTRIBUTE64,
7471 p_PRICING_ATTRIBUTE65 => l_price_attributes_rec.PRICING_ATTRIBUTE65,
7472 p_PRICING_ATTRIBUTE66 => l_price_attributes_rec.PRICING_ATTRIBUTE66,
7473 p_PRICING_ATTRIBUTE67 => l_price_attributes_rec.PRICING_ATTRIBUTE67,
7474 p_PRICING_ATTRIBUTE68 => l_price_attributes_rec.PRICING_ATTRIBUTE68,
7475 p_PRICING_ATTRIBUTE69 => l_price_attributes_rec.PRICING_ATTRIBUTE69,
7476 p_PRICING_ATTRIBUTE70 => l_price_attributes_rec.PRICING_ATTRIBUTE70,
7477 p_PRICING_ATTRIBUTE71 => l_price_attributes_rec.PRICING_ATTRIBUTE71,
7478 p_PRICING_ATTRIBUTE72 => l_price_attributes_rec.PRICING_ATTRIBUTE72,
7479 p_PRICING_ATTRIBUTE73 => l_price_attributes_rec.PRICING_ATTRIBUTE73,
7480 p_PRICING_ATTRIBUTE74 => l_price_attributes_rec.PRICING_ATTRIBUTE74,
7481 p_PRICING_ATTRIBUTE75 => l_price_attributes_rec.PRICING_ATTRIBUTE75,
7482 p_PRICING_ATTRIBUTE76 => l_price_attributes_rec.PRICING_ATTRIBUTE76,
7483 p_PRICING_ATTRIBUTE77 => l_price_attributes_rec.PRICING_ATTRIBUTE77,
7484 p_PRICING_ATTRIBUTE78 => l_price_attributes_rec.PRICING_ATTRIBUTE78,
7485 p_PRICING_ATTRIBUTE79 => l_price_attributes_rec.PRICING_ATTRIBUTE79,
7486 p_PRICING_ATTRIBUTE80 => l_price_attributes_rec.PRICING_ATTRIBUTE80,
7487 p_PRICING_ATTRIBUTE81 => l_price_attributes_rec.PRICING_ATTRIBUTE81,
7488 p_PRICING_ATTRIBUTE82 => l_price_attributes_rec.PRICING_ATTRIBUTE82,
7489 p_PRICING_ATTRIBUTE83 => l_price_attributes_rec.PRICING_ATTRIBUTE83,
7490 p_PRICING_ATTRIBUTE84 => l_price_attributes_rec.PRICING_ATTRIBUTE84,
7491 p_PRICING_ATTRIBUTE85 => l_price_attributes_rec.PRICING_ATTRIBUTE85,
7492 p_PRICING_ATTRIBUTE86 => l_price_attributes_rec.PRICING_ATTRIBUTE86,
7493 p_PRICING_ATTRIBUTE87 => l_price_attributes_rec.PRICING_ATTRIBUTE87,
7494 p_PRICING_ATTRIBUTE88 => l_price_attributes_rec.PRICING_ATTRIBUTE88,
7495 p_PRICING_ATTRIBUTE89 => l_price_attributes_rec.PRICING_ATTRIBUTE89,
7496 p_PRICING_ATTRIBUTE90 => l_price_attributes_rec.PRICING_ATTRIBUTE90,
7497 p_PRICING_ATTRIBUTE91 => l_price_attributes_rec.PRICING_ATTRIBUTE91,
7498 p_PRICING_ATTRIBUTE92 => l_price_attributes_rec.PRICING_ATTRIBUTE92,
7499 p_PRICING_ATTRIBUTE93 => l_price_attributes_rec.PRICING_ATTRIBUTE93,
7500 p_PRICING_ATTRIBUTE94 => l_price_attributes_rec.PRICING_ATTRIBUTE94,
7501 p_PRICING_ATTRIBUTE95 => l_price_attributes_rec.PRICING_ATTRIBUTE95,
7502 p_PRICING_ATTRIBUTE96 => l_price_attributes_rec.PRICING_ATTRIBUTE96,
7503 p_PRICING_ATTRIBUTE97 => l_price_attributes_rec.PRICING_ATTRIBUTE97,
7504 p_PRICING_ATTRIBUTE98 => l_price_attributes_rec.PRICING_ATTRIBUTE98,
7505 p_PRICING_ATTRIBUTE99 => l_price_attributes_rec.PRICING_ATTRIBUTE99,
7506 p_PRICING_ATTRIBUTE100 => l_price_attributes_rec.PRICING_ATTRIBUTE100,
7507 p_CONTEXT => l_price_attributes_rec.CONTEXT,
7508 p_ATTRIBUTE1 => l_price_attributes_rec.ATTRIBUTE1,
7509 p_ATTRIBUTE2 => l_price_attributes_rec.ATTRIBUTE2,
7510 p_ATTRIBUTE3 => l_price_attributes_rec.ATTRIBUTE3,
7511 p_ATTRIBUTE4 => l_price_attributes_rec.ATTRIBUTE4,
7512 p_ATTRIBUTE5 => l_price_attributes_rec.ATTRIBUTE5,
7513 p_ATTRIBUTE6 => l_price_attributes_rec.ATTRIBUTE6,
7514 p_ATTRIBUTE7 => l_price_attributes_rec.ATTRIBUTE7,
7515 p_ATTRIBUTE8 => l_price_attributes_rec.ATTRIBUTE8,
7516 p_ATTRIBUTE9 => l_price_attributes_rec.ATTRIBUTE9,
7517 p_ATTRIBUTE10 => l_price_attributes_rec.ATTRIBUTE10,
7518 p_ATTRIBUTE11 => l_price_attributes_rec.ATTRIBUTE11,
7519 p_ATTRIBUTE12 => l_price_attributes_rec.ATTRIBUTE12,
7520 p_ATTRIBUTE13 => l_price_attributes_rec.ATTRIBUTE13,
7521 p_ATTRIBUTE14 => l_price_attributes_rec.ATTRIBUTE14,
7522 p_ATTRIBUTE15 => l_price_attributes_rec.ATTRIBUTE15,
7523 p_ATTRIBUTE16 => l_price_attributes_rec.ATTRIBUTE16,
7524 p_ATTRIBUTE17 => l_price_attributes_rec.ATTRIBUTE17,
7525 p_ATTRIBUTE18 => l_price_attributes_rec.ATTRIBUTE18,
7526 p_ATTRIBUTE19 => l_price_attributes_rec.ATTRIBUTE19,
7527 p_ATTRIBUTE20 => l_price_attributes_rec.ATTRIBUTE20,
7528 p_OBJECT_VERSION_NUMBER => l_price_attributes_rec.OBJECT_VERSION_NUMBER
7529 );
7530
7531
7532 ELSIF l_price_attributes_rec.operation_code = 'UPDATE' THEN
7533
7534 ASO_PRICE_ATTRIBUTES_PKG.Update_Row(
7535 p_PRICE_ATTRIBUTE_ID => l_price_attributes_rec.price_attribute_id,
7536 p_CREATION_DATE => l_price_attributes_rec.creation_date,
7537 p_CREATED_BY => G_USER_ID,
7538 p_LAST_UPDATE_DATE => SYSDATE,
7539 p_LAST_UPDATED_BY => G_USER_ID,
7540 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7541 p_REQUEST_ID => l_Qte_Line_Rec.REQUEST_ID,
7542 p_PROGRAM_APPLICATION_ID => l_Qte_Line_Rec.PROGRAM_APPLICATION_ID,
7543 p_PROGRAM_ID => l_Qte_Line_Rec.PROGRAM_ID,
7544 p_PROGRAM_UPDATE_DATE => l_Qte_Line_Rec.PROGRAM_UPDATE_DATE,
7545 p_QUOTE_HEADER_ID => l_Qte_Line_Rec.QUOTE_HEADER_ID,
7546 p_QUOTE_LINE_ID => l_price_attributes_rec.quote_line_id,
7547 p_FLEX_TITLE => l_price_attributes_rec.flex_title,
7548 p_PRICING_CONTEXT => l_price_attributes_rec.pricing_context,
7549 p_PRICING_ATTRIBUTE1 => l_price_attributes_rec.PRICING_ATTRIBUTE1,
7550 p_PRICING_ATTRIBUTE2 => l_price_attributes_rec.PRICING_ATTRIBUTE2,
7551 p_PRICING_ATTRIBUTE3 => l_price_attributes_rec.PRICING_ATTRIBUTE3,
7552 p_PRICING_ATTRIBUTE4 => l_price_attributes_rec.PRICING_ATTRIBUTE4,
7553 p_PRICING_ATTRIBUTE5 => l_price_attributes_rec.PRICING_ATTRIBUTE5,
7554 p_PRICING_ATTRIBUTE6 => l_price_attributes_rec.PRICING_ATTRIBUTE6,
7555 p_PRICING_ATTRIBUTE7 => l_price_attributes_rec.PRICING_ATTRIBUTE7,
7556 p_PRICING_ATTRIBUTE8 => l_price_attributes_rec.PRICING_ATTRIBUTE8,
7557 p_PRICING_ATTRIBUTE9 => l_price_attributes_rec.PRICING_ATTRIBUTE9,
7558 p_PRICING_ATTRIBUTE10 => l_price_attributes_rec.PRICING_ATTRIBUTE10,
7559 p_PRICING_ATTRIBUTE11 => l_price_attributes_rec.PRICING_ATTRIBUTE11,
7560 p_PRICING_ATTRIBUTE12 => l_price_attributes_rec.PRICING_ATTRIBUTE12,
7561 p_PRICING_ATTRIBUTE13 => l_price_attributes_rec.PRICING_ATTRIBUTE13,
7562 p_PRICING_ATTRIBUTE14 => l_price_attributes_rec.PRICING_ATTRIBUTE14,
7563 p_PRICING_ATTRIBUTE15 => l_price_attributes_rec.PRICING_ATTRIBUTE15,
7564 p_PRICING_ATTRIBUTE16 => l_price_attributes_rec.PRICING_ATTRIBUTE16,
7565 p_PRICING_ATTRIBUTE17 => l_price_attributes_rec.PRICING_ATTRIBUTE17,
7566 p_PRICING_ATTRIBUTE18 => l_price_attributes_rec.PRICING_ATTRIBUTE18,
7567 p_PRICING_ATTRIBUTE19 => l_price_attributes_rec.PRICING_ATTRIBUTE19,
7568 p_PRICING_ATTRIBUTE20 => l_price_attributes_rec.PRICING_ATTRIBUTE20,
7569 p_PRICING_ATTRIBUTE21 => l_price_attributes_rec.PRICING_ATTRIBUTE21,
7570 p_PRICING_ATTRIBUTE22 => l_price_attributes_rec.PRICING_ATTRIBUTE22,
7571 p_PRICING_ATTRIBUTE23 => l_price_attributes_rec.PRICING_ATTRIBUTE23,
7572 p_PRICING_ATTRIBUTE24 => l_price_attributes_rec.PRICING_ATTRIBUTE24,
7573 p_PRICING_ATTRIBUTE25 => l_price_attributes_rec.PRICING_ATTRIBUTE25,
7574 p_PRICING_ATTRIBUTE26 => l_price_attributes_rec.PRICING_ATTRIBUTE26,
7575 p_PRICING_ATTRIBUTE27 => l_price_attributes_rec.PRICING_ATTRIBUTE27,
7576 p_PRICING_ATTRIBUTE28 => l_price_attributes_rec.PRICING_ATTRIBUTE28,
7577 p_PRICING_ATTRIBUTE29 => l_price_attributes_rec.PRICING_ATTRIBUTE29,
7578 p_PRICING_ATTRIBUTE30 => l_price_attributes_rec.PRICING_ATTRIBUTE30,
7579 p_PRICING_ATTRIBUTE31 => l_price_attributes_rec.PRICING_ATTRIBUTE31,
7580 p_PRICING_ATTRIBUTE32 => l_price_attributes_rec.PRICING_ATTRIBUTE32,
7581 p_PRICING_ATTRIBUTE33 => l_price_attributes_rec.PRICING_ATTRIBUTE33,
7582 p_PRICING_ATTRIBUTE34 => l_price_attributes_rec.PRICING_ATTRIBUTE34,
7583 p_PRICING_ATTRIBUTE35 => l_price_attributes_rec.PRICING_ATTRIBUTE35,
7584 p_PRICING_ATTRIBUTE36 => l_price_attributes_rec.PRICING_ATTRIBUTE36,
7585 p_PRICING_ATTRIBUTE37 => l_price_attributes_rec.PRICING_ATTRIBUTE37,
7586 p_PRICING_ATTRIBUTE38 => l_price_attributes_rec.PRICING_ATTRIBUTE38,
7587 p_PRICING_ATTRIBUTE39 => l_price_attributes_rec.PRICING_ATTRIBUTE39,
7588 p_PRICING_ATTRIBUTE40 => l_price_attributes_rec.PRICING_ATTRIBUTE40,
7589 p_PRICING_ATTRIBUTE41 => l_price_attributes_rec.PRICING_ATTRIBUTE41,
7590 p_PRICING_ATTRIBUTE42 => l_price_attributes_rec.PRICING_ATTRIBUTE42,
7591 p_PRICING_ATTRIBUTE43 => l_price_attributes_rec.PRICING_ATTRIBUTE43,
7592 p_PRICING_ATTRIBUTE44 => l_price_attributes_rec.PRICING_ATTRIBUTE44,
7593 p_PRICING_ATTRIBUTE45 => l_price_attributes_rec.PRICING_ATTRIBUTE45,
7594 p_PRICING_ATTRIBUTE46 => l_price_attributes_rec.PRICING_ATTRIBUTE46,
7595 p_PRICING_ATTRIBUTE47 => l_price_attributes_rec.PRICING_ATTRIBUTE47,
7596 p_PRICING_ATTRIBUTE48 => l_price_attributes_rec.PRICING_ATTRIBUTE48,
7597 p_PRICING_ATTRIBUTE49 => l_price_attributes_rec.PRICING_ATTRIBUTE49,
7598 p_PRICING_ATTRIBUTE50 => l_price_attributes_rec.PRICING_ATTRIBUTE50,
7599 p_PRICING_ATTRIBUTE51 => l_price_attributes_rec.PRICING_ATTRIBUTE51,
7600 p_PRICING_ATTRIBUTE52 => l_price_attributes_rec.PRICING_ATTRIBUTE52,
7601 p_PRICING_ATTRIBUTE53 => l_price_attributes_rec.PRICING_ATTRIBUTE53,
7602 p_PRICING_ATTRIBUTE54 => l_price_attributes_rec.PRICING_ATTRIBUTE54,
7603 p_PRICING_ATTRIBUTE55 => l_price_attributes_rec.PRICING_ATTRIBUTE55,
7604 p_PRICING_ATTRIBUTE56 => l_price_attributes_rec.PRICING_ATTRIBUTE56,
7605 p_PRICING_ATTRIBUTE57 => l_price_attributes_rec.PRICING_ATTRIBUTE57,
7606 p_PRICING_ATTRIBUTE58 => l_price_attributes_rec.PRICING_ATTRIBUTE58,
7607 p_PRICING_ATTRIBUTE59 => l_price_attributes_rec.PRICING_ATTRIBUTE59,
7608 p_PRICING_ATTRIBUTE60 => l_price_attributes_rec.PRICING_ATTRIBUTE60,
7609 p_PRICING_ATTRIBUTE61 => l_price_attributes_rec.PRICING_ATTRIBUTE61,
7610 p_PRICING_ATTRIBUTE62 => l_price_attributes_rec.PRICING_ATTRIBUTE62,
7611 p_PRICING_ATTRIBUTE63 => l_price_attributes_rec.PRICING_ATTRIBUTE63,
7612 p_PRICING_ATTRIBUTE64 => l_price_attributes_rec.PRICING_ATTRIBUTE64,
7613 p_PRICING_ATTRIBUTE65 => l_price_attributes_rec.PRICING_ATTRIBUTE65,
7614 p_PRICING_ATTRIBUTE66 => l_price_attributes_rec.PRICING_ATTRIBUTE66,
7615 p_PRICING_ATTRIBUTE67 => l_price_attributes_rec.PRICING_ATTRIBUTE67,
7616 p_PRICING_ATTRIBUTE68 => l_price_attributes_rec.PRICING_ATTRIBUTE68,
7617 p_PRICING_ATTRIBUTE69 => l_price_attributes_rec.PRICING_ATTRIBUTE69,
7618 p_PRICING_ATTRIBUTE70 => l_price_attributes_rec.PRICING_ATTRIBUTE70,
7619 p_PRICING_ATTRIBUTE71 => l_price_attributes_rec.PRICING_ATTRIBUTE71,
7620 p_PRICING_ATTRIBUTE72 => l_price_attributes_rec.PRICING_ATTRIBUTE72,
7621 p_PRICING_ATTRIBUTE73 => l_price_attributes_rec.PRICING_ATTRIBUTE73,
7622 p_PRICING_ATTRIBUTE74 => l_price_attributes_rec.PRICING_ATTRIBUTE74,
7623 p_PRICING_ATTRIBUTE75 => l_price_attributes_rec.PRICING_ATTRIBUTE75,
7624 p_PRICING_ATTRIBUTE76 => l_price_attributes_rec.PRICING_ATTRIBUTE76,
7625 p_PRICING_ATTRIBUTE77 => l_price_attributes_rec.PRICING_ATTRIBUTE77,
7626 p_PRICING_ATTRIBUTE78 => l_price_attributes_rec.PRICING_ATTRIBUTE78,
7627 p_PRICING_ATTRIBUTE79 => l_price_attributes_rec.PRICING_ATTRIBUTE79,
7628 p_PRICING_ATTRIBUTE80 => l_price_attributes_rec.PRICING_ATTRIBUTE80,
7629 p_PRICING_ATTRIBUTE81 => l_price_attributes_rec.PRICING_ATTRIBUTE81,
7630 p_PRICING_ATTRIBUTE82 => l_price_attributes_rec.PRICING_ATTRIBUTE82,
7631 p_PRICING_ATTRIBUTE83 => l_price_attributes_rec.PRICING_ATTRIBUTE83,
7632 p_PRICING_ATTRIBUTE84 => l_price_attributes_rec.PRICING_ATTRIBUTE84,
7633 p_PRICING_ATTRIBUTE85 => l_price_attributes_rec.PRICING_ATTRIBUTE85,
7634 p_PRICING_ATTRIBUTE86 => l_price_attributes_rec.PRICING_ATTRIBUTE86,
7635 p_PRICING_ATTRIBUTE87 => l_price_attributes_rec.PRICING_ATTRIBUTE87,
7636 p_PRICING_ATTRIBUTE88 => l_price_attributes_rec.PRICING_ATTRIBUTE88,
7637 p_PRICING_ATTRIBUTE89 => l_price_attributes_rec.PRICING_ATTRIBUTE89,
7638 p_PRICING_ATTRIBUTE90 => l_price_attributes_rec.PRICING_ATTRIBUTE90,
7639 p_PRICING_ATTRIBUTE91 => l_price_attributes_rec.PRICING_ATTRIBUTE91,
7640 p_PRICING_ATTRIBUTE92 => l_price_attributes_rec.PRICING_ATTRIBUTE92,
7641 p_PRICING_ATTRIBUTE93 => l_price_attributes_rec.PRICING_ATTRIBUTE93,
7642 p_PRICING_ATTRIBUTE94 => l_price_attributes_rec.PRICING_ATTRIBUTE94,
7643 p_PRICING_ATTRIBUTE95 => l_price_attributes_rec.PRICING_ATTRIBUTE95,
7644 p_PRICING_ATTRIBUTE96 => l_price_attributes_rec.PRICING_ATTRIBUTE96,
7645 p_PRICING_ATTRIBUTE97 => l_price_attributes_rec.PRICING_ATTRIBUTE97,
7646 p_PRICING_ATTRIBUTE98 => l_price_attributes_rec.PRICING_ATTRIBUTE98,
7647 p_PRICING_ATTRIBUTE99 => l_price_attributes_rec.PRICING_ATTRIBUTE99,
7648 p_PRICING_ATTRIBUTE100 => l_price_attributes_rec.PRICING_ATTRIBUTE100,
7649 p_CONTEXT => l_price_attributes_rec.CONTEXT,
7650 p_ATTRIBUTE1 => l_price_attributes_rec.ATTRIBUTE1,
7651 p_ATTRIBUTE2 => l_price_attributes_rec.ATTRIBUTE2,
7652 p_ATTRIBUTE3 => l_price_attributes_rec.ATTRIBUTE3,
7653 p_ATTRIBUTE4 => l_price_attributes_rec.ATTRIBUTE4,
7654 p_ATTRIBUTE5 => l_price_attributes_rec.ATTRIBUTE5,
7655 p_ATTRIBUTE6 => l_price_attributes_rec.ATTRIBUTE6,
7656 p_ATTRIBUTE7 => l_price_attributes_rec.ATTRIBUTE7,
7657 p_ATTRIBUTE8 => l_price_attributes_rec.ATTRIBUTE8,
7658 p_ATTRIBUTE9 => l_price_attributes_rec.ATTRIBUTE9,
7659 p_ATTRIBUTE10 => l_price_attributes_rec.ATTRIBUTE10,
7660 p_ATTRIBUTE11 => l_price_attributes_rec.ATTRIBUTE11,
7661 p_ATTRIBUTE12 => l_price_attributes_rec.ATTRIBUTE12,
7662 p_ATTRIBUTE13 => l_price_attributes_rec.ATTRIBUTE13,
7663 p_ATTRIBUTE14 => l_price_attributes_rec.ATTRIBUTE14,
7664 p_ATTRIBUTE15 => l_price_attributes_rec.ATTRIBUTE15,
7665 p_ATTRIBUTE16 => l_price_attributes_rec.ATTRIBUTE16,
7666 p_ATTRIBUTE17 => l_price_attributes_rec.ATTRIBUTE17,
7667 p_ATTRIBUTE18 => l_price_attributes_rec.ATTRIBUTE18,
7668 p_ATTRIBUTE19 => l_price_attributes_rec.ATTRIBUTE19,
7669 p_ATTRIBUTE20 => l_price_attributes_rec.ATTRIBUTE20,
7670 p_OBJECT_VERSION_NUMBER => l_price_attributes_rec.OBJECT_VERSION_NUMBER
7671 );
7672
7673 END IF;
7674
7675 END LOOP;
7676
7677 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7678 aso_debug_pub.add('Update_Quote_line - after line_price_attribs.update ', 1, 'N');
7679 end if;
7680
7681
7682 -- aso_shipments_tbl
7683
7684
7685 FOR i IN 1..l_Shipment_Tbl.count LOOP
7686
7687 l_shipment_rec := l_shipment_tbl(i);
7688 x_shipment_tbl(i) := l_shipment_rec;
7689
7690 IF l_shipment_rec.operation_code = 'CREATE' THEN
7691
7692 l_shipment_rec.quote_header_id := l_qte_line_rec.quote_header_id;
7693 l_shipment_rec.quote_line_id := l_qte_line_rec.quote_line_id;
7694 -- BC4J Fix
7695 x_shipment_tbl(i).shipment_id := l_shipment_rec.shipment_id;
7696 --x_shipment_tbl(i).shipment_id := null;
7697 l_shipment_rec.ship_method_code_from := l_shipment_rec.ship_method_code;
7698 l_shipment_rec.freight_terms_code_from := l_shipment_rec.freight_terms_code;
7699 x_shipment_tbl(i).ship_method_code_from := l_shipment_rec.ship_method_code_from;
7700 x_shipment_tbl(i).freight_terms_code_from := l_shipment_rec.freight_terms_code_from;
7701
7702 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7703 aso_debug_pub.add('Before ASO_SHIPMENTS_PKG.insert_rows Quote Line- l_shipment_tbl(1).ship_method_code'||l_shipment_tbl(1).ship_method_code, 1, 'Y');
7704 aso_debug_pub.add('Before ASO_SHIPMENTS_PKG.insert_rows Quote Line- l_shipment_tbl(1).freight_terms_code'||l_shipment_tbl(1).freight_terms_code, 1, 'Y');
7705 END IF;
7706
7707 ASO_SHIPMENTS_PKG.Insert_Row(
7708 px_SHIPMENT_ID => x_shipment_tbl(i).SHIPMENT_ID,
7709 p_CREATION_DATE => SYSDATE,
7710 p_CREATED_BY => G_USER_ID,
7711 p_LAST_UPDATE_DATE => SYSDATE,
7712 p_LAST_UPDATED_BY => G_USER_ID,
7713 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7714 p_REQUEST_ID => l_shipment_rec.REQUEST_ID,
7715 p_PROGRAM_APPLICATION_ID => l_shipment_rec.PROGRAM_APPLICATION_ID,
7716 p_PROGRAM_ID => l_shipment_rec.PROGRAM_ID,
7717 p_PROGRAM_UPDATE_DATE => l_shipment_rec.PROGRAM_UPDATE_DATE,
7718 p_QUOTE_HEADER_ID => l_shipment_rec.QUOTE_HEADER_ID,
7719 p_QUOTE_LINE_ID => l_shipment_rec.QUOTE_LINE_ID,
7720 p_PROMISE_DATE => l_shipment_rec.PROMISE_DATE,
7721 p_REQUEST_DATE => l_shipment_rec.REQUEST_DATE,
7722 p_SCHEDULE_SHIP_DATE => l_shipment_rec.SCHEDULE_SHIP_DATE,
7723 p_SHIP_TO_PARTY_SITE_ID => l_shipment_rec.SHIP_TO_PARTY_SITE_ID,
7724 p_SHIP_TO_PARTY_ID => l_shipment_rec.SHIP_TO_PARTY_ID,
7725 p_SHIP_TO_CUST_ACCOUNT_ID => l_shipment_rec.SHIP_TO_CUST_ACCOUNT_ID ,
7726 p_SHIP_PARTIAL_FLAG => l_shipment_rec.SHIP_PARTIAL_FLAG,
7727 p_SHIP_SET_ID => l_shipment_rec.SHIP_SET_ID,
7728 p_SHIP_METHOD_CODE => l_shipment_rec.SHIP_METHOD_CODE,
7729 p_FREIGHT_TERMS_CODE=> l_shipment_rec.FREIGHT_TERMS_CODE,
7730 p_FREIGHT_CARRIER_CODE => l_shipment_rec.FREIGHT_CARRIER_CODE,
7731 p_FOB_CODE => l_shipment_rec.FOB_CODE,
7732 p_SHIPPING_INSTRUCTIONS => l_shipment_rec.SHIPPING_INSTRUCTIONS,
7733 p_PACKING_INSTRUCTIONS => l_shipment_rec.PACKING_INSTRUCTIONS,
7734 p_SHIPMENT_PRIORITY_CODE => l_shipment_rec.SHIPMENT_PRIORITY_CODE,
7735 p_SHIP_QUOTE_PRICE => l_shipment_rec.SHIP_QUOTE_PRICE,
7736 p_QUANTITY => l_shipment_rec.QUANTITY,
7737 p_RESERVED_QUANTITY => l_shipment_rec.RESERVED_QUANTITY,
7738 p_RESERVATION_ID => l_shipment_rec.RESERVATION_ID,
7739 p_ORDER_LINE_ID => l_shipment_rec.ORDER_LINE_ID,
7740 p_ATTRIBUTE_CATEGORY => l_shipment_rec.ATTRIBUTE_CATEGORY,
7741 p_ATTRIBUTE1 => l_shipment_rec.ATTRIBUTE1,
7742 p_ATTRIBUTE2 => l_shipment_rec.ATTRIBUTE2,
7743 p_ATTRIBUTE3 => l_shipment_rec.ATTRIBUTE3,
7744 p_ATTRIBUTE4 => l_shipment_rec.ATTRIBUTE4,
7745 p_ATTRIBUTE5 => l_shipment_rec.ATTRIBUTE5,
7746 p_ATTRIBUTE6 => l_shipment_rec.ATTRIBUTE6,
7747 p_ATTRIBUTE7 => l_shipment_rec.ATTRIBUTE7,
7748 p_ATTRIBUTE8 => l_shipment_rec.ATTRIBUTE8,
7749 p_ATTRIBUTE9 => l_shipment_rec.ATTRIBUTE9,
7750 p_ATTRIBUTE10 => l_shipment_rec.ATTRIBUTE10,
7751 p_ATTRIBUTE11 => l_shipment_rec.ATTRIBUTE11,
7752 p_ATTRIBUTE12 => l_shipment_rec.ATTRIBUTE12,
7753 p_ATTRIBUTE13 => l_shipment_rec.ATTRIBUTE13,
7754 p_ATTRIBUTE14 => l_shipment_rec.ATTRIBUTE14,
7755 p_ATTRIBUTE15 => l_shipment_rec.ATTRIBUTE15,
7756 p_ATTRIBUTE16 => l_shipment_rec.ATTRIBUTE16,
7757 p_ATTRIBUTE17 => l_shipment_rec.ATTRIBUTE17,
7758 p_ATTRIBUTE18 => l_shipment_rec.ATTRIBUTE18,
7759 p_ATTRIBUTE19 => l_shipment_rec.ATTRIBUTE19,
7760 p_ATTRIBUTE20 => l_shipment_rec.ATTRIBUTE20,
7761 p_SHIP_FROM_ORG_ID => l_shipment_rec.SHIP_FROM_ORG_ID,
7762 p_SHIP_TO_CUST_PARTY_ID => l_shipment_rec.SHIP_TO_CUST_PARTY_ID,
7763 p_SHIP_METHOD_CODE_FROM => l_shipment_rec.SHIP_METHOD_CODE_FROM,
7764 p_FREIGHT_TERMS_CODE_FROM => l_shipment_rec.FREIGHT_TERMS_CODE_FROM,
7765 p_OBJECT_VERSION_NUMBER => l_shipment_rec.OBJECT_VERSION_NUMBER,
7766 p_REQUEST_DATE_TYPE => l_shipment_rec.REQUEST_DATE_TYPE,
7767 p_DEMAND_CLASS_CODE => l_shipment_rec.DEMAND_CLASS_CODE
7768 );
7769
7770 FOR j IN 1..l_Freight_Charge_Tbl.count LOOP
7771 IF l_freight_charge_tbl(j).shipment_index = i THEN
7772 l_freight_charge_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
7773 END IF;
7774
7775 END LOOP;
7776
7777 FOR j in 1..l_Tax_Detail_Tbl.count LOOP
7778 IF l_tax_detail_tbl(j).shipment_index = i THEN
7779 l_tax_detail_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
7780 END IF;
7781
7782 FOR j in 1..l_line_attribs_ext_Tbl.count LOOP
7783 IF l_line_attribs_ext_tbl(j).shipment_index = i THEN
7784 l_line_attribs_ext_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
7785 END IF;
7786
7787 END LOOP;
7788
7789 FOR j in 1..l_Payment_Tbl.count LOOP
7790 IF l_payment_tbl(j).shipment_index = i THEN
7791 l_payment_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
7792 END IF;
7793
7794 END LOOP;
7795
7796 FOR j in 1..P_Price_Adj_Tbl.count LOOP
7797 IF l_Price_Adj_tbl(j).shipment_index = i THEN
7798 l_Price_Adj_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
7799 END IF;
7800
7801 END LOOP;
7802
7803 FOR j in 1..P_Quote_Party_Tbl.count LOOP
7804 IF l_quote_party_tbl(j).shipment_index = i THEN
7805 l_quote_party_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
7806 END IF;
7807 END LOOP;
7808
7809 END LOOP;
7810
7811 ELSIF l_shipment_rec.operation_code = 'UPDATE' THEN
7812
7813 IF l_shipment_rec.ship_method_code = fnd_api.g_miss_char THEN
7814
7815 FOR l_ship_db_rec IN c_db_ship_freight_terms(l_shipment_rec.shipment_id) LOOP
7816
7817 IF l_ship_db_rec.ship_method_code_from is null THEN
7818 l_shipment_rec.ship_method_code_from := l_ship_db_rec.ship_method_code;
7819 END IF;
7820
7821 END LOOP;
7822
7823 ELSE
7824 l_shipment_rec.ship_method_code_from := l_shipment_rec.ship_method_code;
7825
7826 END IF;
7827
7828 IF l_shipment_rec.freight_terms_code = fnd_api.g_miss_char THEN
7829
7830 FOR l_ship_db_rec IN c_db_ship_freight_terms(l_shipment_rec.shipment_id) LOOP
7831
7832 IF l_ship_db_rec.freight_terms_code_from is null THEN
7833 l_shipment_rec.freight_terms_code_from := l_ship_db_rec.freight_terms_code;
7834 END IF;
7835
7836 END LOOP;
7837
7838 ELSE
7839 l_shipment_rec.freight_terms_code_from := l_shipment_rec.freight_terms_code;
7840
7841 END IF;
7842
7843
7844 ASO_SHIPMENTS_PKG.Update_Row(
7845 p_SHIPMENT_ID => l_shipment_tbl(i).SHIPMENT_ID,
7846 p_CREATION_DATE => l_shipment_tbl(i).creation_date,
7847 p_CREATED_BY => G_USER_ID,
7848 p_LAST_UPDATE_DATE => SYSDATE,
7849 p_LAST_UPDATED_BY => G_USER_ID,
7850 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7851 p_REQUEST_ID => l_shipment_rec.REQUEST_ID,
7852 p_PROGRAM_APPLICATION_ID => l_shipment_rec.PROGRAM_APPLICATION_ID,
7853 p_PROGRAM_ID => l_shipment_rec.PROGRAM_ID,
7854 p_PROGRAM_UPDATE_DATE => l_shipment_rec.PROGRAM_UPDATE_DATE,
7855 p_QUOTE_HEADER_ID => l_shipment_rec.QUOTE_HEADER_ID,
7856 p_QUOTE_LINE_ID => l_shipment_rec.QUOTE_LINE_ID,
7857 p_PROMISE_DATE => l_shipment_rec.PROMISE_DATE,
7858 p_REQUEST_DATE => l_shipment_rec.REQUEST_DATE,
7859 p_SCHEDULE_SHIP_DATE=> l_shipment_rec.SCHEDULE_SHIP_DATE,
7860 p_SHIP_TO_PARTY_SITE_ID => l_shipment_rec.SHIP_TO_PARTY_SITE_ID,
7861 p_SHIP_TO_PARTY_ID => l_shipment_rec.SHIP_TO_PARTY_ID,
7862 p_SHIP_TO_CUST_ACCOUNT_ID => l_shipment_rec.SHIP_TO_CUST_ACCOUNT_ID ,
7863 p_SHIP_PARTIAL_FLAG => l_shipment_rec.SHIP_PARTIAL_FLAG,
7864 p_SHIP_SET_ID => l_shipment_rec.SHIP_SET_ID,
7865 p_SHIP_METHOD_CODE => l_shipment_rec.SHIP_METHOD_CODE,
7866 p_FREIGHT_TERMS_CODE=> l_shipment_rec.FREIGHT_TERMS_CODE,
7867 p_FREIGHT_CARRIER_CODE => l_shipment_rec.FREIGHT_CARRIER_CODE,
7868 p_FOB_CODE => l_shipment_rec.FOB_CODE,
7869 p_SHIPPING_INSTRUCTIONS => l_shipment_rec.SHIPPING_INSTRUCTIONS,
7870 p_PACKING_INSTRUCTIONS => l_shipment_rec.PACKING_INSTRUCTIONS,
7871 p_SHIPMENT_PRIORITY_CODE => l_shipment_rec.SHIPMENT_PRIORITY_CODE,
7872 p_SHIP_QUOTE_PRICE => l_shipment_rec.SHIP_QUOTE_PRICE,
7873 p_QUANTITY => l_shipment_rec.QUANTITY,
7874 p_RESERVED_QUANTITY => l_shipment_rec.RESERVED_QUANTITY,
7875 p_RESERVATION_ID => l_shipment_rec.RESERVATION_ID,
7876 p_ORDER_LINE_ID => l_shipment_rec.ORDER_LINE_ID,
7877 p_ATTRIBUTE_CATEGORY => l_shipment_rec.ATTRIBUTE_CATEGORY,
7878 p_ATTRIBUTE1 => l_shipment_rec.ATTRIBUTE1,
7879 p_ATTRIBUTE2 => l_shipment_rec.ATTRIBUTE2,
7880 p_ATTRIBUTE3 => l_shipment_rec.ATTRIBUTE3,
7881 p_ATTRIBUTE4 => l_shipment_rec.ATTRIBUTE4,
7882 p_ATTRIBUTE5 => l_shipment_rec.ATTRIBUTE5,
7883 p_ATTRIBUTE6 => l_shipment_rec.ATTRIBUTE6,
7884 p_ATTRIBUTE7 => l_shipment_rec.ATTRIBUTE7,
7885 p_ATTRIBUTE8 => l_shipment_rec.ATTRIBUTE8,
7886 p_ATTRIBUTE9 => l_shipment_rec.ATTRIBUTE9,
7887 p_ATTRIBUTE10 => l_shipment_rec.ATTRIBUTE10,
7888 p_ATTRIBUTE11 => l_shipment_rec.ATTRIBUTE11,
7889 p_ATTRIBUTE12 => l_shipment_rec.ATTRIBUTE12,
7890 p_ATTRIBUTE13 => l_shipment_rec.ATTRIBUTE13,
7891 p_ATTRIBUTE14 => l_shipment_rec.ATTRIBUTE14,
7892 p_ATTRIBUTE15 => l_shipment_rec.ATTRIBUTE15,
7893 p_ATTRIBUTE16 => l_shipment_rec.ATTRIBUTE16,
7894 p_ATTRIBUTE17 => l_shipment_rec.ATTRIBUTE17,
7895 p_ATTRIBUTE18 => l_shipment_rec.ATTRIBUTE18,
7896 p_ATTRIBUTE19 => l_shipment_rec.ATTRIBUTE19,
7897 p_ATTRIBUTE20 => l_shipment_rec.ATTRIBUTE20,
7898 p_SHIP_FROM_ORG_ID =>l_shipment_rec.SHIP_FROM_ORG_ID,
7899 p_SHIP_TO_CUST_PARTY_ID => l_shipment_rec.SHIP_TO_CUST_PARTY_ID,
7900 p_SHIP_METHOD_CODE_FROM => l_shipment_rec.SHIP_METHOD_CODE_FROM,
7901 p_FREIGHT_TERMS_CODE_FROM => l_shipment_rec.FREIGHT_TERMS_CODE_FROM,
7902 p_OBJECT_VERSION_NUMBER => l_shipment_rec.OBJECT_VERSION_NUMBER,
7903 p_REQUEST_DATE_TYPE => l_shipment_rec.REQUEST_DATE_TYPE,
7904 p_DEMAND_CLASS_CODE => l_shipment_rec.DEMAND_CLASS_CODE
7905 );
7906
7907 ELSIF l_shipment_rec.operation_code = 'DELETE' THEN
7908
7909 OPEN C_ship_partial(l_qte_line_rec.QUOTE_LINE_ID);
7910 FETCH C_ship_partial into l_ship_count;
7911 CLOSE C_ship_partial;
7912
7913 IF l_ship_count = 1 THEN
7914 x_return_status := FND_API.G_RET_STS_ERROR;
7915 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7916 FND_MESSAGE.Set_Name('ASO', 'DELETE_SHIPMENT');
7917 FND_MESSAGE.Set_Token('COLUMN', 'SHIPMENT_ID', FALSE);
7918 FND_MSG_PUB.ADD;
7919 END IF;
7920 END IF;
7921
7922
7923 ASO_SHIPMENTS_PKG.Delete_Row(
7924 p_SHIPMENT_ID => l_shipment_tbl(i).SHIPMENT_ID);
7925
7926 END IF;
7927
7928 END LOOP; -- for shipments
7929
7930 -- insert rows into aso_freight_charges
7931
7932 FOR i IN 1..l_Freight_Charge_Tbl.count LOOP
7933 l_freight_charge_rec := l_freight_charge_tbl(i);
7934 -- l_freight_charge_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
7935 x_freight_charge_tbl(i) := l_freight_charge_rec;
7936
7937 IF l_freight_charge_rec.operation_code = 'CREATE' THEN
7938
7939 l_freight_charge_rec.quote_line_id := l_qte_line_rec.quote_line_id;
7940 -- BC4J Fix
7941 --x_FREIGHT_CHARGE_tbl(i).freight_charge_id := null;
7942
7943 ASO_FREIGHT_CHARGES_PKG.Insert_Row(
7944 px_FREIGHT_CHARGE_ID => x_FREIGHT_CHARGE_tbl(i).freight_charge_id,
7945 p_CREATION_DATE => SYSDATE,
7946 p_CREATED_BY => G_USER_ID,
7947 p_LAST_UPDATE_DATE => SYSDATE,
7948 p_LAST_UPDATED_BY => G_USER_ID,
7949 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7950 p_REQUEST_ID => l_freight_charge_rec.REQUEST_ID,
7951 p_PROGRAM_APPLICATION_ID
7952 => l_freight_charge_rec.PROGRAM_APPLICATION_ID,
7953 p_PROGRAM_ID => l_freight_charge_rec.PROGRAM_ID,
7954 p_PROGRAM_UPDATE_DATE => l_freight_charge_rec.PROGRAM_UPDATE_DATE,
7955 p_QUOTE_SHIPMENT_ID => l_freight_charge_rec.QUOTE_SHIPMENT_ID,
7956 p_FREIGHT_CHARGE_TYPE_ID
7957 => l_freight_charge_rec.FREIGHT_CHARGE_TYPE_ID,
7958 p_CHARGE_AMOUNT => l_freight_charge_rec.CHARGE_AMOUNT,
7959 p_ATTRIBUTE_CATEGORY => l_freight_charge_rec.ATTRIBUTE_CATEGORY,
7960 p_ATTRIBUTE1 => l_freight_charge_rec.ATTRIBUTE1,
7961 p_ATTRIBUTE2 => l_freight_charge_rec.ATTRIBUTE2,
7962 p_ATTRIBUTE3 => l_freight_charge_rec.ATTRIBUTE3,
7963 p_ATTRIBUTE4 => l_freight_charge_rec.ATTRIBUTE4,
7964 p_ATTRIBUTE5 => l_freight_charge_rec.ATTRIBUTE5,
7965 p_ATTRIBUTE6 => l_freight_charge_rec.ATTRIBUTE6,
7966 p_ATTRIBUTE7 => l_freight_charge_rec.ATTRIBUTE7,
7967 p_ATTRIBUTE8 => l_freight_charge_rec.ATTRIBUTE8,
7968 p_ATTRIBUTE9 => l_freight_charge_rec.ATTRIBUTE9,
7969 p_ATTRIBUTE10 => l_freight_charge_rec.ATTRIBUTE10,
7970 p_ATTRIBUTE11 => l_freight_charge_rec.ATTRIBUTE11,
7971 p_ATTRIBUTE12 => l_freight_charge_rec.ATTRIBUTE12,
7972 p_ATTRIBUTE13 => l_freight_charge_rec.ATTRIBUTE13,
7973 p_ATTRIBUTE14 => l_freight_charge_rec.ATTRIBUTE14,
7974 p_ATTRIBUTE15 => l_freight_charge_rec.ATTRIBUTE15
7975 );
7976
7977
7978 ELSIF l_freight_charge_rec.operation_code = 'UPDATE' THEN
7979 ASO_FREIGHT_CHARGES_PKG.Update_Row(
7980 p_FREIGHT_CHARGE_ID => p_FREIGHT_CHARGE_tbl(i).freight_charge_id,
7981 p_CREATION_DATE => l_freight_charge_rec.creation_date,
7982 p_CREATED_BY => G_USER_ID,
7983 p_LAST_UPDATE_DATE => SYSDATE,
7984 p_LAST_UPDATED_BY => G_USER_ID,
7985 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7986 p_REQUEST_ID => l_freight_charge_rec.REQUEST_ID,
7987 p_PROGRAM_APPLICATION_ID
7988 => l_freight_charge_rec.PROGRAM_APPLICATION_ID,
7989 p_PROGRAM_ID => l_freight_charge_rec.PROGRAM_ID,
7990 p_PROGRAM_UPDATE_DATE => l_freight_charge_rec.PROGRAM_UPDATE_DATE,
7991 p_QUOTE_SHIPMENT_ID => l_freight_charge_rec.QUOTE_SHIPMENT_ID,
7992 p_FREIGHT_CHARGE_TYPE_ID
7993 => l_freight_charge_rec.FREIGHT_CHARGE_TYPE_ID,
7994 p_CHARGE_AMOUNT => l_freight_charge_rec.CHARGE_AMOUNT,
7995 p_ATTRIBUTE_CATEGORY => l_freight_charge_rec.ATTRIBUTE_CATEGORY,
7996 p_ATTRIBUTE1 => l_freight_charge_rec.ATTRIBUTE1,
7997 p_ATTRIBUTE2 => l_freight_charge_rec.ATTRIBUTE2,
7998 p_ATTRIBUTE3 => l_freight_charge_rec.ATTRIBUTE3,
7999 p_ATTRIBUTE4 => l_freight_charge_rec.ATTRIBUTE4,
8000 p_ATTRIBUTE5 => l_freight_charge_rec.ATTRIBUTE5,
8001 p_ATTRIBUTE6 => l_freight_charge_rec.ATTRIBUTE6,
8002 p_ATTRIBUTE7 => l_freight_charge_rec.ATTRIBUTE7,
8003 p_ATTRIBUTE8 => l_freight_charge_rec.ATTRIBUTE8,
8004 p_ATTRIBUTE9 => l_freight_charge_rec.ATTRIBUTE9,
8005 p_ATTRIBUTE10 => l_freight_charge_rec.ATTRIBUTE10,
8006 p_ATTRIBUTE11 => l_freight_charge_rec.ATTRIBUTE11,
8007 p_ATTRIBUTE12 => l_freight_charge_rec.ATTRIBUTE12,
8008 p_ATTRIBUTE13 => l_freight_charge_rec.ATTRIBUTE13,
8009 p_ATTRIBUTE14 => l_freight_charge_rec.ATTRIBUTE14,
8010 p_ATTRIBUTE15 => l_freight_charge_rec.ATTRIBUTE15);
8011
8012 ELSIF l_freight_charge_rec.operation_code = 'DELETE' THEN
8013 ASO_FREIGHT_CHARGES_PKG.delete_Row(
8014 p_FREIGHT_CHARGE_ID => p_FREIGHT_CHARGE_tbl(i).freight_charge_id);
8015
8016 END IF;
8017 END LOOP; -- freight charges
8018
8019
8020 -- tax information
8021
8022 FOR i IN 1..l_tax_detail_Tbl.count LOOP
8023 l_tax_detail_rec := l_tax_detail_tbl(i);
8024 -- l_tax_detail_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
8025 x_tax_detail_tbl(i) := l_tax_detail_rec;
8026
8027 IF l_tax_detail_rec.operation_code = 'CREATE' THEN
8028 l_tax_detail_rec.quote_header_id := l_qte_line_rec.quote_header_id;
8029 l_tax_detail_rec.quote_line_id := l_qte_line_rec.quote_line_id;
8030 -- BC4J Fix
8031 --x_tax_detail_tbl(i).TAX_DETAIL_ID := null;
8032
8033 ASO_TAX_DETAILS_PKG.Insert_Row(
8034 px_TAX_DETAIL_ID => x_tax_detail_tbl(i).TAX_DETAIL_ID,
8035 p_CREATION_DATE => SYSDATE,
8036 p_CREATED_BY => G_USER_ID,
8037 p_LAST_UPDATE_DATE => SYSDATE,
8038 p_LAST_UPDATED_BY => G_USER_ID,
8039 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8040 p_REQUEST_ID => l_tax_detail_rec.REQUEST_ID,
8041 p_PROGRAM_APPLICATION_ID =>l_tax_detail_rec.PROGRAM_APPLICATION_ID,
8042 p_PROGRAM_ID => l_tax_detail_rec.PROGRAM_ID,
8043 p_PROGRAM_UPDATE_DATE => l_tax_detail_rec.PROGRAM_UPDATE_DATE,
8044 p_QUOTE_HEADER_ID => l_tax_detail_rec.QUOTE_HEADER_ID,
8045 p_QUOTE_LINE_ID => l_tax_detail_rec.QUOTE_LINE_ID,
8046 p_QUOTE_SHIPMENT_ID => l_tax_detail_rec.QUOTE_SHIPMENT_ID,
8047 p_ORIG_TAX_CODE => l_tax_detail_rec.ORIG_TAX_CODE,
8048 p_TAX_CODE => l_tax_detail_rec.TAX_CODE,
8049 p_TAX_RATE => l_tax_detail_rec.TAX_RATE,
8050 p_TAX_DATE => l_tax_detail_rec.TAX_DATE,
8051 p_TAX_AMOUNT => l_tax_detail_rec.TAX_AMOUNT,
8052 p_TAX_EXEMPT_FLAG => l_tax_detail_rec.TAX_EXEMPT_FLAG,
8053 p_TAX_EXEMPT_NUMBER => l_tax_detail_rec.TAX_EXEMPT_NUMBER,
8054 p_TAX_EXEMPT_REASON_CODE =>l_tax_detail_rec.TAX_EXEMPT_REASON_CODE,
8055 p_ATTRIBUTE_CATEGORY => l_tax_detail_rec.ATTRIBUTE_CATEGORY,
8056 p_ATTRIBUTE1 => l_tax_detail_rec.ATTRIBUTE1,
8057 p_ATTRIBUTE2 => l_tax_detail_rec.ATTRIBUTE2,
8058 p_ATTRIBUTE3 => l_tax_detail_rec.ATTRIBUTE3,
8059 p_ATTRIBUTE4 => l_tax_detail_rec.ATTRIBUTE4,
8060 p_ATTRIBUTE5 => l_tax_detail_rec.ATTRIBUTE5,
8061 p_ATTRIBUTE6 => l_tax_detail_rec.ATTRIBUTE6,
8062 p_ATTRIBUTE7 => l_tax_detail_rec.ATTRIBUTE7,
8063 p_ATTRIBUTE8 => l_tax_detail_rec.ATTRIBUTE8,
8064 p_ATTRIBUTE9 => l_tax_detail_rec.ATTRIBUTE9,
8065 p_ATTRIBUTE10 => l_tax_detail_rec.ATTRIBUTE10,
8066 p_ATTRIBUTE11 => l_tax_detail_rec.ATTRIBUTE11,
8067 p_ATTRIBUTE12 => l_tax_detail_rec.ATTRIBUTE12,
8068 p_ATTRIBUTE13 => l_tax_detail_rec.ATTRIBUTE13,
8069 p_ATTRIBUTE14 => l_tax_detail_rec.ATTRIBUTE14,
8070 p_ATTRIBUTE15 => l_tax_detail_rec.ATTRIBUTE15,
8071 p_ATTRIBUTE16 => l_tax_detail_rec.ATTRIBUTE16,
8072 p_ATTRIBUTE17 => l_tax_detail_rec.ATTRIBUTE17,
8073 p_ATTRIBUTE18 => l_tax_detail_rec.ATTRIBUTE18,
8074 p_ATTRIBUTE19 => l_tax_detail_rec.ATTRIBUTE19,
8075 p_ATTRIBUTE20 => l_tax_detail_rec.ATTRIBUTE20,
8076 p_TAX_INCLUSIVE_FLAG => l_tax_detail_rec.TAX_INCLUSIVE_FLAG,
8077 p_OBJECT_VERSION_NUMBER => l_tax_detail_rec.OBJECT_VERSION_NUMBER,
8078 p_TAX_RATE_ID => l_tax_detail_rec.TAX_RATE_ID
8079 );
8080
8081 ELSIF l_tax_detail_rec.operation_code = 'UPDATE' THEN
8082
8083 ASO_TAX_DETAILS_PKG.Update_Row(
8084 p_TAX_DETAIL_ID => l_tax_detail_rec.TAX_DETAIL_ID,
8085 p_CREATION_DATE => l_tax_detail_rec.creation_date,
8086 p_CREATED_BY => G_USER_ID,
8087 p_LAST_UPDATE_DATE => SYSDATE,
8088 p_LAST_UPDATED_BY => G_USER_ID,
8089 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8090 p_REQUEST_ID => l_tax_detail_rec.REQUEST_ID,
8091 p_PROGRAM_APPLICATION_ID =>l_tax_detail_rec.PROGRAM_APPLICATION_ID,
8092 p_PROGRAM_ID => l_tax_detail_rec.PROGRAM_ID,
8093 p_PROGRAM_UPDATE_DATE => l_tax_detail_rec.PROGRAM_UPDATE_DATE,
8094 p_QUOTE_HEADER_ID => l_tax_detail_rec.QUOTE_HEADER_ID,
8095 p_QUOTE_LINE_ID => l_tax_detail_rec.QUOTE_LINE_ID,
8096 p_QUOTE_SHIPMENT_ID => l_tax_detail_rec.QUOTE_SHIPMENT_ID,
8097 p_ORIG_TAX_CODE => l_tax_detail_rec.ORIG_TAX_CODE,
8098 p_TAX_CODE => l_tax_detail_rec.TAX_CODE,
8099 p_TAX_RATE => l_tax_detail_rec.TAX_RATE,
8100 p_TAX_DATE => l_tax_detail_rec.TAX_DATE,
8101 p_TAX_AMOUNT => l_tax_detail_rec.TAX_AMOUNT,
8102 p_TAX_EXEMPT_FLAG => l_tax_detail_rec.TAX_EXEMPT_FLAG,
8103 p_TAX_EXEMPT_NUMBER => l_tax_detail_rec.TAX_EXEMPT_NUMBER,
8104 p_TAX_EXEMPT_REASON_CODE =>l_tax_detail_rec.TAX_EXEMPT_REASON_CODE,
8105 p_ATTRIBUTE_CATEGORY => l_tax_detail_rec.ATTRIBUTE_CATEGORY,
8106 p_ATTRIBUTE1 => l_tax_detail_rec.ATTRIBUTE1,
8107 p_ATTRIBUTE2 => l_tax_detail_rec.ATTRIBUTE2,
8108 p_ATTRIBUTE3 => l_tax_detail_rec.ATTRIBUTE3,
8109 p_ATTRIBUTE4 => l_tax_detail_rec.ATTRIBUTE4,
8110 p_ATTRIBUTE5 => l_tax_detail_rec.ATTRIBUTE5,
8111 p_ATTRIBUTE6 => l_tax_detail_rec.ATTRIBUTE6,
8112 p_ATTRIBUTE7 => l_tax_detail_rec.ATTRIBUTE7,
8113 p_ATTRIBUTE8 => l_tax_detail_rec.ATTRIBUTE8,
8114 p_ATTRIBUTE9 => l_tax_detail_rec.ATTRIBUTE9,
8115 p_ATTRIBUTE10 => l_tax_detail_rec.ATTRIBUTE10,
8116 p_ATTRIBUTE11 => l_tax_detail_rec.ATTRIBUTE11,
8117 p_ATTRIBUTE12 => l_tax_detail_rec.ATTRIBUTE12,
8118 p_ATTRIBUTE13 => l_tax_detail_rec.ATTRIBUTE13,
8119 p_ATTRIBUTE14 => l_tax_detail_rec.ATTRIBUTE14,
8120 p_ATTRIBUTE15 => l_tax_detail_rec.ATTRIBUTE15,
8121 p_ATTRIBUTE16 => l_tax_detail_rec.ATTRIBUTE16,
8122 p_ATTRIBUTE17 => l_tax_detail_rec.ATTRIBUTE17,
8123 p_ATTRIBUTE18 => l_tax_detail_rec.ATTRIBUTE18,
8124 p_ATTRIBUTE19 => l_tax_detail_rec.ATTRIBUTE19,
8125 p_ATTRIBUTE20 => l_tax_detail_rec.ATTRIBUTE20,
8126 p_TAX_INCLUSIVE_FLAG => l_tax_detail_rec.TAX_INCLUSIVE_FLAG,
8127 p_OBJECT_VERSION_NUMBER => l_tax_detail_rec.OBJECT_VERSION_NUMBER,
8128 p_TAX_RATE_ID => l_tax_detail_rec.TAX_RATE_ID
8129 );
8130
8131 ELSIF l_tax_detail_rec.operation_code = 'DELETE' THEN
8132
8133 ASO_TAX_DETAILS_PKG.Delete_Row(
8134 p_TAX_DETAIL_ID => l_tax_detail_tbl(i).TAX_DETAIL_ID);
8135
8136 END IF;
8137 END LOOP; -- tax details
8138
8139 -- quote party
8140 FOR i IN 1..l_quote_party_Tbl.count LOOP
8141 l_quote_party_rec := l_quote_party_tbl(i);
8142 x_quote_party_tbl(i) := l_quote_party_rec;
8143
8144 IF l_quote_party_rec.operation_code = 'CREATE' THEN
8145 l_quote_party_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
8146 l_quote_party_rec.quote_header_id := l_Qte_Line_Rec.quote_header_id;
8147 -- BC4J Fix
8148 --x_quote_party_tbl(i).QUOTE_PARTY_ID := NULL;
8149
8150 ASO_QUOTE_PARTIES_PKG.Insert_Row(
8151 px_QUOTE_PARTY_ID => x_quote_party_tbl(i).QUOTE_PARTY_ID,
8152 p_CREATION_DATE => SYSDATE,
8153 p_CREATED_BY => G_USER_ID,
8154 p_LAST_UPDATE_DATE => SYSDATE,
8155 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8156 p_LAST_UPDATED_BY => G_USER_ID,
8157 p_REQUEST_ID => l_QUOTE_PARTY_rec.REQUEST_ID,
8158 p_PROGRAM_APPLICATION_ID =>l_QUOTE_PARTY_rec.PROGRAM_APPLICATION_ID,
8159 p_PROGRAM_ID => l_QUOTE_PARTY_rec.PROGRAM_ID,
8160 p_PROGRAM_UPDATE_DATE => l_QUOTE_PARTY_rec.PROGRAM_UPDATE_DATE,
8161 p_QUOTE_HEADER_ID => l_QUOTE_PARTY_rec.QUOTE_HEADER_ID,
8162 p_QUOTE_LINE_ID => l_QUOTE_PARTY_rec.QUOTE_LINE_ID,
8163 p_QUOTE_SHIPMENT_ID => l_QUOTE_PARTY_rec.QUOTE_SHIPMENT_ID,
8164 p_PARTY_TYPE => l_QUOTE_PARTY_rec.PARTY_TYPE,
8165 p_PARTY_ID => l_QUOTE_PARTY_rec.PARTY_ID,
8166 p_PARTY_OBJECT_TYPE => l_QUOTE_PARTY_rec.PARTY_OBJECT_TYPE,
8167 p_PARTY_OBJECT_ID => l_QUOTE_PARTY_rec.PARTY_OBJECT_ID,
8168 p_ATTRIBUTE_CATEGORY => l_QUOTE_PARTY_rec.ATTRIBUTE_CATEGORY,
8169 p_ATTRIBUTE1 => l_QUOTE_PARTY_rec.ATTRIBUTE1,
8170 p_ATTRIBUTE2 => l_QUOTE_PARTY_rec.ATTRIBUTE2,
8171 p_ATTRIBUTE3 => l_QUOTE_PARTY_rec.ATTRIBUTE3,
8172 p_ATTRIBUTE4 => l_QUOTE_PARTY_rec.ATTRIBUTE4,
8173 p_ATTRIBUTE5 => l_QUOTE_PARTY_rec.ATTRIBUTE5,
8174 p_ATTRIBUTE6 => l_QUOTE_PARTY_rec.ATTRIBUTE6,
8175 p_ATTRIBUTE7 => l_QUOTE_PARTY_rec.ATTRIBUTE7,
8176 p_ATTRIBUTE8 => l_QUOTE_PARTY_rec.ATTRIBUTE8,
8177 p_ATTRIBUTE9 => l_QUOTE_PARTY_rec.ATTRIBUTE9,
8178 p_ATTRIBUTE10 => l_QUOTE_PARTY_rec.ATTRIBUTE10,
8179 p_ATTRIBUTE11 => l_QUOTE_PARTY_rec.ATTRIBUTE11,
8180 p_ATTRIBUTE12 => l_QUOTE_PARTY_rec.ATTRIBUTE12,
8181 p_ATTRIBUTE13 => l_QUOTE_PARTY_rec.ATTRIBUTE13,
8182 p_ATTRIBUTE14 => l_QUOTE_PARTY_rec.ATTRIBUTE14,
8183 p_ATTRIBUTE15 => l_QUOTE_PARTY_rec.ATTRIBUTE15,
8184 -- p_SECURITY_GROUP_ID => p_QUOTE_PARTY_rec.SECURITY_GROUP_ID);
8185 p_OBJECT_VERSION_NUMBER => l_QUOTE_PARTY_rec.OBJECT_VERSION_NUMBER);
8186
8187 ELSIF l_quote_party_rec.operation_code = 'UPDATE' THEN
8188 ASO_QUOTE_PARTIES_PKG.Update_Row(
8189 p_QUOTE_PARTY_ID => l_quote_party_rec.QUOTE_PARTY_ID,
8190 p_CREATION_DATE => l_quote_party_rec.creation_date,
8191 p_CREATED_BY => G_USER_ID,
8192 p_LAST_UPDATE_DATE => SYSDATE,
8193 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8194 p_LAST_UPDATED_BY => G_USER_ID,
8195 p_REQUEST_ID => l_QUOTE_PARTY_rec.REQUEST_ID,
8196 p_PROGRAM_APPLICATION_ID =>l_QUOTE_PARTY_rec.PROGRAM_APPLICATION_ID,
8197 p_PROGRAM_ID => l_QUOTE_PARTY_rec.PROGRAM_ID,
8198 p_PROGRAM_UPDATE_DATE => l_QUOTE_PARTY_rec.PROGRAM_UPDATE_DATE,
8199 p_QUOTE_HEADER_ID => l_QUOTE_PARTY_rec.QUOTE_HEADER_ID,
8200 p_QUOTE_LINE_ID => l_QUOTE_PARTY_rec.QUOTE_LINE_ID,
8201 p_QUOTE_SHIPMENT_ID => l_QUOTE_PARTY_rec.QUOTE_SHIPMENT_ID,
8202 p_PARTY_TYPE => l_QUOTE_PARTY_rec.PARTY_TYPE,
8203 p_PARTY_ID => l_QUOTE_PARTY_rec.PARTY_ID,
8204 p_PARTY_OBJECT_TYPE => l_QUOTE_PARTY_rec.PARTY_OBJECT_TYPE,
8205 p_PARTY_OBJECT_ID => l_QUOTE_PARTY_rec.PARTY_OBJECT_ID,
8206 p_ATTRIBUTE_CATEGORY => l_QUOTE_PARTY_rec.ATTRIBUTE_CATEGORY,
8207 p_ATTRIBUTE1 => l_QUOTE_PARTY_rec.ATTRIBUTE1,
8208 p_ATTRIBUTE2 => l_QUOTE_PARTY_rec.ATTRIBUTE2,
8209 p_ATTRIBUTE3 => l_QUOTE_PARTY_rec.ATTRIBUTE3,
8210 p_ATTRIBUTE4 => l_QUOTE_PARTY_rec.ATTRIBUTE4,
8211 p_ATTRIBUTE5 => l_QUOTE_PARTY_rec.ATTRIBUTE5,
8212 p_ATTRIBUTE6 => l_QUOTE_PARTY_rec.ATTRIBUTE6,
8213 p_ATTRIBUTE7 => l_QUOTE_PARTY_rec.ATTRIBUTE7,
8214 p_ATTRIBUTE8 => l_QUOTE_PARTY_rec.ATTRIBUTE8,
8215 p_ATTRIBUTE9 => l_QUOTE_PARTY_rec.ATTRIBUTE9,
8216 p_ATTRIBUTE10 => l_QUOTE_PARTY_rec.ATTRIBUTE10,
8217 p_ATTRIBUTE11 => l_QUOTE_PARTY_rec.ATTRIBUTE11,
8218 p_ATTRIBUTE12 => l_QUOTE_PARTY_rec.ATTRIBUTE12,
8219 p_ATTRIBUTE13 => l_QUOTE_PARTY_rec.ATTRIBUTE13,
8220 p_ATTRIBUTE14 => l_QUOTE_PARTY_rec.ATTRIBUTE14,
8221 p_ATTRIBUTE15 => l_QUOTE_PARTY_rec.ATTRIBUTE15,
8222 p_OBJECT_VERSION_NUMBER => l_QUOTE_PARTY_rec.OBJECT_VERSION_NUMBER);
8223
8224 ELSIF l_quote_party_rec.operation_code = 'DELETE' THEN
8225 ASO_QUOTE_PARTIES_PKG.Delete_Row(
8226 p_QUOTE_PARTY_ID => l_QUOTE_PARTY_rec.QUOTE_PARTY_ID);
8227
8228 END IF;
8229 END LOOP;
8230
8231
8232
8233
8234 -- price adjustment attributes
8235
8236
8237 FOR i IN 1..l_Price_Adj_Tbl.count LOOP
8238 l_price_adj_rec := l_price_adj_tbl(i);
8239 -- l_price_adj_rec.quote_line_id := x_qte_line_rec.quote_line_id;
8240 x_price_adj_tbl(i) := l_price_adj_rec;
8241
8242 IF l_price_adj_rec.operation_code = 'CREATE' THEN
8243
8244 l_price_adj_rec.quote_header_id := l_qte_line_rec.quote_header_id;
8245 l_price_adj_rec.quote_line_id := l_qte_line_rec.quote_line_id;
8246 -- BC4J Fix
8247 --x_price_adj_tbl(i).PRICE_ADJUSTMENT_ID := NULL;
8248
8249 ASO_PRICE_ADJUSTMENTS_PKG.Insert_Row(
8250 px_PRICE_ADJUSTMENT_ID => x_price_adj_tbl(i).PRICE_ADJUSTMENT_ID,
8251 p_CREATION_DATE => SYSDATE,
8252 p_CREATED_BY => G_USER_ID,
8253 p_LAST_UPDATE_DATE => SYSDATE,
8254 p_LAST_UPDATED_BY => G_USER_ID,
8255 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8256 p_PROGRAM_APPLICATION_ID =>l_price_adj_rec.PROGRAM_APPLICATION_ID,
8257 p_PROGRAM_ID => l_price_adj_rec.PROGRAM_ID,
8258 p_PROGRAM_UPDATE_DATE => l_price_adj_rec.PROGRAM_UPDATE_DATE,
8259 p_REQUEST_ID => l_price_adj_rec.REQUEST_ID,
8260 p_QUOTE_HEADER_ID => l_price_adj_rec.QUOTE_HEADER_ID,
8261 p_QUOTE_LINE_ID => l_price_adj_rec.QUOTE_LINE_ID,
8262 p_QUOTE_SHIPMENT_ID => l_price_adj_rec.QUOTE_SHIPMENT_ID,
8263 p_MODIFIER_HEADER_ID => l_price_adj_rec.MODIFIER_HEADER_ID,
8264 p_MODIFIER_LINE_ID => l_price_adj_rec.MODIFIER_LINE_ID,
8265 p_MODIFIER_LINE_TYPE_CODE
8266 => l_price_adj_rec.MODIFIER_LINE_TYPE_CODE,
8267 p_MODIFIER_MECHANISM_TYPE_CODE
8268 => l_price_adj_rec.MODIFIER_MECHANISM_TYPE_CODE,
8269 p_MODIFIED_FROM => l_price_adj_rec.MODIFIED_FROM,
8270 p_MODIFIED_TO => l_price_adj_rec.MODIFIED_TO,
8271 p_OPERAND => l_price_adj_rec.OPERAND,
8272 p_ARITHMETIC_OPERATOR => l_price_adj_rec.ARITHMETIC_OPERATOR,
8273 p_AUTOMATIC_FLAG => l_price_adj_rec.AUTOMATIC_FLAG,
8274 p_UPDATE_ALLOWABLE_FLAG => l_price_adj_rec.UPDATE_ALLOWABLE_FLAG,
8275 p_UPDATED_FLAG => l_price_adj_rec.UPDATED_FLAG,
8276 p_APPLIED_FLAG => l_price_adj_rec.APPLIED_FLAG,
8277 p_ON_INVOICE_FLAG => l_price_adj_rec.ON_INVOICE_FLAG,
8278 p_PRICING_PHASE_ID => l_price_adj_rec.PRICING_PHASE_ID,
8279 p_ATTRIBUTE_CATEGORY => l_price_adj_rec.ATTRIBUTE_CATEGORY,
8280 p_ATTRIBUTE1 => l_price_adj_rec.ATTRIBUTE1,
8281 p_ATTRIBUTE2 => l_price_adj_rec.ATTRIBUTE2,
8282 p_ATTRIBUTE3 => l_price_adj_rec.ATTRIBUTE3,
8283 p_ATTRIBUTE4 => l_price_adj_rec.ATTRIBUTE4,
8284 p_ATTRIBUTE5 => l_price_adj_rec.ATTRIBUTE5,
8285 p_ATTRIBUTE6 => l_price_adj_rec.ATTRIBUTE6,
8286 p_ATTRIBUTE7 => l_price_adj_rec.ATTRIBUTE7,
8287 p_ATTRIBUTE8 => l_price_adj_rec.ATTRIBUTE8,
8288 p_ATTRIBUTE9 => l_price_adj_rec.ATTRIBUTE9,
8289 p_ATTRIBUTE10 => l_price_adj_rec.ATTRIBUTE10,
8290 p_ATTRIBUTE11 => l_price_adj_rec.ATTRIBUTE11,
8291 p_ATTRIBUTE12 => l_price_adj_rec.ATTRIBUTE12,
8292 p_ATTRIBUTE13 => l_price_adj_rec.ATTRIBUTE13,
8293 p_ATTRIBUTE14 => l_price_adj_rec.ATTRIBUTE14,
8294 p_ATTRIBUTE15 => l_price_adj_rec.ATTRIBUTE15,
8295 p_ATTRIBUTE16 => l_price_adj_rec.ATTRIBUTE16,
8296 p_ATTRIBUTE17 => l_price_adj_rec.ATTRIBUTE17,
8297 p_ATTRIBUTE18 => l_price_adj_rec.ATTRIBUTE18,
8298 p_ATTRIBUTE19 => l_price_adj_rec.ATTRIBUTE19,
8299 p_ATTRIBUTE20 => l_price_adj_rec.ATTRIBUTE20,
8300 p_ORIG_SYS_DISCOUNT_REF => l_price_adj_rec.ORIG_SYS_DISCOUNT_REF ,
8301 p_CHANGE_SEQUENCE => l_price_adj_rec.CHANGE_SEQUENCE ,
8302 -- p_LIST_HEADER_ID => l_price_adj_rec. ,
8303 -- p_LIST_LINE_ID => l_price_adj_rec. ,
8304 -- p_LIST_LINE_TYPE_CODE => l_price_adj_rec.,
8305 p_UPDATE_ALLOWED => l_price_adj_rec.UPDATE_ALLOWED,
8306 p_CHANGE_REASON_CODE => l_price_adj_rec.CHANGE_REASON_CODE,
8307 p_CHANGE_REASON_TEXT => l_price_adj_rec.CHANGE_REASON_TEXT,
8308 p_COST_ID => l_price_adj_rec.COST_ID ,
8309 p_TAX_CODE => l_price_adj_rec.TAX_CODE,
8310 p_TAX_EXEMPT_FLAG => l_price_adj_rec.TAX_EXEMPT_FLAG,
8311 p_TAX_EXEMPT_NUMBER => l_price_adj_rec.TAX_EXEMPT_NUMBER,
8312 p_TAX_EXEMPT_REASON_CODE => l_price_adj_rec.TAX_EXEMPT_REASON_CODE,
8313 p_PARENT_ADJUSTMENT_ID => l_price_adj_rec.PARENT_ADJUSTMENT_ID,
8314 p_INVOICED_FLAG => l_price_adj_rec.INVOICED_FLAG,
8315 p_ESTIMATED_FLAG => l_price_adj_rec.ESTIMATED_FLAG,
8316 p_INC_IN_SALES_PERFORMANCE => l_price_adj_rec.INC_IN_SALES_PERFORMANCE,
8317 p_SPLIT_ACTION_CODE => l_price_adj_rec.SPLIT_ACTION_CODE,
8318 p_ADJUSTED_AMOUNT => l_price_adj_rec.ADJUSTED_AMOUNT ,
8319 p_CHARGE_TYPE_CODE => l_price_adj_rec.CHARGE_TYPE_CODE,
8320 p_CHARGE_SUBTYPE_CODE => l_price_adj_rec.CHARGE_SUBTYPE_CODE,
8321 p_RANGE_BREAK_QUANTITY => l_price_adj_rec.RANGE_BREAK_QUANTITY,
8322 p_ACCRUAL_CONVERSION_RATE => l_price_adj_rec.ACCRUAL_CONVERSION_RATE ,
8323 p_PRICING_GROUP_SEQUENCE => l_price_adj_rec.PRICING_GROUP_SEQUENCE,
8324 p_ACCRUAL_FLAG => l_price_adj_rec.ACCRUAL_FLAG,
8325 p_LIST_LINE_NO => l_price_adj_rec.LIST_LINE_NO,
8326 p_SOURCE_SYSTEM_CODE => l_price_adj_rec.SOURCE_SYSTEM_CODE ,
8327 p_BENEFIT_QTY => l_price_adj_rec.BENEFIT_QTY,
8328 p_BENEFIT_UOM_CODE => l_price_adj_rec.BENEFIT_UOM_CODE,
8329 p_PRINT_ON_INVOICE_FLAG => l_price_adj_rec.PRINT_ON_INVOICE_FLAG,
8330 p_EXPIRATION_DATE => l_price_adj_rec.EXPIRATION_DATE,
8331 p_REBATE_TRANSACTION_TYPE_CODE => l_price_adj_rec.REBATE_TRANSACTION_TYPE_CODE,
8332 p_REBATE_TRANSACTION_REFERENCE => l_price_adj_rec.REBATE_TRANSACTION_REFERENCE,
8333 p_REBATE_PAYMENT_SYSTEM_CODE => l_price_adj_rec.REBATE_PAYMENT_SYSTEM_CODE,
8334 p_REDEEMED_DATE => l_price_adj_rec.REDEEMED_DATE,
8335 p_REDEEMED_FLAG => l_price_adj_rec.REDEEMED_FLAG,
8336 p_MODIFIER_LEVEL_CODE => l_price_adj_rec.MODIFIER_LEVEL_CODE,
8337 p_PRICE_BREAK_TYPE_CODE => l_price_adj_rec.PRICE_BREAK_TYPE_CODE ,
8338 p_SUBSTITUTION_ATTRIBUTE => l_price_adj_rec.SUBSTITUTION_ATTRIBUTE,
8339 p_PRORATION_TYPE_CODE => l_price_adj_rec.PRORATION_TYPE_CODE ,
8340 p_INCLUDE_ON_RETURNS_FLAG => l_price_adj_rec.INCLUDE_ON_RETURNS_FLAG,
8341 p_CREDIT_OR_CHARGE_FLAG => l_price_adj_rec.CREDIT_OR_CHARGE_FLAG,
8342 p_OPERAND_PER_PQTY => l_price_adj_rec.OPERAND_PER_PQTY,
8343 p_ADJUSTED_AMOUNT_PER_PQTY => l_price_adj_rec.ADJUSTED_AMOUNT_PER_PQTY,
8344 p_OBJECT_VERSION_NUMBER => l_price_adj_rec.OBJECT_VERSION_NUMBER);
8345
8346 FOR j in 1..l_price_adj_attr_tbl.count LOOP
8347 IF l_price_adj_attr_tbl(j).price_adj_index = j THEN
8348 l_price_adj_attr_tbl(j).price_adjustment_id := x_price_adj_tbl(i).PRICE_ADJUSTMENT_ID;
8349 END IF;
8350 END LOOP;
8351
8352
8353 ELSIF l_price_adj_rec.operation_code = 'UPDATE' THEN
8354 -- New Code for updating PBH
8355 if l_price_adj_rec.updated_flag = 'Y' then
8356
8357 l_price_adjustment_id := null;
8358
8359 --get the price_adjustment_id of the PBH adjustment line, if this is children of a PBH parent
8360 open c_pbh( l_price_adj_rec.price_adjustment_id );
8361 fetch c_pbh into l_price_adjustment_id;
8362 close c_pbh;
8363
8364
8365 --if the above query returns a not null value then update all the children of this PBH
8366
8367 if l_price_adjustment_id is not null then
8368
8369 --update all child lines
8370 UPDATE aso_price_adjustments
8371 SET updated_flag = 'Y',
8372 applied_flag = null
8373 Where price_adjustment_id in ( SELECT rltd_price_adj_id
8374 FROM aso_price_adj_relationships b
8375 WHERE price_adjustment_id = l_price_adjustment_id );
8376
8377 --update the parent PBH line
8378 UPDATE aso_price_adjustments
8379 SET updated_flag = 'Y',
8380 applied_flag = 'Y'
8381 Where price_adjustment_id = l_price_adjustment_id;
8382
8383 end if;
8384
8385 end if;
8386
8387
8388 ASO_PRICE_ADJUSTMENTS_PKG.Update_Row(
8389 p_PRICE_ADJUSTMENT_ID => l_price_adj_rec.PRICE_ADJUSTMENT_ID,
8390 p_CREATION_DATE => l_price_adj_rec.creation_date,
8391 p_CREATED_BY => G_USER_ID,
8392 p_LAST_UPDATE_DATE => SYSDATE,
8393 p_LAST_UPDATED_BY => G_USER_ID,
8394 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8395 p_PROGRAM_APPLICATION_ID =>l_price_adj_rec.PROGRAM_APPLICATION_ID,
8396 p_PROGRAM_ID => l_price_adj_rec.PROGRAM_ID,
8397 p_PROGRAM_UPDATE_DATE => l_price_adj_rec.PROGRAM_UPDATE_DATE,
8398 p_REQUEST_ID => l_price_adj_rec.REQUEST_ID,
8399 p_QUOTE_HEADER_ID => l_price_adj_rec.QUOTE_HEADER_ID,
8400 p_QUOTE_LINE_ID => l_price_adj_rec.QUOTE_LINE_ID,
8401 p_QUOTE_SHIPMENT_ID => l_price_adj_rec.QUOTE_SHIPMENT_ID,
8402 p_MODIFIER_HEADER_ID => l_price_adj_rec.MODIFIER_HEADER_ID,
8403 p_MODIFIER_LINE_ID => l_price_adj_rec.MODIFIER_LINE_ID,
8404 p_MODIFIER_LINE_TYPE_CODE
8405 => l_price_adj_rec.MODIFIER_LINE_TYPE_CODE,
8406 p_MODIFIER_MECHANISM_TYPE_CODE
8407 => l_price_adj_rec.MODIFIER_MECHANISM_TYPE_CODE,
8408 p_MODIFIED_FROM => l_price_adj_rec.MODIFIED_FROM,
8409 p_MODIFIED_TO => l_price_adj_rec.MODIFIED_TO,
8410 p_OPERAND => l_price_adj_rec.OPERAND,
8411 p_ARITHMETIC_OPERATOR => l_price_adj_rec.ARITHMETIC_OPERATOR,
8412 p_AUTOMATIC_FLAG => l_price_adj_rec.AUTOMATIC_FLAG,
8413 p_UPDATE_ALLOWABLE_FLAG => l_price_adj_rec.UPDATE_ALLOWABLE_FLAG,
8414 p_UPDATED_FLAG => l_price_adj_rec.UPDATED_FLAG,
8415 p_APPLIED_FLAG => l_price_adj_rec.APPLIED_FLAG,
8416 p_ON_INVOICE_FLAG => l_price_adj_rec.ON_INVOICE_FLAG,
8417 p_PRICING_PHASE_ID => l_price_adj_rec.PRICING_PHASE_ID,
8418 p_ATTRIBUTE_CATEGORY => l_price_adj_rec.ATTRIBUTE_CATEGORY,
8419 p_ATTRIBUTE1 => l_price_adj_rec.ATTRIBUTE1,
8420 p_ATTRIBUTE2 => l_price_adj_rec.ATTRIBUTE2,
8421 p_ATTRIBUTE3 => l_price_adj_rec.ATTRIBUTE3,
8422 p_ATTRIBUTE4 => l_price_adj_rec.ATTRIBUTE4,
8423 p_ATTRIBUTE5 => l_price_adj_rec.ATTRIBUTE5,
8424 p_ATTRIBUTE6 => l_price_adj_rec.ATTRIBUTE6,
8425 p_ATTRIBUTE7 => l_price_adj_rec.ATTRIBUTE7,
8426 p_ATTRIBUTE8 => l_price_adj_rec.ATTRIBUTE8,
8427 p_ATTRIBUTE9 => l_price_adj_rec.ATTRIBUTE9,
8428 p_ATTRIBUTE10 => l_price_adj_rec.ATTRIBUTE10,
8429 p_ATTRIBUTE11 => l_price_adj_rec.ATTRIBUTE11,
8430 p_ATTRIBUTE12 => l_price_adj_rec.ATTRIBUTE12,
8431 p_ATTRIBUTE13 => l_price_adj_rec.ATTRIBUTE13,
8432 p_ATTRIBUTE14 => l_price_adj_rec.ATTRIBUTE14,
8433 p_ATTRIBUTE15 => l_price_adj_rec.ATTRIBUTE15,
8434 p_ATTRIBUTE16 => l_price_adj_rec.ATTRIBUTE16,
8435 p_ATTRIBUTE17 => l_price_adj_rec.ATTRIBUTE17,
8436 p_ATTRIBUTE18 => l_price_adj_rec.ATTRIBUTE18,
8437 p_ATTRIBUTE19 => l_price_adj_rec.ATTRIBUTE19,
8438 p_ATTRIBUTE20 => l_price_adj_rec.ATTRIBUTE20,
8439 p_ORIG_SYS_DISCOUNT_REF => l_price_adj_rec.ORIG_SYS_DISCOUNT_REF ,
8440 p_CHANGE_SEQUENCE => l_price_adj_rec.CHANGE_SEQUENCE ,
8441 -- p_LIST_HEADER_ID => l_price_adj_rec. ,
8442 -- p_LIST_LINE_ID => l_price_adj_rec. ,
8443 -- p_LIST_LINE_TYPE_CODE => l_price_adj_rec.,
8444 p_UPDATE_ALLOWED => l_price_adj_rec.UPDATE_ALLOWED,
8445 p_CHANGE_REASON_CODE => l_price_adj_rec.CHANGE_REASON_CODE,
8446 p_CHANGE_REASON_TEXT => l_price_adj_rec.CHANGE_REASON_TEXT,
8447 p_COST_ID => l_price_adj_rec.COST_ID ,
8448 p_TAX_CODE => l_price_adj_rec.TAX_CODE,
8449 p_TAX_EXEMPT_FLAG => l_price_adj_rec.TAX_EXEMPT_FLAG,
8450 p_TAX_EXEMPT_NUMBER => l_price_adj_rec.TAX_EXEMPT_NUMBER,
8451 p_TAX_EXEMPT_REASON_CODE => l_price_adj_rec.TAX_EXEMPT_REASON_CODE,
8452 p_PARENT_ADJUSTMENT_ID => l_price_adj_rec.PARENT_ADJUSTMENT_ID,
8453 p_INVOICED_FLAG => l_price_adj_rec.INVOICED_FLAG,
8454 p_ESTIMATED_FLAG => l_price_adj_rec.ESTIMATED_FLAG,
8455 p_INC_IN_SALES_PERFORMANCE => l_price_adj_rec.INC_IN_SALES_PERFORMANCE,
8456 p_SPLIT_ACTION_CODE => l_price_adj_rec.SPLIT_ACTION_CODE,
8457 p_ADJUSTED_AMOUNT => l_price_adj_rec.ADJUSTED_AMOUNT ,
8458 p_CHARGE_TYPE_CODE => l_price_adj_rec.CHARGE_TYPE_CODE,
8459 p_CHARGE_SUBTYPE_CODE => l_price_adj_rec.CHARGE_SUBTYPE_CODE,
8460 p_RANGE_BREAK_QUANTITY => l_price_adj_rec.RANGE_BREAK_QUANTITY,
8461 p_ACCRUAL_CONVERSION_RATE => l_price_adj_rec.ACCRUAL_CONVERSION_RATE ,
8462 p_PRICING_GROUP_SEQUENCE => l_price_adj_rec.PRICING_GROUP_SEQUENCE,
8463 p_ACCRUAL_FLAG => l_price_adj_rec.ACCRUAL_FLAG,
8464 p_LIST_LINE_NO => l_price_adj_rec.LIST_LINE_NO,
8465 p_SOURCE_SYSTEM_CODE => l_price_adj_rec.SOURCE_SYSTEM_CODE ,
8466 p_BENEFIT_QTY => l_price_adj_rec.BENEFIT_QTY,
8467 p_BENEFIT_UOM_CODE => l_price_adj_rec.BENEFIT_UOM_CODE,
8468 p_PRINT_ON_INVOICE_FLAG => l_price_adj_rec.PRINT_ON_INVOICE_FLAG,
8469 p_EXPIRATION_DATE => l_price_adj_rec.EXPIRATION_DATE,
8470 p_REBATE_TRANSACTION_TYPE_CODE => l_price_adj_rec.REBATE_TRANSACTION_TYPE_CODE,
8471 p_REBATE_TRANSACTION_REFERENCE => l_price_adj_rec.REBATE_TRANSACTION_REFERENCE,
8472 p_REBATE_PAYMENT_SYSTEM_CODE => l_price_adj_rec.REBATE_PAYMENT_SYSTEM_CODE,
8473 p_REDEEMED_DATE => l_price_adj_rec.REDEEMED_DATE,
8474 p_REDEEMED_FLAG => l_price_adj_rec.REDEEMED_FLAG,
8475 p_MODIFIER_LEVEL_CODE => l_price_adj_rec.MODIFIER_LEVEL_CODE,
8476 p_PRICE_BREAK_TYPE_CODE => l_price_adj_rec.PRICE_BREAK_TYPE_CODE ,
8477 p_SUBSTITUTION_ATTRIBUTE => l_price_adj_rec.SUBSTITUTION_ATTRIBUTE,
8478 p_PRORATION_TYPE_CODE => l_price_adj_rec.PRORATION_TYPE_CODE ,
8479 p_INCLUDE_ON_RETURNS_FLAG => l_price_adj_rec.INCLUDE_ON_RETURNS_FLAG,
8480 p_CREDIT_OR_CHARGE_FLAG => l_price_adj_rec.CREDIT_OR_CHARGE_FLAG,
8481 p_OPERAND_PER_PQTY => l_price_adj_rec.OPERAND_PER_PQTY,
8482 p_ADJUSTED_AMOUNT_PER_PQTY => l_price_adj_rec.ADJUSTED_AMOUNT_PER_PQTY,
8483 p_OBJECT_VERSION_NUMBER => l_price_adj_rec.OBJECT_VERSION_NUMBER
8484 );
8485
8486 ELSIF l_price_adj_rec.operation_code = 'DELETE' THEN
8487 ASO_PRICE_ADJUSTMENTS_PKG.Delete_Row(
8488 p_PRICE_ADJ_ID => l_price_adj_rec.PRICE_ADJUSTMENT_ID);
8489
8490 END IF;
8491 END LOOP;
8492
8493
8494 -- price adjustment attributes
8495
8496 FOR i in 1..l_price_adj_attr_tbl.count LOOP
8497
8498 x_price_adj_attr_tbl(i) := l_price_adj_attr_tbl(i);
8499
8500 IF l_price_adj_attr_tbl(i).operation_code = 'CREATE' THEN
8501 -- BC4J Fix
8502 -- x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID := null;
8503
8504 ASO_PRICE_ADJ_ATTRIBS_PKG.Insert_Row(
8505 px_PRICE_ADJ_ATTRIB_ID=> x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID,
8506 p_CREATION_DATE => SYSDATE,
8507 p_CREATED_BY => G_USER_ID,
8508 p_LAST_UPDATE_DATE => SYSDATE,
8509 p_LAST_UPDATED_BY => G_USER_ID,
8510 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8511 p_PROGRAM_APPLICATION_ID
8512 =>l_price_adj_attr_tbl(i).PROGRAM_APPLICATION_ID,
8513 p_PROGRAM_ID => l_price_adj_attr_tbl(i).PROGRAM_ID,
8514 p_PROGRAM_UPDATE_DATE => l_price_adj_attr_tbl(i).PROGRAM_UPDATE_DATE,
8515 p_REQUEST_ID => l_price_adj_attr_tbl(i).REQUEST_ID,
8516 p_PRICE_ADJUSTMENT_ID => l_price_adj_attr_tbl(i).PRICE_ADJUSTMENT_ID,
8517 p_PRICING_CONTEXT => l_price_adj_attr_tbl(i).PRICING_CONTEXT,
8518 p_PRICING_ATTRIBUTE => l_price_adj_attr_tbl(i).PRICING_ATTRIBUTE,
8519 p_PRICING_ATTR_VALUE_FROM
8520 => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_FROM,
8521 p_PRICING_ATTR_VALUE_TO
8522 => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_TO,
8523 p_COMPARISON_OPERATOR => l_price_adj_attr_tbl(i).COMPARISON_OPERATOR,
8524 p_FLEX_TITLE => l_price_adj_attr_tbl(i).FLEX_TITLE ,
8525 p_OBJECT_VERSION_NUMBER => l_price_adj_attr_tbl(i).OBJECT_VERSION_NUMBER);
8526
8527 ELSIF l_price_adj_attr_tbl(i).operation_code = 'UPDATE' THEN
8528
8529 ASO_PRICE_ADJ_ATTRIBS_PKG.Update_Row(
8530 p_PRICE_ADJ_ATTRIB_ID => l_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID,
8531 p_CREATION_DATE => l_price_adj_attr_tbl(i).creation_date,
8532 p_CREATED_BY => G_USER_ID,
8533 p_LAST_UPDATE_DATE => SYSDATE,
8534 p_LAST_UPDATED_BY => G_USER_ID,
8535 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8536 p_PROGRAM_APPLICATION_ID
8537 =>l_price_adj_attr_tbl(i).PROGRAM_APPLICATION_ID,
8538 p_PROGRAM_ID => l_price_adj_attr_tbl(i).PROGRAM_ID,
8539 p_PROGRAM_UPDATE_DATE => l_price_adj_attr_tbl(i).PROGRAM_UPDATE_DATE,
8540 p_REQUEST_ID => l_price_adj_attr_tbl(i).REQUEST_ID,
8541 p_PRICE_ADJUSTMENT_ID => l_price_adj_attr_tbl(i).PRICE_ADJUSTMENT_ID,
8542 p_PRICING_CONTEXT => l_price_adj_attr_tbl(i).PRICING_CONTEXT,
8543 p_PRICING_ATTRIBUTE => l_price_adj_attr_tbl(i).PRICING_ATTRIBUTE,
8544 p_PRICING_ATTR_VALUE_FROM
8545 => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_FROM,
8546 p_PRICING_ATTR_VALUE_TO
8547 => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_TO,
8548 p_COMPARISON_OPERATOR => l_price_adj_attr_tbl(i).COMPARISON_OPERATOR,
8549 p_FLEX_TITLE => l_price_adj_attr_tbl(i).FLEX_TITLE ,
8550 p_OBJECT_VERSION_NUMBER => l_price_adj_attr_tbl(i).OBJECT_VERSION_NUMBER
8551 );
8552
8553 ELSIF l_price_adj_attr_tbl(i).operation_code = 'DELETE' THEN
8554
8555 ASO_PRICE_ADJ_ATTRIBS_PKG.Delete_Row(
8556 p_PRICE_ADJ_ATTRIB_ID => l_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID);
8557
8558 END IF;
8559
8560 END LOOP;
8561
8562
8563 -- New code to call aso_pricing_int.delete_promotion 07/22/02
8564 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8565 aso_debug_pub.add('Update_Rows: l_Price_Attributes_Tbl.count: '||l_Price_Attributes_Tbl.count,1, 'N');
8566 aso_debug_pub.add('Update_Rows: Before call to aso_pricing_int.Delete_Promotion',1, 'N');
8567 end if;
8568
8569 IF l_Price_Attributes_Tbl.count > 0 THEN
8570
8571 aso_pricing_int.Delete_Promotion (
8572 P_Api_Version_Number => 1.0,
8573 P_Init_Msg_List => FND_API.G_FALSE,
8574 P_Commit => FND_API.G_FALSE,
8575 p_price_attr_tbl => l_Price_Attributes_Tbl,
8576 x_return_status => x_return_status,
8577 x_msg_count => x_msg_count,
8578 x_msg_data => x_msg_data
8579 );
8580 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8581 aso_debug_pub.add('Update_Rows: After call to Delete_Promotion: x_return_status: '||x_return_status,1, 'N');
8582 end if;
8583
8584 END IF;
8585
8586 -- End of New code to call aso_pricing_int.delete_promotion 07/22/02
8587
8588
8589 -- insert rows into aso_payments_tbl
8590
8591
8592 FOR i IN 1..l_Payment_Tbl.count LOOP
8593 l_payment_rec := l_payment_tbl(i);
8594 -- l_payment_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
8595 x_payment_tbl(i) := l_payment_rec;
8596
8597 IF l_payment_rec.operation_code = 'CREATE' THEN
8598
8599 l_payment_rec.quote_header_id := l_qte_line_rec.quote_header_id;
8600 l_payment_rec.quote_line_id := l_qte_line_rec.quote_line_id;
8601 -- BC4J Fix
8602 -- x_payment_tbl(i).PAYMENT_ID := null;
8603 l_payment_rec.PAYMENT_TERM_ID_FROM := l_payment_tbl(i).payment_term_id;
8604 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8605 aso_debug_pub.add('Inside ASO_PAYMENTS_PKG - Insert Rows Quote Line l_payment_tbl(i).payment_term_id'||l_payment_tbl(i).payment_term_id, 1, 'Y');
8606 aso_debug_pub.add('Inside ASO_PAYMENTS_PKG - Insert Rows Quote Linel_payment_rec.PAYMENT_TERM_ID_FROM'||l_payment_rec.PAYMENT_TERM_ID_FROM, 1, 'Y');
8607 END IF;
8608
8609 -- Suyog Payments Changes
8610
8611 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8612 aso_debug_pub.add('Update_Quote_Line_Rows: Before call to create_payment_row ', 1, 'Y');
8613 END IF;
8614
8615 aso_payment_int.create_payment_row(p_payment_rec => l_payment_rec ,
8616 x_payment_rec => x_payment_tbl(i),
8617 x_return_status => x_return_status,
8618 x_msg_count => x_msg_count,
8619 x_msg_data => x_msg_data);
8620
8621 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8622 aso_debug_pub.add('Update_Quote_Line_Rows: After call to create_payment_row: x_return_status: '||x_return_status, 1, 'Y');
8623 END IF;
8624
8625 if x_return_status <> fnd_api.g_ret_sts_success then
8626 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
8627 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8628 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
8629 RAISE FND_API.G_EXC_ERROR;
8630 ELSE
8631 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8632 END IF;
8633 end if;
8634
8635 -- End Suyog Payment Changes
8636
8637 x_payment_tbl(i).PAYMENT_TERM_ID_FROM := l_payment_rec.PAYMENT_TERM_ID_FROM;
8638
8639 ELSIF l_payment_rec.operation_code = 'UPDATE' THEN
8640
8641 IF l_payment_rec.payment_term_id = FND_API.G_MISS_NUM THEN
8642 FOR l_payment_db_rec IN c_db_payment_terms(l_payment_rec.PAYMENT_ID) LOOP
8643 IF l_payment_db_rec.payment_term_id_from IS NULL THEN
8644 l_payment_rec.payment_term_id_from := l_payment_db_rec.payment_term_id;
8645 END IF;
8646 END LOOP;
8647 ELSE
8648 l_payment_rec.payment_term_id_from := l_payment_rec.payment_term_id;
8649 END IF;
8650 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8651 aso_debug_pub.add('Inside ASO_PAYMENTS_PKG - Update Rows l_payment_rec.payment_term_id'||l_payment_rec.payment_term_id, 1, 'Y');
8652 aso_debug_pub.add('Inside ASO_PAYMENTS_PKG - Update Rows l_payment_rec.PAYMENT_TERM_ID_FROM'||l_payment_rec.PAYMENT_TERM_ID_FROM, 1, 'Y');
8653 END IF;
8654
8655
8656 -- Suyog Payments Changes
8657
8658 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8659 aso_debug_pub.add('Update_Quote_Line_Rows: Before call to update_payment_row ', 1, 'Y');
8660 END IF;
8661
8662 aso_payment_int.update_payment_row(p_payment_rec => l_payment_rec ,
8663 x_payment_rec => x_payment_tbl(i),
8664 x_return_status => x_return_status,
8665 x_msg_count => x_msg_count,
8666 x_msg_data => x_msg_data);
8667
8668 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8669 aso_debug_pub.add('Update_Quote_Line_Rows: After call to update_payment_row: x_return_status: '||x_return_status, 1, 'Y');
8670 END IF;
8671 if x_return_status <> fnd_api.g_ret_sts_success then
8672 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
8673 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8674 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
8675 RAISE FND_API.G_EXC_ERROR;
8676 ELSE
8677 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8678 END IF;
8679 end if;
8680
8681 -- End Suyog Payment Changes
8682
8683
8684 ELSIF l_payment_rec.operation_code = 'DELETE' THEN
8685
8686 -- Suyog Payments Changes
8687
8688 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8689 aso_debug_pub.add('Update_Quote_Line_Rows: Before call to delete_payment_row ', 1, 'Y');
8690 END IF;
8691
8692 aso_payment_int.delete_payment_row(p_payment_rec => l_payment_rec ,
8693 x_return_status => x_return_status,
8694 x_msg_count => x_msg_count,
8695 x_msg_data => x_msg_data);
8696
8697 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8698 aso_debug_pub.add('Update_Quote_Line_Rows: After call to delete_payment_row: x_return_status: '||x_return_status, 1, 'Y');
8699 END IF;
8700 if x_return_status <> fnd_api.g_ret_sts_success then
8701 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
8702 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8703 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
8704 RAISE FND_API.G_EXC_ERROR;
8705 ELSE
8706 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8707 END IF;
8708 end if;
8709
8710 -- End Suyog Payment Changes
8711
8712 END IF;
8713
8714 END LOOP; -- payment loop
8715
8716 -- fix for bug 4483808 , moved validation after the row has been updated
8717 aso_validate_pvt.Validate_po_line_number
8718 (
8719 p_init_msg_list => fnd_api.g_false,
8720 p_qte_header_rec => l_qte_header_rec,
8721 P_Qte_Line_rec => l_Qte_Line_Rec,
8722 x_return_status => x_return_status,
8723 x_msg_count => x_msg_count,
8724 x_msg_data => x_msg_data);
8725
8726 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8727 RAISE FND_API.G_EXC_ERROR;
8728 END IF;
8729
8730 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
8731 aso_debug_pub.add('x_return_status for Validate_po_line_number'|| x_return_status, 1, 'Y');
8732 END IF;
8733
8734
8735 FOR i IN 1..l_line_attribs_ext_Tbl.count LOOP
8736 l_line_attribs_rec := l_line_attribs_ext_tbl(i);
8737 -- l_line_attribs_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
8738 x_line_attribs_ext_tbl(i) := l_line_attribs_rec;
8739
8740 IF l_line_attribs_rec.operation_code = 'CREATE' THEN
8741 -- BC4J Fix
8742 --x_LINE_ATTRIBS_EXT_TBL(i).LINE_ATTRIBUTE_ID := null;
8743
8744 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Insert_Row(
8745 px_LINE_ATTRIBUTE_ID => x_LINE_ATTRIBS_EXT_TBL(i).LINE_ATTRIBUTE_ID,
8746 p_CREATION_DATE => SYSDATE,
8747 p_CREATED_BY => G_USER_ID,
8748 p_LAST_UPDATE_DATE => SYSDATE,
8749 p_LAST_UPDATED_BY => G_USER_ID,
8750 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8751 p_REQUEST_ID => l_LINE_ATTRIBS_rec.REQUEST_ID,
8752 p_PROGRAM_APPLICATION_ID =>l_LINE_ATTRIBS_rec.PROGRAM_APPLICATION_ID,
8753 p_PROGRAM_ID => l_LINE_ATTRIBS_rec.PROGRAM_ID,
8754 p_PROGRAM_UPDATE_DATE => l_LINE_ATTRIBS_rec.PROGRAM_UPDATE_DATE,
8755 p_APPLICATION_ID => l_LINE_ATTRIBS_rec.APPLICATION_ID,
8756 p_STATUS => l_LINE_ATTRIBS_rec.STATUS,
8757 p_QUOTE_HEADER_ID => l_LINE_ATTRIBS_rec.QUOTE_HEADER_ID,
8758 p_QUOTE_LINE_ID => l_LINE_ATTRIBS_rec.QUOTE_LINE_ID,
8759 p_QUOTE_SHIPMENT_ID => l_LINE_ATTRIBS_rec.QUOTE_SHIPMENT_ID,
8760 p_ATTRIBUTE_TYPE_CODE => l_LINE_ATTRIBS_rec.ATTRIBUTE_TYPE_CODE,
8761 p_NAME => l_LINE_ATTRIBS_rec.NAME,
8762 p_VALUE => l_LINE_ATTRIBS_rec.VALUE,
8763 p_VALUE_TYPE => l_LINE_ATTRIBS_rec.VALUE_TYPE,
8764 p_START_DATE_ACTIVE => l_LINE_ATTRIBS_rec.START_DATE_ACTIVE,
8765 p_END_DATE_ACTIVE => l_LINE_ATTRIBS_rec.END_DATE_ACTIVE,
8766 p_OBJECT_VERSION_NUMBER => l_LINE_ATTRIBS_rec.OBJECT_VERSION_NUMBER);
8767
8768 ELSIF l_line_attribs_rec.operation_code = 'UPDATE' THEN
8769 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Update_Row(
8770 p_LINE_ATTRIBUTE_ID => l_LINE_ATTRIBS_REC.LINE_ATTRIBUTE_ID,
8771 p_CREATION_DATE => l_LINE_ATTRIBS_rec.creation_date,
8772 p_CREATED_BY => G_USER_ID,
8773 p_LAST_UPDATE_DATE => SYSDATE,
8774 p_LAST_UPDATED_BY => G_USER_ID,
8775 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8776 p_REQUEST_ID => l_LINE_ATTRIBS_rec.REQUEST_ID,
8777 p_PROGRAM_APPLICATION_ID =>l_LINE_ATTRIBS_rec.PROGRAM_APPLICATION_ID,
8778 p_PROGRAM_ID => l_LINE_ATTRIBS_rec.PROGRAM_ID,
8779 p_PROGRAM_UPDATE_DATE => l_LINE_ATTRIBS_rec.PROGRAM_UPDATE_DATE,
8780 p_APPLICATION_ID => l_LINE_ATTRIBS_rec.APPLICATION_ID,
8781 p_STATUS => l_LINE_ATTRIBS_rec.STATUS,
8782 p_QUOTE_HEADER_ID => l_LINE_ATTRIBS_rec.QUOTE_HEADER_ID,
8783 p_QUOTE_LINE_ID => l_LINE_ATTRIBS_rec.QUOTE_LINE_ID,
8784 p_QUOTE_SHIPMENT_ID => l_LINE_ATTRIBS_rec.QUOTE_SHIPMENT_ID,
8785 p_ATTRIBUTE_TYPE_CODE => l_LINE_ATTRIBS_rec.ATTRIBUTE_TYPE_CODE,
8786 p_NAME => l_LINE_ATTRIBS_rec.NAME,
8787 p_VALUE => l_LINE_ATTRIBS_rec.VALUE,
8788 p_VALUE_TYPE => l_LINE_ATTRIBS_rec.VALUE_TYPE,
8789 p_START_DATE_ACTIVE => l_LINE_ATTRIBS_rec.START_DATE_ACTIVE,
8790 p_END_DATE_ACTIVE => l_LINE_ATTRIBS_rec.END_DATE_ACTIVE,
8791 p_OBJECT_VERSION_NUMBER => l_LINE_ATTRIBS_rec.OBJECT_VERSION_NUMBER);
8792
8793 ELSIF l_line_attribs_rec.operation_code = 'DELETE' THEN
8794 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.delete_Row(
8795 p_LINE_ATTRIB_ID => l_LINE_ATTRIBS_rec.LINE_ATTRIBUTE_ID);
8796 END IF;
8797 END LOOP; -- line attribs
8798
8799
8800 --set the ship partial flag
8801
8802 OPEN C_ship_partial(l_Qte_Line_Rec.quote_line_id);
8803 FETCH C_ship_partial INTO l_ship_count;
8804 CLOSE C_ship_partial;
8805
8806 IF l_ship_count > 1 THEN
8807
8808 update aso_quote_lines_all
8809 set split_shipment_flag = 'T',
8810 last_update_date = sysdate,
8811 last_updated_by = fnd_global.user_id,
8812 last_update_login = fnd_global.conc_login_id
8813 where quote_line_id = l_Qte_Line_Rec.quote_line_id;
8814
8815 ELSIF l_ship_count = 1 THEN
8816
8817 update aso_quote_lines_all
8818 set split_shipment_flag = 'F',
8819 last_update_date = sysdate,
8820 last_updated_by = fnd_global.user_id,
8821 last_update_login = fnd_global.conc_login_id
8822 where quote_line_id = l_Qte_Line_Rec.quote_line_id;
8823
8824 END IF;
8825
8826
8827
8828 IF l_control_rec.line_pricing_event IS NOT NULL AND
8829 l_control_rec.line_pricing_event <> FND_API.G_MISS_CHAR THEN
8830
8831 l_pricing_control_rec.pricing_event := l_control_rec.line_pricing_event;
8832 l_pricing_control_rec.request_type := l_control_rec.pricing_request_type;
8833 l_pricing_control_rec.price_mode := l_control_rec.price_mode;
8834
8835 x_qte_line_rec.quote_line_id := l_qte_line_rec.quote_line_id;
8836 l_qte_line_tbl(1) := l_Qte_Line_Rec;
8837
8838 --New Code to call overload pricing_order
8839
8840 l_hd_price_attr_tbl := aso_utility_pvt.query_price_attr_rows(l_qte_header_rec.quote_header_id,null);
8841 l_hd_shipment_tbl := aso_utility_pvt.query_shipment_rows(l_qte_header_rec.quote_header_id,null);
8842
8843 if l_hd_shipment_tbl.count = 1 then
8844 l_hd_shipment_rec := l_hd_shipment_tbl(1);
8845 end if;
8846
8847
8848 ASO_PRICING_INT.Pricing_Order(
8849 P_Api_Version_Number => 1.0,
8850 P_Init_Msg_List => fnd_api.g_false,
8851 P_Commit => fnd_api.g_false,
8852 p_control_rec => l_pricing_control_rec,
8853 p_qte_header_rec => l_qte_header_rec,
8854 p_hd_shipment_rec => l_hd_shipment_rec,
8855 p_hd_price_attr_tbl => l_hd_price_attr_tbl,
8856 p_qte_line_tbl => l_qte_line_tbl,
8857 --p_line_rltship_tbl => l_line_rltship_tbl,
8858 --p_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
8859 --p_ln_shipment_tbl => ln_shipment_tbl,
8860 --p_ln_price_attr_tbl => l_ln_price_attr_tbl,
8861 x_qte_header_rec => lx_qte_header_rec,
8862 x_qte_line_tbl => lx_qte_line_tbl,
8863 x_qte_line_dtl_tbl => lx_qte_line_dtl_tbl,
8864 x_price_adj_tbl => lx_price_adj_tbl,
8865 x_price_adj_attr_tbl => lx_price_adj_attr_tbl,
8866 x_price_adj_rltship_tbl => lx_price_adj_rltship_tbl,
8867 x_return_status => x_return_status,
8868 x_msg_count => x_msg_count,
8869 x_msg_data => x_msg_data );
8870
8871 if lx_qte_line_tbl.count > 0 then
8872 x_qte_line_rec := lx_qte_line_tbl(1);
8873 end if;
8874
8875 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8876
8877 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
8878 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8879 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
8880 RAISE FND_API.G_EXC_ERROR;
8881 END IF;
8882
8883 END IF;
8884
8885
8886 END IF; -- pricing
8887
8888 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
8889 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8890 END IF;
8891
8892 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8893 aso_debug_pub.add('Update_Quote_line - before calculate_tax_flag ', 1, 'N');
8894 end if;
8895
8896 /*
8897 *
8898 *
8899 IF l_control_rec.CALCULATE_TAX_FLAG = 'Y'THEN
8900 l_tax_control_rec.tax_level := 'SHIPPING';
8901 l_tax_control_rec.update_db := 'Y' ; --FND_API.G_TRUE;
8902
8903 l_calc_tax_detail_rec.quote_header_id := l_Qte_Line_Rec.quote_header_id;
8904 l_calc_tax_detail_rec.quote_line_id := l_Qte_Line_Rec.quote_line_id;
8905
8906 -- added to calc tax based on accounts
8907 OPEN get_cust_acct( l_Qte_Line_Rec.QUOTE_HEADER_ID);
8908 FETCH get_cust_acct into l_cust_acct;
8909 IF get_cust_acct%NOTFOUND THEN
8910 NULL;
8911 END IF;
8912 CLOSE get_cust_acct;
8913
8914 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8915 aso_debug_pub.add('Cust acct'||l_cust_acct , 1, 'Y');
8916 end if;
8917
8918 IF (l_Qte_Line_Rec.invoice_to_party_site_id is not NULL
8919 AND l_Qte_Line_Rec.invoice_to_party_site_id <> FND_API.G_MISS_NUM) AND
8920 (l_cust_acct is NOT NULL AND l_cust_acct <> FND_API.G_MISS_NUM) THEN
8921 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8922 aso_debug_pub.add('inside if'||nvl(to_char(l_Qte_Line_Rec.invoice_to_party_site_id),'null'), 1, 'Y' );
8923 end if;
8924
8925 ASO_PARTY_INT.GET_ACCT_SITE_USES (
8926 p_api_version => 1.0
8927 ,P_Cust_Account_Id => l_cust_acct
8928 ,P_Party_Site_Id => l_Qte_Line_Rec.invoice_to_party_site_id
8929 ,P_Acct_Site_type => 'BILL_TO'
8930 ,x_return_status => l_return_status
8931 ,x_msg_count => l_msg_count
8932 ,x_msg_data => l_msg_data
8933 ,x_site_use_id => l_invoice_org_id
8934 );
8935 IF L_Return_Status <> FND_API.G_RET_STS_SUCCESS THEN
8936 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
8937 THEN
8938 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_ID');
8939 FND_MESSAGE.Set_Token('COLUMN', 'INVOICE_TO_SITE_USE_ID',FALSE);
8940 FND_MSG_PUB.ADD;
8941 END IF;
8942 -- raise FND_API.G_EXC_ERROR;
8943 END IF;
8944 END IF;
8945
8946 lx_tax_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows(l_Qte_Line_Rec.quote_header_id,l_Qte_Line_Rec.quote_line_id);
8947
8948 FOR i in 1..lx_tax_shipment_tbl.count LOOP
8949 l_calc_tax_detail_rec.quote_shipment_id := lx_tax_shipment_tbl(i).shipment_id;
8950
8951 IF (lx_tax_shipment_tbl(i).ship_to_party_site_id is not NULL
8952 AND lx_tax_shipment_tbl(i).ship_to_party_site_id <> FND_API.G_MISS_NUM)
8953 AND (l_cust_acct is NOT NULL AND l_cust_acct <> FND_API.G_MISS_NUM)
8954 THEN
8955 ASO_PARTY_INT.GET_ACCT_SITE_USES (
8956 p_api_version => 1.0
8957 ,P_Cust_Account_Id => l_cust_acct
8958 ,P_Party_Site_Id => lx_tax_shipment_tbl(i).ship_to_party_site_id
8959 ,P_Acct_Site_type => 'SHIP_TO'
8960 ,x_return_status => l_return_status
8961 ,x_msg_count => l_msg_count
8962 ,x_msg_data => l_msg_data
8963 ,x_site_use_id => l_ship_org_id
8964 );
8965
8966 IF L_Return_Status <> FND_API.G_RET_STS_SUCCESS THEN
8967 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
8968 THEN
8969 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_ID');
8970 FND_MESSAGE.Set_Token('COLUMN', 'INVOICE_TO_SITE_USE_ID',FALSE);
8971 FND_MSG_PUB.ADD;
8972 END IF;
8973 -- raise FND_API.G_EXC_ERROR;
8974 END IF;
8975
8976 END IF;
8977 ASO_TAX_INT.Calculate_Tax(
8978 P_Api_Version_Number => 1.0,
8979 p_quote_header_id => l_Qte_Line_Rec.quote_header_id,
8980 P_Tax_Control_Rec => l_tax_control_rec,
8981 x_tax_amount => x_tax_amount ,
8982 x_tax_detail_tbl => l_tax_detail_tbl,
8983 X_Return_Status => x_return_status ,
8984 X_Msg_Count => x_msg_count ,
8985 X_Msg_Data => x_msg_data );
8986
8987 if l_tax_detail_tbl.count > 0 then
8988 x_tax_detail_tbl(i) := l_tax_detail_tbl(1);
8989 end if;
8990
8991 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8992 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8993 FND_MESSAGE.Set_Name('ASO', 'ASO_TAX_CALCULATION');
8994 FND_MSG_PUB.ADD;
8995 END IF;
8996 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
8997 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8998 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
8999 RAISE FND_API.G_EXC_ERROR;
9000 END IF;
9001 END IF;
9002 END LOOP;
9003
9004 END IF;
9005
9006 *
9007 */
9008 -- check the profile option for reservation and create reservation if needed
9009
9010 IF FND_PROFILE.Value('ASO_RESERVATION_LEVEL') = 'AUTO_CART' THEN
9011 l_shipment_tbl := x_shipment_tbl;
9012
9013 FOR i in 1..l_shipment_tbl.count LOOP
9014
9015 -- shipment quantity should be changed
9016 IF l_shipment_tbl(i).quantity is not NULL AND
9017 l_shipment_tbl(i).quantity <> FND_API.G_MISS_NUM THEN
9018
9019 SELECT reservation_id INTO l_shipment_tbl(i).reservation_id
9020 FROM ASO_SHIPMENTS
9021 WHERE shipment_id = l_shipment_tbl(i).shipment_id;
9022
9023 ASO_RESERVATION_INT.Update_reservation(
9024 P_Api_Version_Number => 1.0,
9025 p_line_rec => x_qte_line_rec,
9026 p_shipment_rec => l_shipment_tbl(i),
9027 X_Return_Status => x_return_status,
9028 X_Msg_Count => x_msg_count,
9029 X_Msg_Data => x_msg_data
9030 );
9031
9032 UPDATE ASO_SHIPMENTS
9033 SET reservation_id = l_shipment_tbl(i).reservation_id,
9034 reserved_quantity = l_shipment_tbl(i).reserved_quantity,
9035 last_update_date = sysdate,
9036 last_updated_by = fnd_global.user_id,
9037 last_update_login = fnd_global.conc_login_id
9038 WHERE shipment_id = l_shipment_tbl(i).shipment_id;
9039
9040 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9041 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9042 FND_MESSAGE.Set_Name('ASO', 'ASO_CREATING_RESERVATION');
9043 FND_MSG_PUB.ADD;
9044 END IF;
9045 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
9046 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9047 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
9048 RAISE FND_API.G_EXC_ERROR;
9049 END IF;
9050 END IF;
9051
9052
9053 END IF; -- quantity change
9054 END LOOP;
9055
9056 END IF; --automatic reservation
9057
9058
9059
9060 IF p_update_header_flag = 'Y' THEN
9061
9062 -- Update Quote total info (do summation to get TOTAL_LIST_PRICE,
9063 -- TOTAL_ADJUSTED_AMOUNT, TOTAL_TAX, TOTAL_SHIPPING_CHARGE, SURCHARGE,
9064 -- TOTAL_QUOTE_PRICE, PAYMENT_AMOUNT)
9065 -- IF calculate_tax_flag = 'N', not summation on line level tax,
9066 -- just take the value of p_qte_rec.total_tax as the total_tax
9067 -- IF calculate_Freight_Charge = 'N', not summation on line level freight charge,
9068 -- just take the value of p_qte_rec.total_freight_charge
9069 -- how can i get the calc_tax_flag and calc_freight_charge_flag ??
9070
9071 ASO_QUOTE_HEADERS_PVT.Update_Quote_Total (
9072 P_Qte_Header_id => l_Qte_Line_Rec.quote_header_id,
9073 P_calculate_tax => l_control_rec.CALCULATE_TAX_FLAG,
9074 P_calculate_freight_charge=> l_control_rec.calculate_freight_charge_flag,
9075 p_control_rec => l_control_rec,
9076 X_Return_Status => l_return_status,
9077 X_Msg_Count => x_msg_count,
9078 X_Msg_Data => x_msg_data);
9079
9080 IF l_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9081 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9082 FND_MESSAGE.Set_Name('ASO', 'ASO_UPDATE_QUOTE_TOTAL');
9083 -- FND_MESSAGE.Set_Token('LINE' , x_qte_line_rec.line_number, FALSE);
9084 FND_MSG_PUB.ADD;
9085 END IF;
9086 END IF;
9087
9088 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
9089 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9090 -- ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH, 'Private API: '|| l_api_name || 'error in updating header');
9091 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9092 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
9093 x_return_status := FND_API.G_RET_STS_ERROR;
9094 END IF;
9095
9096
9097 END IF;
9098
9099 -- Change START
9100 -- Release 12 TAP Changes
9101 -- Girish Sachdeva 8/30/2005
9102 -- Adding the call to insert record in the ASO_CHANGED_QUOTES
9103
9104 SELECT quote_number
9105 INTO l_quote_number
9106 FROM aso_quote_headers_all -- bug 8968033
9107 WHERE quote_header_id = l_Qte_Line_Rec.quote_header_id;
9108
9109 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9110 aso_debug_pub.add('ASO_QUOTE_LINES_PVT.update_quote_line : Calling ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES, quote number : ' || l_quote_number, 1, 'Y');
9111 END IF;
9112
9113 -- Call to insert record in ASO_CHANGED_QUOTES
9114 ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES(l_quote_number);
9115
9116 -- Change END
9117
9118
9119 IF FND_API.to_Boolean( p_commit )
9120 THEN
9121 COMMIT WORK;
9122 END IF;
9123
9124
9125
9126 -- Standard call to get message count and if count is 1, get message info.
9127 FND_MSG_PUB.Count_And_Get
9128 ( p_count => x_msg_count,
9129 p_data => x_msg_data
9130 );
9131
9132 EXCEPTION
9133 WHEN FND_API.G_EXC_ERROR THEN
9134 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
9135 P_API_NAME => L_API_NAME
9136 ,P_PKG_NAME => G_PKG_NAME
9137 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
9138 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
9139 ,P_SQLCODE => SQLCODE
9140 ,P_SQLERRM => SQLERRM
9141 ,X_MSG_COUNT => X_MSG_COUNT
9142 ,X_MSG_DATA => X_MSG_DATA
9143 ,X_RETURN_STATUS => X_RETURN_STATUS);
9144
9145 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
9146 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
9147 P_API_NAME => L_API_NAME
9148 ,P_PKG_NAME => G_PKG_NAME
9149 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
9150 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
9151 ,P_SQLCODE => SQLCODE
9152 ,P_SQLERRM => SQLERRM
9153 ,X_MSG_COUNT => X_MSG_COUNT
9154 ,X_MSG_DATA => X_MSG_DATA
9155 ,X_RETURN_STATUS => X_RETURN_STATUS);
9156
9157 WHEN OTHERS THEN
9158 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
9159 P_API_NAME => L_API_NAME
9160 ,P_PKG_NAME => G_PKG_NAME
9161 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
9162 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
9163 ,P_SQLCODE => SQLCODE
9164 ,P_SQLERRM => SQLERRM
9165 ,X_MSG_COUNT => X_MSG_COUNT
9166 ,X_MSG_DATA => X_MSG_DATA
9167 ,X_RETURN_STATUS => X_RETURN_STATUS);
9168
9169
9170 End Update_quote_line;
9171
9172
9173 -- *******************************************************
9174 -- Start of Comments
9175 -- *******************************************************
9176 -- API Name: Delete_Quote_Line
9177 -- Type : Public
9178 -- Pre-Req :
9179 -- Parameters:
9180 -- IN
9181 -- p_api_version_number IN NUMBER Required
9182 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
9183 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
9184 -- p_identity_salesforce_id IN NUMBER Optional Default = NULL
9185 -- P_qte_line_Rec IN qte_line_Rec_Type Required
9186 -- P_quote_header_id IN NUMBER Required
9187 -- P_header_last_update_date IN DATE Required
9188 --
9189 -- OUT:
9190 -- x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
9191 -- x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
9192 -- x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
9193 -- Version : Current version 2.0
9194 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
9195 -- and basic operation, developer must manually add parameters and business logic as necessary.
9196 --
9197 -- End of Comments
9198 --
9199 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
9200 -- The Master delete procedure may not be needed depends on different business requirements.
9201
9202 PROCEDURE Delete_Quote_Line(
9203 P_Api_Version_Number IN NUMBER,
9204 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
9205 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
9206 P_qte_line_Rec IN ASO_QUOTE_PUB.qte_line_Rec_Type,
9207 P_Control_REC IN ASO_QUOTE_PUB.Control_Rec_Type
9208 := ASO_QUOTE_PUB.G_MISS_Control_Rec,
9209 P_Update_Header_Flag IN VARCHAR2 := 'Y',
9210 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
9211 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
9212 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
9213 )
9214 IS
9215 Cursor C_Get_quote(c_QUOTE_LINE_ID Number) IS
9216 Select head.LAST_UPDATE_DATE, head.QUOTE_STATUS_ID, head.QUOTE_NUMBER,
9217 head.TOTAL_ADJUSTED_PERCENT, head.quote_header_id
9218 From ASO_QUOTE_HEADERS_ALL head,
9219 ASO_QUOTE_LINES_ALL line
9220 Where head.QUOTE_HEADER_ID = line.QUOTE_HEADER_ID
9221 And line.QUOTE_LINE_ID = c_QUOTE_LINE_ID;
9222
9223 CURSOR C_Qte_Status(c_qte_status_id NUMBER) IS
9224 SELECT UPDATE_ALLOWED_FLAG, AUTO_VERSION_FLAG FROM ASO_QUOTE_STATUSES_B
9225 WHERE quote_status_id = c_qte_status_id;
9226
9227 CURSOR C_Qte_Version (X_qte_number NUMBER) IS
9228 SELECT max(quote_version)
9229 FROM ASO_QUOTE_HEADERS_ALL
9230 WHERE quote_number = X_qte_number;
9231
9232 CURSOR C_Shipment IS
9233 SELECT shipment_id, reservation_id
9234 FROM aso_shipments
9235 WHERE quote_line_id = p_qte_line_rec.quote_line_id;
9236
9237 CURSOR C_Inst_Details(shipment_id NUMBER) IS
9238 SELECT line_inst_detail_id
9239 FROM cs_line_inst_details
9240 WHERE quote_line_shipment_id = shipment_id;
9241
9242 -- hyang csi change 1935614
9243 cursor c_csi_details is
9244 select transaction_line_id
9245 from csi_t_transaction_lines
9246 where source_transaction_id = p_qte_line_rec.quote_line_id
9247 and source_transaction_table = 'ASO_QUOTE_LINES_ALL';
9248
9249 CURSOR C_config IS
9250 SELECT qln.item_type_code, dtl.config_header_id, dtl.config_revision_num, dtl.ref_type_code
9251 FROM aso_quote_lines_all qln, aso_quote_line_details dtl
9252 WHERE qln.quote_line_id = p_qte_line_rec.quote_line_id
9253 AND qln.quote_line_id = dtl.quote_line_id;
9254
9255 CURSOR C_Children(l_quote_line_id NUMBER) IS
9256 SELECT quote_line_id
9257 FROM aso_quote_line_details
9258 WHERE ref_line_id = l_quote_line_id
9259 AND ref_type_code = 'TOP_MODEL';
9260
9261 cursor c_pricing_line_type_indicator is
9262 select pricing_line_type_indicator
9263 from aso_quote_lines_all
9264 where quote_line_id = P_qte_line_Rec.quote_line_id;
9265
9266 cursor c_prg_lines is
9267 select modifier_line_type_code
9268 from aso_price_adjustments
9269 where quote_line_id = p_qte_line_rec.quote_line_id
9270 and modifier_line_type_code = G_PROMO_GOODS_DISCOUNT;
9271
9272 cursor c_free_lines is
9273 select a.quote_line_id
9274 from aso_price_adjustments a, aso_price_adj_relationships b
9275 where a.price_adjustment_id = b.rltd_price_adj_id
9276 and b.quote_line_id = p_qte_line_rec.quote_line_id
9277 and a.quote_line_id <> p_qte_line_rec.quote_line_id;
9278
9279 cursor get_qte_nbr(qte_hdr_id number) is
9280 SELECT quote_number
9281 FROM aso_quote_headers_all -- bug 8968033
9282 WHERE quote_header_id = qte_hdr_id;
9283
9284 l_api_name CONSTANT VARCHAR2(30) := 'Delete_quote_line';
9285 l_api_version_number CONSTANT NUMBER := 1.0;
9286
9287 l_last_update_date DATE;
9288 l_quote_line_detail_id NUMBER;
9289 l_shipment_rec ASO_QUOTE_PUB.shipment_rec_type;
9290 l_Return_Status VARCHAR2(50);
9291 l_Msg_Count NUMBER;
9292 l_Msg_Data VARCHAR2(240);
9293 l_line_rltship_rec ASO_quote_PUB.LINE_RLTSHIP_Rec_Type
9294 := ASO_quote_PUB.G_MISS_LINE_RLTSHIP_Rec;
9295 l_price_adj_rltship_rec ASO_QUOTE_PUB.PRICE_ADJ_RLTSHIP_Rec_Type ;
9296 l_hd_discount_percent NUMBER;
9297 l_qte_status_id NUMBER;
9298 l_update_allowed VARCHAR2(1);
9299 l_auto_version VARCHAR2(1);
9300 l_quote_number NUMBER;
9301 l_old_header_rec ASO_QUOTE_PUB.qte_header_rec_type;
9302 l_qte_header_rec ASO_QUOTE_PUB.qte_header_rec_type;
9303 l_quote_version NUMBER;
9304 x_quote_header_id NUMBER;
9305 l_quote_header_id NUMBER;
9306 l_line_inst_dtl_id NUMBER;
9307 l_item_type VARCHAR2(50);
9308 l_config_id NUMBER;
9309 l_rev_num NUMBER;
9310 l_ref_type_code VARCHAR2(30);
9311 l_qte_line_rec ASO_QUOTE_PUB.Qte_line_Rec_Type
9312 := ASO_QUOTE_PUB.G_MISS_Qte_Line_rec;
9313
9314 l_copy_quote_control_rec aso_copy_quote_pub.copy_quote_control_rec_type;
9315 l_copy_quote_header_rec aso_copy_quote_pub.copy_quote_header_rec_type;
9316 l_qte_nbr number;
9317 l_pricing_line_type_indicator varchar2(3);
9318
9319 adj_id_tbl number_tbl_type;
9320 l_modifier_line_type_code varchar2(30);
9321 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
9322 l_payment_rec aso_quote_pub.payment_rec_type;
9323 l_qte_number NUMBER ;
9324 BEGIN
9325 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9326 aso_debug_pub.add('Delete_Quote_lines - Begin ', 1, 'Y');
9327 aso_debug_pub.add('Delete_Quote_Line: P_qte_line_Rec.quote_line_id: '||P_qte_line_Rec.quote_line_id);
9328 aso_debug_pub.add('Delete_Quote_Line: P_Update_Header_Flag: '||P_Update_Header_Flag);
9329 end if;
9330
9331 -- Standard Start of API savepoint
9332 SAVEPOINT DELETE_quote_line_PVT;
9333
9334 -- Standard call to check for call compatibility.
9335 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
9336 p_api_version_number,
9337 l_api_name,
9338 G_PKG_NAME)
9339 THEN
9340 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9341 END IF;
9342
9343
9344 -- Initialize message list if p_init_msg_list is set to TRUE.
9345 IF FND_API.to_Boolean( p_init_msg_list ) THEN
9346 FND_MSG_PUB.initialize;
9347 END IF;
9348
9349
9350 -- Initialize API return status to SUCCESS
9351 x_return_status := FND_API.G_RET_STS_SUCCESS;
9352
9353 --
9354 -- Api body
9355 --
9356 -- ******************************************************************
9357 -- Validate Environment
9358 -- ******************************************************************
9359 IF FND_GLOBAL.User_Id IS NULL THEN
9360 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9361 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
9362 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
9363 FND_MSG_PUB.ADD;
9364 END IF;
9365 RAISE FND_API.G_EXC_ERROR;
9366 END IF;
9367
9368 open c_pricing_line_type_indicator;
9369 fetch c_pricing_line_type_indicator into l_pricing_line_type_indicator;
9370 close c_pricing_line_type_indicator;
9371
9372 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9373 aso_debug_pub.add('l_pricing_line_type_indicator: '|| l_pricing_line_type_indicator);
9374 end if;
9375
9376 IF (p_update_header_flag = 'Y') THEN
9377
9378 Open C_Get_quote( p_qte_line_rec.QUOTE_LINE_ID);
9379 Fetch C_Get_quote into l_LAST_UPDATE_DATE, l_qte_status_id,
9380 l_quote_number, l_hd_discount_percent,
9381 l_quote_header_id;
9382 If ( C_Get_quote%NOTFOUND) Then
9383 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9384 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_UPDATE_TARGET');
9385 FND_MESSAGE.Set_Token ('INFO', 'quote', FALSE);
9386 FND_MSG_PUB.Add;
9387 END IF;
9388 raise FND_API.G_EXC_ERROR;
9389 END IF; -- update header flag
9390 Close C_Get_quote;
9391
9392
9393 If (l_last_update_date is NULL or
9394 l_last_update_date = FND_API.G_MISS_Date ) Then
9395 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9396 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_ID');
9397 FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
9398 FND_MSG_PUB.ADD;
9399 END IF;
9400 raise FND_API.G_EXC_ERROR;
9401 End if;
9402
9403
9404 -- Check Whether record has been changed by someone else
9405 If l_last_update_date <> p_control_rec.last_update_date Then
9406 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9407 FND_MESSAGE.Set_Name('ASO', 'API_RECORD_CHANGED');
9408 FND_MESSAGE.Set_Token('INFO', 'quote', FALSE);
9409 FND_MSG_PUB.ADD;
9410 END IF;
9411 raise FND_API.G_EXC_ERROR;
9412 End if;
9413
9414 Open c_qte_status (l_qte_status_id);
9415 Fetch C_qte_status into l_update_allowed, l_auto_version;
9416 Close c_qte_status;
9417
9418
9419 IF p_control_rec.auto_version_flag = FND_API.G_TRUE AND NVL(l_auto_version,'Y') = 'Y' THEN
9420
9421 OPEN C_Qte_Version(l_quote_number);
9422 FETCH C_Qte_Version into l_quote_version;
9423 l_quote_version := nvl(l_quote_version, 0) + 1;
9424 CLOSE C_Qte_Version;
9425
9426 ELSE
9427
9428 l_auto_version := 'N';
9429
9430 END IF;
9431
9432 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9433 aso_debug_pub.add('Delete_Quote_Line: l_auto_version: '|| l_auto_version);
9434 end if;
9435
9436
9437 IF l_auto_version = 'Y' THEN
9438
9439 l_old_header_rec := aso_utility_pvt.Query_Header_Row(p_qte_line_rec.QUOTE_HEADER_ID);
9440
9441 IF l_quote_header_id IS NULL OR l_quote_header_id = FND_API.G_MISS_NUM THEN
9442
9443 open c_get_quote( p_qte_line_rec.quote_line_id);
9444 fetch c_get_quote into l_last_update_date, l_qte_status_id,
9445 l_quote_number, l_hd_discount_percent,
9446 l_quote_header_id;
9447 close c_get_quote;
9448
9449
9450 END IF; -- l_quote_header is null
9451
9452 l_copy_quote_control_rec.new_version := fnd_api.g_true;
9453 l_copy_quote_header_rec.quote_header_id := l_old_header_rec.quote_header_id;
9454
9455 aso_copy_quote_pvt.copy_quote( P_Api_Version_Number => 1.0,
9456 P_Init_Msg_List => FND_API.G_FALSE,
9457 P_Commit => FND_API.G_FALSE,
9458 P_Copy_Quote_Header_Rec => l_copy_quote_header_rec,
9459 P_Copy_Quote_Control_Rec => l_copy_quote_control_rec,
9460 X_Qte_Header_Id => x_quote_header_id,
9461 X_Qte_Number => l_qte_nbr,
9462 X_Return_Status => l_return_status,
9463 X_Msg_Count => x_msg_count,
9464 X_Msg_Data => x_msg_data
9465 );
9466
9467 if aso_debug_pub.g_debug_flag = 'Y' THEN
9468 aso_debug_pub.add('Delete_Quote_Line: After call to aso_copy_quote_pvt.copy_quote');
9469 aso_debug_pub.add('After copy_quote l_return_status: ' || l_return_status);
9470 aso_debug_pub.add('After copy_quote x_quote_header_id: ' || x_quote_header_id);
9471 aso_debug_pub.add('After copy_quote l_qte_nbr: ' || l_qte_nbr);
9472 end if;
9473
9474 update aso_quote_headers_all
9475 set quote_version = l_quote_version + 1,
9476 max_version_flag = 'Y',
9477 last_update_date = sysdate,
9478 last_updated_by = fnd_global.user_id,
9479 last_update_login = fnd_global.conc_login_id
9480 where quote_header_id = p_qte_line_rec.quote_header_id;
9481
9482 update aso_quote_headers_all
9483 set max_version_flag = 'N',
9484 quote_version = l_old_header_rec.quote_version,
9485 last_update_date = sysdate,
9486 last_updated_by = fnd_global.user_id,
9487 last_update_login = fnd_global.conc_login_id
9488 where quote_header_id = x_quote_header_id;
9489
9490 update aso_quote_headers_all
9491 set quote_version = l_quote_version,
9492 last_update_date = sysdate,
9493 last_updated_by = fnd_global.user_id,
9494 last_update_login = fnd_global.conc_login_id
9495 where quote_header_id = p_qte_line_rec.quote_header_id;
9496
9497 END IF;
9498
9499
9500 END IF;
9501
9502 --Code for PRG line deletion 05/01/2003
9503
9504 if nvl(l_pricing_line_type_indicator,'XXX') = 'F' then
9505
9506 begin
9507
9508 --Get the free lines and update it
9509
9510 select rel.rltd_price_adj_id
9511 BULK COLLECT INTO
9512 adj_id_tbl
9513 from aso_price_adj_relationships rel,
9514 aso_price_adjustments adj
9515 where rel.price_adjustment_id = adj.price_adjustment_id
9516 and adj.modifier_line_type_code = G_PROMO_GOODS_DISCOUNT
9517 and rel.price_adjustment_id in (select a.price_adjustment_id
9518 from aso_price_adj_relationships a,
9519 aso_price_adjustments b
9520 where a.rltd_price_adj_id = b.price_adjustment_id
9521 and b.quote_line_id = p_qte_line_rec.quote_line_id);
9522
9523 if aso_debug_pub.g_debug_flag = 'Y' THEN
9524 aso_debug_pub.add('No. of free adjustment lines selected is sql%rowcount: '||sql%rowcount);
9525 end if;
9526
9527 if aso_debug_pub.g_debug_flag = 'Y' THEN
9528
9529 if adj_id_tbl.count > 0 then
9530
9531 for i in adj_id_tbl.FIRST..adj_id_tbl.LAST loop
9532 aso_debug_pub.add('adj_id_tbl('||i||'): ' || adj_id_tbl(i));
9533 end loop;
9534
9535 end if;
9536
9537 end if;
9538
9539 if adj_id_tbl.count > 0 then
9540
9541 FORALL i IN adj_id_tbl.FIRST..adj_id_tbl.LAST
9542
9543 UPDATE aso_price_adjustments
9544 SET updated_flag = 'Y'
9545 WHERE price_adjustment_id = adj_id_tbl(i)
9546 AND modifier_line_type_code = G_DISCOUNT;
9547
9548 if aso_debug_pub.g_debug_flag = 'Y' THEN
9549 aso_debug_pub.add('No of adjustment lines updated is sql%rowcount: '||sql%rowcount);
9550 end if;
9551
9552 end if;
9553
9554 --Get the PRG lines and update it
9555
9556 select a.price_adjustment_id
9557 BULK COLLECT INTO
9558 adj_id_tbl
9559 from aso_price_adj_relationships a, aso_price_adjustments b
9560 where a.rltd_price_adj_id = b.price_adjustment_id
9561 and b.quote_line_id = p_qte_line_rec.quote_line_id;
9562
9563 if aso_debug_pub.g_debug_flag = 'Y' THEN
9564 aso_debug_pub.add('No. of PRG adjustment lines selected is sql%rowcount: '||sql%rowcount);
9565 end if;
9566
9567 if aso_debug_pub.g_debug_flag = 'Y' THEN
9568
9569 if adj_id_tbl.count > 0 then
9570
9571 for i in adj_id_tbl.FIRST..adj_id_tbl.LAST loop
9572 aso_debug_pub.add('adj_id_tbl('||i||'): ' || adj_id_tbl(i));
9573 end loop;
9574
9575 end if;
9576
9577 end if;
9578
9579 if adj_id_tbl.count> 0 then
9580
9581 FORALL i IN adj_id_tbl.FIRST..adj_id_tbl.LAST
9582
9583 UPDATE aso_price_adjustments
9584 SET updated_flag = 'Y'
9585 WHERE price_adjustment_id = adj_id_tbl(i)
9586 AND modifier_line_type_code = G_PROMO_GOODS_DISCOUNT;
9587
9588 if aso_debug_pub.g_debug_flag = 'Y' THEN
9589 aso_debug_pub.add('No of PRG adjustment lines updated is sql%rowcount: '||sql%rowcount);
9590 end if;
9591
9592 end if;
9593
9594 exception
9595
9596 when others then
9597
9598 if aso_debug_pub.g_debug_flag = 'Y' THEN
9599 aso_debug_pub.add('Delete_Quote_Line: Updation of updated_flag column in aso_price_adjustments table failed.');
9600 end if;
9601
9602 end;
9603
9604 end if;
9605
9606 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9607 aso_debug_pub.add('After updation of updated_flag column in aso_price_adjustments table.', 1, 'Y');
9608 end if;
9609
9610 --Changes for deleting PRG lines
9611 open c_prg_lines;
9612 fetch c_prg_lines into l_modifier_line_type_code;
9613
9614 if c_prg_lines%found then
9615
9616 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9617 aso_debug_pub.add('before deleting the PRG lines', 1, 'Y');
9618 end if;
9619
9620 for row in c_free_lines loop
9621
9622 l_qte_line_rec := aso_quote_pub.g_miss_qte_line_rec;
9623 l_qte_line_rec.quote_line_id := row.quote_line_id;
9624
9625 aso_quote_lines_pvt.delete_quote_line(
9626 P_Api_Version_Number => 1.0,
9627 p_control_rec => p_control_rec,
9628 p_update_header_flag => fnd_api.g_false,
9629 P_qte_Line_Rec => l_qte_line_rec,
9630 X_Return_Status => x_return_status,
9631 X_Msg_Count => x_msg_count,
9632 X_Msg_Data => x_msg_data);
9633
9634 if x_return_status <> fnd_api.g_ret_sts_success then
9635 raise fnd_api.g_exc_error;
9636 end if;
9637
9638 end loop;
9639
9640 end if;
9641
9642 close c_prg_lines;
9643
9644 -- Invoke table handler(ASO_QUOTE_HEADERS_PKG.Delete_Row)
9645 -- these tables may or may not have any rows
9646 -- ideally exception should be handled by the table handler
9647
9648
9649 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9650 aso_debug_pub.add('before deleting the quote line attributes.', 1, 'Y');
9651 end if;
9652
9653 -- delete quote line attributes
9654 BEGIN
9655 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Delete_Row(
9656 p_QUOTE_LINE_ID => p_qte_line_rec.quote_line_id);
9657 EXCEPTION
9658 WHEN NO_DATA_FOUND THEN
9659 null;
9660 END;
9661
9662 -- delete price attributes
9663 BEGIN
9664 ASO_PRICE_ATTRIBUTES_PKG.Delete_Row(
9665 p_QUOTE_LINE_ID => p_qte_line_rec.quote_line_id);
9666 EXCEPTION
9667 WHEN NO_DATA_FOUND THEN
9668 null;
9669 END;
9670
9671 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9672 aso_debug_pub.add('before deleting the quote line relationships.', 1, 'Y');
9673 end if;
9674
9675 -- delete line relationships
9676
9677 l_line_rltship_rec.quote_line_id := p_qte_line_rec.quote_line_id;
9678 ASO_LINE_RLTSHIP_PVT.Delete_line_rltship(
9679 P_Api_Version_Number => 1.0,
9680 p_control_rec => p_control_rec,
9681 P_LINE_RLTSHIP_Rec => l_line_rltship_rec,
9682 X_Return_Status => x_return_status,
9683 X_Msg_Count => x_msg_count,
9684 X_Msg_Data => x_msg_data);
9685
9686 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9687 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9688 FND_MESSAGE.Set_Name('ASO', 'ASO_DELETE');
9689 FND_MESSAGE.Set_Token('OBJECT','LINE_RLTSHIP',FALSE);
9690 FND_MSG_PUB.ADD;
9691 END IF;
9692 RAISE FND_API.G_EXC_ERROR;
9693 END IF;
9694
9695
9696 -- delete price adjustment relationships
9697
9698 l_price_adj_rltship_rec.quote_line_id := p_qte_line_rec.quote_line_id;
9699 ASO_PRICE_ADJ_RLTSHIP_PVT.Delete_Price_Adj_Rltship(
9700 P_Api_Version_Number => 1.0,
9701 P_PRICE_ADJ_RLTSHIP_Rec => l_price_adj_rltship_rec,
9702 X_Return_Status => x_return_status,
9703 X_Msg_Count => x_msg_count,
9704 X_Msg_Data => x_msg_data);
9705
9706 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9707 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9708 FND_MESSAGE.Set_Name('ASO', 'ASO_DELETE');
9709 FND_MESSAGE.Set_Token('OBJECT','PRICE_ADJ_RLTSHIP',FALSE);
9710 FND_MSG_PUB.ADD;
9711 END IF;
9712 RAISE FND_API.G_EXC_ERROR;
9713 END IF;
9714
9715 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9716 aso_debug_pub.add('before deleting the quote line price adjustments.', 1, 'Y');
9717 end if;
9718
9719 -- delete price adjustments
9720 -- this should once again delete price adj relationships
9721 BEGIN
9722 ASO_PRICE_ADJUSTMENTS_PKG.Delete_Row(
9723 p_LINE_ID => p_qte_line_rec.quote_line_id,
9724 p_TYPE_CODE => 'QUOTE_LINE');
9725 EXCEPTION
9726 WHEN NO_DATA_FOUND THEN
9727 null;
9728 END;
9729
9730 -- delete payments
9731 BEGIN
9732
9733 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9734 aso_debug_pub.add('Delete_Quote_Line: Before call to delete_payment_row ', 1, 'Y');
9735 END IF;
9736
9737 l_payment_tbl := aso_utility_pvt.Query_Payment_Rows(p_qte_line_rec.quote_header_id,p_qte_line_rec.quote_line_id);
9738
9739 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9740 aso_debug_pub.add('Delete_Quote_Line: l_payment_tbl.count: '|| l_payment_tbl.count, 1, 'Y');
9741 END IF;
9742
9743 if l_payment_tbl.count > 0 then
9744
9745 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9746 aso_debug_pub.add('Delete_Quote_Line: Inside if for payment tbl count > 0 ', 1, 'Y');
9747 END IF;
9748
9749
9750 if l_payment_tbl(1).trxn_extension_id is not null then
9751
9752 l_payment_rec := l_payment_tbl(1);
9753
9754 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9755 aso_debug_pub.add('Delete_Quote_Line: Before call to delete_payment_row', 1, 'Y');
9756 END IF;
9757
9758 aso_payment_int.delete_payment_row(p_payment_rec => l_payment_rec ,
9759 x_return_status => x_return_status,
9760 x_msg_count => x_msg_count,
9761 x_msg_data => x_msg_data);
9762
9763 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9764 aso_debug_pub.add('Delete_Quote_Line: After call to delete_payment_row: x_return_status: '||x_return_status, 1, 'Y');
9765 END IF;
9766 if x_return_status <> fnd_api.g_ret_sts_success then
9767 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
9768 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9769 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
9770 RAISE FND_API.G_EXC_ERROR;
9771 ELSE
9772 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9773 END IF;
9774 end if;
9775
9776 else
9777
9778 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9779 aso_debug_pub.add('Delete_Quote_Line: Before calling table handler to delete payment row', 1, 'Y');
9780 END IF;
9781
9782 aso_payments_pkg.Delete_Row(p_payment_id => l_payment_tbl(1).payment_id);
9783 end if;
9784
9785 end if;
9786
9787 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9788 aso_debug_pub.add('Delete_Quote_Line: After deleting the payment row', 1, 'Y');
9789 END IF;
9790
9791 EXCEPTION
9792 WHEN NO_DATA_FOUND THEN
9793 null;
9794 END;
9795
9796 -- delete freight
9797 BEGIN
9798 ASO_FREIGHT_CHARGES_PKG.delete_Row(
9799 p_QUOTE_LINE_ID => p_qte_line_rec.quote_line_id);
9800 EXCEPTION
9801 WHEN NO_DATA_FOUND THEN
9802 null;
9803 END;
9804
9805 -- delete tax details
9806 BEGIN
9807 ASO_TAX_DETAILS_PKG.Delete_Row(
9808 p_QUOTE_LINE_ID => p_qte_line_rec.quote_line_id);
9809 EXCEPTION
9810 WHEN NO_DATA_FOUND THEN
9811 null;
9812 END;
9813
9814 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9815 aso_debug_pub.add('Delete_Quote_Line: Before deleting the sales credits', 1, 'Y');
9816 END IF;
9817
9818 -- delete salescredits
9819 ASO_SALES_CREDITS_PKG.Delete_row(
9820 p_QUOTE_LINE_ID => p_qte_line_rec.quote_line_id);
9821
9822 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9823 aso_debug_pub.add('Delete_Quote_Line: Before deleting the quote parties', 1, 'Y');
9824 END IF;
9825
9826 -- delete quote parties
9827 ASO_QUOTE_PARTIES_PKG.Delete_row(
9828 p_QUOTE_LINE_ID => p_qte_line_rec.quote_line_id);
9829
9830 -- delete configurations - supported only at model levels
9831 OPEN C_config;
9832 FETCH C_config into l_item_type, l_config_id, l_rev_num, l_ref_type_code;
9833 IF (C_config%NOTFOUND) THEN
9834 null;
9835 END IF;
9836 CLOSE C_config;
9837
9838 IF l_item_type = 'MDL' THEN
9839
9840 IF l_config_id is not NULL THEN
9841
9842 ASO_CFG_INT.DELETE_CONFIGURATION(
9843 P_API_VERSION_NUMBER => 1.0,
9844 P_INIT_MSG_LIST => FND_API.G_FALSE,
9845 P_CONFIG_HDR_ID => l_config_id,
9846 P_CONFIG_REV_NBR => l_rev_num,
9847 X_RETURN_STATUS => x_return_status,
9848 X_MSG_COUNT => x_msg_count,
9849 X_MSG_DATA => x_msg_data);
9850
9851 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9852 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9853 FND_MESSAGE.Set_Name('ASO', 'ASO_DELETE');
9854 FND_MESSAGE.Set_Token('OBJECT', 'CONFIGURATION', FALSE);
9855 FND_MSG_PUB.ADD;
9856 END IF;
9857 RAISE FND_API.G_EXC_ERROR;
9858 END IF;
9859
9860 ELSIF l_ref_type_code = 'TOP_MODEL' THEN
9861
9862 FOR Cur_Children IN C_Children(p_qte_line_rec.quote_line_id) LOOP
9863
9864 l_qte_line_rec.quote_line_id := Cur_Children.quote_line_id;
9865
9866 ASO_QUOTE_LINES_PVT.Delete_Quote_Line(
9867 P_Api_Version_Number => 1.0,
9868 p_control_rec => p_control_rec,
9869 p_update_header_flag => p_update_header_flag,
9870 P_qte_Line_Rec => l_qte_line_rec,
9871 X_Return_Status => x_return_status,
9872 X_Msg_Count => x_msg_count,
9873 X_Msg_Data => x_msg_data);
9874 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9875 RAISE FND_API.G_EXC_ERROR;
9876 END IF;
9877
9878 END LOOP;
9879
9880 END IF; -- config
9881
9882
9883 END IF; -- 'MDL'
9884
9885 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9886 aso_debug_pub.add('Delete_Quote_Line: Before deleting the quote line details', 1, 'Y');
9887 aso_debug_pub.add('p_qte_line_rec.quote_line_id: '|| p_qte_line_rec.quote_line_id);
9888 END IF;
9889
9890 -- delete quote line details
9891 BEGIN
9892 ASO_QUOTE_LINE_DETAILS_PKG.Delete_Row(
9893 p_QUOTE_LINE_ID => p_qte_line_rec.quote_line_id);
9894
9895 EXCEPTION
9896
9897 WHEN NO_DATA_FOUND THEN
9898 null;
9899 END;
9900
9901
9902 -- shipment should exist
9903 -- OPEN C_Shipment;
9904 FOR i in C_Shipment LOOP
9905
9906 l_shipment_rec.shipment_id := i.shipment_id;
9907 l_shipment_rec.reservation_id := i.reservation_id;
9908
9909 -- hyang csi change 1935614
9910 if not (csi_utility_grp.ib_active()) then
9911
9912 FOR j in C_inst_details(l_shipment_rec.shipment_id) LOOP
9913
9914 l_line_inst_dtl_id := j.line_inst_detail_id;
9915
9916 null;
9917
9918 END LOOP;
9919
9920 else
9921
9922 -- new ib module
9923 for j in C_csi_details LOOP
9924
9925 l_line_inst_dtl_id := j.transaction_line_id;
9926
9927 ASO_INSTBASE_INT.Delete_Installation_Detail(
9928 p_api_version_number => 1.0,
9929 p_init_msg_list => FND_API.G_FALSE,
9930 p_commit => FND_API.G_FALSE,
9931 x_return_status => x_return_status,
9932 x_msg_count => x_msg_count,
9933 x_msg_data => x_msg_data,
9934 p_line_inst_dtl_id => l_line_inst_dtl_id
9935 );
9936
9937 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9938 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9939 FND_MESSAGE.Set_Name('ASO', 'ASO_DELETE');
9940 FND_MESSAGE.Set_Token('OBJECT', 'INSTALLATION DETAILS');
9941 FND_MSG_PUB.ADD;
9942 END IF;
9943 RAISE FND_API.G_EXC_ERROR;
9944 END IF;
9945 END LOOP;
9946 END IF;
9947
9948
9949 ASO_SHIPMENT_PVT.Delete_shipment(
9950 P_Api_Version_Number => 1.0,
9951 P_SHIPMENT_Rec => l_shipment_rec,
9952 X_Return_Status => x_return_status,
9953 X_Msg_Count => x_msg_count,
9954 X_Msg_Data => x_msg_data);
9955
9956 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9957 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9958 FND_MESSAGE.Set_Name('ASO', 'ASO_DELETE');
9959 FND_MESSAGE.Set_Token('OBJECT', 'LINE_SHIPMENTS', FALSE);
9960 FND_MSG_PUB.ADD;
9961 END IF;
9962 RAISE FND_API.G_EXC_ERROR;
9963 END IF;
9964
9965 END LOOP;
9966
9967
9968 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9969 aso_debug_pub.add('Delete_Quote_Line: Before deleting the quote line', 1, 'Y');
9970 aso_debug_pub.add('p_qte_line_rec.quote_line_id: '|| p_qte_line_rec.quote_line_id);
9971 END IF;
9972
9973 BEGIN
9974 ASO_QUOTE_LINES_PKG.Delete_Row( p_quote_line_id => p_qte_line_rec.quote_line_id);
9975 EXCEPTION
9976 WHEN no_data_found then
9977 null;
9978 END;
9979
9980
9981 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9982 aso_debug_pub.add('Delete_Quote_Line: After deleting the quote line', 1, 'Y');
9983 END IF;
9984
9985 IF p_update_header_flag = 'Y' THEN
9986
9987 -- Update Quote total info (do summation to get TOTAL_LIST_PRICE,
9988 -- TOTAL_ADJUSTED_AMOUNT, TOTAL_TAX, TOTAL_SHIPPING_CHARGE, SURCHARGE,
9989 -- TOTAL_QUOTE_PRICE, PAYMENT_AMOUNT)
9990 -- IF calculate_tax_flag = 'N', not summation on line level tax,
9991 -- just take the value of p_qte_rec.total_tax as the total_tax
9992 -- IF calculate_Freight_Charge = 'N', not summation on line level freight charge,
9993 -- just take the value of p_qte_rec.total_freight_charge
9994 -- how can i get the calc_tax_flag and calc_freight_charge_flag ??
9995
9996
9997 ASO_QUOTE_HEADERS_PVT.Update_Quote_Total(
9998 P_Qte_Header_id => l_quote_header_id,
9999 P_calculate_tax => p_control_rec.CALCULATE_TAX_FLAG,
10000 P_calculate_freight_charge => p_control_rec.calculate_freight_charge_flag,
10001 p_control_rec => p_control_rec,
10002 X_Return_Status => l_return_status,
10003 X_Msg_Count => x_msg_count,
10004 X_Msg_Data => x_msg_data);
10005
10006 IF l_return_status<>FND_API.G_RET_STS_SUCCESS THEN
10007
10008 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10009 FND_MESSAGE.Set_Name('ASO', 'ASO_UPDATE_QUOTE_TOTAL');
10010 FND_MSG_PUB.ADD;
10011 END IF;
10012
10013 END IF;
10014
10015
10016 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
10017 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
10018 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10019 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
10020 x_return_status := FND_API.G_RET_STS_ERROR;
10021 END IF;
10022
10023
10024 END IF;
10025
10026 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10027 aso_debug_pub.add('Delete_Quote_Line: Before call to Delete_OTA_Line.');
10028 aso_debug_pub.add('p_qte_line_rec.quote_line_id: '|| p_qte_line_rec.quote_line_id);
10029 end if;
10030
10031 ASO_EDUCATION_INT.Delete_OTA_Line(
10032 P_Init_Msg_List => FND_API.G_FALSE,
10033 P_Commit => FND_API.G_FALSE,
10034 P_Qte_Line_Id => p_qte_line_rec.quote_line_id,
10035 X_Return_Status => l_return_status,
10036 X_Msg_Count => x_msg_count,
10037 X_Msg_Data => x_msg_data);
10038
10039 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10040 aso_debug_pub.add('Delete_Quote_Line: After call to Delete_OTA_Line.');
10041 aso_debug_pub.add('Delete_Quote_Line: l_return_status: '|| l_return_status);
10042 end if;
10043
10044 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10045 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
10046 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10047 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
10048 x_return_status := FND_API.G_RET_STS_ERROR;
10049 RAISE FND_API.G_EXC_ERROR;
10050 END IF;
10051
10052 -- Change START
10053 -- Release 12 TAP Changes
10054 -- Girish Sachdeva 8/30/2005
10055 -- Adding the call to insert record in the ASO_CHANGED_QUOTES
10056
10057 IF ((p_qte_line_rec.quote_header_id is not null) and (p_qte_line_rec.quote_header_id <> FND_API.G_MISS_NUM)) THEN
10058
10059 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10060 aso_debug_pub.add('ASO_QUOTE_LINES_PVT.delete_quote_line : Before calling ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES, Quote Header ID :' || p_qte_line_rec.quote_header_id, 1, 'Y');
10061 END IF;
10062
10063 OPEN get_qte_nbr(p_qte_line_rec.quote_header_id);
10064 FETCH get_qte_nbr INTO l_qte_number;
10065 CLOSE get_qte_nbr;
10066
10067 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10068 aso_debug_pub.add('ASO_QUOTE_LINES_PVT.delete_quote_line : Before calling ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES, quote number : ' || l_qte_number, 1, 'Y');
10069 END IF;
10070
10071
10072 -- Call to insert record in ASO_CHANGED_QUOTES
10073 ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES(l_qte_number);
10074
10075 END IF ;
10076
10077 -- Change END
10078
10079 --
10080 -- End of API body
10081 --
10082
10083 -- Standard check for p_commit
10084 IF FND_API.to_Boolean( p_commit ) THEN
10085 COMMIT WORK;
10086 END IF;
10087
10088 -- Standard call to get message count and if count is 1, get message info.
10089 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
10090 p_data => x_msg_data );
10091
10092
10093 EXCEPTION
10094
10095 WHEN FND_API.G_EXC_ERROR THEN
10096 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
10097 P_API_NAME => L_API_NAME
10098 ,P_PKG_NAME => G_PKG_NAME
10099 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
10100 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
10101 ,P_SQLCODE => SQLCODE
10102 ,P_SQLERRM => SQLERRM
10103 ,X_MSG_COUNT => X_MSG_COUNT
10104 ,X_MSG_DATA => X_MSG_DATA
10105 ,X_RETURN_STATUS => X_RETURN_STATUS);
10106
10107 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
10108 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
10109 P_API_NAME => L_API_NAME
10110 ,P_PKG_NAME => G_PKG_NAME
10111 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
10112 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
10113 ,P_SQLCODE => SQLCODE
10114 ,P_SQLERRM => SQLERRM
10115 ,X_MSG_COUNT => X_MSG_COUNT
10116 ,X_MSG_DATA => X_MSG_DATA
10117 ,X_RETURN_STATUS => X_RETURN_STATUS);
10118
10119 WHEN OTHERS THEN
10120 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
10121 P_API_NAME => L_API_NAME
10122 ,P_PKG_NAME => G_PKG_NAME
10123 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
10124 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
10125 ,P_SQLCODE => SQLCODE
10126 ,P_SQLERRM => SQLERRM
10127 ,X_MSG_COUNT => X_MSG_COUNT
10128 ,X_MSG_DATA => X_MSG_DATA
10129 ,X_RETURN_STATUS => X_RETURN_STATUS);
10130
10131 END;
10132
10133
10134
10135
10136 -- *******************************************************
10137 -- Start of Comments
10138 -- *******************************************************
10139 -- API Name: Get_Quote_Lines
10140 -- Type : Public
10141 -- Pre-Req :
10142 -- Parameters:
10143 -- IN
10144 -- p_api_version_number IN NUMBER Required
10145 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
10146 -- p_identity_salesforce_id IN NUMBER Optional Default = NULL
10147 -- P_quote_id IN NUMBER Required
10148 -- p_rec_requested IN NUMBER Optional Default = 30
10149 -- p_start_rec_ptr IN NUMBER Optional Default = 1
10150 --
10151 -- Return Total Records Count Flag. This flag controls whether the total record count
10152 -- and total record amount is returned.
10153 --
10154 -- p_return_tot_count IN VARCHAR2 Optional Default = FND_API.G_FALSE
10155 -- Hint: User defined record type
10156 -- p_order_by_tbl IN AS_UTILITY_PUB.UTIL_ORDER_BY_TBL_TYPE;
10157 --
10158 -- OUT:
10159 -- x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
10160 -- x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
10161 -- x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
10162 -- X_qte_line_Tbl OUT NOCOPY /* file.sql.39 change */ qte_line_Tbl_Type
10163 -- X_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ Payment_Tbl_Type
10164 -- X_Price_Adj_Tbl OUT NOCOPY /* file.sql.39 change */ Price_Adj_Tbl_Type
10165 -- X_Qte_Line_Dtl_Tbl OUT NOCOPY /* file.sql.39 change */ Qte_Line_Dtl_Tbl_Type
10166 -- X_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ Shipment_Tbl_Type
10167 -- X_Tax_Details_Tbl OUT NOCOPY /* file.sql.39 change */ Tax_Details_Tbl_Type
10168 -- X_Freight_Charges_Tbl OUT NOCOPY /* file.sql.39 change */ Freight_Charges_Tbl_Type
10169 -- X_Line_Relationship_Tbl OUT NOCOPY /* file.sql.39 change */ Line_Relationship_Tbl_Type
10170 -- X_Related_Object_Tbl OUT NOCOPY /* file.sql.39 change */ Related_Object_Tbl_Type
10171 -- X_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ Price_Attributes_Tbl_Type
10172 -- X_Price_Adj_Relationship_Tbl OUT NOCOPY /* file.sql.39 change */ Price_Adj_relationship_Tbl_Type
10173 -- x_returned_rec_count OUT NOCOPY /* file.sql.39 change */ NUMBER
10174 -- x_next_rec_ptr OUT NOCOPY /* file.sql.39 change */ NUMBER
10175 -- x_tot_rec_count OUT NOCOPY /* file.sql.39 change */ NUMBER
10176 -- other optional OUT NOCOPY /* file.sql.39 change */ parameters
10177 -- x_tot_rec_amount OUT NOCOPY /* file.sql.39 change */ NUMBER
10178 -- Version : Current version 2.0
10179 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
10180 -- and basic operation, developer must manually add parameters and business logic as necessary.
10181 --
10182 -- End of Comments
10183 --
10184 PROCEDURE Get_Quote_Line(
10185 P_Api_Version_Number IN NUMBER,
10186 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
10187 p_rec_requested IN NUMBER := G_DEFAULT_NUM_REC_FETCH,
10188 p_start_rec_prt IN NUMBER := 1,
10189 p_return_tot_count IN NUMBER := FND_API.G_FALSE,
10190 -- Hint: user defined record type
10191 p_order_by_rec IN ASO_QUOTE_PUB.qte_line_sort_rec_type,
10192 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
10193 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
10194 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
10195 x_returned_rec_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
10196 x_next_rec_ptr OUT NOCOPY /* file.sql.39 change */ NUMBER,
10197 x_tot_rec_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
10198 P_Qte_Line_Rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_qte_line_REC,
10199 P_Control_REC IN ASO_QUOTE_PUB.Control_Rec_Type := ASO_QUOTE_PUB.G_MISS_Control_Rec,
10200 X_Qte_Line_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Rec_Type,
10201 X_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
10202 X_Price_Adj_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
10203 X_Qte_Line_Dtl_rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Dtl_rec_Type,
10204 X_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Tbl_Type,
10205 X_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
10206 X_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type ,
10207 X_Line_Rltship_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Rltship_Tbl_Type,
10208 X_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type ,
10209 X_Price_Adj_rltship_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type,
10210 X_Line_Attribs_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_type
10211 )
10212 IS
10213 BEGIN
10214 null;
10215 END;
10216
10217 Procedure service_item_qty_update
10218 (p_qte_line_rec IN ASO_QUOTE_PUB.QTE_LINE_REC_TYPE,
10219 p_service_item_flag IN VARCHAR2,
10220 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
10221 )IS
10222
10223 CURSOR C_ord_qty(ord_line_id NUMBER) IS
10224 SELECT ordered_quantity
10225 FROM oe_order_lines_All
10226 WHERE line_id = ord_line_id;
10227
10228 CURSOR C_cs_qty(p_instance_id NUMBER) IS
10229 SELECT quantity
10230 FROM CSI_ITEM_INSTANCES
10231 WHERE instance_id = p_instance_id;
10232
10233 CURSOR C_quantity(p_quote_line_id NUMBER) IS
10234 SELECT quantity
10235 FROM aso_quote_lines_all
10236 WHERE quote_line_id = p_quote_line_id;
10237
10238 l_serviceable_product_flag VARCHAR2(1);
10239 l_qte_line_rec ASO_QUOTE_PUB.QTE_LINE_REC_TYPE;
10240 l_org_id NUMBER;
10241 l_inventory_item_id NUMBER;
10242 l_organization_id NUMBER;
10243 l_qte_line_detail_tbl ASO_QUOTE_PUB.QTE_LINE_DTL_TBL_TYPE;
10244 l_quantity NUMBER;
10245 l_update_flag VARCHAR2(1) := FND_API.G_FALSE;
10246
10247 Begin
10248 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10249 aso_debug_pub.add('Procedure Service_item_qty_update Starts.', 1, 'Y');
10250 end if;
10251 x_return_status := FND_API.G_RET_STS_SUCCESS;
10252
10253 IF p_service_item_flag = FND_API.G_FALSE THEN
10254 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10255 aso_debug_pub.add('Service_item_qty_update: Inside IF condition p_service_item_flag = FND_API.G_FALSE', 1, 'N');
10256 end if;
10257
10258 l_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row(p_qte_line_rec.quote_line_id);
10259 begin
10260 UPDATE aso_quote_lines_all
10261 set quantity = l_qte_line_rec.quantity,
10262 last_update_date = sysdate,
10263 last_updated_by = fnd_global.user_id,
10264 last_update_login = fnd_global.conc_login_id
10265 where quote_line_id IN
10266 ( select quote_line_id from aso_quote_line_details
10267 where service_ref_type_code = 'QUOTE' and service_ref_line_id = l_qte_line_rec.quote_line_id );
10268
10269 EXCEPTION
10270 WHEN OTHERS THEN
10271 x_return_status := FND_API.G_RET_STS_ERROR;
10272 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10273 aso_debug_pub.add('Service_item_qty_update:Exception1',1,'N');
10274 end if;
10275 end;
10276 ELSE
10277 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10278 aso_debug_pub.add('Service_item_qty_update:ELSE condition of p_service_item_flag = FND_API.G_FALSE', 1, 'N');
10279 end if;
10280 l_qte_line_detail_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows(p_qte_line_rec.quote_line_id);
10281
10282 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10283 aso_debug_pub.add('Service_item_qty_update: ASO_UTILITY_PVT.Query_Line_Dtl_Rows', 1, 'N');
10284 end if;
10285
10286 FOR i IN 1..l_qte_line_detail_tbl.count LOOP
10287 IF l_qte_line_detail_tbl(i).service_ref_type_code = 'QUOTE' THEN
10288 OPEN C_quantity(l_qte_line_detail_tbl(i).service_ref_line_id);
10289 FETCH C_quantity INTO l_quantity;
10290 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10291 aso_debug_pub.add('Service_item_qty_update: Cursor C_quantity: l_quantity: '||l_quantity, 1, 'N');
10292 end if;
10293 IF C_quantity%NOTFOUND THEN
10294 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10295 aso_debug_pub.add('Service_item_qty_update: Inside cursor C_quantity%NOTFOUND ', 1, 'N');
10296 end if;
10297 x_return_status := FND_API.G_RET_STS_ERROR;
10298 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10299 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SERVICE_REF_LINE');
10300 FND_MESSAGE.Set_Token('CODE', 'QUOTE', FALSE);
10301 FND_MESSAGE.Set_Token('VALUE', l_qte_line_detail_tbl(i).service_ref_line_id, FALSE);
10302 FND_MSG_PUB.ADD;
10303 END IF;
10304 ELSE
10305 l_update_flag := FND_API.G_TRUE;
10306 END IF;
10307 CLOSE C_quantity;
10308 ELSIF l_qte_line_detail_tbl(i).service_ref_type_code = 'ORDER' THEN
10309 OPEN C_ord_qty(l_qte_line_detail_tbl(i).service_ref_line_id);
10310 FETCH C_ord_qty INTO l_quantity;
10311 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10312 aso_debug_pub.add('Service_item_qty_update: Cursor C_ord_qty: l_quantity: '||l_quantity, 1, 'N');
10313 end if;
10314 IF C_ord_qty%NOTFOUND THEN
10315 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10316 aso_debug_pub.add('Service_item_qty_update: Inside cursor C_ord_qty%NOTFOUND condition.', 1, 'N');
10317 end if;
10318 x_return_status := FND_API.G_RET_STS_ERROR;
10319 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10320 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SERVICE_REF_LINE');
10321 FND_MESSAGE.Set_Token('CODE', 'ORDER', FALSE);
10322 FND_MESSAGE.Set_Token('VALUE', l_qte_line_detail_tbl(i).service_ref_line_id, FALSE);
10323 FND_MSG_PUB.ADD;
10324 END IF;
10325 ELSE
10326 l_update_flag := FND_API.G_TRUE;
10327 END IF;
10328 CLOSE C_ord_qty;
10329 ELSIF l_qte_line_detail_tbl(i).service_ref_type_code = 'CUSTOMER_PRODUCT' THEN
10330 OPEN C_cs_qty(l_qte_line_detail_tbl(i).service_ref_line_id);
10331 FETCH C_cs_qty INTO l_quantity;
10332 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10333 aso_debug_pub.add('Service_item_qty_update: Cursor C_cs_qty: l_quantity: '||l_quantity, 1, 'N');
10334 end if;
10335
10336 IF C_cs_qty%NOTFOUND THEN
10337 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10338 aso_debug_pub.add('Service_item_qty_update: Inside cursor C_cs_qty%NOTFOUND condition. ', 1, 'N');
10339 end if;
10340 x_return_status := FND_API.G_RET_STS_ERROR;
10341 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10342 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SERVICE_REF_LINE');
10343 FND_MESSAGE.Set_Token('CODE', 'CUSTOMER_PRODUCT', FALSE);
10344 FND_MESSAGE.Set_Token('VALUE', l_qte_line_detail_tbl(i).service_ref_line_id, FALSE);
10345 FND_MSG_PUB.ADD;
10346 END IF;
10347 ELSE
10348 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10349 aso_debug_pub.add('Service_item_qty_update: cursor C_cs_qty%FOUND ', 1, 'N ');
10350 end if;
10351 l_update_flag := FND_API.G_TRUE;
10352 END IF;
10353 CLOSE C_cs_qty;
10354 /*** Start: BugNo 8647883: R12.1.2 Service reference SUN ER ***/
10355 ELSIF l_qte_line_detail_tbl(i).service_ref_type_code = 'PRODUCT_CATALOG' THEN
10356 OPEN C_quantity(l_qte_line_detail_tbl(i).quote_line_id);
10357 FETCH C_quantity INTO l_quantity; --using the line qunatity
10358 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10359 aso_debug_pub.add('PRODUCT CATALOG Service_item_qty_update: Cursor C_quantity: l_quantity: '||l_quantity, 1, 'N');
10360 end if;
10361 IF C_quantity%NOTFOUND THEN
10362 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10363 aso_debug_pub.add('Service_item_qty_update: Inside cursor C_quantity%NOTFOUND ', 1, 'N');
10364 end if;
10365 x_return_status := FND_API.G_RET_STS_ERROR;
10366 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10367 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SERVICE_REF_LINE');
10368 FND_MESSAGE.Set_Token('CODE', 'PRODUCT_CATALOG', FALSE);
10369 FND_MESSAGE.Set_Token('VALUE', l_qte_line_detail_tbl(i).service_ref_line_id, FALSE);
10370 FND_MSG_PUB.ADD;
10371 END IF;
10372 ELSE
10373 l_update_flag := FND_API.G_TRUE;
10374 END IF;
10375 CLOSE C_quantity;
10376 /*** End: BugNo 8647883: R12.1.2 Service reference SUN ER ***/
10377 END IF; -- service_ref_type_code
10378
10379
10380 IF x_return_status <> FND_API.G_RET_STS_ERROR AND l_update_flag = FND_API.G_TRUE THEN
10381
10382 Begin
10383
10384 UPDATE aso_quote_lines_all
10385 set quantity = l_quantity,
10386 last_update_date = sysdate,
10387 last_updated_by = fnd_global.user_id,
10388 last_update_login = fnd_global.conc_login_id
10389 where quote_line_id = p_qte_line_rec.quote_line_id;
10390
10391 EXCEPTION
10392 WHEN OTHERS THEN
10393 x_return_status := FND_API.G_RET_STS_ERROR;
10394
10395 if aso_debug_pub.g_debug_flag = 'Y' THEN
10396 aso_debug_pub.add('Service_item_qty_update:Exception raised when others', 1, 'N');
10397 end if;
10398
10399 End;
10400
10401 END IF;
10402
10403 l_update_flag := FND_API.G_FALSE;
10404
10405 END LOOP;
10406
10407 END IF;
10408 End service_item_qty_update;
10409
10410 END ASO_QUOTE_LINES_PVT;