[Home] [Help]
PACKAGE BODY: APPS.ASO_QUOTE_LINES_PVT
Source
1 PACKAGE BODY ASO_QUOTE_LINES_PVT as
2 /* $Header: asovqlnb.pls 120.34 2006/08/04 01:52:42 bmishra 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
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
4917 BEGIN
4918
4919 -- Standard Start of API savepoint
4920 SAVEPOINT UPDATE_quote_line_PVT;
4921
4922 -- Standard call to check for call compatibility.
4923 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
4924 p_api_version_number,
4925 l_api_name,
4926 G_PKG_NAME) THEN
4927 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4928 END IF;
4929
4930
4931 -- Initialize message list if p_init_msg_list is set to TRUE.
4932 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4933 FND_MSG_PUB.initialize;
4934 END IF;
4935
4936
4937 -- Initialize API return status to SUCCESS
4938 x_return_status := FND_API.G_RET_STS_SUCCESS;
4939
4940 if aso_debug_pub.g_debug_flag = 'Y' THEN
4941 aso_debug_pub.add('Update_Quote_line - Begin ', 1, 'Y');
4942 aso_debug_pub.add('P_Control_REC.AUTO_VERSION_FLAG: '||nvl(P_Control_REC.AUTO_VERSION_FLAG,'null'),1,'N');
4943 aso_debug_pub.add('P_Control_REC.pricing_request_type: '||nvl(P_Control_REC.pricing_request_type,'null'),1,'N');
4944 aso_debug_pub.add('P_Control_REC.header_pricing_event: '||nvl(P_Control_REC.header_pricing_event,'null'),1,'N');
4945 aso_debug_pub.add('P_Control_REC.line_pricing_event: '||nvl(P_Control_REC.line_pricing_event,'null'),1,'N');
4946 aso_debug_pub.add('P_Control_REC.CALCULATE_TAX_FLAG: '||nvl(P_Control_REC.CALCULATE_TAX_FLAG,'null'),1,'N');
4947 aso_debug_pub.add('P_Control_REC.CALCULATE_FREIGHT_CHARGE_FLAG: '||nvl(P_Control_REC.CALCULATE_FREIGHT_CHARGE_FLAG,'null'),1,'N');
4948 aso_debug_pub.add('P_Control_REC.COPY_TASK_FLAG: '||nvl(P_Control_REC.COPY_TASK_FLAG,'null'),1,'N');
4949 aso_debug_pub.add('P_Control_REC.COPY_NOTES_FLAG: '||nvl(P_Control_REC.COPY_NOTES_FLAG,'null'),1,'N');
4950 aso_debug_pub.add('P_Control_REC.COPY_ATT_FLAG: '||nvl(P_Control_REC.COPY_ATT_FLAG,'null'),1,'N');
4951 aso_debug_pub.add('P_Qte_Line_Rec.OPERATION_CODE: '||nvl(P_Qte_Line_Rec.OPERATION_CODE,'null'),1,'N');
4952 aso_debug_pub.add('P_Qte_Line_Rec.QUOTE_LINE_ID: '||nvl(to_char(P_Qte_Line_Rec.QUOTE_LINE_ID),'null'),1,'N');
4953 aso_debug_pub.add('P_Qte_Line_Rec.QUOTE_HEADER_ID: '||nvl(to_char(P_Qte_Line_Rec.QUOTE_HEADER_ID),'null'),1,'N');
4954 aso_debug_pub.add('P_Qte_Line_Rec.LINE_CATEGORY_CODE: '||nvl(P_Qte_Line_Rec.LINE_CATEGORY_CODE,'null'),1,'N');
4955 aso_debug_pub.add('P_Qte_Line_Rec.ITEM_TYPE_CODE: '||nvl(P_Qte_Line_Rec.ITEM_TYPE_CODE,'null'),1,'N');
4956 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');
4957 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');
4958 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');
4959 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');
4960 aso_debug_pub.add('P_Qte_Line_Rec.INVENTORY_ITEM_ID: '||nvl(to_char(P_Qte_Line_Rec.INVENTORY_ITEM_ID),'null'),1,'N');
4961 aso_debug_pub.add('P_Qte_Line_Rec.QUANTITY: '||nvl(to_char(P_Qte_Line_Rec.QUANTITY),'null'),1,'N');
4962 aso_debug_pub.add('P_Qte_Line_Rec.UOM_CODE: '||nvl(P_Qte_Line_Rec.UOM_CODE,'null'),1,'N');
4963 aso_debug_pub.add('P_Qte_Line_Rec.PRICING_QUANTITY_UOM: '||nvl(P_Qte_Line_Rec.PRICING_QUANTITY_UOM,'null'),1,'N');
4964 aso_debug_pub.add('P_Qte_Line_Rec.PRICE_LIST_ID: '||nvl(to_char(P_Qte_Line_Rec.PRICE_LIST_ID),'null'),1,'N');
4965 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');
4966 aso_debug_pub.add('P_Qte_Line_Rec.CURRENCY_CODE: '||nvl(P_Qte_Line_Rec.CURRENCY_CODE,'null'),1,'N');
4967 aso_debug_pub.add('P_Qte_Line_Rec.RELATED_ITEM_ID: '||nvl(to_char(P_Qte_Line_Rec.RELATED_ITEM_ID),'null'),1,'N');
4968 aso_debug_pub.add('P_Qte_Line_Rec.org_id: '||nvl(to_char(P_Qte_Line_Rec.org_id),'null'));
4969 end if;
4970
4971 --
4972 -- API body
4973 --
4974
4975 -- ******************************************************************
4976 -- Validate Environment
4977 -- ******************************************************************
4978 IF FND_GLOBAL.User_Id IS NULL THEN
4979 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4980 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
4981 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
4982 FND_MSG_PUB.ADD;
4983 END IF;
4984 RAISE FND_API.G_EXC_ERROR;
4985 END IF;
4986
4987
4988 OPEN C_qln_exist;
4989 FETCH C_qln_exist into l_qln_exist;
4990
4991 IF c_qln_exist%NOTFOUND OR l_qln_exist = FND_API.G_MISS_NUM THEN
4992
4993 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4994 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_LINE');
4995 FND_MESSAGE.Set_Token ('VALUE', p_qte_line_rec.quote_line_id, FALSE);
4996 FND_MSG_PUB.ADD;
4997 END IF;
4998 CLOSE C_qln_exist;
4999 raise FND_API.G_EXC_ERROR;
5000
5001 END IF;
5002 CLOSE C_qln_exist;
5003
5004 IF (p_update_header_flag = 'Y') THEN
5005
5006 Open C_Get_quote( p_qte_line_rec.QUOTE_LINE_ID);
5007 Fetch C_Get_quote into l_LAST_UPDATE_DATE, l_qte_status_id, l_quote_number, l_hd_discount_percent,l_quote_exp_date;
5008
5009 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5010 aso_debug_pub.add('After c_get_quote',1,'N');
5011 aso_debug_pub.add('l_qte_status_id: '||l_qte_status_id,1,'N');
5012 aso_debug_pub.add('l_quote_number: '||nvl(to_char(l_quote_number),'null'),1,'N');
5013 aso_debug_pub.add('l_hd_discount_percent: '||nvl(to_char(l_hd_discount_percent),'null'),1,'N');
5014 end if;
5015
5016 If ( C_Get_quote%NOTFOUND) Then
5017 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5018 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_UPDATE_TARGET');
5019 FND_MESSAGE.Set_Token ('INFO', 'quote', FALSE);
5020 FND_MSG_PUB.Add;
5021 END IF;
5022 Close C_Get_quote;
5023 raise FND_API.G_EXC_ERROR;
5024 END IF;
5025 Close C_Get_quote;
5026
5027 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5028 aso_debug_pub.add('After C_Get_quote Cursor call ',1,'N');
5029 end if;
5030
5031 If (l_last_update_date is NULL or l_last_update_date = FND_API.G_MISS_Date ) Then
5032
5033 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5034 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_ID');
5035 FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
5036 FND_MSG_PUB.ADD;
5037 END IF;
5038 raise FND_API.G_EXC_ERROR;
5039 End if;
5040
5041 -- Check Whether record has been changed by someone else
5042 If (trunc(l_last_update_date) <> trunc(p_control_rec.last_update_date)) Then
5043
5044 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5045 FND_MESSAGE.Set_Name('ASO', 'API_RECORD_CHANGED');
5046 FND_MESSAGE.Set_Token('INFO', 'quote', FALSE);
5047 FND_MSG_PUB.ADD;
5048 END IF;
5049 raise FND_API.G_EXC_ERROR;
5050 End if;
5051
5052 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5053 aso_debug_pub.add('After Last update date validation',1,'N');
5054 end if;
5055
5056 Open c_qte_status (l_qte_status_id);
5057 Fetch C_qte_status into l_update_allowed, l_auto_version;
5058
5059 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5060 aso_debug_pub.add('after c_qte_status',1,'N');
5061 aso_debug_pub.add('l_update_allowed: '||l_update_allowed,1,'N');
5062 aso_debug_pub.add('l_auto_version: '||l_auto_version,1,'N');
5063 end if;
5064 Close c_qte_status;
5065
5066 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5067 aso_debug_pub.add('After c_qte_status cursor call',1,'N');
5068 end if;
5069
5070 -- the control rec does not set auto version to 'Y' then it should not be versioned
5071
5072 IF p_control_rec.auto_version_flag = FND_API.G_TRUE AND NVL(l_auto_version,'Y') = 'Y' THEN
5073
5074 OPEN C_Qte_Version(l_quote_number);
5075 FETCH C_Qte_Version into l_quote_version;
5076 l_quote_version := nvl(l_quote_version, 0) + 1;
5077 CLOSE C_Qte_Version;
5078 ELSE
5079 l_auto_version := 'N';
5080 END IF;
5081
5082 if aso_debug_pub.g_debug_flag = 'Y' THEN
5083 aso_debug_pub.add('after basic validations'|| x_return_status, 1, 'Y');
5084 end if;
5085
5086 IF l_auto_version = 'Y' THEN
5087
5088 l_old_header_rec := ASO_UTILITY_PVT.Query_Header_Row(p_qte_line_rec.QUOTE_HEADER_ID);
5089
5090 l_copy_quote_control_rec.new_version := FND_API.G_TRUE;
5091 l_copy_quote_header_rec.quote_header_id := l_old_header_rec.quote_header_id;
5092
5093 aso_copy_quote_pvt.copy_quote( P_Api_Version_Number => 1.0,
5094 P_Init_Msg_List => FND_API.G_FALSE,
5095 P_Commit => FND_API.G_FALSE,
5096 P_Copy_Quote_Header_Rec => l_copy_quote_header_rec,
5097 P_Copy_Quote_Control_Rec => l_copy_quote_control_rec,
5098 X_Qte_Header_Id => x_quote_header_id,
5099 X_Qte_Number => l_qte_nbr,
5100 X_Return_Status => l_return_status,
5101 X_Msg_Count => x_msg_count,
5102 X_Msg_Data => x_msg_data
5103 );
5104
5105 if aso_debug_pub.g_debug_flag = 'Y' then
5106 aso_debug_pub.add('Update_Quote_Line: After copy_quote');
5107 aso_debug_pub.add('After copy_quote l_return_status: ' || l_return_status);
5108 aso_debug_pub.add('After copy_quote x_quote_header_id: ' || x_quote_header_id);
5109 aso_debug_pub.add('After copy_quote l_qte_nbr: ' || l_qte_nbr);
5110 end if;
5111
5112 update aso_quote_headers_all
5113 set quote_version = l_quote_version + 1,
5114 max_version_flag = 'Y',
5115 last_update_date = sysdate,
5116 last_updated_by = fnd_global.user_id,
5117 last_update_login = fnd_global.conc_login_id
5118 where quote_header_id = p_qte_line_rec.quote_header_id;
5119
5120 update aso_quote_headers_all
5121 set max_version_flag = 'N',
5122 quote_version = l_old_header_rec.quote_version,
5123 last_update_date = sysdate,
5124 last_updated_by = fnd_global.user_id,
5125 last_update_login = fnd_global.conc_login_id
5126 where quote_header_id = x_quote_header_id;
5127
5128 update aso_quote_headers_all
5129 set quote_version = l_quote_version,
5130 last_update_date = sysdate,
5131 last_updated_by = fnd_global.user_id,
5132 last_update_login = fnd_global.conc_login_id
5133 where quote_header_id = p_qte_line_rec.quote_header_id;
5134
5135 END IF; -- auto version flag
5136
5137 END IF; -- update header flag
5138
5139
5140 -- bmishra line defaulting framework begin
5141
5142 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5143 aso_debug_pub.add('Update_Quote_Line: Before defaulting framework', 1, 'Y');
5144 aso_debug_pub.add('Update_Quote_Line: populate defaulting control record from the line control record', 1, 'Y');
5145 END IF ;
5146
5147 l_def_control_rec.Dependency_Flag := p_control_rec.Dependency_Flag;
5148 l_def_control_rec.Defaulting_Flag := p_control_rec.Defaulting_Flag;
5149 l_def_control_rec.Application_Type_Code := p_control_rec.Application_Type_Code;
5150 l_def_control_rec.Defaulting_Flow_Code := 'UPDATE';
5151 l_def_control_rec.last_update_date := p_control_rec.last_update_date;
5152
5153 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5154 aso_debug_pub.add('Defaulting_Fwk_Flag: '|| p_control_rec.Defaulting_Fwk_Flag, 1, 'Y');
5155 aso_debug_pub.add('Dependency_Flag: '|| l_def_control_rec.Dependency_Flag, 1, 'Y');
5156 aso_debug_pub.add('Defaulting_Flag: '|| l_def_control_rec.Defaulting_Flag, 1, 'Y');
5157 aso_debug_pub.add('Application_Type_Code: '|| l_def_control_rec.Application_Type_Code, 1, 'Y');
5158 aso_debug_pub.add('Defaulting_Flow_Code: '|| l_def_control_rec.Defaulting_Flow_Code, 1, 'Y');
5159 aso_debug_pub.add('last_update_date: '|| l_def_control_rec.last_update_date, 1, 'Y');
5160 END IF ;
5161
5162 IF l_def_control_rec.application_type_code = 'QUOTING HTML' OR l_def_control_rec.application_type_code = 'QUOTING FORM' THEN
5163 l_db_object_name := ASO_QUOTE_HEADERS_PVT.G_QUOTE_LINE_DB_NAME;
5164 ELSIF l_def_control_rec.application_type_code = 'ISTORE' THEN
5165 l_db_object_name := ASO_QUOTE_HEADERS_PVT.G_STORE_CART_LINE_DB_NAME;
5166 ELSE
5167 l_control_rec.Defaulting_Fwk_Flag := 'N';
5168 END IF;
5169
5170 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5171 aso_debug_pub.add('Pick '||l_db_object_name ||' based on calling application '||l_def_control_rec.application_type_code, 1, 'Y');
5172 END IF ;
5173
5174 IF p_shipment_tbl.count > 0 THEN
5175 l_shipment_rec := p_shipment_tbl(1);
5176 END IF;
5177
5178 IF p_payment_tbl.count > 0 THEN
5179 l_payment_rec := p_payment_tbl(1);
5180 END IF;
5181
5182 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5183 aso_debug_pub.add('Update_Quote_Line - Before Calling Default_Entity procedure', 1, 'Y');
5184 END IF ;
5185
5186 /* Removing Call for defaulting from create_quote_line
5187 IF l_control_rec.defaulting_fwk_flag = 'Y' THEN
5188
5189 ASO_DEFAULTING_INT.Default_Entity ( p_api_version => 1.0,
5190 p_control_rec => l_def_control_rec,
5191 p_database_object_name => l_db_object_name,
5192 p_quote_line_rec => p_qte_line_rec,
5193 p_line_shipment_rec => l_shipment_rec,
5194 p_line_payment_rec => l_payment_rec,
5195 x_quote_header_rec => l_qte_header_rec,
5196 x_header_misc_rec => lx_hd_misc_rec,
5197 x_header_shipment_rec => lx_hd_shipment_rec,
5198 x_header_payment_rec => lx_hd_payment_rec,
5199 x_header_tax_detail_rec => lx_hd_tax_detail_rec,
5200 x_quote_line_rec => lx_qte_line_rec,
5201 x_line_misc_rec => lx_ln_misc_rec,
5202 x_line_shipment_rec => lx_ln_shipment_rec,
5203 x_line_payment_rec => lx_ln_payment_rec,
5204 x_line_tax_detail_rec => lx_ln_tax_detail_rec,
5205 x_changed_flag => lx_changed_flag,
5206 x_return_status => x_return_status,
5207 x_msg_count => x_msg_count,
5208 x_msg_data => x_msg_data);
5209
5210 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5211 aso_debug_pub.add('Update_Quote_line: After call to ASO_DEFAULTING_INT.Default_Entity', 1, 'Y');
5212 aso_debug_pub.add('Update_Quote_line: x_return_status: '|| x_return_status, 1, 'Y');
5213 end if;
5214
5215 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5216
5217 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5218 FND_MESSAGE.Set_Name('ASO', 'ASO_API_ERROR_DEFAULTING');
5219 FND_MSG_PUB.ADD;
5220 END IF;
5221
5222 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
5223 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5224 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
5225 RAISE FND_API.G_EXC_ERROR;
5226 END IF;
5227
5228 END IF;
5229
5230 IF aso_quote_headers_pvt.Shipment_Null_Rec_Exists(lx_ln_shipment_rec, l_db_object_name) THEN
5231 lx_ln_shipment_tbl(1) := lx_ln_shipment_rec;
5232 END IF;
5233
5234 IF aso_quote_headers_pvt.Payment_Null_Rec_Exists(lx_ln_payment_rec, l_db_object_name) THEN
5235 lx_ln_payment_tbl(1) := lx_ln_payment_rec;
5236 END IF;
5237
5238 ELSE
5239 */
5240 lx_qte_line_rec := p_qte_line_rec;
5241 lx_ln_shipment_tbl := p_shipment_tbl;
5242 lx_ln_payment_tbl := p_payment_tbl;
5243 /*
5244 END IF;
5245 */
5246
5247 -- bmishra defaulting framework end
5248
5249 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5250 aso_debug_pub.add('Update_Quote_line - before validation', 1, 'Y');
5251 aso_debug_pub.add('Update_Quote_line: ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM: '||ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM, 1, 'Y');
5252 end if;
5253
5254 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
5255
5256 ASO_VALIDATE_PVT.Validate_Item_Type_Code(
5257 p_init_msg_list => FND_API.G_FALSE,
5258 p_item_type_code => lx_qte_line_rec.item_type_code,
5259 x_return_status => x_return_status,
5260 x_msg_count => x_msg_count,
5261 x_msg_data => x_msg_data);
5262
5263 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5264 RAISE FND_API.G_EXC_ERROR;
5265 END IF;
5266
5267 -- invoice_to_party_id must exist and be active in HZ_PARTIES and have the usage INVOICE.
5268
5269 ASO_VALIDATE_PVT.Validate_Party (
5270 p_init_msg_list => FND_API.G_FALSE,
5271 p_party_id => lx_qte_line_rec.invoice_to_party_id,
5272 p_party_usage => 'INVOICE',
5273 x_return_status => x_return_status,
5274 x_msg_count => x_msg_count,
5275 x_msg_data => x_msg_data);
5276
5277 if aso_debug_pub.g_debug_flag = 'Y' THEN
5278 aso_debug_pub.add('after validate invoice to party: x_return_status: '||x_return_status, 1, 'N');
5279 end if;
5280
5281 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5282 RAISE FND_API.G_EXC_ERROR;
5283 END IF;
5284
5285 ASO_VALIDATE_PVT.Validate_PartySite (
5286 p_init_msg_list => FND_API.G_FALSE,
5287 p_party_id => lx_qte_line_rec.invoice_to_party_id,
5288 p_party_site_id => lx_qte_line_rec.invoice_to_party_site_id,
5289 p_site_usage => 'INVOICE',
5290 x_return_status => x_return_status,
5291 x_msg_count => x_msg_count,
5292 x_msg_data => x_msg_data);
5293
5294 if aso_debug_pub.g_debug_flag = 'Y' THEN
5295 aso_debug_pub.add('after validate invoice to party site: x_return_status: '||x_return_status, 1, 'N');
5296 end if;
5297
5298 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5299 RAISE FND_API.G_EXC_ERROR;
5300 END IF;
5301
5302 -- price list must exist and be active in OE_PRICE_LISTS
5303 ASO_VALIDATE_PVT.Validate_PriceList (
5304 p_init_msg_list => FND_API.G_FALSE,
5305 p_price_list_id => lx_qte_line_rec.price_list_id,
5306 x_return_status => x_return_status,
5307 x_msg_count => x_msg_count,
5308 x_msg_data => x_msg_data);
5309
5310 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5311 RAISE FND_API.G_EXC_ERROR;
5312 END IF;
5313
5314 ASO_VALIDATE_PVT.Validate_Quote_Price_Exp(
5315 p_init_msg_list => FND_API.G_FALSE,
5316 p_price_list_id => lx_qte_line_rec.price_list_id,
5317 p_quote_expiration_date => l_quote_exp_date,
5318 x_return_status => x_return_status,
5319 x_msg_count => x_msg_count,
5320 x_msg_data => x_msg_data);
5321
5322 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5323
5324 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5325 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
5326 FND_MESSAGE.Set_Token('COLUMN', 'Price List Expires Before Quote', FALSE);
5327 FND_MSG_PUB.ADD;
5328 END IF;
5329
5330 RAISE FND_API.G_EXC_ERROR;
5331 END IF;
5332
5333 if aso_debug_pub.g_debug_flag = 'Y' THEN
5334 aso_debug_pub.add('After call to Validate_Quote_Price_Exp: x_return_status: '|| x_return_status, 1, 'Y');
5335 end if;
5336
5337 -- shp_to_party_id must exist and be active in HZ_PARTIES and have the usage SHIP.
5338
5339 For i in 1..lx_ln_shipment_tbl.count LOOP
5340
5341 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5342 aso_debug_pub.add('before validating ship_to party: '||nvl(to_char(lx_ln_shipment_tbl(i).ship_to_party_id), 'null'),1,'N');
5343 end if;
5344
5345 ASO_VALIDATE_PVT.Validate_Party (
5346 p_init_msg_list => FND_API.G_FALSE,
5347 p_party_id => lx_ln_shipment_tbl(i).ship_to_party_id,
5348 p_party_usage => 'SHIP',
5349 x_return_status => x_return_status,
5350 x_msg_count => x_msg_count,
5351 x_msg_data => x_msg_data);
5352
5353 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5354 aso_debug_pub.add('after validate ship to party: x_return_status: '||x_return_status, 1, 'N');
5355 end if;
5356
5357 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5358 RAISE FND_API.G_EXC_ERROR;
5359 END IF;
5360
5361 if aso_debug_pub.g_debug_flag = 'Y' THEN
5362 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');
5363 end if;
5364
5365 ASO_VALIDATE_PVT.Validate_PartySite (
5366 p_init_msg_list => FND_API.G_FALSE,
5367 p_party_id => lx_ln_shipment_tbl(i).ship_to_party_id,
5368 p_party_site_id => lx_ln_shipment_tbl(i).ship_to_party_site_id,
5369 p_site_usage => 'SHIP',
5370 x_return_status => x_return_status,
5371 x_msg_count => x_msg_count,
5372 x_msg_data => x_msg_data);
5373
5374 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5375 aso_debug_pub.add('after validate ship to party site: x_return_status: '||x_return_status, 1, 'N');
5376 end if;
5377
5378 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5379 RAISE FND_API.G_EXC_ERROR;
5380 END IF;
5381
5382 End LOOP;
5383
5384
5385 ASO_VALIDATE_PVT.Validate_Marketing_Source_Code(
5386 p_init_msg_list => FND_API.G_FALSE,
5387 p_mkting_source_code_id => lx_qte_line_rec.marketing_source_code_id,
5388 x_return_status => x_return_status,
5389 x_msg_count => x_msg_count,
5390 x_msg_data => x_msg_data);
5391
5392 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5393 aso_debug_pub.add('after marketing source code: x_return_status: '|| x_return_status, 1, 'Y');
5394 end if;
5395
5396 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5397 RAISE FND_API.G_EXC_ERROR;
5398 END IF;
5399
5400
5401 FOR i in 1..p_qte_line_dtl_tbl.count LOOP
5402
5403 ASO_VALIDATE_PVT.Validate_Service_Duration(
5404 p_init_msg_list => FND_API.G_FALSE,
5405 p_service_duration => p_qte_line_dtl_tbl(i).service_duration,
5406 x_return_status => x_return_status,
5407 x_msg_count => x_msg_count,
5408 x_msg_data => x_msg_data);
5409
5410 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5411 aso_debug_pub.add('after service duration: x_return_status: '|| x_return_status, 1, 'Y');
5412 end if;
5413
5414 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5415 RAISE FND_API.G_EXC_ERROR;
5416 END IF;
5417
5418 END LOOP;
5419
5420
5421 FOR i in 1..p_sales_credit_tbl.count LOOP
5422
5423 if aso_debug_pub.g_debug_flag = 'Y' then
5424 aso_debug_pub.add('p_sales_credit_tbl('||i||').operation_code: '|| p_sales_credit_tbl(i).operation_code,1,'Y');
5425 end if;
5426
5427 if (p_sales_credit_tbl(i).operation_code = 'CREATE' or p_sales_credit_tbl(i).operation_code = 'UPDATE') then
5428
5429 ASO_VALIDATE_PVT.Validate_Resource_id(
5430 p_init_msg_list => FND_API.G_FALSE,
5431 p_resource_id => p_sales_credit_tbl(i).resource_id ,
5432 x_return_status => x_return_status,
5433 x_msg_count => x_msg_count,
5434 x_msg_data => x_msg_data);
5435
5436 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5437
5438 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5439 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_SALES_REP_ID');
5440 FND_MSG_PUB.ADD;
5441 END IF;
5442 RAISE FND_API.G_EXC_ERROR;
5443 END IF;
5444
5445 ASO_VALIDATE_PVT.Validate_Resource_group_id(
5446 p_init_msg_list => FND_API.G_FALSE,
5447 p_resource_group_id => p_sales_credit_tbl(i).resource_group_id,
5448 x_return_status => x_return_status,
5449 x_msg_count => x_msg_count,
5450 x_msg_data => x_msg_data);
5451
5452 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5453 RAISE FND_API.G_EXC_ERROR;
5454 END IF;
5455
5456 ASO_VALIDATE_PVT.Validate_Salescredit_Type(
5457 p_init_msg_list => FND_API.G_FALSE,
5458 p_salescredit_type_id => p_sales_credit_tbl(i).sales_credit_type_id,
5459 x_return_status => x_return_status,
5460 x_msg_count => x_msg_count,
5461 x_msg_data => x_msg_data);
5462
5463 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5464 RAISE FND_API.G_EXC_ERROR;
5465 END IF;
5466
5467 ASO_VALIDATE_PVT.Validate_EmployPerson(
5468 p_init_msg_list => FND_API.G_FALSE,
5469 p_employee_id => p_sales_credit_tbl(i).employee_person_id,
5470 x_return_status => x_return_status,
5471 x_msg_count => x_msg_count,
5472 x_msg_data => x_msg_data);
5473
5474 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5475 RAISE FND_API.G_EXC_ERROR;
5476 END IF;
5477
5478 end if;
5479
5480 END LOOP;
5481
5482
5483 /* commented by bmishra on 12/15/2004 as we are not using quote_party_tbl
5484 FOR i in 1..p_quote_party_tbl.count LOOP
5485
5486 ASO_VALIDATE_PVT.Validate_Party_Type(
5487 p_init_msg_list => FND_API.G_FALSE,
5488 p_party_type => p_quote_party_tbl(i).party_type,
5489 x_return_status => x_return_status,
5490 x_msg_count => x_msg_count,
5491 x_msg_data => x_msg_data);
5492
5493 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5494 RAISE FND_API.G_EXC_ERROR;
5495 END IF;
5496
5497 ASO_VALIDATE_PVT.Validate_Party(
5498 p_init_msg_list => FND_API.G_FALSE,
5499 p_party_id => p_quote_party_tbl(i).party_id,
5500 p_party_usage => null,
5501 x_return_status => x_return_status,
5502 x_msg_count => x_msg_count,
5503 x_msg_data => x_msg_data);
5504
5505 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5506 RAISE FND_API.G_EXC_ERROR;
5507 END IF;
5508
5509 ASO_VALIDATE_PVT.Validate_Party_Object_Type(
5510 p_init_msg_list => FND_API.G_FALSE,
5511 p_party_object_type => p_quote_party_tbl(i).party_object_type,
5512 x_return_status => x_return_status,
5513 x_msg_count => x_msg_count,
5514 x_msg_data => x_msg_data);
5515 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5516 RAISE FND_API.G_EXC_ERROR;
5517 END IF;
5518
5519 END LOOP;
5520 */
5521
5522
5523 ASO_VALIDATE_PVT.Validate_MiniSite(
5524 p_init_msg_list => FND_API.G_FALSE,
5525 p_minisite_id => lx_qte_line_rec.minisite_id,
5526 x_return_status => x_return_status,
5527 x_msg_count => x_msg_count,
5528 x_msg_data => x_msg_data);
5529
5530 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5531 RAISE FND_API.G_EXC_ERROR;
5532 END IF;
5533
5534 ASO_VALIDATE_PVT.Validate_Section(
5535 p_init_msg_list => FND_API.G_FALSE,
5536 p_section_id => lx_qte_line_rec.section_id,
5537 x_return_status => x_return_status,
5538 x_msg_count => x_msg_count,
5539 x_msg_data => x_msg_data);
5540
5541 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5542 RAISE FND_API.G_EXC_ERROR;
5543 END IF;
5544
5545 END IF;
5546
5547 l_db_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row( P_Qte_Line_Id => lx_qte_line_rec.quote_line_id);
5548
5549 l_db_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows( P_Qte_Header_Id => l_db_qte_line_rec.quote_header_id,
5550 P_Qte_Line_Id => l_db_qte_line_rec.quote_line_id);
5551
5552
5553 IF p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_RECORD THEN
5554
5555 IF lx_qte_line_rec.organization_id is NULL or lx_qte_line_rec.organization_id = FND_API.G_MISS_NUM THEN
5556
5557 IF lx_qte_line_rec.org_id is NULL OR lx_qte_line_rec.org_id = FND_API.G_MISS_NUM THEN
5558
5559 OPEN C_org_id;
5560 FETCH C_org_id into l_org_id;
5561
5562 IF C_org_id%NOTFOUND THEN
5563
5564 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5565 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
5566 FND_MESSAGE.Set_Token('COLUMN', 'ORG_ID', FALSE);
5567 FND_MSG_PUB.ADD;
5568 END IF;
5569
5570 END IF;
5571 CLOSE C_org_id;
5572
5573 END IF;
5574
5575 l_organization_id := oe_profile.value('OE_ORGANIZATION_ID', l_org_id);
5576
5577 ELSE
5578
5579 l_organization_id := lx_qte_line_rec.organization_id;
5580
5581 END IF;
5582
5583
5584 IF lx_qte_line_rec.inventory_item_id is NULL OR lx_qte_line_rec.inventory_item_id = FND_API.G_MISS_NUM THEN
5585
5586 SELECT inventory_item_id INTO l_inventory_item_id
5587 FROM aso_quote_lines_all
5588 WHERE quote_line_id = lx_qte_line_rec.quote_line_id;
5589
5590 ELSE
5591
5592 l_inventory_item_id := lx_qte_line_rec.inventory_item_id;
5593
5594 END IF;
5595
5596 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5597 aso_debug_pub.add('Update_Quote_Line: before Validate_UOM_code: l_organization_id: '|| l_organization_id, 1, 'N');
5598 aso_debug_pub.add('Update_Quote_Line: before Validate_UOM_code: l_inventory_item_id: '|| l_inventory_item_id, 1, 'N');
5599 end if;
5600
5601
5602 -- UOM must exist and should be in ASO_I_UNITS_OF_MEASURE
5603
5604 ASO_VALIDATE_PVT.Validate_UOM_code(
5605 p_init_msg_list => FND_API.G_FALSE,
5606 p_uom_code => lx_qte_line_rec.uom_code,
5607 p_organization_id => l_organization_id,
5608 p_inventory_item_id => l_inventory_item_id,
5609 x_return_status => x_return_status,
5610 x_msg_count => x_msg_count,
5611 x_msg_data => x_msg_data);
5612
5613 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5614 RAISE FND_API.G_EXC_ERROR;
5615 END IF;
5616
5617
5618 ASO_VALIDATE_PVT.Validate_For_GreaterEndDate (
5619 p_init_msg_list => FND_API.G_FALSE,
5620 p_start_date => lx_qte_line_rec.start_date_active,
5621 p_end_date => lx_qte_line_rec.end_date_active,
5622 x_return_status => x_return_status,
5623 x_msg_count => x_msg_count,
5624 x_msg_data => x_msg_data);
5625
5626 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5627
5628 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5629 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
5630 FND_MESSAGE.Set_Token('INFO', 'END_DATE', FALSE);
5631 FND_MSG_PUB.ADD;
5632 END IF;
5633 RAISE FND_API.G_EXC_ERROR;
5634 END IF;
5635
5636 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5637 aso_debug_pub.add('validate greater end date'|| x_return_status , 1, 'Y');
5638 end if;
5639
5640 FOR i in 1..p_qte_line_dtl_tbl.count LOOP
5641
5642 ASO_VALIDATE_PVT.Validate_Returns(
5643 p_init_msg_list => FND_API.G_FALSE,
5644 p_return_ref_type_code => p_qte_line_dtl_tbl(i).return_ref_type,
5645 p_return_ref_header_id => p_qte_line_dtl_tbl(i).return_ref_header_id,
5646 p_return_ref_line_id => p_qte_line_dtl_tbl(i).return_ref_line_id,
5647 x_return_status => x_return_status,
5648 x_msg_count => x_msg_count,
5649 x_msg_data => x_msg_data);
5650
5651 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5652
5653 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5654 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
5655 FND_MESSAGE.Set_Token('INFO', 'RETURN', FALSE);
5656 FND_MSG_PUB.ADD;
5657 END IF;
5658 RAISE FND_API.G_EXC_ERROR;
5659 END IF;
5660
5661 END LOOP;
5662
5663 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5664 aso_debug_pub.add('validate returns'|| x_return_status, 1, 'Y');
5665 end if;
5666
5667 -- tax_exempt_flag must be in 'E', 'R' and 'S'
5668 -- and tax_exempt_reason_code must exist if tax_exempt_flag is 'E'.
5669
5670 FOR i in 1..p_tax_detail_tbl.count LOOP
5671
5672 ASO_VALIDATE_PVT.Validate_Tax_Exemption (
5673 p_init_msg_list => FND_API.G_FALSE,
5674 p_tax_exempt_flag => p_tax_detail_tbl(i).tax_exempt_flag,
5675 p_tax_exempt_reason_code => p_tax_detail_tbl(i).tax_exempt_reason_code,
5676 x_return_status => x_return_status,
5677 x_msg_count => x_msg_count,
5678 x_msg_data => x_msg_data);
5679
5680 IF x_return_status<>FND_API.G_RET_STS_SUCCESS 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_INVALID_INFORMATION');
5684 FND_MESSAGE.Set_Token('INFO', 'TAX', FALSE);
5685 FND_MSG_PUB.ADD;
5686 END IF;
5687 RAISE FND_API.G_EXC_ERROR;
5688 END IF;
5689
5690 END LOOP;
5691
5692 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5693 aso_debug_pub.add('validate tax exemption'|| x_return_status, 1, 'Y');
5694 end if;
5695
5696 FOR i in 1..p_qte_line_dtl_tbl.count LOOP
5697
5698 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5699 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');
5700 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');
5701 aso_debug_pub.add('ASO_QUOTE_LINES_PVT:Update_Quote_Lines:component_code: '|| p_qte_line_dtl_tbl(i).component_code,1,'N');
5702 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');
5703 end if;
5704
5705 IF ((p_qte_line_dtl_tbl(i).config_header_id IS NOT NULL AND
5706 p_qte_line_dtl_tbL(i).config_header_id <> FND_API.G_MISS_NUM) AND
5707 (p_qte_line_dtl_tbl(i).config_revision_num IS NOT NULL AND
5708 p_qte_line_dtl_tbl(i).config_revision_num <> FND_API.G_MISS_NUM) AND
5709 (p_qte_line_dtl_tbl(i).config_item_id IS NOT NULL AND
5710 p_qte_line_dtl_tbl(i).config_item_id <> FND_API.G_MISS_NUM)) THEN
5711
5712 ASO_VALIDATE_PVT.Validate_Configuration(
5713 p_init_msg_list => FND_API.G_FALSE,
5714 p_config_header_id => p_qte_line_dtl_tbl(i).config_header_id,
5715 p_config_revision_num => p_qte_line_dtl_tbl(i).config_revision_num,
5716 p_config_item_id => p_qte_line_dtl_tbl(i).config_item_id,
5717 x_return_status => x_return_status,
5718 x_msg_count => x_msg_count,
5719 x_msg_data => x_msg_data);
5720
5721 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5722 aso_debug_pub.add('Update_Quote_Lines after Validate_Configuration :x_return_status:'||x_return_status,1, 'N');
5723 end if;
5724
5725 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5726
5727 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5728 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
5729 FND_MESSAGE.Set_Token('INFO', 'CONFIGURATION', FALSE);
5730 FND_MSG_PUB.ADD;
5731 END IF;
5732 RAISE FND_API.G_EXC_ERROR;
5733 END IF;
5734 END IF;
5735
5736 END LOOP;
5737
5738
5739 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5740 aso_debug_pub.add('validate configuration'|| x_return_status, 1, 'Y');
5741 end if;
5742
5743 FOR i in 1..p_qte_line_dtl_tbl.count LOOP
5744
5745 ASO_VALIDATE_PVT.Validate_Delayed_Service(
5746 p_init_msg_list => FND_API.G_FALSE,
5747 p_service_ref_type_code => p_qte_line_dtl_tbl(i).service_ref_type_code,
5748 p_service_ref_line_id => p_qte_line_dtl_tbl(i).service_ref_line_id,
5749 p_service_ref_system_id => p_qte_line_dtl_tbl(i).service_ref_system_id,
5750 x_return_status => x_return_status,
5751 x_msg_count => x_msg_count,
5752 x_msg_data => x_msg_data);
5753
5754 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5755
5756 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5757 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
5758 FND_MESSAGE.Set_Token('INFO', 'DELAYED SERVICE', FALSE);
5759 FND_MSG_PUB.ADD;
5760 END IF;
5761 RAISE FND_API.G_EXC_ERROR;
5762 END IF;
5763
5764 END LOOP;
5765
5766 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5767 aso_debug_pub.add('validate delayed service'|| x_return_status, 1, 'Y');
5768 end if;
5769
5770 /* commented by bmishra on 12/15/2004 as quote_party_tbl is obsoleted
5771
5772 FOR i in 1..p_quote_party_tbl.count LOOP
5773
5774 ASO_VALIDATE_PVT.Validate_Party_Object_Id(
5775 p_init_msg_list => FND_API.G_FALSE,
5776 p_party_id => p_quote_party_tbl(i).party_id,
5777 p_party_object_type => p_quote_party_tbl(i).party_object_type,
5778 p_party_object_id => p_quote_party_tbl(i).party_object_id,
5779 x_return_status => x_return_status,
5780 x_msg_count => x_msg_count,
5781 x_msg_data => x_msg_data);
5782 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5783 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5784 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
5785 FND_MESSAGE.Set_Token('INFO', 'PARTY OBJECT ID', FALSE);
5786 FND_MSG_PUB.ADD;
5787 END IF;
5788 RAISE FND_API.G_EXC_ERROR;
5789 END IF;
5790 END LOOP;
5791 */
5792
5793 -- new validation for ship_from_org_id
5794
5795 --l_db_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row( P_Qte_Line_Id => lx_qte_line_rec.quote_line_id);
5796
5797 -- l_db_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows( P_Qte_Header_Id => l_db_qte_line_rec.quote_header_id,
5798 -- P_Qte_Line_Id => l_db_qte_line_rec.quote_line_id);
5799
5800 IF l_db_shipment_tbl.count = 1 THEN
5801 l_db_shipment_rec := l_db_shipment_tbl(1);
5802 END IF;
5803
5804 IF lx_ln_shipment_tbl.count > 0 THEN
5805
5806 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5807 aso_debug_pub.add('Update_Quote_Line: before Validate_ship_from_org_ID', 1, 'Y');
5808 aso_debug_pub.add('lx_qte_line_rec.quote_header_id: '|| lx_qte_line_rec.quote_header_id, 1, 'Y');
5809 aso_debug_pub.add('lx_qte_line_rec.quote_line_id: '|| lx_qte_line_rec.quote_line_id, 1, 'Y');
5810 aso_debug_pub.add('lx_ln_shipment_tbl(1).quote_line_id: '|| lx_ln_shipment_tbl(1).quote_line_id, 1, 'Y');
5811 aso_debug_pub.add('lx_qte_line_rec.inventory_item_id: '|| lx_qte_line_rec.inventory_item_id, 1, 'Y');
5812 aso_debug_pub.add('l_db_qte_line_rec.inventory_item_id: '|| l_db_qte_line_rec.inventory_item_id, 1, 'Y');
5813 aso_debug_pub.add('lx_ln_shipment_tbl(1).ship_from_org_id: '|| lx_ln_shipment_tbl(1).ship_from_org_id,1,'Y');
5814 aso_debug_pub.add('l_db_shipment_rec.ship_from_org_id: '|| l_db_shipment_rec.ship_from_org_id, 1, 'Y');
5815 end if;
5816
5817 IF (l_db_shipment_rec.ship_from_org_id <> lx_ln_shipment_tbl(1).ship_from_org_id) OR
5818 ((l_db_qte_line_rec.inventory_item_id <> lx_qte_line_rec.inventory_item_id) AND
5819 ((lx_ln_shipment_tbl(1).ship_from_org_id IS NOT NULL) AND
5820 (lx_ln_shipment_tbl(1).ship_from_org_id <> FND_API.G_MISS_NUM))) THEN
5821
5822 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5823 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_Line: before Validate_ship_from_org_ID', 1, 'Y');
5824 end if;
5825
5826 ASO_VALIDATE_PVT.Validate_ship_from_org_ID(
5827 P_Qte_Line_rec => lx_qte_line_rec,
5828 P_Shipment_rec => lx_ln_shipment_tbl(1),
5829 x_return_status => x_return_status);
5830
5831 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5832 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_Line: after Validate_ship_from_org_ID', 1, 'Y');
5833 end if;
5834
5835 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5836
5837 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5838 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_Line: after Validate_ship_from_org_ID: <> SUCCESS', 1, 'Y');
5839 end if;
5840
5841 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5842 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SHIP_FROM_ORG_ID');
5843 FND_MESSAGE.Set_Token('SHIP_FROM_ORG_ID', lx_ln_shipment_tbl(1).ship_from_org_id, FALSE);
5844 FND_MESSAGE.Set_Token('INVENTORY_ITEM_ID', lx_qte_line_rec.inventory_item_id, FALSE);
5845 FND_MSG_PUB.ADD;
5846 END IF;
5847
5848 RAISE FND_API.G_EXC_ERROR;
5849
5850 END IF;
5851
5852 END IF;
5853
5854 ELSE
5855
5856 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5857 aso_debug_pub.add('Update_Quote_Line: before Validate_ship_from_org_ID.', 1, 'Y');
5858 aso_debug_pub.add('lx_qte_line_rec.quote_header_id: '|| lx_qte_line_rec.quote_header_id, 1, 'Y');
5859 aso_debug_pub.add('lx_qte_line_rec.quote_line_id: '|| lx_qte_line_rec.quote_line_id, 1, 'Y');
5860 aso_debug_pub.add('lx_qte_line_rec.inventory_item_id: '|| lx_qte_line_rec.inventory_item_id, 1, 'Y');
5861 aso_debug_pub.add('l_db_qte_line_rec.inventory_item_id: '|| l_db_qte_line_rec.inventory_item_id, 1, 'Y');
5862 aso_debug_pub.add('l_db_shipment_rec.ship_from_org_id: '|| l_db_shipment_rec.ship_from_org_id, 1, 'Y');
5863 end if;
5864
5865 IF (l_db_qte_line_rec.inventory_item_id <> lx_qte_line_rec.inventory_item_id) AND
5866 ((l_db_shipment_rec.ship_from_org_id IS NOT NULL) AND
5867 (l_db_shipment_rec.ship_from_org_id <> FND_API.G_MISS_NUM)) THEN
5868
5869 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5870 aso_debug_pub.add('Update_Quote_Line: before Validate_ship_from_org_ID (no lx_ln_shipment_tbl)', 1, 'Y');
5871 end if;
5872
5873 ASO_VALIDATE_PVT.Validate_ship_from_org_ID(
5874 P_Qte_Line_rec => lx_qte_line_rec,
5875 P_Shipment_rec => l_db_shipment_rec,
5876 x_return_status => x_return_status);
5877
5878 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5879 aso_debug_pub.add('Update_Quote_Line: after Validate_ship_from_org_ID (no lx_ln_shipment_tbl)', 1, 'Y');
5880 end if;
5881
5882 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5883
5884 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5885 aso_debug_pub.add('Update_Quote_Line: after Validate_ship_from_org_ID: <> SUCCESS (no lx_ln_shipment_tbl)', 1, 'Y');
5886 end if;
5887
5888 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5889 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SHIP_FROM_ORG_ID');
5890 FND_MESSAGE.Set_Token('SHIP_FROM_ORG_ID', l_db_shipment_rec.ship_from_org_id, FALSE);
5891 FND_MESSAGE.Set_Token('INVENTORY_ITEM_ID', lx_qte_line_rec.inventory_item_id, FALSE);
5892 FND_MSG_PUB.ADD;
5893 END IF;
5894
5895 RAISE FND_API.G_EXC_ERROR;
5896 END IF;
5897
5898 ELSE
5899
5900 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
5901
5902 l_hd_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows( P_Qte_Header_Id => l_db_qte_line_rec.quote_header_id,
5903 P_Qte_Line_Id => NULL);
5904
5905 IF l_hd_shipment_tbl.count = 1 THEN
5906 l_hd_shipment_rec := l_hd_shipment_tbl(1);
5907 END IF;
5908
5909 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5910 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');
5911 end if;
5912
5913 IF (l_db_qte_line_rec.inventory_item_id <> lx_qte_line_rec.inventory_item_id) AND
5914 ((l_hd_shipment_rec.ship_from_org_id IS NOT NULL) AND
5915 (l_hd_shipment_rec.ship_from_org_id <> FND_API.G_MISS_NUM)) THEN
5916
5917 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5918 aso_debug_pub.add('Update_Quote_Line: before Validate_ship_from_org_ID (no db_shipment_tbl)', 1, 'Y');
5919 end if;
5920
5921 ASO_VALIDATE_PVT.Validate_ship_from_org_ID(
5922 P_Qte_Line_rec => lx_qte_line_rec,
5923 P_Shipment_rec => l_hd_shipment_rec,
5924 x_return_status => x_return_status);
5925
5926 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5927 aso_debug_pub.add('Update_Quote_Line: after Validate_ship_from_org_ID (no db_shipment_tbl)', 1, 'Y');
5928 end if;
5929
5930 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5931
5932 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5933 aso_debug_pub.add('after Validate_ship_from_org_ID: <> SUCCESS (no db_shipment_tbl)', 1, 'Y');
5934 end if;
5935
5936 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5937 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SHIP_FROM_ORG_ID');
5938 FND_MESSAGE.Set_Token('SHIP_FROM_ORG_ID', l_hd_shipment_rec.ship_from_org_id, FALSE);
5939 FND_MESSAGE.Set_Token('INVENTORY_ITEM_ID', lx_qte_line_rec.inventory_item_id, FALSE);
5940 FND_MSG_PUB.ADD;
5941 END IF;
5942
5943 RAISE FND_API.G_EXC_ERROR;
5944 END IF;
5945
5946 END IF;
5947
5948 END IF;
5949
5950 END IF;
5951
5952 END IF;
5953
5954 -- end new validation for ship_from_org_id
5955
5956 END IF; --IF p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_RECORD
5957
5958
5959 -- if quantity is decreased check to see if the installation details quantity is not greater than the new quantity
5960 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5961 aso_debug_pub.add('Update_Quote_line - before Inst details and populate_quote_line ', 1, 'N');
5962 end if;
5963
5964 -- hyang csi change 1935614
5965
5966 FOR i IN 1..lx_ln_shipment_tbl.count LOOP
5967
5968 IF lx_ln_shipment_tbl(i).quantity <> FND_API.G_MISS_NUM THEN
5969
5970 if not (csi_utility_grp.ib_active()) then
5971
5972 Open C_inst_details( lx_ln_shipment_tbl(i).shipment_id);
5973 Fetch C_inst_details into l_quantity;
5974
5975 IF ( C_inst_details%FOUND) AND l_quantity > lx_ln_shipment_tbl(i).quantity Then
5976
5977 Close C_inst_details;
5978
5979 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5980 FND_MESSAGE.Set_Name('ASO', 'INST_DETAILS_EXIST');
5981 FND_MSG_PUB.ADD;
5982 END IF;
5983 raise FND_API.G_EXC_ERROR;
5984
5985 ELSE
5986 close C_inst_details;
5987
5988 END IF;
5989
5990 else
5991
5992 open c_csi_details(lx_qte_line_rec.QUOTE_LINE_ID);
5993 fetch c_csi_details into l_quantity;
5994
5995 if (c_csi_details%found) and (l_quantity > lx_ln_shipment_tbl(i).quantity) then
5996
5997 close c_csi_details;
5998
5999 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6000 FND_MESSAGE.Set_Name('ASO', 'INST_DETAILS_EXIST');
6001 FND_MSG_PUB.ADD;
6002 END IF;
6003 raise FND_API.G_EXC_ERROR;
6004
6005 else
6006 close c_csi_details;
6007
6008 end if;
6009
6010 end if;
6011
6012 END IF;
6013
6014 END LOOP;
6015
6016 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6017 aso_debug_pub.add('Update_Quote_Line - after Validate_Agreement:lx_qte_line_rec.UOM_Code: '||lx_qte_line_rec.UOM_Code,1, 'N');
6018 aso_debug_pub.add('Update_Quote_Line - after Validate_Agreement:lx_qte_line_rec.Quantity: '||lx_qte_line_rec.Quantity,1, 'N');
6019 end if;
6020
6021 IF lx_qte_line_rec.UOM_Code = 'ENR' THEN
6022
6023 IF lx_qte_line_rec.Quantity <> FND_API.G_MISS_NUM THEN
6024
6025 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6026 aso_debug_pub.add('Update_Quote_Line - Invalid Quantity for EDU: ',1, 'N');
6027 end if;
6028
6029 x_return_status := FND_API.G_RET_STS_ERROR;
6030 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6031 FND_MESSAGE.Set_Name('ASO', 'ASO_EDU_INVALID_QTY');
6032 FND_MSG_PUB.ADD;
6033 END IF;
6034 RAISE FND_API.G_EXC_ERROR;
6035
6036 END IF;
6037
6038 END IF;
6039
6040 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6041 aso_debug_pub.add('Update_Quote_Line - Before call to Populate_Quote_Line.',1, 'N');
6042 end if;
6043
6044 Populate_Quote_Line( P_Qte_Line_Rec => lx_qte_line_rec,
6045 P_Control_Rec => l_control_rec,
6046 P_Payment_Tbl => lx_ln_payment_tbl,
6047 P_Price_Adj_Tbl => P_Price_Adj_Tbl,
6048 P_Qte_Line_Dtl_tbl => P_Qte_Line_Dtl_tbl,
6049 P_Shipment_Tbl => lx_ln_shipment_tbl,
6050 P_Tax_Detail_Tbl => P_Tax_Detail_Tbl,
6051 P_Freight_Charge_Tbl => P_Freight_Charge_Tbl,
6052 P_Price_Attributes_Tbl => P_Price_Attributes_Tbl,
6053 P_Price_Adj_Attr_Tbl => P_Price_Adj_Attr_Tbl,
6054 P_Line_Attribs_Ext_Tbl => P_Line_Attribs_Ext_Tbl,
6055 P_Sales_Credit_Tbl => P_sales_credit_tbl,
6056 P_Quote_Party_Tbl => P_quote_party_tbl,
6057 P_Operation_Code => 'UPDATE',
6058 X_Qte_Line_Rec => l_Qte_Line_Rec,
6059 X_Payment_Tbl => l_Payment_Tbl,
6060 X_Price_Adj_Tbl => l_Price_Adj_Tbl,
6061 X_Qte_Line_Dtl_tbl => l_Qte_Line_Dtl_tbl,
6062 X_Shipment_Tbl => l_Shipment_Tbl,
6063 X_Tax_Detail_Tbl => l_Tax_Detail_Tbl,
6064 X_Freight_Charge_Tbl => l_Freight_Charge_Tbl,
6065 X_Price_Attributes_Tbl => l_Price_Attributes_Tbl,
6066 X_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl,
6067 X_Line_Attribs_Ext_Tbl => l_Line_Attribs_Ext_Tbl,
6068 X_Sales_Credit_Tbl => l_sales_credit_tbl,
6069 x_Quote_Party_Tbl => l_quote_party_tbl,
6070 X_Return_Status => X_return_status,
6071 X_Msg_Count => x_msg_count,
6072 X_Msg_Data => x_msg_data );
6073
6074 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6075 aso_debug_pub.add('Update_Quote_Line - After call to Populate_Quote_Line: x_return_status: '|| x_return_status ,1, 'N');
6076 end if;
6077
6078 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6079
6080 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6081 FND_MESSAGE.Set_Name('ASO', 'ASO_POPULATING_COLUMNS');
6082 FND_MESSAGE.Set_Token('LINE' , x_qte_line_rec.line_number, FALSE);
6083 FND_MSG_PUB.ADD;
6084 END IF;
6085
6086 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
6087 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6088 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
6089 RAISE FND_API.G_EXC_ERROR;
6090 END IF;
6091
6092 END IF;
6093 -- copy the orig payment tbl to another variable as the count of the payment tbl may get changed
6094 -- becoz of the payment validation which is done further down
6095 l_orig_payment_tbl := l_Payment_Tbl;
6096
6097 -- inter entity validations
6098 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6099 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: UPDATE_QUOTE_LINE: Begin Inter entity validations');
6100 end if;
6101
6102 IF p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_INTER_ENTITY THEN
6103
6104 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6105 ASO_DEBUG_PUB.add('UQ organization_id = '||nvl(to_char(l_Qte_Line_Rec.organization_id),'null') , 1, 'Y');
6106 ASO_DEBUG_PUB.add('UQ Inventory_item_id = '||l_Qte_Line_Rec.inventory_item_id, 1, 'Y');
6107 END IF;
6108
6109 IF l_Qte_Line_Rec.inventory_item_id <> FND_API.G_MISS_NUM THEN
6110
6111 ASO_VALIDATE_PVT.Validate_Inventory_Item(
6112 p_init_msg_list => FND_API.G_FALSE,
6113 p_inventory_item_id => l_Qte_Line_Rec.inventory_item_id,
6114 p_organization_id => l_Qte_Line_Rec.organization_id,
6115 x_return_status => x_return_status,
6116 x_msg_count => x_msg_count,
6117 x_msg_data => x_msg_data);
6118
6119 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6120 RAISE FND_API.G_EXC_ERROR;
6121 END IF;
6122 END IF ;
6123
6124 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6125 aso_debug_pub.add('after inventory item'|| x_return_status, 1, 'Y');
6126 end if;
6127
6128 -- bug 5196952
6129 if (P_shipment_Tbl.count > 0) then
6130
6131 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
6132
6133 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6134 aso_debug_pub.add('Update_Quote_line - ship method codeof quote line is being updated ', 1, 'N');
6135 aso_debug_pub.add('Update_Quote_line - before validate ship_method_code ', 1, 'N');
6136 end if;
6137 ASO_VALIDATE_PVT.validate_ship_method_code
6138 (
6139 p_init_msg_list => fnd_api.g_false,
6140 p_qte_header_id => lx_qte_line_rec.quote_header_id,
6141 p_qte_line_id => lx_qte_line_rec.quote_line_id,
6142 p_organization_id => lx_qte_line_rec.organization_id,
6143 p_ship_method_code => p_shipment_tbl(1).ship_method_code,
6144 p_operation_code => 'UPDATE',
6145 x_return_status => x_return_status,
6146 x_msg_count => x_msg_count,
6147 x_msg_data => x_msg_data);
6148
6149 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6150 aso_debug_pub.add('Update_Quote_line - After validate ship_method_code ', 1, 'N');
6151 end if;
6152
6153 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6154 RAISE FND_API.G_EXC_ERROR;
6155 END IF;
6156 end if; -- end if for ship method code check
6157 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
6158 -- 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
6159 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6160 aso_debug_pub.add('Update_Quote_line - Organization id of quote line is being updated ', 1, 'N');
6161 aso_debug_pub.add('Update_Quote_line - before validate ship_method_code ', 1, 'N');
6162 end if;
6163 ASO_VALIDATE_PVT.validate_ship_method_code
6164 (
6165 p_init_msg_list => fnd_api.g_false,
6166 p_qte_header_id => lx_qte_line_rec.quote_header_id,
6167 p_qte_line_id => lx_qte_line_rec.quote_line_id,
6168 p_organization_id => lx_qte_line_rec.organization_id,
6169 p_ship_method_code => fnd_api.g_miss_char,
6170 p_operation_code => 'UPDATE',
6171 x_return_status => x_return_status,
6172 x_msg_count => x_msg_count,
6173 x_msg_data => x_msg_data);
6174
6175 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6176 aso_debug_pub.add('Update_Quote_line - After validate ship_method_code ', 1, 'N');
6177 end if;
6178
6179 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6180 RAISE FND_API.G_EXC_ERROR;
6181 END IF;
6182 end if; -- end if for shipment tbl check
6183
6184
6185 l_db_qte_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows (P_Qte_Line_Id => l_Qte_Line_Rec.quote_line_id );
6186
6187 FOR i in 1..l_qte_line_dtl_tbl.count LOOP
6188
6189 -- bug 4258846
6190 IF l_Qte_Line_Rec.start_date_active = FND_API.G_MISS_DATE THEN
6191 l_Qte_Line_Rec.start_date_active := l_db_qte_line_rec.start_date_active;
6192 END IF;
6193 IF l_Qte_Line_Rec.end_date_active = FND_API.G_MISS_DATE THEN
6194 l_Qte_Line_Rec.end_date_active := l_db_qte_line_rec.end_date_active;
6195 END IF;
6196 IF l_Qte_Line_Rec.organization_id = FND_API.G_MISS_NUM THEN
6197 l_Qte_Line_Rec.organization_id := l_db_qte_line_rec.organization_id;
6198 END IF;
6199
6200 IF l_db_qte_line_dtl_tbl.COUNT > 0 THEN
6201
6202 IF l_qte_line_dtl_tbl(i).service_duration = FND_API.G_MISS_NUM THEN
6203 l_qte_line_dtl_tbl(i).service_duration := l_db_qte_line_dtl_tbl(i).service_duration;
6204 END IF;
6205
6206 IF l_qte_line_dtl_tbl(i).service_period = FND_API.G_MISS_CHAR THEN
6207 l_qte_line_dtl_tbl(i).service_period := l_db_qte_line_dtl_tbl(i).service_period;
6208 END IF;
6209
6210 IF l_qte_line_dtl_tbl(i).service_coterminate_flag = FND_API.G_MISS_CHAR THEN
6211 l_qte_line_dtl_tbl(i).service_coterminate_flag := l_db_qte_line_dtl_tbl(i).service_coterminate_flag;
6212 END IF;
6213
6214 END IF;
6215
6216 ASO_VALIDATE_PVT.Validate_Service(
6217 p_init_msg_list => FND_API.G_FALSE,
6218 p_inventory_item_id => l_Qte_Line_Rec.inventory_item_id,
6219 p_start_date_active => l_Qte_Line_Rec.start_date_active,
6220 p_end_date_active => l_Qte_Line_Rec.end_date_active,
6221 p_service_duration => l_qte_line_dtl_tbl(i).service_duration,
6222 p_service_period => l_qte_line_dtl_tbl(i).service_period,
6223 p_service_coterminate_flag => l_qte_line_dtl_tbl(i).service_coterminate_flag,
6224 p_organization_id => l_Qte_Line_Rec.organization_id,
6225 x_return_status => x_return_status,
6226 x_msg_count => x_msg_count,
6227 x_msg_data => x_msg_data);
6228
6229 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6230 aso_debug_pub.add('Update_Quote_line: After Validate_Service: x_return_status: '|| x_return_status);
6231 end if;
6232
6233 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6234
6235 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6236 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
6237 FND_MESSAGE.Set_Token('INFO','SERVICE', FALSE);
6238 FND_MSG_PUB.ADD;
6239 END IF;
6240
6241 RAISE FND_API.G_EXC_ERROR;
6242
6243 END IF;
6244
6245 --validate service period
6246
6247 ASO_VALIDATE_PVT.Validate_UOM_code(
6248 p_init_msg_list => FND_API.G_FALSE,
6249 p_uom_code => l_qte_line_dtl_tbl(i).service_period,
6250 p_organization_id => l_Qte_Line_Rec.organization_id,
6251 p_inventory_item_id => l_Qte_Line_Rec.inventory_item_id,
6252 x_return_status => x_return_status,
6253 x_msg_count => x_msg_count,
6254 x_msg_data => x_msg_data);
6255
6256 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6257 aso_debug_pub.add('Update_Quote_line: After validate service period: x_return_status: '|| x_return_status);
6258 end if;
6259
6260 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6261 RAISE FND_API.G_EXC_ERROR;
6262 END IF;
6263
6264 --Service cannot be added to a product that is being returned
6265
6266 IF l_qte_line_dtl_tbl(i).service_ref_type_code = 'QUOTE'
6267 AND l_qte_line_dtl_tbl(i).service_ref_line_id IS NOT NULL
6268 AND l_qte_line_dtl_tbl(i).service_ref_line_id <> FND_API.G_MISS_NUM THEN
6269
6270 OPEN C_line_category_code(l_qte_line_dtl_tbl(i).service_ref_line_id);
6271 FETCH C_line_category_code INTO l_line_category_code;
6272
6273 IF C_line_category_code%FOUND AND l_line_category_code = 'RETURN' THEN
6274
6275 CLOSE C_line_category_code;
6276
6277 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6278 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SERVICE_REFERENCE');
6279 FND_MSG_PUB.ADD;
6280 END IF;
6281
6282 RAISE FND_API.G_EXC_ERROR;
6283
6284 END IF;
6285
6286 CLOSE C_line_category_code;
6287
6288 END IF;
6289
6290 --New code for Bug#3280130
6291
6292 if aso_debug_pub.g_debug_flag = 'Y' then
6293 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').service_ref_line_id: ' || l_qte_line_dtl_tbl(i).service_ref_line_id);
6294 end if;
6295
6296 if l_qte_line_dtl_tbl(i).service_ref_line_id is not null and
6297 l_qte_line_dtl_tbl(i).service_ref_line_id <> fnd_api.g_miss_num then
6298
6299 if aso_debug_pub.g_debug_flag = 'Y' then
6300 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').service_ref_type_code: ' || l_qte_line_dtl_tbl(i).service_ref_type_code);
6301 end if;
6302
6303 if l_qte_line_dtl_tbl(i).service_ref_type_code is null or
6304 l_qte_line_dtl_tbl(i).service_ref_type_code = fnd_api.g_miss_char then
6305
6306 open c_service_ref_type_code( l_qte_line_dtl_tbl(i).quote_line_detail_id );
6307 fetch c_service_ref_type_code into l_service_ref_type_code;
6308 close c_service_ref_type_code;
6309
6310 if aso_debug_pub.g_debug_flag = 'Y' then
6311 aso_debug_pub.add('l_service_ref_type_code: ' || l_service_ref_type_code);
6312 end if;
6313
6314 if l_service_ref_type_code is null then
6315
6316 x_return_status := fnd_api.g_ret_sts_error;
6317
6318 IF fnd_msg_pub.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6319 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
6320 FND_MESSAGE.Set_Token('COLUMN', 'SERVICE_REF_TYPE_CODE', FALSE);
6321 FND_MESSAGE.Set_Token('VALUE', l_qte_line_dtl_tbl(i).service_ref_type_code,FALSE);
6322 FND_MSG_PUB.ADD;
6323 END IF;
6324
6325 raise fnd_api.g_exc_error;
6326
6327 end if;
6328
6329 else
6330
6331 l_service_ref_type_code := l_qte_line_dtl_tbl(i).service_ref_type_code;
6332
6333 end if;
6334
6335 if aso_debug_pub.g_debug_flag = 'Y' then
6336 aso_debug_pub.add('l_service_ref_type_code: ' || l_service_ref_type_code);
6337 aso_debug_pub.add('l_qte_line_dtl_tbl('||i||').service_ref_line_id: ' || l_qte_line_dtl_tbl(i).service_ref_line_id);
6338 aso_debug_pub.add('UPDATE_QUOTE_LINE: Before calling aso_validate_pvt.validate_service_ref_line_id');
6339 end if;
6340
6341 aso_validate_pvt.validate_service_ref_line_id (
6342 p_init_msg_list => fnd_api.g_false,
6343 p_service_ref_type_code => l_service_ref_type_code,
6344 p_service_ref_line_id => l_qte_line_dtl_tbl(i).service_ref_line_id,
6345 p_qte_header_id => l_Qte_Line_Rec.quote_header_id,
6346 x_return_status => x_return_status,
6347 x_msg_count => x_msg_count,
6348 x_msg_data => x_msg_data);
6349
6350 if aso_debug_pub.g_debug_flag = 'Y' then
6351 aso_debug_pub.add('UPDATE_QUOTE_LINE: After calling aso_validate_pvt.validate_service_ref_line_id');
6352 aso_debug_pub.add('UPDATE_QUOTE_LINE: x_return_status: '|| x_return_status);
6353 end if;
6354
6355 if x_return_status <> fnd_api.g_ret_sts_success then
6356 raise fnd_api.g_exc_error;
6357 end if;
6358
6359 end if;
6360
6361 --End new code for Bug#3280130
6362
6363 END LOOP; -- FOR i in 1..l_qte_line_dtl_tbl.count LOOP
6364
6365 --You cannot select the line category code "Return" if a service is selected for a product.
6366
6367 IF l_Qte_Line_Rec.line_category_code = 'RETURN' THEN
6368
6369 OPEN c_service_exist;
6370 FETCH c_service_exist INTO l_qln_exist;
6371
6372 IF c_service_exist%FOUND THEN
6373
6374 CLOSE c_service_exist;
6375
6376 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6377 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_LINE_CATEGORY');
6378 FND_MSG_PUB.ADD;
6379 END IF;
6380
6381 RAISE FND_API.G_EXC_ERROR;
6382
6383 END IF;
6384
6385 CLOSE c_service_exist;
6386
6387 END IF;
6388
6389 END IF; -- inter entity validation
6390
6391 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6392 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: UPDATE_QUOTE_LINE: End of Inter entity validations');
6393 end if;
6394
6395
6396 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6397 RAISE FND_API.G_EXC_ERROR;
6398 END IF;
6399
6400 -- order_type must exist and be active in OE_ORDER_TYPES
6401 l_qte_header_rec := ASO_UTILITY_PVT.Query_Header_Row(l_Qte_Line_Rec.QUOTE_HEADER_ID);
6402
6403 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6404 aso_debug_pub.add('Validation level is set',1,'N');
6405 aso_debug_pub.add('l_control_rec.application_type_code: '|| l_control_rec.application_type_code ,1,'N');
6406 end if;
6407
6408 ASO_CHECK_TCA_PVT.check_line_account_info(
6409 p_api_version => 1.0,
6410 p_init_msg_list => FND_API.G_FALSE,
6411 p_cust_account_id => l_qte_header_rec.cust_account_id,
6412 p_qte_line_rec => l_Qte_Line_Rec,
6413 p_line_shipment_tbl => l_shipment_tbl,
6414 p_application_type_code => l_control_rec.application_type_code,
6415 x_return_status => l_return_status,
6416 x_msg_count => l_msg_count,
6417 x_msg_data => l_msg_data );
6418
6419 IF l_Return_Status <> FND_API.G_RET_STS_SUCCESS THEN
6420 raise FND_API.G_EXC_ERROR;
6421 END IF;
6422
6423 ASO_TRADEIN_PVT.LineType( p_init_msg_list => FND_API.G_FALSE,
6424 p_qte_header_rec => l_qte_header_rec,
6425 p_qte_line_rec => l_Qte_Line_Rec,
6426 x_return_status => x_return_status,
6427 x_msg_count => x_msg_count,
6428 x_msg_data => x_msg_data);
6429
6430 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6431 RAISE FND_API.G_EXC_ERROR;
6432 END IF;
6433
6434 if aso_debug_pub.g_debug_flag = 'Y' THEN
6435 aso_debug_pub.add('after order type'|| x_return_status, 1, 'Y');
6436 end if;
6437
6438 If (p_qte_header_rec.order_type_id = FND_API.G_MISS_NUM) then -- [This is for backward compatibility]
6439 l_db_order_type_id := l_qte_header_rec.order_type_id;
6440 else
6441 l_db_order_type_id := p_qte_header_rec.order_type_id;
6442 end if;
6443
6444 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
6445
6446 ASO_validate_PVT.Validate_ln_type_for_ord_type(
6447 p_init_msg_list => FND_API.G_FALSE,
6448 p_qte_header_rec => l_qte_header_rec,
6449 P_Qte_Line_rec => l_Qte_Line_Rec,
6450 x_return_status => x_return_status,
6451 x_msg_count => x_msg_count,
6452 x_msg_data => x_msg_data);
6453
6454 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6455 RAISE FND_API.G_EXC_ERROR;
6456 END IF;
6457
6458 End if;
6459
6460
6461 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
6462 aso_debug_pub.add('x_return_status for Validate_ln_type_for_ord_type'|| x_return_status, 1, 'Y');
6463 END IF;
6464
6465
6466 ASO_TRADEIN_PVT.Validate_Line_Tradein( p_init_msg_list => FND_API.G_FALSE,
6467 p_qte_header_rec => l_qte_header_rec,
6468 P_Qte_Line_rec => l_Qte_Line_Rec,
6469 x_return_status => x_return_status,
6470 x_msg_count => x_msg_count,
6471 x_msg_data => x_msg_data);
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 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6478 aso_debug_pub.add('Update_Quote_Line - after Validate_Line_Tradein:x_return_status: '||x_return_status, 1, 'N');
6479 end if;
6480
6481 ASO_TRADEIN_PVT.Validate_IB_Return_Qty( p_init_msg_list => FND_API.G_FALSE,
6482 p_Qte_Line_rec => l_Qte_Line_Rec,
6483 p_Qte_Line_Dtl_Tbl => l_qte_line_dtl_tbl,
6484 x_return_status => x_return_status,
6485 x_msg_count => x_msg_count,
6486 x_msg_data => x_msg_data);
6487
6488 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6489 RAISE FND_API.G_EXC_ERROR;
6490 END IF;
6491
6492 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6493 aso_debug_pub.add('Update_Quote_Line - after Validate_IB_Return_Qty:x_return_status: '||x_return_status, 1, 'N');
6494 end if;
6495
6496 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
6497
6498 ASO_VALIDATE_PVT.Validate_Sales_Credit_Return(
6499 p_init_msg_list => FND_API.G_FALSE,
6500 p_sales_credit_tbl => p_sales_credit_tbl,
6501 p_qte_line_rec => l_Qte_Line_Rec,
6502 x_return_status => x_return_status,
6503 x_msg_count => x_msg_count,
6504 x_msg_data => x_msg_data);
6505
6506 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6507 RAISE FND_API.G_EXC_ERROR;
6508 END IF;
6509
6510 END IF;
6511
6512 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6513 aso_debug_pub.add('Update_Quote_Line - before Validate_Agreement:l_Qte_Line_Rec.Agreement_Id: '||l_Qte_Line_Rec.Agreement_Id, 1, 'N');
6514 end if;
6515
6516 IF (l_Qte_Line_Rec.Agreement_Id IS NOT NULL AND l_Qte_Line_Rec.Agreement_Id <> FND_API.G_MISS_NUM) THEN
6517
6518 ASO_VALIDATE_PVT.Validate_Agreement(
6519 p_init_msg_list => FND_API.G_FALSE,
6520 P_Agreement_Id => l_Qte_Line_Rec.Agreement_Id,
6521 x_return_status => x_return_status,
6522 x_msg_count => x_msg_count,
6523 x_msg_data => x_msg_data);
6524
6525 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6526 aso_debug_pub.add('Update_Quote_Line - after Validate_Agreement:x_return_status: '||x_return_status, 1, 'N');
6527 end if;
6528
6529 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6530 RAISE FND_API.G_EXC_ERROR;
6531 END IF;
6532
6533 END IF;
6534
6535 -- Validate the invoice to cust party id and payment info, if any
6536 IF l_payment_tbl.count = 0 then
6537 l_payment_tbl := aso_utility_pvt.Query_Payment_Rows( l_qte_line_rec.QUOTE_HEADER_ID,l_qte_line_rec.quote_line_id);
6538 Else
6539 -- check to see if the value has been changed, if not get orig value from db
6540 if l_payment_tbl(1).payment_type_code = fnd_api.g_miss_char then
6541 open get_payment_type_code(l_payment_tbl(1).payment_id);
6542 fetch get_payment_type_code into l_payment_tbl(1).payment_type_code;
6543 close get_payment_type_code;
6544 end if;
6545 End if;
6546
6547 -- bill to customer may not have been changed, if so get orig value from db
6548 if l_qte_line_rec.invoice_to_cust_party_id = fnd_api.g_miss_num then
6549 open get_bill_to_party(l_qte_line_rec.quote_line_id);
6550 fetch get_bill_to_party into l_qte_line_rec.invoice_to_cust_party_id;
6551 close get_bill_to_party;
6552 end if;
6553
6554 IF l_payment_tbl.count > 0 then
6555 l_payment_rec := l_payment_tbl(1);
6556 --IF l_payment_rec.payment_type_code = 'CREDIT_CARD' THEN
6557 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6558 aso_debug_pub.add('Before calling Validate_cc_info ', 1, 'Y');
6559 END IF;
6560 l_qte_header_rec := ASO_UTILITY_PVT.Query_Header_Row (l_qte_line_rec.Quote_Header_Id );
6561
6562 aso_validate_pvt.Validate_cc_info
6563 (
6564 p_init_msg_list => fnd_api.g_false,
6565 p_payment_rec => l_payment_rec,
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 aso_debug_pub.g_debug_flag = 'Y' THEN
6573 aso_debug_pub.add('after calling Validate_cc_info ', 1, 'Y');
6574 aso_debug_pub.add('Validate_cc_info Return Status: '||x_return_status, 1, 'Y');
6575 END IF;
6576
6577 if x_return_status <> fnd_api.g_ret_sts_success then
6578 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
6579 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6580 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
6581 RAISE FND_API.G_EXC_ERROR;
6582 ELSE
6583 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6584 END IF;
6585 end if;
6586 --END IF;
6587
6588 End if;
6589
6590 -- rset the payment tbl as the original count may have been changed becoz of the validation
6591 l_Payment_Tbl := l_orig_payment_tbl;
6592
6593 x_qte_line_rec := l_Qte_Line_Rec;
6594
6595 ASO_QUOTE_LINES_PKG.Update_Row(
6596 p_QUOTE_LINE_ID => l_Qte_Line_Rec.QUOTE_LINE_ID,
6597 p_CREATION_DATE => l_qte_line_rec.creation_date,
6598 p_CREATED_BY => G_USER_ID,
6599 p_LAST_UPDATE_DATE => SYSDATE,
6600 p_LAST_UPDATED_BY => G_USER_ID,
6601 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
6602 p_REQUEST_ID => l_qte_line_rec.REQUEST_ID,
6603 p_PROGRAM_APPLICATION_ID => l_qte_line_rec.PROGRAM_APPLICATION_ID,
6604 p_PROGRAM_ID => l_qte_line_rec.PROGRAM_ID,
6605 p_PROGRAM_UPDATE_DATE => l_qte_line_rec.PROGRAM_UPDATE_DATE,
6606 p_QUOTE_HEADER_ID => l_qte_line_rec.QUOTE_HEADER_ID,
6607 p_ORG_ID => l_qte_line_rec.ORG_ID ,
6608 p_LINE_CATEGORY_CODE => l_qte_line_rec.LINE_CATEGORY_CODE ,
6609 p_ITEM_TYPE_CODE => l_qte_line_rec.ITEM_TYPE_CODE ,
6610 p_LINE_NUMBER => l_qte_line_rec.LINE_NUMBER,
6611 p_START_DATE_ACTIVE => trunc(l_qte_line_rec.START_DATE_ACTIVE),
6612 p_END_DATE_ACTIVE => trunc(l_qte_line_rec.END_DATE_ACTIVE) ,
6613 p_ORDER_LINE_TYPE_ID => l_qte_line_rec.ORDER_LINE_TYPE_ID ,
6614 p_INVOICE_TO_PARTY_SITE_ID
6615 => l_qte_line_rec.INVOICE_TO_PARTY_SITE_ID ,
6616 p_INVOICE_TO_PARTY_ID => l_qte_line_rec.INVOICE_TO_PARTY_ID ,
6617 p_INVOICE_TO_CUST_ACCOUNT_ID => l_qte_line_rec.INVOICE_TO_CUST_ACCOUNT_ID ,
6618 p_ORGANIZATION_ID => l_qte_line_rec.ORGANIZATION_ID,
6619 p_INVENTORY_ITEM_ID => l_qte_line_rec.INVENTORY_ITEM_ID ,
6620 p_QUANTITY => l_qte_line_rec.QUANTITY ,
6621 p_UOM_CODE => l_qte_line_rec.UOM_CODE ,
6622 p_MARKETING_SOURCE_CODE_ID
6623 => l_qte_line_rec.marketing_source_code_id,
6624 p_PRICE_LIST_ID => l_qte_line_rec.PRICE_LIST_ID ,
6625 p_PRICE_LIST_LINE_ID => l_qte_line_rec.PRICE_LIST_LINE_ID,
6626 p_CURRENCY_CODE => l_qte_line_rec.CURRENCY_CODE ,
6627 p_LINE_LIST_PRICE => l_qte_line_rec.LINE_LIST_PRICE ,
6628 p_LINE_ADJUSTED_AMOUNT => l_qte_line_rec.LINE_ADJUSTED_AMOUNT ,
6629 p_LINE_ADJUSTED_PERCENT => l_qte_line_rec.LINE_ADJUSTED_PERCENT ,
6630 p_LINE_QUOTE_PRICE => l_qte_line_rec.LINE_QUOTE_PRICE ,
6631 p_RELATED_ITEM_ID => l_qte_line_rec.RELATED_ITEM_ID ,
6632 p_ITEM_RELATIONSHIP_TYPE => l_qte_line_rec.ITEM_RELATIONSHIP_TYPE ,
6633 p_ACCOUNTING_RULE_ID => l_qte_line_rec.ACCOUNTING_RULE_ID,
6634 p_INVOICING_RULE_ID => l_qte_line_rec.INVOICING_RULE_ID,
6635 p_SPLIT_SHIPMENT_FLAG => l_qte_line_rec.SPLIT_SHIPMENT_FLAG ,
6636 p_BACKORDER_FLAG => l_qte_line_rec.BACKORDER_FLAG ,
6637 p_MINISITE_ID => l_qte_line_rec.MINISITE_ID,
6638 p_SECTION_ID => l_qte_line_rec.SECTION_ID,
6639 p_ATTRIBUTE_CATEGORY => l_qte_line_rec.ATTRIBUTE_CATEGORY,
6640 p_ATTRIBUTE1 => l_qte_line_rec.ATTRIBUTE1,
6641 p_ATTRIBUTE2 => l_qte_line_rec.ATTRIBUTE2,
6642 p_ATTRIBUTE3 => l_qte_line_rec.ATTRIBUTE3,
6643 p_ATTRIBUTE4 => l_qte_line_rec.ATTRIBUTE4,
6644 p_ATTRIBUTE5 => l_qte_line_rec.ATTRIBUTE5,
6645 p_ATTRIBUTE6 => l_qte_line_rec.ATTRIBUTE6,
6646 p_ATTRIBUTE7 => l_qte_line_rec.ATTRIBUTE7,
6647 p_ATTRIBUTE8 => l_qte_line_rec.ATTRIBUTE8,
6648 p_ATTRIBUTE9 => l_qte_line_rec.ATTRIBUTE9,
6649 p_ATTRIBUTE10 => l_qte_line_rec.ATTRIBUTE10,
6650 p_ATTRIBUTE11 => l_qte_line_rec.ATTRIBUTE11,
6651 p_ATTRIBUTE12 => l_qte_line_rec.ATTRIBUTE12,
6652 p_ATTRIBUTE13 => l_qte_line_rec.ATTRIBUTE13,
6653 p_ATTRIBUTE14 => l_qte_line_rec.ATTRIBUTE14,
6654 p_ATTRIBUTE15 => l_qte_line_rec.ATTRIBUTE15,
6655 p_ATTRIBUTE16 => l_qte_line_rec.ATTRIBUTE16,
6656 p_ATTRIBUTE17 => l_qte_line_rec.ATTRIBUTE17,
6657 p_ATTRIBUTE18 => l_qte_line_rec.ATTRIBUTE18,
6658 p_ATTRIBUTE19 => l_qte_line_rec.ATTRIBUTE19,
6659 p_ATTRIBUTE20 => l_qte_line_rec.ATTRIBUTE20,
6660 p_PRICED_PRICE_LIST_ID => l_qte_line_rec.PRICED_PRICE_LIST_ID,
6661 p_AGREEMENT_ID => l_qte_line_rec.AGREEMENT_ID,
6662 p_COMMITMENT_ID => l_qte_line_rec.COMMITMENT_ID,
6663 p_DISPLAY_ARITHMETIC_OPERATOR => l_qte_line_rec.DISPLAY_ARITHMETIC_OPERATOR,
6664 p_LINE_TYPE_SOURCE_FLAG => l_qte_line_rec.LINE_TYPE_SOURCE_FLAG,
6665 p_SERVICE_ITEM_FLAG => l_qte_line_rec.SERVICE_ITEM_FLAG,
6666 p_SERVICEABLE_PRODUCT_FLAG => l_qte_line_rec.SERVICEABLE_PRODUCT_FLAG,
6667 p_INVOICE_TO_CUST_PARTY_ID => l_qte_line_rec.INVOICE_TO_CUST_PARTY_ID,
6668 P_Selling_Price_Change => l_qte_line_rec.Selling_Price_Change,
6669 P_Recalculate_flag => l_qte_line_rec.recalculate_flag,
6670 p_pricing_line_type_indicator => l_qte_line_rec.pricing_line_type_indicator,
6671 p_END_CUSTOMER_PARTY_ID => l_Qte_Line_Rec.END_CUSTOMER_PARTY_ID,
6672 p_END_CUSTOMER_CUST_PARTY_ID => l_Qte_Line_Rec.END_CUSTOMER_CUST_PARTY_ID,
6673 p_END_CUSTOMER_PARTY_SITE_ID => l_Qte_Line_Rec.END_CUSTOMER_PARTY_SITE_ID,
6674 p_END_CUSTOMER_CUST_ACCOUNT_ID => l_Qte_Line_Rec.END_CUSTOMER_CUST_ACCOUNT_ID,
6675 p_OBJECT_VERSION_NUMBER => l_qte_line_rec.object_version_number,
6676 p_CHARGE_PERIODICITY_CODE => l_qte_line_rec.CHARGE_PERIODICITY_CODE, -- Recurring charges Change
6677 p_SHIP_MODEL_COMPLETE_FLAG => l_qte_line_rec.SHIP_MODEL_COMPLETE_FLAG,
6678 p_LINE_PAYNOW_CHARGES => l_qte_line_rec.LINE_PAYNOW_CHARGES,
6679 p_LINE_PAYNOW_TAX => l_qte_line_rec.LINE_PAYNOW_TAX,
6680 p_LINE_PAYNOW_SUBTOTAL => l_qte_line_rec.LINE_PAYNOW_SUBTOTAL,
6681 p_PRICING_QUANTITY_UOM => l_qte_line_rec.PRICING_QUANTITY_UOM,
6682 p_PRICING_QUANTITY => l_qte_line_rec.PRICING_QUANTITY,
6683 p_CONFIG_MODEL_TYPE => l_qte_line_rec.CONFIG_MODEL_TYPE
6684 );
6685
6686 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6687 aso_debug_pub.add('Update_Quote_line - after line.update ', 1, 'N');
6688 end if;
6689 -- line details
6690
6691 -- Start Updating Line_category_code and order_line_type_id of configured lines if Model
6692 -- line Line_category_code and order_line_type_id value has changed Bmishra 02/15/02
6693 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6694 aso_debug_pub.add('Update_Quote_lines - l_Qte_Line_Rec.line_category_code: '||l_Qte_Line_Rec.line_category_code, 1, 'Y');
6695 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');
6696 end if;
6697 IF (l_Qte_Line_Rec.line_category_code <> FND_API.G_MISS_CHAR) OR
6698 (l_Qte_Line_Rec.order_line_type_id <> FND_API.G_MISS_NUM) THEN
6699 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6700 aso_debug_pub.add('Update_Quote_lines - l_Qte_Line_Rec.item_type_code: '||l_Qte_Line_Rec.item_type_code, 1, 'Y');
6701 end if;
6702 IF l_Qte_Line_Rec.item_type_code = FND_API.G_MISS_CHAR THEN
6703 OPEN c_item_type_code;
6704 FETCH c_item_type_code INTO l_item_type_code;
6705 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6706 aso_debug_pub.add('Update_Quote_lines - Cursor c_item_type_code: l_item_type_code: '||l_item_type_code, 1, 'Y');
6707 end if;
6708 CLOSE c_item_type_code;
6709 ELSIF l_Qte_Line_Rec.item_type_code = 'MDL' THEN
6710 l_item_type_code := l_Qte_Line_Rec.item_type_code;
6711 END IF;
6712
6713 IF l_item_type_code = 'MDL' THEN
6714
6715 OPEN c_order_line_type_id(l_Qte_Line_Rec.quote_line_id);
6716 FETCH c_order_line_type_id INTO l_line_category_code, l_order_line_type_id,
6717 l_config_header_id, l_config_revision_num;
6718
6719 if aso_debug_pub.g_debug_flag = 'Y' then
6720
6721 aso_debug_pub.add('c_order_line_type_id: l_line_category_code: '||l_line_category_code);
6722 aso_debug_pub.add('c_order_line_type_id: l_order_line_type_id: '||l_order_line_type_id);
6723 aso_debug_pub.add('c_order_line_type_id: l_config_header_id: '||l_config_header_id);
6724 aso_debug_pub.add('c_order_line_type_id: l_config_revision_num: '||l_config_revision_num);
6725
6726 end if;
6727
6728 CLOSE c_order_line_type_id;
6729
6730 BEGIN
6731
6732 if aso_debug_pub.g_debug_flag = 'Y' then
6733 aso_debug_pub.add('Update_Quote_lines - Updating l_line_category_code of children.');
6734 end if;
6735
6736 if l_config_header_id is not null and l_config_revision_num is not null then
6737
6738 update aso_quote_lines_all
6739 set line_category_code = l_line_category_code,
6740 order_line_type_id = l_order_line_type_id,
6741 last_update_date = sysdate,
6742 last_updated_by = fnd_global.user_id,
6743 last_update_login = fnd_global.conc_login_id
6744 where NVL(line_type_source_flag,'X') <> 'C'
6745 and quote_line_id in( select quote_line_id
6746 from aso_quote_line_details
6747 where ref_line_id is not null
6748 and ref_type_code = 'CONFIG'
6749 and config_header_id = l_config_header_id
6750 and config_revision_num = l_config_revision_num );
6751
6752 end if;
6753
6754
6755 EXCEPTION
6756
6757 WHEN OTHERS THEN
6758 x_return_status := FND_API.G_RET_STS_ERROR;
6759
6760 if aso_debug_pub.g_debug_flag = 'Y' then
6761 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_quote_line: line_category_code
6762 update, inside WHEN OTHERS EXCEPTION');
6763 end if;
6764
6765
6766 END;
6767
6768 END IF;
6769 END IF;
6770
6771 -- End Updating Line_category_code and order_line_type_id of configured lines if Model
6772 -- line Line_category_code and order_line_type_id value has changed 02/15/02
6773
6774
6775
6776 FOR i in 1..l_qte_line_dtl_tbl.count LOOP
6777 l_qte_line_dtl_rec := l_qte_line_dtl_tbl(i);
6778
6779
6780 IF l_qte_line_dtl_tbl(i).operation_code = 'CREATE' THEN
6781
6782
6783 l_qte_line_dtl_rec.quote_line_id := l_qte_line_rec.quote_line_id;
6784 x_qte_line_dtl_tbl(i) := l_qte_line_dtl_rec;
6785 -- BC4J Fix
6786 --x_qte_line_dtl_tbl(i).QUOTE_LINE_DETAIL_ID := null;
6787
6788 ASO_QUOTE_LINE_DETAILS_PKG.Insert_Row(
6789 px_QUOTE_LINE_DETAIL_ID
6790 => x_qte_line_dtl_tbl(i).QUOTE_LINE_DETAIL_ID,
6791 p_CREATION_DATE => SYSDATE,
6792 p_CREATED_BY => G_USER_ID,
6793 p_LAST_UPDATE_DATE => SYSDATE,
6794 p_LAST_UPDATED_BY => G_USER_ID,
6795 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
6796 p_REQUEST_ID => l_qte_line_dtl_rec.REQUEST_ID,
6797 p_PROGRAM_APPLICATION_ID
6798 => l_qte_line_dtl_rec.PROGRAM_APPLICATION_ID,
6799 p_PROGRAM_ID => l_qte_line_dtl_rec.PROGRAM_ID,
6800 p_PROGRAM_UPDATE_DATE => l_qte_line_dtl_rec.PROGRAM_UPDATE_DATE,
6801 p_QUOTE_LINE_ID => l_qte_line_dtl_rec.QUOTE_LINE_ID,
6802 p_CONFIG_HEADER_ID => l_qte_line_dtl_rec.CONFIG_HEADER_ID,
6803 p_CONFIG_REVISION_NUM => l_qte_line_dtl_rec.CONFIG_REVISION_NUM,
6804 p_COMPLETE_CONFIGURATION_FLAG
6805 => l_qte_line_dtl_rec.COMPLETE_CONFIGURATION_FLAG,
6806 p_VALID_CONFIGURATION_FLAG
6807 => l_qte_line_dtl_rec.VALID_CONFIGURATION_FLAG,
6808 p_COMPONENT_CODE => l_qte_line_dtl_rec.COMPONENT_CODE,
6809 p_SERVICE_COTERMINATE_FLAG
6810 => l_qte_line_dtl_rec.SERVICE_COTERMINATE_FLAG,
6811 p_SERVICE_DURATION => l_qte_line_dtl_rec.SERVICE_DURATION,
6812 p_SERVICE_PERIOD => l_qte_line_dtl_rec.SERVICE_PERIOD,
6813 p_SERVICE_UNIT_SELLING_PERCENT
6814 => l_qte_line_dtl_rec.SERVICE_UNIT_SELLING_PERCENT,
6815 p_SERVICE_UNIT_LIST_PERCENT
6816 => l_qte_line_dtl_rec.SERVICE_UNIT_LIST_PERCENT,
6817 p_SERVICE_NUMBER => l_qte_line_dtl_rec.SERVICE_NUMBER,
6818 p_UNIT_PERCENT_BASE_PRICE
6819 => l_qte_line_dtl_rec.UNIT_PERCENT_BASE_PRICE,
6820 p_ATTRIBUTE_CATEGORY => l_qte_line_dtl_rec.ATTRIBUTE_CATEGORY,
6821 p_ATTRIBUTE1 => l_qte_line_dtl_rec.ATTRIBUTE1,
6822 p_ATTRIBUTE2 => l_qte_line_dtl_rec.ATTRIBUTE2,
6823 p_ATTRIBUTE3 => l_qte_line_dtl_rec.ATTRIBUTE3,
6824 p_ATTRIBUTE4 => l_qte_line_dtl_rec.ATTRIBUTE4,
6825 p_ATTRIBUTE5 => l_qte_line_dtl_rec.ATTRIBUTE5,
6826 p_ATTRIBUTE6 => l_qte_line_dtl_rec.ATTRIBUTE6,
6827 p_ATTRIBUTE7 => l_qte_line_dtl_rec.ATTRIBUTE7,
6828 p_ATTRIBUTE8 => l_qte_line_dtl_rec.ATTRIBUTE8,
6829 p_ATTRIBUTE9 => l_qte_line_dtl_rec.ATTRIBUTE9,
6830 p_ATTRIBUTE10 => l_qte_line_dtl_rec.ATTRIBUTE10,
6831 p_ATTRIBUTE11 => l_qte_line_dtl_rec.ATTRIBUTE11,
6832 p_ATTRIBUTE12 => l_qte_line_dtl_rec.ATTRIBUTE12,
6833 p_ATTRIBUTE13 => l_qte_line_dtl_rec.ATTRIBUTE13,
6834 p_ATTRIBUTE14 => l_qte_line_dtl_rec.ATTRIBUTE14,
6835 p_ATTRIBUTE15 => l_qte_line_dtl_rec.ATTRIBUTE15,
6836 p_ATTRIBUTE16 => l_qte_line_dtl_rec.ATTRIBUTE16,
6837 p_ATTRIBUTE17 => l_qte_line_dtl_rec.ATTRIBUTE17,
6838 p_ATTRIBUTE18 => l_qte_line_dtl_rec.ATTRIBUTE18,
6839 p_ATTRIBUTE19 => l_qte_line_dtl_rec.ATTRIBUTE19,
6840 p_ATTRIBUTE20 => l_qte_line_dtl_rec.ATTRIBUTE20,
6841 p_SERVICE_REF_TYPE_CODE => l_qte_line_dtl_rec.SERVICE_REF_TYPE_CODE,
6842 p_SERVICE_REF_ORDER_NUMBER
6843 => l_qte_line_dtl_rec.SERVICE_REF_ORDER_NUMBER,
6844 p_SERVICE_REF_LINE_NUMBER
6845 => l_qte_line_dtl_rec.SERVICE_REF_LINE_NUMBER,
6846 p_SERVICE_REF_LINE_ID => l_qte_line_dtl_rec.SERVICE_REF_LINE_ID,
6847 p_SERVICE_REF_SYSTEM_ID => l_qte_line_dtl_rec.SERVICE_REF_SYSTEM_ID,
6848 p_SERVICE_REF_OPTION_NUMB
6849 => l_qte_line_dtl_rec.SERVICE_REF_OPTION_NUMB,
6850 p_SERVICE_REF_SHIPMENT_NUMB
6851 => l_qte_line_dtl_rec.SERVICE_REF_SHIPMENT_NUMB,
6852 p_RETURN_REF_TYPE => l_qte_line_dtl_rec.RETURN_REF_TYPE,
6853 p_RETURN_REF_HEADER_ID => l_qte_line_dtl_rec.RETURN_REF_HEADER_ID,
6854 p_RETURN_REF_LINE_ID => l_qte_line_dtl_rec.RETURN_REF_LINE_ID,
6855 p_RETURN_ATTRIBUTE1 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE1,
6856 p_RETURN_ATTRIBUTE2 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE2,
6857 p_RETURN_ATTRIBUTE3 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE3,
6858 p_RETURN_ATTRIBUTE4 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE4,
6859 p_RETURN_ATTRIBUTE5 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE5,
6860 p_RETURN_ATTRIBUTE6 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE6,
6861 p_RETURN_ATTRIBUTE7 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE7,
6862 p_RETURN_ATTRIBUTE8 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE8,
6863 p_RETURN_ATTRIBUTE9 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE9,
6864 p_RETURN_ATTRIBUTE10 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE10,
6865 p_RETURN_ATTRIBUTE11 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE11,
6866 p_RETURN_ATTRIBUTE15 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE15,
6867 p_RETURN_ATTRIBUTE12 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE12,
6868 p_RETURN_ATTRIBUTE13 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE13,
6869 p_RETURN_ATTRIBUTE14 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE14,
6870 p_RETURN_REASON_CODE => l_qte_line_dtl_rec.RETURN_REASON_CODE,
6871 p_CONFIG_ITEM_ID => l_qte_line_dtl_rec.CONFIG_ITEM_ID,
6872 p_REF_TYPE_CODE => l_qte_line_dtl_rec.REF_TYPE_CODE,
6873 p_REF_LINE_ID => l_qte_line_dtl_rec.REF_LINE_ID,
6874 p_INSTANCE_ID => l_qte_line_dtl_rec.INSTANCE_ID,
6875 p_BOM_SORT_ORDER => l_qte_line_dtl_rec.BOM_SORT_ORDER,
6876 p_CONFIG_DELTA => l_qte_line_dtl_rec.CONFIG_DELTA,
6877 p_CONFIG_INSTANCE_NAME => l_qte_line_dtl_rec.CONFIG_INSTANCE_NAME,
6878 p_OBJECT_VERSION_NUMBER => l_qte_line_dtl_rec.OBJECT_VERSION_NUMBER,
6879 p_top_model_line_id => l_qte_line_dtl_rec.top_model_line_id,
6880 p_ato_line_id => l_qte_line_dtl_rec.ato_line_id,
6881 p_component_sequence_id => l_qte_line_dtl_rec.component_sequence_id
6882 );
6883
6884 IF l_qte_line_dtl_rec.service_ref_type_code = 'QUOTE' THEN
6885 OPEN C_Line_relation(l_qte_line_dtl_rec.service_ref_line_id, l_qte_line_dtl_rec.quote_line_id);
6886 FETCH C_Line_relation INTO l_line_rel;
6887 IF C_Line_relation%NOTFOUND THEN
6888 l_line_rtlship_rec.operation_code := 'CREATE';
6889 l_line_rtlship_rec.quote_line_id := l_qte_line_dtl_rec.SERVICE_REF_LINE_ID;
6890 l_line_rtlship_rec.related_quote_line_id := x_qte_line_rec.quote_line_id;
6891 l_line_rtlship_rec.relationship_type_code := 'SERVICE';
6892 l_line_rtlship_rec.reciprocal_flag := FND_API.G_FALSE;
6893
6894 ASO_LINE_RLTSHIP_PVT.Create_line_rltship(
6895 P_Api_Version_Number => 1.0,
6896 P_LINE_RLTSHIP_Rec => l_line_rtlship_rec,
6897 X_LINE_RELATIONSHIP_ID => x_relationship_id,
6898 X_Return_Status => x_return_status,
6899 X_Msg_Count => x_msg_count,
6900 X_Msg_Data => x_msg_data
6901 );
6902 END IF;
6903 END IF;
6904
6905 ELSIF l_qte_line_dtl_tbl(i).operation_code = 'UPDATE' THEN
6906
6907 x_qte_line_dtl_tbl(i) := l_qte_line_dtl_rec;
6908
6909 ASO_QUOTE_LINE_DETAILS_PKG.Update_Row(
6910 p_QUOTE_LINE_DETAIL_ID => l_qte_line_dtl_rec.QUOTE_LINE_DETAIL_ID,
6911 p_CREATION_DATE => l_qte_line_dtl_rec.creation_date,
6912 p_CREATED_BY => G_USER_ID,
6913 p_LAST_UPDATE_DATE => SYSDATE,
6914 p_LAST_UPDATED_BY => G_USER_ID,
6915 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
6916 p_REQUEST_ID => l_qte_line_dtl_rec.REQUEST_ID,
6917 p_PROGRAM_APPLICATION_ID
6918 => l_qte_line_dtl_rec.PROGRAM_APPLICATION_ID,
6919 p_PROGRAM_ID => l_qte_line_dtl_rec.PROGRAM_ID,
6920 p_PROGRAM_UPDATE_DATE => l_qte_line_dtl_rec.PROGRAM_UPDATE_DATE,
6921 p_QUOTE_LINE_ID => l_qte_line_dtl_rec.QUOTE_LINE_ID,
6922 p_CONFIG_HEADER_ID => l_qte_line_dtl_rec.CONFIG_HEADER_ID,
6923 p_CONFIG_REVISION_NUM => l_qte_line_dtl_rec.CONFIG_REVISION_NUM,
6924 p_COMPLETE_CONFIGURATION_FLAG
6925 => l_qte_line_dtl_rec.COMPLETE_CONFIGURATION_FLAG,
6926 p_VALID_CONFIGURATION_FLAG
6927 => l_qte_line_dtl_rec.VALID_CONFIGURATION_FLAG,
6928 p_COMPONENT_CODE => l_qte_line_dtl_rec.COMPONENT_CODE,
6929 p_SERVICE_COTERMINATE_FLAG
6930 => l_qte_line_dtl_rec.SERVICE_COTERMINATE_FLAG,
6931 p_SERVICE_DURATION => l_qte_line_dtl_rec.SERVICE_DURATION,
6932 p_SERVICE_PERIOD => l_qte_line_dtl_rec.SERVICE_PERIOD,
6933 p_SERVICE_UNIT_SELLING_PERCENT
6934 => l_qte_line_dtl_rec.SERVICE_UNIT_SELLING_PERCENT,
6935 p_SERVICE_UNIT_LIST_PERCENT
6936 => l_qte_line_dtl_rec.SERVICE_UNIT_LIST_PERCENT,
6937 p_SERVICE_NUMBER => l_qte_line_dtl_rec.SERVICE_NUMBER,
6938 p_UNIT_PERCENT_BASE_PRICE
6939 => l_qte_line_dtl_rec.UNIT_PERCENT_BASE_PRICE,
6940 p_ATTRIBUTE_CATEGORY => l_qte_line_dtl_rec.ATTRIBUTE_CATEGORY,
6941 p_ATTRIBUTE1 => l_qte_line_dtl_rec.ATTRIBUTE1,
6942 p_ATTRIBUTE2 => l_qte_line_dtl_rec.ATTRIBUTE2,
6943 p_ATTRIBUTE3 => l_qte_line_dtl_rec.ATTRIBUTE3,
6944 p_ATTRIBUTE4 => l_qte_line_dtl_rec.ATTRIBUTE4,
6945 p_ATTRIBUTE5 => l_qte_line_dtl_rec.ATTRIBUTE5,
6946 p_ATTRIBUTE6 => l_qte_line_dtl_rec.ATTRIBUTE6,
6947 p_ATTRIBUTE7 => l_qte_line_dtl_rec.ATTRIBUTE7,
6948 p_ATTRIBUTE8 => l_qte_line_dtl_rec.ATTRIBUTE8,
6949 p_ATTRIBUTE9 => l_qte_line_dtl_rec.ATTRIBUTE9,
6950 p_ATTRIBUTE10 => l_qte_line_dtl_rec.ATTRIBUTE10,
6951 p_ATTRIBUTE11 => l_qte_line_dtl_rec.ATTRIBUTE11,
6952 p_ATTRIBUTE12 => l_qte_line_dtl_rec.ATTRIBUTE12,
6953 p_ATTRIBUTE13 => l_qte_line_dtl_rec.ATTRIBUTE13,
6954 p_ATTRIBUTE14 => l_qte_line_dtl_rec.ATTRIBUTE14,
6955 p_ATTRIBUTE15 => l_qte_line_dtl_rec.ATTRIBUTE15,
6956 p_ATTRIBUTE16 => l_qte_line_dtl_rec.ATTRIBUTE16,
6957 p_ATTRIBUTE17 => l_qte_line_dtl_rec.ATTRIBUTE17,
6958 p_ATTRIBUTE18 => l_qte_line_dtl_rec.ATTRIBUTE18,
6959 p_ATTRIBUTE19 => l_qte_line_dtl_rec.ATTRIBUTE19,
6960 p_ATTRIBUTE20 => l_qte_line_dtl_rec.ATTRIBUTE20,
6961 p_SERVICE_REF_TYPE_CODE => l_qte_line_dtl_rec.SERVICE_REF_TYPE_CODE,
6962 p_SERVICE_REF_ORDER_NUMBER
6963 => l_qte_line_dtl_rec.SERVICE_REF_ORDER_NUMBER,
6964 p_SERVICE_REF_LINE_NUMBER
6965 => l_qte_line_dtl_rec.SERVICE_REF_LINE_NUMBER,
6966 p_SERVICE_REF_LINE_ID => l_qte_line_dtl_rec.SERVICE_REF_LINE_ID,
6967 p_SERVICE_REF_SYSTEM_ID => l_qte_line_dtl_rec.SERVICE_REF_SYSTEM_ID,
6968 p_SERVICE_REF_OPTION_NUMB
6969 => l_qte_line_dtl_rec.SERVICE_REF_OPTION_NUMB,
6970 p_SERVICE_REF_SHIPMENT_NUMB
6971 => l_qte_line_dtl_rec.SERVICE_REF_SHIPMENT_NUMB,
6972 p_RETURN_REF_TYPE => l_qte_line_dtl_rec.RETURN_REF_TYPE,
6973 p_RETURN_REF_HEADER_ID=> l_qte_line_dtl_rec.RETURN_REF_HEADER_ID,
6974 p_RETURN_REF_LINE_ID => l_qte_line_dtl_rec.RETURN_REF_LINE_ID,
6975 p_RETURN_ATTRIBUTE1 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE1,
6976 p_RETURN_ATTRIBUTE2 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE2,
6977 p_RETURN_ATTRIBUTE3 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE3,
6978 p_RETURN_ATTRIBUTE4 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE4,
6979 p_RETURN_ATTRIBUTE5 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE5,
6980 p_RETURN_ATTRIBUTE6 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE6,
6981 p_RETURN_ATTRIBUTE7 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE7,
6982 p_RETURN_ATTRIBUTE8 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE8,
6983 p_RETURN_ATTRIBUTE9 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE9,
6984 p_RETURN_ATTRIBUTE10 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE10,
6985 p_RETURN_ATTRIBUTE11 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE11,
6986 p_RETURN_ATTRIBUTE15 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE15,
6987 p_RETURN_ATTRIBUTE12 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE12,
6988 p_RETURN_ATTRIBUTE13 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE13,
6989 p_RETURN_ATTRIBUTE14 => l_qte_line_dtl_rec.RETURN_ATTRIBUTE14,
6990 p_RETURN_REASON_CODE => l_qte_line_dtl_rec.RETURN_REASON_CODE,
6991 p_CONFIG_ITEM_ID => l_qte_line_dtl_rec.CONFIG_ITEM_ID,
6992 p_REF_TYPE_CODE => l_qte_line_dtl_rec.REF_TYPE_CODE,
6993 p_REF_LINE_ID => l_qte_line_dtl_rec.REF_LINE_ID,
6994 p_INSTANCE_ID => l_qte_line_dtl_rec.INSTANCE_ID,
6995 p_BOM_SORT_ORDER => l_qte_line_dtl_rec.BOM_SORT_ORDER,
6996 p_CONFIG_DELTA => l_qte_line_dtl_rec.CONFIG_DELTA,
6997 p_CONFIG_INSTANCE_NAME => l_qte_line_dtl_rec.CONFIG_INSTANCE_NAME,
6998 p_OBJECT_VERSION_NUMBER => l_qte_line_dtl_rec.OBJECT_VERSION_NUMBER,
6999 p_top_model_line_id => l_qte_line_dtl_rec.top_model_line_id,
7000 p_ato_line_id => l_qte_line_dtl_rec.ato_line_id,
7001 p_component_sequence_id => l_qte_line_dtl_rec.component_sequence_id
7002 );
7003
7004 l_db_qte_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows (P_Qte_Line_Id => x_qte_line_rec.quote_line_id );
7005 IF l_db_qte_line_dtl_tbl(1).service_ref_type_code = 'QUOTE' THEN
7006 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);
7007 FETCH C_Line_relation INTO l_line_rel;
7008 IF C_Line_relation%NOTFOUND THEN
7009 l_line_rtlship_rec.operation_code := 'CREATE';
7010 l_line_rtlship_rec.quote_line_id := l_db_qte_line_dtl_tbl(1).SERVICE_REF_LINE_ID;
7011 l_line_rtlship_rec.related_quote_line_id := x_qte_line_rec.quote_line_id;
7012 l_line_rtlship_rec.relationship_type_code := 'SERVICE';
7013 l_line_rtlship_rec.reciprocal_flag := FND_API.G_FALSE;
7014 ASO_LINE_RLTSHIP_PVT.Create_line_rltship(
7015 P_Api_Version_Number => 1.0,
7016 P_LINE_RLTSHIP_Rec => l_line_rtlship_rec,
7017 X_LINE_RELATIONSHIP_ID => x_relationship_id,
7018 X_Return_Status => x_return_status,
7019 X_Msg_Count => x_msg_count,
7020 X_Msg_Data => x_msg_data
7021 );
7022 END IF;
7023 END IF;
7024
7025 ELSIF l_qte_line_dtl_tbl(i).operation_code = 'DELETE' THEN
7026
7027 ASO_QUOTE_LINE_DETAILS_PKG.Delete_Row(
7028 p_QUOTE_LINE_DETAIL_ID => l_qte_line_dtl_rec.quote_line_detail_id);
7029 END IF;
7030
7031 END LOOP;
7032 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7033 aso_debug_pub.add('Update_Quote_line - after line_details.update ', 1, 'Y');
7034 end if;
7035
7036 -- Service line quantity update Bmishra 01/09/02
7037 l_call_update := FND_API.G_FALSE;
7038 IF l_Qte_Line_Rec.inventory_item_id = FND_API.G_MISS_NUM THEN
7039 OPEN c_inventory_item_id;
7040 FETCH c_inventory_item_id INTO l_Qte_Line_Rec.inventory_item_id;
7041 CLOSE c_inventory_item_id;
7042 END IF;
7043 OPEN c_service (l_Qte_Line_Rec.quote_line_id);
7044 FETCH c_service INTO l_service_item_flag, l_serviceable_product_flag;
7045 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7046 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_lines: l_service_item_flag'||l_service_item_flag,1,'N');
7047 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_lines: l_serviceable_product_flag'||l_serviceable_product_flag, 1, 'N');
7048 end if;
7049 IF c_service%FOUND THEN
7050 CLOSE c_service;
7051 IF l_service_item_flag = 'Y' THEN
7052 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7053 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_lines: Inside IF l_service_item_flag = Y',1,'N');
7054 end if;
7055 l_service := FND_API.G_TRUE;
7056 l_call_update := FND_API.G_TRUE;
7057 ELSIF l_serviceable_product_flag = 'Y' THEN
7058 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7059 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_lines: Inside IF l_serviceable_product_flag = Y',
7060 1,'N');
7061 end if;
7062 l_service := FND_API.G_FALSE;
7063 l_call_update := FND_API.G_TRUE;
7064 END IF;
7065
7066 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7067 aso_debug_pub.add('ASO_QUOTE_LINES_PVT: Update_Quote_lines: l_call_update'||l_call_update,1,'N');
7068 end if;
7069 IF l_call_update = FND_API.G_TRUE THEN
7070 ASO_QUOTE_LINES_PVT.service_item_qty_update
7071 (p_qte_line_rec => l_Qte_Line_Rec ,
7072 p_service_item_flag => l_service,
7073 x_return_status => X_return_status
7074 );
7075 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7076 aso_debug_pub.add('Update_Quote_lines - after call to ASO_QUOTE_LINES_PVT.service_item_qty_update '||x_return_status, 1, 'Y');
7077 end if;
7078 END IF;
7079 ELSE
7080 CLOSE c_service;
7081 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7082 aso_debug_pub.add('Update_quote_lines, Item not found in inventry',1,'N');
7083 end if;
7084 END IF;
7085
7086 -- End of Service line quantity update Bmishra 01/09/02
7087
7088
7089 -- sales credits
7090 FOR i in 1..p_Sales_Credit_Tbl.count LOOP
7091
7092 l_Sales_Credit_rec := p_sales_credit_tbl(i);
7093 x_sales_credit_tbl(i) := l_sales_credit_rec;
7094
7095 IF l_sales_credit_rec.operation_code = 'CREATE' THEN
7096 l_sales_credit_rec.quote_line_id := l_qte_line_rec.quote_line_id;
7097 l_sales_credit_rec.quote_header_id := l_qte_line_rec.quote_header_id;
7098 -- BC4J Fix
7099 --x_sales_credit_tbl(i).sales_credit_id := NULL;
7100 ASO_SALES_CREDITS_PKG.Insert_Row(
7101 p_CREATION_DATE => SYSDATE,
7102 p_CREATED_BY => G_USER_ID,
7103 p_LAST_UPDATED_BY => G_USER_ID,
7104 p_LAST_UPDATE_DATE => SYSDATE,
7105 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7106 p_REQUEST_ID => l_sales_CREDIT_rec.REQUEST_ID,
7107 p_PROGRAM_APPLICATION_ID => l_sales_CREDIT_rec.PROGRAM_APPLICATION_ID,
7108 p_PROGRAM_ID => l_sales_CREDIT_rec.PROGRAM_ID,
7109 p_PROGRAM_UPDATE_DATE => l_sales_CREDIT_rec.PROGRAM_UPDATE_DATE,
7110 px_SALES_CREDIT_ID => x_SALES_CREDIT_tbl(i).SALES_CREDIT_ID,
7111 p_QUOTE_HEADER_ID => l_sales_CREDIT_rec.QUOTE_HEADER_ID,
7112 p_QUOTE_LINE_ID => l_sales_CREDIT_rec.QUOTE_LINE_ID,
7113 p_PERCENT => l_sales_CREDIT_rec.PERCENT,
7114 p_RESOURCE_ID => l_sales_CREDIT_rec.RESOURCE_ID,
7115 p_RESOURCE_GROUP_ID => l_sales_CREDIT_rec.RESOURCE_GROUP_ID,
7116 p_EMPLOYEE_PERSON_ID => l_sales_CREDIT_rec.EMPLOYEE_PERSON_ID,
7117 p_SALES_CREDIT_TYPE_ID => l_sales_CREDIT_rec.SALES_CREDIT_TYPE_ID,
7118 -- p_SECURITY_GROUP_ID => l_sales_CREDIT_rec.SECURITY_GROUP_ID,
7119 p_ATTRIBUTE_CATEGORY_CODE => l_sales_CREDIT_rec.ATTRIBUTE_CATEGORY_CODE,
7120 p_ATTRIBUTE1 => l_sales_CREDIT_rec.ATTRIBUTE1,
7121 p_ATTRIBUTE2 => l_sales_CREDIT_rec.ATTRIBUTE2,
7122 p_ATTRIBUTE3 => l_sales_CREDIT_rec.ATTRIBUTE3,
7123 p_ATTRIBUTE4 => l_sales_CREDIT_rec.ATTRIBUTE4,
7124 p_ATTRIBUTE5 => l_sales_CREDIT_rec.ATTRIBUTE5,
7125 p_ATTRIBUTE6 => l_sales_CREDIT_rec.ATTRIBUTE6,
7126 p_ATTRIBUTE7 => l_sales_CREDIT_rec.ATTRIBUTE7,
7127 p_ATTRIBUTE8 => l_sales_CREDIT_rec.ATTRIBUTE8,
7128 p_ATTRIBUTE9 => l_sales_CREDIT_rec.ATTRIBUTE9,
7129 p_ATTRIBUTE10 => l_sales_CREDIT_rec.ATTRIBUTE10,
7130 p_ATTRIBUTE11 => l_sales_CREDIT_rec.ATTRIBUTE11,
7131 p_ATTRIBUTE12 => l_sales_CREDIT_rec.ATTRIBUTE12,
7132 p_ATTRIBUTE13 => l_sales_CREDIT_rec.ATTRIBUTE13,
7133 p_ATTRIBUTE14 => l_sales_CREDIT_rec.ATTRIBUTE14,
7134 p_ATTRIBUTE15 => l_sales_CREDIT_rec.ATTRIBUTE15,
7135 p_ATTRIBUTE16 => l_sales_CREDIT_rec.ATTRIBUTE16,
7136 p_ATTRIBUTE17 => l_sales_CREDIT_rec.ATTRIBUTE17,
7137 p_ATTRIBUTE18 => l_sales_CREDIT_rec.ATTRIBUTE18,
7138 p_ATTRIBUTE19 => l_sales_CREDIT_rec.ATTRIBUTE19,
7139 p_ATTRIBUTE20 => l_sales_CREDIT_rec.ATTRIBUTE20,
7140 p_SYSTEM_ASSIGNED_FLAG => 'N',
7141 p_CREDIT_RULE_ID => l_sales_CREDIT_rec.CREDIT_RULE_ID,
7142 p_OBJECT_VERSION_NUMBER => l_sales_CREDIT_rec.OBJECT_VERSION_NUMBER);
7143
7144 ELSIF l_sales_credit_rec.operation_code = 'UPDATE' THEN
7145 ASO_SALES_CREDITS_PKG.Update_Row(
7146 p_CREATION_DATE => l_sales_CREDIT_rec.creation_date,
7147 p_CREATED_BY => G_USER_ID,
7148 p_LAST_UPDATED_BY => G_USER_ID,
7149 p_LAST_UPDATE_DATE => SYSDATE,
7150 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7151 p_REQUEST_ID => l_sales_CREDIT_rec.REQUEST_ID,
7152 p_PROGRAM_APPLICATION_ID=> l_sales_CREDIT_rec.PROGRAM_APPLICATION_ID,
7153 p_PROGRAM_ID => l_sales_CREDIT_rec.PROGRAM_ID,
7154 p_PROGRAM_UPDATE_DATE => l_sales_CREDIT_rec.PROGRAM_UPDATE_DATE,
7155 p_SALES_CREDIT_ID => l_SALES_CREDIT_rec.SALES_CREDIT_ID,
7156 p_QUOTE_HEADER_ID => l_sales_CREDIT_rec.QUOTE_HEADER_ID,
7157 p_QUOTE_LINE_ID => l_sales_CREDIT_rec.QUOTE_LINE_ID,
7158 p_PERCENT => l_sales_CREDIT_rec.PERCENT,
7159 p_RESOURCE_ID => l_sales_CREDIT_rec.RESOURCE_ID,
7160 p_RESOURCE_GROUP_ID => l_sales_CREDIT_rec.RESOURCE_GROUP_ID,
7161 p_EMPLOYEE_PERSON_ID => l_sales_CREDIT_rec.EMPLOYEE_PERSON_ID,
7162 p_SALES_CREDIT_TYPE_ID => l_sales_CREDIT_rec.SALES_CREDIT_TYPE_ID,
7163 -- p_SECURITY_GROUP_ID => l_sales_CREDIT_rec.SECURITY_GROUP_ID,
7164 p_ATTRIBUTE_CATEGORY_CODE => l_sales_CREDIT_rec.ATTRIBUTE_CATEGORY_CODE,
7165 p_ATTRIBUTE1 => l_sales_CREDIT_rec.ATTRIBUTE1,
7166 p_ATTRIBUTE2 => l_sales_CREDIT_rec.ATTRIBUTE2,
7167 p_ATTRIBUTE3 => l_sales_CREDIT_rec.ATTRIBUTE3,
7168 p_ATTRIBUTE4 => l_sales_CREDIT_rec.ATTRIBUTE4,
7169 p_ATTRIBUTE5 => l_sales_CREDIT_rec.ATTRIBUTE5,
7170 p_ATTRIBUTE6 => l_sales_CREDIT_rec.ATTRIBUTE6,
7171 p_ATTRIBUTE7 => l_sales_CREDIT_rec.ATTRIBUTE7,
7172 p_ATTRIBUTE8 => l_sales_CREDIT_rec.ATTRIBUTE8,
7173 p_ATTRIBUTE9 => l_sales_CREDIT_rec.ATTRIBUTE9,
7174 p_ATTRIBUTE10 => l_sales_CREDIT_rec.ATTRIBUTE10,
7175 p_ATTRIBUTE11 => l_sales_CREDIT_rec.ATTRIBUTE11,
7176 p_ATTRIBUTE12 => l_sales_CREDIT_rec.ATTRIBUTE12,
7177 p_ATTRIBUTE13 => l_sales_CREDIT_rec.ATTRIBUTE13,
7178 p_ATTRIBUTE14 => l_sales_CREDIT_rec.ATTRIBUTE14,
7179 p_ATTRIBUTE15 => l_sales_CREDIT_rec.ATTRIBUTE15,
7180 p_ATTRIBUTE16 => l_sales_CREDIT_rec.ATTRIBUTE16,
7181 p_ATTRIBUTE17 => l_sales_CREDIT_rec.ATTRIBUTE17,
7182 p_ATTRIBUTE18 => l_sales_CREDIT_rec.ATTRIBUTE18,
7183 p_ATTRIBUTE19 => l_sales_CREDIT_rec.ATTRIBUTE19,
7184 p_ATTRIBUTE20 => l_sales_CREDIT_rec.ATTRIBUTE20,
7185 p_SYSTEM_ASSIGNED_FLAG => 'N',
7186 p_CREDIT_RULE_ID => l_sales_CREDIT_rec.CREDIT_RULE_ID,
7187 p_OBJECT_VERSION_NUMBER => l_sales_CREDIT_rec.OBJECT_VERSION_NUMBER);
7188
7189 ELSIF l_sales_credit_rec.operation_code = 'DELETE' THEN
7190 ASO_SALES_CREDITS_PKG.Delete_Row(
7191 p_SALES_CREDIT_ID => l_SALES_CREDIT_rec.SALES_CREDIT_ID);
7192
7193 END IF;
7194 END LOOP;
7195
7196
7197 -- sales credits
7198 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7199 aso_debug_pub.add('Validate_Quote_Percent: BEFORE: l_qte_line_rec.quote_header_id: '||l_qte_line_rec.quote_header_id,1,'N');
7200 aso_debug_pub.add('Validate_Quote_Percent: BEFORE: l_qte_line_rec.quote_line_id: '||l_qte_line_rec.quote_line_id,1,'N');
7201 end if;
7202
7203 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
7204 IF x_sales_credit_tbl.count > 0 THEN
7205 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
7206 x_sales_credit_tbl(1).quote_header_id := l_qte_line_rec.quote_header_id;
7207 END IF;
7208 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
7209 x_sales_credit_tbl(1).quote_line_id := l_qte_line_rec.quote_line_id;
7210 END IF;
7211
7212 ASO_VALIDATE_PVT.Validate_Quote_Percent(
7213 p_init_msg_list => FND_API.G_FALSE,
7214 p_sales_credit_tbl => x_sales_credit_tbl,
7215 x_return_status => x_return_status,
7216 x_msg_count => x_msg_count,
7217 x_msg_data => x_msg_data
7218 );
7219 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
7220 RAISE FND_API.G_EXC_ERROR;
7221 END IF;
7222 END IF;
7223 END IF;
7224
7225 -- end sales credits
7226
7227 -- check for duplicate promotions, see bug 4521799
7228 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7229 aso_debug_pub.add('Before calling Validate_Promotion price_attr_tbl.count: '|| p_price_attributes_tbl.count, 1, 'Y');
7230 END IF;
7231
7232 ASO_VALIDATE_PVT.Validate_Promotion (
7233 P_Api_Version_Number => 1.0,
7234 P_Init_Msg_List => FND_API.G_FALSE,
7235 P_Commit => FND_API.G_FALSE,
7236 p_price_attr_tbl => p_price_attributes_tbl,
7237 x_price_attr_tbl => lx_price_attr_tbl,
7238 x_return_status => x_return_status,
7239 x_msg_count => x_msg_count,
7240 x_msg_data => x_msg_data);
7241
7242 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7243 aso_debug_pub.add('after calling Validate_Promotion ', 1, 'Y');
7244 aso_debug_pub.add('Validate_Promotion Return Status: '||x_return_status, 1, 'Y');
7245 END IF;
7246
7247 if x_return_status <> fnd_api.g_ret_sts_success then
7248 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
7249 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7250 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
7251 RAISE FND_API.G_EXC_ERROR;
7252 ELSE
7253 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7254 END IF;
7255 end if;
7256
7257
7258 -- end of check for duplicate promotions
7259
7260 -- price attributes
7261
7262 FOR i in 1..l_price_attributes_tbl.count LOOP
7263
7264 l_price_attributes_rec := l_price_attributes_tbl(i);
7265 -- l_price_attributes_rec.quote_line_id := p_qte_line_rec.quote_line_id;
7266 x_price_attributes_tbl(i) := l_price_attributes_rec;
7267
7268 IF l_price_attributes_rec.operation_code = 'CREATE' THEN
7269 l_price_attributes_rec.quote_line_id := l_qte_line_rec.quote_line_id;
7270 l_price_attributes_rec.quote_header_id := l_qte_line_rec.quote_header_id;
7271 -- BC4J Fix
7272 -- x_price_attributes_tbl(1).price_attribute_id := NULL;
7273
7274 ASO_PRICE_ATTRIBUTES_PKG.Insert_Row(
7275 px_PRICE_ATTRIBUTE_ID => x_price_attributes_tbl(i).price_attribute_id,
7276 p_CREATION_DATE => SYSDATE,
7277 p_CREATED_BY => G_USER_ID,
7278 p_LAST_UPDATE_DATE => SYSDATE,
7279 p_LAST_UPDATED_BY => G_USER_ID,
7280 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7281 p_REQUEST_ID => l_Qte_Line_Rec.REQUEST_ID,
7282 p_PROGRAM_APPLICATION_ID => l_Qte_Line_Rec.PROGRAM_APPLICATION_ID,
7283 p_PROGRAM_ID => l_Qte_Line_Rec.PROGRAM_ID,
7284 p_PROGRAM_UPDATE_DATE => l_Qte_Line_Rec.PROGRAM_UPDATE_DATE,
7285 p_QUOTE_HEADER_ID => l_Qte_Line_Rec.QUOTE_HEADER_ID,
7286 p_QUOTE_LINE_ID => l_price_attributes_rec.quote_line_id,
7287 p_FLEX_TITLE => l_price_attributes_rec.flex_title,
7288 p_PRICING_CONTEXT => l_price_attributes_rec.pricing_context,
7289 p_PRICING_ATTRIBUTE1 => l_price_attributes_rec.PRICING_ATTRIBUTE1,
7290 p_PRICING_ATTRIBUTE2 => l_price_attributes_rec.PRICING_ATTRIBUTE2,
7291 p_PRICING_ATTRIBUTE3 => l_price_attributes_rec.PRICING_ATTRIBUTE3,
7292 p_PRICING_ATTRIBUTE4 => l_price_attributes_rec.PRICING_ATTRIBUTE4,
7293 p_PRICING_ATTRIBUTE5 => l_price_attributes_rec.PRICING_ATTRIBUTE5,
7294 p_PRICING_ATTRIBUTE6 => l_price_attributes_rec.PRICING_ATTRIBUTE6,
7295 p_PRICING_ATTRIBUTE7 => l_price_attributes_rec.PRICING_ATTRIBUTE7,
7296 p_PRICING_ATTRIBUTE8 => l_price_attributes_rec.PRICING_ATTRIBUTE8,
7297 p_PRICING_ATTRIBUTE9 => l_price_attributes_rec.PRICING_ATTRIBUTE9,
7298 p_PRICING_ATTRIBUTE10 => l_price_attributes_rec.PRICING_ATTRIBUTE10,
7299 p_PRICING_ATTRIBUTE11 => l_price_attributes_rec.PRICING_ATTRIBUTE11,
7300 p_PRICING_ATTRIBUTE12 => l_price_attributes_rec.PRICING_ATTRIBUTE12,
7301 p_PRICING_ATTRIBUTE13 => l_price_attributes_rec.PRICING_ATTRIBUTE13,
7302 p_PRICING_ATTRIBUTE14 => l_price_attributes_rec.PRICING_ATTRIBUTE14,
7303 p_PRICING_ATTRIBUTE15 => l_price_attributes_rec.PRICING_ATTRIBUTE15,
7304 p_PRICING_ATTRIBUTE16 => l_price_attributes_rec.PRICING_ATTRIBUTE16,
7305 p_PRICING_ATTRIBUTE17 => l_price_attributes_rec.PRICING_ATTRIBUTE17,
7306 p_PRICING_ATTRIBUTE18 => l_price_attributes_rec.PRICING_ATTRIBUTE18,
7307 p_PRICING_ATTRIBUTE19 => l_price_attributes_rec.PRICING_ATTRIBUTE19,
7308 p_PRICING_ATTRIBUTE20 => l_price_attributes_rec.PRICING_ATTRIBUTE20,
7309 p_PRICING_ATTRIBUTE21 => l_price_attributes_rec.PRICING_ATTRIBUTE21,
7310 p_PRICING_ATTRIBUTE22 => l_price_attributes_rec.PRICING_ATTRIBUTE22,
7311 p_PRICING_ATTRIBUTE23 => l_price_attributes_rec.PRICING_ATTRIBUTE23,
7312 p_PRICING_ATTRIBUTE24 => l_price_attributes_rec.PRICING_ATTRIBUTE24,
7313 p_PRICING_ATTRIBUTE25 => l_price_attributes_rec.PRICING_ATTRIBUTE25,
7314 p_PRICING_ATTRIBUTE26 => l_price_attributes_rec.PRICING_ATTRIBUTE26,
7315 p_PRICING_ATTRIBUTE27 => l_price_attributes_rec.PRICING_ATTRIBUTE27,
7316 p_PRICING_ATTRIBUTE28 => l_price_attributes_rec.PRICING_ATTRIBUTE28,
7317 p_PRICING_ATTRIBUTE29 => l_price_attributes_rec.PRICING_ATTRIBUTE29,
7318 p_PRICING_ATTRIBUTE30 => l_price_attributes_rec.PRICING_ATTRIBUTE30,
7319 p_PRICING_ATTRIBUTE31 => l_price_attributes_rec.PRICING_ATTRIBUTE31,
7320 p_PRICING_ATTRIBUTE32 => l_price_attributes_rec.PRICING_ATTRIBUTE32,
7321 p_PRICING_ATTRIBUTE33 => l_price_attributes_rec.PRICING_ATTRIBUTE33,
7322 p_PRICING_ATTRIBUTE34 => l_price_attributes_rec.PRICING_ATTRIBUTE34,
7323 p_PRICING_ATTRIBUTE35 => l_price_attributes_rec.PRICING_ATTRIBUTE35,
7324 p_PRICING_ATTRIBUTE36 => l_price_attributes_rec.PRICING_ATTRIBUTE36,
7325 p_PRICING_ATTRIBUTE37 => l_price_attributes_rec.PRICING_ATTRIBUTE37,
7326 p_PRICING_ATTRIBUTE38 => l_price_attributes_rec.PRICING_ATTRIBUTE38,
7327 p_PRICING_ATTRIBUTE39 => l_price_attributes_rec.PRICING_ATTRIBUTE39,
7328 p_PRICING_ATTRIBUTE40 => l_price_attributes_rec.PRICING_ATTRIBUTE40,
7329 p_PRICING_ATTRIBUTE41 => l_price_attributes_rec.PRICING_ATTRIBUTE41,
7330 p_PRICING_ATTRIBUTE42 => l_price_attributes_rec.PRICING_ATTRIBUTE42,
7331 p_PRICING_ATTRIBUTE43 => l_price_attributes_rec.PRICING_ATTRIBUTE43,
7332 p_PRICING_ATTRIBUTE44 => l_price_attributes_rec.PRICING_ATTRIBUTE44,
7333 p_PRICING_ATTRIBUTE45 => l_price_attributes_rec.PRICING_ATTRIBUTE45,
7334 p_PRICING_ATTRIBUTE46 => l_price_attributes_rec.PRICING_ATTRIBUTE46,
7335 p_PRICING_ATTRIBUTE47 => l_price_attributes_rec.PRICING_ATTRIBUTE47,
7336 p_PRICING_ATTRIBUTE48 => l_price_attributes_rec.PRICING_ATTRIBUTE48,
7337 p_PRICING_ATTRIBUTE49 => l_price_attributes_rec.PRICING_ATTRIBUTE49,
7338 p_PRICING_ATTRIBUTE50 => l_price_attributes_rec.PRICING_ATTRIBUTE50,
7339 p_PRICING_ATTRIBUTE51 => l_price_attributes_rec.PRICING_ATTRIBUTE51,
7340 p_PRICING_ATTRIBUTE52 => l_price_attributes_rec.PRICING_ATTRIBUTE52,
7341 p_PRICING_ATTRIBUTE53 => l_price_attributes_rec.PRICING_ATTRIBUTE53,
7342 p_PRICING_ATTRIBUTE54 => l_price_attributes_rec.PRICING_ATTRIBUTE54,
7343 p_PRICING_ATTRIBUTE55 => l_price_attributes_rec.PRICING_ATTRIBUTE55,
7344 p_PRICING_ATTRIBUTE56 => l_price_attributes_rec.PRICING_ATTRIBUTE56,
7345 p_PRICING_ATTRIBUTE57 => l_price_attributes_rec.PRICING_ATTRIBUTE57,
7346 p_PRICING_ATTRIBUTE58 => l_price_attributes_rec.PRICING_ATTRIBUTE58,
7347 p_PRICING_ATTRIBUTE59 => l_price_attributes_rec.PRICING_ATTRIBUTE59,
7348 p_PRICING_ATTRIBUTE60 => l_price_attributes_rec.PRICING_ATTRIBUTE60,
7349 p_PRICING_ATTRIBUTE61 => l_price_attributes_rec.PRICING_ATTRIBUTE61,
7350 p_PRICING_ATTRIBUTE62 => l_price_attributes_rec.PRICING_ATTRIBUTE62,
7351 p_PRICING_ATTRIBUTE63 => l_price_attributes_rec.PRICING_ATTRIBUTE63,
7352 p_PRICING_ATTRIBUTE64 => l_price_attributes_rec.PRICING_ATTRIBUTE64,
7353 p_PRICING_ATTRIBUTE65 => l_price_attributes_rec.PRICING_ATTRIBUTE65,
7354 p_PRICING_ATTRIBUTE66 => l_price_attributes_rec.PRICING_ATTRIBUTE66,
7355 p_PRICING_ATTRIBUTE67 => l_price_attributes_rec.PRICING_ATTRIBUTE67,
7356 p_PRICING_ATTRIBUTE68 => l_price_attributes_rec.PRICING_ATTRIBUTE68,
7357 p_PRICING_ATTRIBUTE69 => l_price_attributes_rec.PRICING_ATTRIBUTE69,
7358 p_PRICING_ATTRIBUTE70 => l_price_attributes_rec.PRICING_ATTRIBUTE70,
7359 p_PRICING_ATTRIBUTE71 => l_price_attributes_rec.PRICING_ATTRIBUTE71,
7360 p_PRICING_ATTRIBUTE72 => l_price_attributes_rec.PRICING_ATTRIBUTE72,
7361 p_PRICING_ATTRIBUTE73 => l_price_attributes_rec.PRICING_ATTRIBUTE73,
7362 p_PRICING_ATTRIBUTE74 => l_price_attributes_rec.PRICING_ATTRIBUTE74,
7363 p_PRICING_ATTRIBUTE75 => l_price_attributes_rec.PRICING_ATTRIBUTE75,
7364 p_PRICING_ATTRIBUTE76 => l_price_attributes_rec.PRICING_ATTRIBUTE76,
7365 p_PRICING_ATTRIBUTE77 => l_price_attributes_rec.PRICING_ATTRIBUTE77,
7366 p_PRICING_ATTRIBUTE78 => l_price_attributes_rec.PRICING_ATTRIBUTE78,
7367 p_PRICING_ATTRIBUTE79 => l_price_attributes_rec.PRICING_ATTRIBUTE79,
7368 p_PRICING_ATTRIBUTE80 => l_price_attributes_rec.PRICING_ATTRIBUTE80,
7369 p_PRICING_ATTRIBUTE81 => l_price_attributes_rec.PRICING_ATTRIBUTE81,
7370 p_PRICING_ATTRIBUTE82 => l_price_attributes_rec.PRICING_ATTRIBUTE82,
7371 p_PRICING_ATTRIBUTE83 => l_price_attributes_rec.PRICING_ATTRIBUTE83,
7372 p_PRICING_ATTRIBUTE84 => l_price_attributes_rec.PRICING_ATTRIBUTE84,
7373 p_PRICING_ATTRIBUTE85 => l_price_attributes_rec.PRICING_ATTRIBUTE85,
7374 p_PRICING_ATTRIBUTE86 => l_price_attributes_rec.PRICING_ATTRIBUTE86,
7375 p_PRICING_ATTRIBUTE87 => l_price_attributes_rec.PRICING_ATTRIBUTE87,
7376 p_PRICING_ATTRIBUTE88 => l_price_attributes_rec.PRICING_ATTRIBUTE88,
7377 p_PRICING_ATTRIBUTE89 => l_price_attributes_rec.PRICING_ATTRIBUTE89,
7378 p_PRICING_ATTRIBUTE90 => l_price_attributes_rec.PRICING_ATTRIBUTE90,
7379 p_PRICING_ATTRIBUTE91 => l_price_attributes_rec.PRICING_ATTRIBUTE91,
7380 p_PRICING_ATTRIBUTE92 => l_price_attributes_rec.PRICING_ATTRIBUTE92,
7381 p_PRICING_ATTRIBUTE93 => l_price_attributes_rec.PRICING_ATTRIBUTE93,
7382 p_PRICING_ATTRIBUTE94 => l_price_attributes_rec.PRICING_ATTRIBUTE94,
7383 p_PRICING_ATTRIBUTE95 => l_price_attributes_rec.PRICING_ATTRIBUTE95,
7384 p_PRICING_ATTRIBUTE96 => l_price_attributes_rec.PRICING_ATTRIBUTE96,
7385 p_PRICING_ATTRIBUTE97 => l_price_attributes_rec.PRICING_ATTRIBUTE97,
7386 p_PRICING_ATTRIBUTE98 => l_price_attributes_rec.PRICING_ATTRIBUTE98,
7387 p_PRICING_ATTRIBUTE99 => l_price_attributes_rec.PRICING_ATTRIBUTE99,
7388 p_PRICING_ATTRIBUTE100 => l_price_attributes_rec.PRICING_ATTRIBUTE100,
7389 p_CONTEXT => l_price_attributes_rec.CONTEXT,
7390 p_ATTRIBUTE1 => l_price_attributes_rec.ATTRIBUTE1,
7391 p_ATTRIBUTE2 => l_price_attributes_rec.ATTRIBUTE2,
7392 p_ATTRIBUTE3 => l_price_attributes_rec.ATTRIBUTE3,
7393 p_ATTRIBUTE4 => l_price_attributes_rec.ATTRIBUTE4,
7394 p_ATTRIBUTE5 => l_price_attributes_rec.ATTRIBUTE5,
7395 p_ATTRIBUTE6 => l_price_attributes_rec.ATTRIBUTE6,
7396 p_ATTRIBUTE7 => l_price_attributes_rec.ATTRIBUTE7,
7397 p_ATTRIBUTE8 => l_price_attributes_rec.ATTRIBUTE8,
7398 p_ATTRIBUTE9 => l_price_attributes_rec.ATTRIBUTE9,
7399 p_ATTRIBUTE10 => l_price_attributes_rec.ATTRIBUTE10,
7400 p_ATTRIBUTE11 => l_price_attributes_rec.ATTRIBUTE11,
7401 p_ATTRIBUTE12 => l_price_attributes_rec.ATTRIBUTE12,
7402 p_ATTRIBUTE13 => l_price_attributes_rec.ATTRIBUTE13,
7403 p_ATTRIBUTE14 => l_price_attributes_rec.ATTRIBUTE14,
7404 p_ATTRIBUTE15 => l_price_attributes_rec.ATTRIBUTE15,
7405 p_ATTRIBUTE16 => l_price_attributes_rec.ATTRIBUTE16,
7406 p_ATTRIBUTE17 => l_price_attributes_rec.ATTRIBUTE17,
7407 p_ATTRIBUTE18 => l_price_attributes_rec.ATTRIBUTE18,
7408 p_ATTRIBUTE19 => l_price_attributes_rec.ATTRIBUTE19,
7409 p_ATTRIBUTE20 => l_price_attributes_rec.ATTRIBUTE20,
7410 p_OBJECT_VERSION_NUMBER => l_price_attributes_rec.OBJECT_VERSION_NUMBER
7411 );
7412
7413
7414 ELSIF l_price_attributes_rec.operation_code = 'UPDATE' THEN
7415
7416 ASO_PRICE_ATTRIBUTES_PKG.Update_Row(
7417 p_PRICE_ATTRIBUTE_ID => l_price_attributes_rec.price_attribute_id,
7418 p_CREATION_DATE => l_price_attributes_rec.creation_date,
7419 p_CREATED_BY => G_USER_ID,
7420 p_LAST_UPDATE_DATE => SYSDATE,
7421 p_LAST_UPDATED_BY => G_USER_ID,
7422 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7423 p_REQUEST_ID => l_Qte_Line_Rec.REQUEST_ID,
7424 p_PROGRAM_APPLICATION_ID => l_Qte_Line_Rec.PROGRAM_APPLICATION_ID,
7425 p_PROGRAM_ID => l_Qte_Line_Rec.PROGRAM_ID,
7426 p_PROGRAM_UPDATE_DATE => l_Qte_Line_Rec.PROGRAM_UPDATE_DATE,
7427 p_QUOTE_HEADER_ID => l_Qte_Line_Rec.QUOTE_HEADER_ID,
7428 p_QUOTE_LINE_ID => l_price_attributes_rec.quote_line_id,
7429 p_FLEX_TITLE => l_price_attributes_rec.flex_title,
7430 p_PRICING_CONTEXT => l_price_attributes_rec.pricing_context,
7431 p_PRICING_ATTRIBUTE1 => l_price_attributes_rec.PRICING_ATTRIBUTE1,
7432 p_PRICING_ATTRIBUTE2 => l_price_attributes_rec.PRICING_ATTRIBUTE2,
7433 p_PRICING_ATTRIBUTE3 => l_price_attributes_rec.PRICING_ATTRIBUTE3,
7434 p_PRICING_ATTRIBUTE4 => l_price_attributes_rec.PRICING_ATTRIBUTE4,
7435 p_PRICING_ATTRIBUTE5 => l_price_attributes_rec.PRICING_ATTRIBUTE5,
7436 p_PRICING_ATTRIBUTE6 => l_price_attributes_rec.PRICING_ATTRIBUTE6,
7437 p_PRICING_ATTRIBUTE7 => l_price_attributes_rec.PRICING_ATTRIBUTE7,
7438 p_PRICING_ATTRIBUTE8 => l_price_attributes_rec.PRICING_ATTRIBUTE8,
7439 p_PRICING_ATTRIBUTE9 => l_price_attributes_rec.PRICING_ATTRIBUTE9,
7440 p_PRICING_ATTRIBUTE10 => l_price_attributes_rec.PRICING_ATTRIBUTE10,
7441 p_PRICING_ATTRIBUTE11 => l_price_attributes_rec.PRICING_ATTRIBUTE11,
7442 p_PRICING_ATTRIBUTE12 => l_price_attributes_rec.PRICING_ATTRIBUTE12,
7443 p_PRICING_ATTRIBUTE13 => l_price_attributes_rec.PRICING_ATTRIBUTE13,
7444 p_PRICING_ATTRIBUTE14 => l_price_attributes_rec.PRICING_ATTRIBUTE14,
7445 p_PRICING_ATTRIBUTE15 => l_price_attributes_rec.PRICING_ATTRIBUTE15,
7446 p_PRICING_ATTRIBUTE16 => l_price_attributes_rec.PRICING_ATTRIBUTE16,
7447 p_PRICING_ATTRIBUTE17 => l_price_attributes_rec.PRICING_ATTRIBUTE17,
7448 p_PRICING_ATTRIBUTE18 => l_price_attributes_rec.PRICING_ATTRIBUTE18,
7449 p_PRICING_ATTRIBUTE19 => l_price_attributes_rec.PRICING_ATTRIBUTE19,
7450 p_PRICING_ATTRIBUTE20 => l_price_attributes_rec.PRICING_ATTRIBUTE20,
7451 p_PRICING_ATTRIBUTE21 => l_price_attributes_rec.PRICING_ATTRIBUTE21,
7452 p_PRICING_ATTRIBUTE22 => l_price_attributes_rec.PRICING_ATTRIBUTE22,
7453 p_PRICING_ATTRIBUTE23 => l_price_attributes_rec.PRICING_ATTRIBUTE23,
7454 p_PRICING_ATTRIBUTE24 => l_price_attributes_rec.PRICING_ATTRIBUTE24,
7455 p_PRICING_ATTRIBUTE25 => l_price_attributes_rec.PRICING_ATTRIBUTE25,
7456 p_PRICING_ATTRIBUTE26 => l_price_attributes_rec.PRICING_ATTRIBUTE26,
7457 p_PRICING_ATTRIBUTE27 => l_price_attributes_rec.PRICING_ATTRIBUTE27,
7458 p_PRICING_ATTRIBUTE28 => l_price_attributes_rec.PRICING_ATTRIBUTE28,
7459 p_PRICING_ATTRIBUTE29 => l_price_attributes_rec.PRICING_ATTRIBUTE29,
7460 p_PRICING_ATTRIBUTE30 => l_price_attributes_rec.PRICING_ATTRIBUTE30,
7461 p_PRICING_ATTRIBUTE31 => l_price_attributes_rec.PRICING_ATTRIBUTE31,
7462 p_PRICING_ATTRIBUTE32 => l_price_attributes_rec.PRICING_ATTRIBUTE32,
7463 p_PRICING_ATTRIBUTE33 => l_price_attributes_rec.PRICING_ATTRIBUTE33,
7464 p_PRICING_ATTRIBUTE34 => l_price_attributes_rec.PRICING_ATTRIBUTE34,
7465 p_PRICING_ATTRIBUTE35 => l_price_attributes_rec.PRICING_ATTRIBUTE35,
7466 p_PRICING_ATTRIBUTE36 => l_price_attributes_rec.PRICING_ATTRIBUTE36,
7467 p_PRICING_ATTRIBUTE37 => l_price_attributes_rec.PRICING_ATTRIBUTE37,
7468 p_PRICING_ATTRIBUTE38 => l_price_attributes_rec.PRICING_ATTRIBUTE38,
7469 p_PRICING_ATTRIBUTE39 => l_price_attributes_rec.PRICING_ATTRIBUTE39,
7470 p_PRICING_ATTRIBUTE40 => l_price_attributes_rec.PRICING_ATTRIBUTE40,
7471 p_PRICING_ATTRIBUTE41 => l_price_attributes_rec.PRICING_ATTRIBUTE41,
7472 p_PRICING_ATTRIBUTE42 => l_price_attributes_rec.PRICING_ATTRIBUTE42,
7473 p_PRICING_ATTRIBUTE43 => l_price_attributes_rec.PRICING_ATTRIBUTE43,
7474 p_PRICING_ATTRIBUTE44 => l_price_attributes_rec.PRICING_ATTRIBUTE44,
7475 p_PRICING_ATTRIBUTE45 => l_price_attributes_rec.PRICING_ATTRIBUTE45,
7476 p_PRICING_ATTRIBUTE46 => l_price_attributes_rec.PRICING_ATTRIBUTE46,
7477 p_PRICING_ATTRIBUTE47 => l_price_attributes_rec.PRICING_ATTRIBUTE47,
7478 p_PRICING_ATTRIBUTE48 => l_price_attributes_rec.PRICING_ATTRIBUTE48,
7479 p_PRICING_ATTRIBUTE49 => l_price_attributes_rec.PRICING_ATTRIBUTE49,
7480 p_PRICING_ATTRIBUTE50 => l_price_attributes_rec.PRICING_ATTRIBUTE50,
7481 p_PRICING_ATTRIBUTE51 => l_price_attributes_rec.PRICING_ATTRIBUTE51,
7482 p_PRICING_ATTRIBUTE52 => l_price_attributes_rec.PRICING_ATTRIBUTE52,
7483 p_PRICING_ATTRIBUTE53 => l_price_attributes_rec.PRICING_ATTRIBUTE53,
7484 p_PRICING_ATTRIBUTE54 => l_price_attributes_rec.PRICING_ATTRIBUTE54,
7485 p_PRICING_ATTRIBUTE55 => l_price_attributes_rec.PRICING_ATTRIBUTE55,
7486 p_PRICING_ATTRIBUTE56 => l_price_attributes_rec.PRICING_ATTRIBUTE56,
7487 p_PRICING_ATTRIBUTE57 => l_price_attributes_rec.PRICING_ATTRIBUTE57,
7488 p_PRICING_ATTRIBUTE58 => l_price_attributes_rec.PRICING_ATTRIBUTE58,
7489 p_PRICING_ATTRIBUTE59 => l_price_attributes_rec.PRICING_ATTRIBUTE59,
7490 p_PRICING_ATTRIBUTE60 => l_price_attributes_rec.PRICING_ATTRIBUTE60,
7491 p_PRICING_ATTRIBUTE61 => l_price_attributes_rec.PRICING_ATTRIBUTE61,
7492 p_PRICING_ATTRIBUTE62 => l_price_attributes_rec.PRICING_ATTRIBUTE62,
7493 p_PRICING_ATTRIBUTE63 => l_price_attributes_rec.PRICING_ATTRIBUTE63,
7494 p_PRICING_ATTRIBUTE64 => l_price_attributes_rec.PRICING_ATTRIBUTE64,
7495 p_PRICING_ATTRIBUTE65 => l_price_attributes_rec.PRICING_ATTRIBUTE65,
7496 p_PRICING_ATTRIBUTE66 => l_price_attributes_rec.PRICING_ATTRIBUTE66,
7497 p_PRICING_ATTRIBUTE67 => l_price_attributes_rec.PRICING_ATTRIBUTE67,
7498 p_PRICING_ATTRIBUTE68 => l_price_attributes_rec.PRICING_ATTRIBUTE68,
7499 p_PRICING_ATTRIBUTE69 => l_price_attributes_rec.PRICING_ATTRIBUTE69,
7500 p_PRICING_ATTRIBUTE70 => l_price_attributes_rec.PRICING_ATTRIBUTE70,
7501 p_PRICING_ATTRIBUTE71 => l_price_attributes_rec.PRICING_ATTRIBUTE71,
7502 p_PRICING_ATTRIBUTE72 => l_price_attributes_rec.PRICING_ATTRIBUTE72,
7503 p_PRICING_ATTRIBUTE73 => l_price_attributes_rec.PRICING_ATTRIBUTE73,
7504 p_PRICING_ATTRIBUTE74 => l_price_attributes_rec.PRICING_ATTRIBUTE74,
7505 p_PRICING_ATTRIBUTE75 => l_price_attributes_rec.PRICING_ATTRIBUTE75,
7506 p_PRICING_ATTRIBUTE76 => l_price_attributes_rec.PRICING_ATTRIBUTE76,
7507 p_PRICING_ATTRIBUTE77 => l_price_attributes_rec.PRICING_ATTRIBUTE77,
7508 p_PRICING_ATTRIBUTE78 => l_price_attributes_rec.PRICING_ATTRIBUTE78,
7509 p_PRICING_ATTRIBUTE79 => l_price_attributes_rec.PRICING_ATTRIBUTE79,
7510 p_PRICING_ATTRIBUTE80 => l_price_attributes_rec.PRICING_ATTRIBUTE80,
7511 p_PRICING_ATTRIBUTE81 => l_price_attributes_rec.PRICING_ATTRIBUTE81,
7512 p_PRICING_ATTRIBUTE82 => l_price_attributes_rec.PRICING_ATTRIBUTE82,
7513 p_PRICING_ATTRIBUTE83 => l_price_attributes_rec.PRICING_ATTRIBUTE83,
7514 p_PRICING_ATTRIBUTE84 => l_price_attributes_rec.PRICING_ATTRIBUTE84,
7515 p_PRICING_ATTRIBUTE85 => l_price_attributes_rec.PRICING_ATTRIBUTE85,
7516 p_PRICING_ATTRIBUTE86 => l_price_attributes_rec.PRICING_ATTRIBUTE86,
7517 p_PRICING_ATTRIBUTE87 => l_price_attributes_rec.PRICING_ATTRIBUTE87,
7518 p_PRICING_ATTRIBUTE88 => l_price_attributes_rec.PRICING_ATTRIBUTE88,
7519 p_PRICING_ATTRIBUTE89 => l_price_attributes_rec.PRICING_ATTRIBUTE89,
7520 p_PRICING_ATTRIBUTE90 => l_price_attributes_rec.PRICING_ATTRIBUTE90,
7521 p_PRICING_ATTRIBUTE91 => l_price_attributes_rec.PRICING_ATTRIBUTE91,
7522 p_PRICING_ATTRIBUTE92 => l_price_attributes_rec.PRICING_ATTRIBUTE92,
7523 p_PRICING_ATTRIBUTE93 => l_price_attributes_rec.PRICING_ATTRIBUTE93,
7524 p_PRICING_ATTRIBUTE94 => l_price_attributes_rec.PRICING_ATTRIBUTE94,
7525 p_PRICING_ATTRIBUTE95 => l_price_attributes_rec.PRICING_ATTRIBUTE95,
7526 p_PRICING_ATTRIBUTE96 => l_price_attributes_rec.PRICING_ATTRIBUTE96,
7527 p_PRICING_ATTRIBUTE97 => l_price_attributes_rec.PRICING_ATTRIBUTE97,
7528 p_PRICING_ATTRIBUTE98 => l_price_attributes_rec.PRICING_ATTRIBUTE98,
7529 p_PRICING_ATTRIBUTE99 => l_price_attributes_rec.PRICING_ATTRIBUTE99,
7530 p_PRICING_ATTRIBUTE100 => l_price_attributes_rec.PRICING_ATTRIBUTE100,
7531 p_CONTEXT => l_price_attributes_rec.CONTEXT,
7532 p_ATTRIBUTE1 => l_price_attributes_rec.ATTRIBUTE1,
7533 p_ATTRIBUTE2 => l_price_attributes_rec.ATTRIBUTE2,
7534 p_ATTRIBUTE3 => l_price_attributes_rec.ATTRIBUTE3,
7535 p_ATTRIBUTE4 => l_price_attributes_rec.ATTRIBUTE4,
7536 p_ATTRIBUTE5 => l_price_attributes_rec.ATTRIBUTE5,
7537 p_ATTRIBUTE6 => l_price_attributes_rec.ATTRIBUTE6,
7538 p_ATTRIBUTE7 => l_price_attributes_rec.ATTRIBUTE7,
7539 p_ATTRIBUTE8 => l_price_attributes_rec.ATTRIBUTE8,
7540 p_ATTRIBUTE9 => l_price_attributes_rec.ATTRIBUTE9,
7541 p_ATTRIBUTE10 => l_price_attributes_rec.ATTRIBUTE10,
7542 p_ATTRIBUTE11 => l_price_attributes_rec.ATTRIBUTE11,
7543 p_ATTRIBUTE12 => l_price_attributes_rec.ATTRIBUTE12,
7544 p_ATTRIBUTE13 => l_price_attributes_rec.ATTRIBUTE13,
7545 p_ATTRIBUTE14 => l_price_attributes_rec.ATTRIBUTE14,
7546 p_ATTRIBUTE15 => l_price_attributes_rec.ATTRIBUTE15,
7547 p_ATTRIBUTE16 => l_price_attributes_rec.ATTRIBUTE16,
7548 p_ATTRIBUTE17 => l_price_attributes_rec.ATTRIBUTE17,
7549 p_ATTRIBUTE18 => l_price_attributes_rec.ATTRIBUTE18,
7550 p_ATTRIBUTE19 => l_price_attributes_rec.ATTRIBUTE19,
7551 p_ATTRIBUTE20 => l_price_attributes_rec.ATTRIBUTE20,
7552 p_OBJECT_VERSION_NUMBER => l_price_attributes_rec.OBJECT_VERSION_NUMBER
7553 );
7554
7555 END IF;
7556
7557 END LOOP;
7558
7559 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7560 aso_debug_pub.add('Update_Quote_line - after line_price_attribs.update ', 1, 'N');
7561 end if;
7562
7563
7564 -- aso_shipments_tbl
7565
7566
7567 FOR i IN 1..l_Shipment_Tbl.count LOOP
7568
7569 l_shipment_rec := l_shipment_tbl(i);
7570 x_shipment_tbl(i) := l_shipment_rec;
7571
7572 IF l_shipment_rec.operation_code = 'CREATE' THEN
7573
7574 l_shipment_rec.quote_header_id := l_qte_line_rec.quote_header_id;
7575 l_shipment_rec.quote_line_id := l_qte_line_rec.quote_line_id;
7576 -- BC4J Fix
7577 x_shipment_tbl(i).shipment_id := l_shipment_rec.shipment_id;
7578 --x_shipment_tbl(i).shipment_id := null;
7579 l_shipment_rec.ship_method_code_from := l_shipment_rec.ship_method_code;
7580 l_shipment_rec.freight_terms_code_from := l_shipment_rec.freight_terms_code;
7581 x_shipment_tbl(i).ship_method_code_from := l_shipment_rec.ship_method_code_from;
7582 x_shipment_tbl(i).freight_terms_code_from := l_shipment_rec.freight_terms_code_from;
7583
7584 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7585 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');
7586 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');
7587 END IF;
7588
7589 ASO_SHIPMENTS_PKG.Insert_Row(
7590 px_SHIPMENT_ID => x_shipment_tbl(i).SHIPMENT_ID,
7591 p_CREATION_DATE => SYSDATE,
7592 p_CREATED_BY => G_USER_ID,
7593 p_LAST_UPDATE_DATE => SYSDATE,
7594 p_LAST_UPDATED_BY => G_USER_ID,
7595 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7596 p_REQUEST_ID => l_shipment_rec.REQUEST_ID,
7597 p_PROGRAM_APPLICATION_ID => l_shipment_rec.PROGRAM_APPLICATION_ID,
7598 p_PROGRAM_ID => l_shipment_rec.PROGRAM_ID,
7599 p_PROGRAM_UPDATE_DATE => l_shipment_rec.PROGRAM_UPDATE_DATE,
7600 p_QUOTE_HEADER_ID => l_shipment_rec.QUOTE_HEADER_ID,
7601 p_QUOTE_LINE_ID => l_shipment_rec.QUOTE_LINE_ID,
7602 p_PROMISE_DATE => l_shipment_rec.PROMISE_DATE,
7603 p_REQUEST_DATE => l_shipment_rec.REQUEST_DATE,
7604 p_SCHEDULE_SHIP_DATE => l_shipment_rec.SCHEDULE_SHIP_DATE,
7605 p_SHIP_TO_PARTY_SITE_ID => l_shipment_rec.SHIP_TO_PARTY_SITE_ID,
7606 p_SHIP_TO_PARTY_ID => l_shipment_rec.SHIP_TO_PARTY_ID,
7607 p_SHIP_TO_CUST_ACCOUNT_ID => l_shipment_rec.SHIP_TO_CUST_ACCOUNT_ID ,
7608 p_SHIP_PARTIAL_FLAG => l_shipment_rec.SHIP_PARTIAL_FLAG,
7609 p_SHIP_SET_ID => l_shipment_rec.SHIP_SET_ID,
7610 p_SHIP_METHOD_CODE => l_shipment_rec.SHIP_METHOD_CODE,
7611 p_FREIGHT_TERMS_CODE=> l_shipment_rec.FREIGHT_TERMS_CODE,
7612 p_FREIGHT_CARRIER_CODE => l_shipment_rec.FREIGHT_CARRIER_CODE,
7613 p_FOB_CODE => l_shipment_rec.FOB_CODE,
7614 p_SHIPPING_INSTRUCTIONS => l_shipment_rec.SHIPPING_INSTRUCTIONS,
7615 p_PACKING_INSTRUCTIONS => l_shipment_rec.PACKING_INSTRUCTIONS,
7616 p_SHIPMENT_PRIORITY_CODE => l_shipment_rec.SHIPMENT_PRIORITY_CODE,
7617 p_SHIP_QUOTE_PRICE => l_shipment_rec.SHIP_QUOTE_PRICE,
7618 p_QUANTITY => l_shipment_rec.QUANTITY,
7619 p_RESERVED_QUANTITY => l_shipment_rec.RESERVED_QUANTITY,
7620 p_RESERVATION_ID => l_shipment_rec.RESERVATION_ID,
7621 p_ORDER_LINE_ID => l_shipment_rec.ORDER_LINE_ID,
7622 p_ATTRIBUTE_CATEGORY => l_shipment_rec.ATTRIBUTE_CATEGORY,
7623 p_ATTRIBUTE1 => l_shipment_rec.ATTRIBUTE1,
7624 p_ATTRIBUTE2 => l_shipment_rec.ATTRIBUTE2,
7625 p_ATTRIBUTE3 => l_shipment_rec.ATTRIBUTE3,
7626 p_ATTRIBUTE4 => l_shipment_rec.ATTRIBUTE4,
7627 p_ATTRIBUTE5 => l_shipment_rec.ATTRIBUTE5,
7628 p_ATTRIBUTE6 => l_shipment_rec.ATTRIBUTE6,
7629 p_ATTRIBUTE7 => l_shipment_rec.ATTRIBUTE7,
7630 p_ATTRIBUTE8 => l_shipment_rec.ATTRIBUTE8,
7631 p_ATTRIBUTE9 => l_shipment_rec.ATTRIBUTE9,
7632 p_ATTRIBUTE10 => l_shipment_rec.ATTRIBUTE10,
7633 p_ATTRIBUTE11 => l_shipment_rec.ATTRIBUTE11,
7634 p_ATTRIBUTE12 => l_shipment_rec.ATTRIBUTE12,
7635 p_ATTRIBUTE13 => l_shipment_rec.ATTRIBUTE13,
7636 p_ATTRIBUTE14 => l_shipment_rec.ATTRIBUTE14,
7637 p_ATTRIBUTE15 => l_shipment_rec.ATTRIBUTE15,
7638 p_ATTRIBUTE16 => l_shipment_rec.ATTRIBUTE16,
7639 p_ATTRIBUTE17 => l_shipment_rec.ATTRIBUTE17,
7640 p_ATTRIBUTE18 => l_shipment_rec.ATTRIBUTE18,
7641 p_ATTRIBUTE19 => l_shipment_rec.ATTRIBUTE19,
7642 p_ATTRIBUTE20 => l_shipment_rec.ATTRIBUTE20,
7643 p_SHIP_FROM_ORG_ID => l_shipment_rec.SHIP_FROM_ORG_ID,
7644 p_SHIP_TO_CUST_PARTY_ID => l_shipment_rec.SHIP_TO_CUST_PARTY_ID,
7645 p_SHIP_METHOD_CODE_FROM => l_shipment_rec.SHIP_METHOD_CODE_FROM,
7646 p_FREIGHT_TERMS_CODE_FROM => l_shipment_rec.FREIGHT_TERMS_CODE_FROM,
7647 p_OBJECT_VERSION_NUMBER => l_shipment_rec.OBJECT_VERSION_NUMBER,
7648 p_REQUEST_DATE_TYPE => l_shipment_rec.REQUEST_DATE_TYPE,
7649 p_DEMAND_CLASS_CODE => l_shipment_rec.DEMAND_CLASS_CODE
7650 );
7651
7652 FOR j IN 1..l_Freight_Charge_Tbl.count LOOP
7653 IF l_freight_charge_tbl(j).shipment_index = i THEN
7654 l_freight_charge_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
7655 END IF;
7656
7657 END LOOP;
7658
7659 FOR j in 1..l_Tax_Detail_Tbl.count LOOP
7660 IF l_tax_detail_tbl(j).shipment_index = i THEN
7661 l_tax_detail_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
7662 END IF;
7663
7664 FOR j in 1..l_line_attribs_ext_Tbl.count LOOP
7665 IF l_line_attribs_ext_tbl(j).shipment_index = i THEN
7666 l_line_attribs_ext_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
7667 END IF;
7668
7669 END LOOP;
7670
7671 FOR j in 1..l_Payment_Tbl.count LOOP
7672 IF l_payment_tbl(j).shipment_index = i THEN
7673 l_payment_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
7674 END IF;
7675
7676 END LOOP;
7677
7678 FOR j in 1..P_Price_Adj_Tbl.count LOOP
7679 IF l_Price_Adj_tbl(j).shipment_index = i THEN
7680 l_Price_Adj_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
7681 END IF;
7682
7683 END LOOP;
7684
7685 FOR j in 1..P_Quote_Party_Tbl.count LOOP
7686 IF l_quote_party_tbl(j).shipment_index = i THEN
7687 l_quote_party_tbl(j).quote_shipment_id := x_shipment_tbl(i).shipment_id;
7688 END IF;
7689 END LOOP;
7690
7691 END LOOP;
7692
7693 ELSIF l_shipment_rec.operation_code = 'UPDATE' THEN
7694
7695 IF l_shipment_rec.ship_method_code = fnd_api.g_miss_char THEN
7696
7697 FOR l_ship_db_rec IN c_db_ship_freight_terms(l_shipment_rec.shipment_id) LOOP
7698
7699 IF l_ship_db_rec.ship_method_code_from is null THEN
7700 l_shipment_rec.ship_method_code_from := l_ship_db_rec.ship_method_code;
7701 END IF;
7702
7703 END LOOP;
7704
7705 ELSE
7706 l_shipment_rec.ship_method_code_from := l_shipment_rec.ship_method_code;
7707
7708 END IF;
7709
7710 IF l_shipment_rec.freight_terms_code = fnd_api.g_miss_char THEN
7711
7712 FOR l_ship_db_rec IN c_db_ship_freight_terms(l_shipment_rec.shipment_id) LOOP
7713
7714 IF l_ship_db_rec.freight_terms_code_from is null THEN
7715 l_shipment_rec.freight_terms_code_from := l_ship_db_rec.freight_terms_code;
7716 END IF;
7717
7718 END LOOP;
7719
7720 ELSE
7721 l_shipment_rec.freight_terms_code_from := l_shipment_rec.freight_terms_code;
7722
7723 END IF;
7724
7725
7726 ASO_SHIPMENTS_PKG.Update_Row(
7727 p_SHIPMENT_ID => l_shipment_tbl(i).SHIPMENT_ID,
7728 p_CREATION_DATE => l_shipment_tbl(i).creation_date,
7729 p_CREATED_BY => G_USER_ID,
7730 p_LAST_UPDATE_DATE => SYSDATE,
7731 p_LAST_UPDATED_BY => G_USER_ID,
7732 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7733 p_REQUEST_ID => l_shipment_rec.REQUEST_ID,
7734 p_PROGRAM_APPLICATION_ID => l_shipment_rec.PROGRAM_APPLICATION_ID,
7735 p_PROGRAM_ID => l_shipment_rec.PROGRAM_ID,
7736 p_PROGRAM_UPDATE_DATE => l_shipment_rec.PROGRAM_UPDATE_DATE,
7737 p_QUOTE_HEADER_ID => l_shipment_rec.QUOTE_HEADER_ID,
7738 p_QUOTE_LINE_ID => l_shipment_rec.QUOTE_LINE_ID,
7739 p_PROMISE_DATE => l_shipment_rec.PROMISE_DATE,
7740 p_REQUEST_DATE => l_shipment_rec.REQUEST_DATE,
7741 p_SCHEDULE_SHIP_DATE=> l_shipment_rec.SCHEDULE_SHIP_DATE,
7742 p_SHIP_TO_PARTY_SITE_ID => l_shipment_rec.SHIP_TO_PARTY_SITE_ID,
7743 p_SHIP_TO_PARTY_ID => l_shipment_rec.SHIP_TO_PARTY_ID,
7744 p_SHIP_TO_CUST_ACCOUNT_ID => l_shipment_rec.SHIP_TO_CUST_ACCOUNT_ID ,
7745 p_SHIP_PARTIAL_FLAG => l_shipment_rec.SHIP_PARTIAL_FLAG,
7746 p_SHIP_SET_ID => l_shipment_rec.SHIP_SET_ID,
7747 p_SHIP_METHOD_CODE => l_shipment_rec.SHIP_METHOD_CODE,
7748 p_FREIGHT_TERMS_CODE=> l_shipment_rec.FREIGHT_TERMS_CODE,
7749 p_FREIGHT_CARRIER_CODE => l_shipment_rec.FREIGHT_CARRIER_CODE,
7750 p_FOB_CODE => l_shipment_rec.FOB_CODE,
7751 p_SHIPPING_INSTRUCTIONS => l_shipment_rec.SHIPPING_INSTRUCTIONS,
7752 p_PACKING_INSTRUCTIONS => l_shipment_rec.PACKING_INSTRUCTIONS,
7753 p_SHIPMENT_PRIORITY_CODE => l_shipment_rec.SHIPMENT_PRIORITY_CODE,
7754 p_SHIP_QUOTE_PRICE => l_shipment_rec.SHIP_QUOTE_PRICE,
7755 p_QUANTITY => l_shipment_rec.QUANTITY,
7756 p_RESERVED_QUANTITY => l_shipment_rec.RESERVED_QUANTITY,
7757 p_RESERVATION_ID => l_shipment_rec.RESERVATION_ID,
7758 p_ORDER_LINE_ID => l_shipment_rec.ORDER_LINE_ID,
7759 p_ATTRIBUTE_CATEGORY => l_shipment_rec.ATTRIBUTE_CATEGORY,
7760 p_ATTRIBUTE1 => l_shipment_rec.ATTRIBUTE1,
7761 p_ATTRIBUTE2 => l_shipment_rec.ATTRIBUTE2,
7762 p_ATTRIBUTE3 => l_shipment_rec.ATTRIBUTE3,
7763 p_ATTRIBUTE4 => l_shipment_rec.ATTRIBUTE4,
7764 p_ATTRIBUTE5 => l_shipment_rec.ATTRIBUTE5,
7765 p_ATTRIBUTE6 => l_shipment_rec.ATTRIBUTE6,
7766 p_ATTRIBUTE7 => l_shipment_rec.ATTRIBUTE7,
7767 p_ATTRIBUTE8 => l_shipment_rec.ATTRIBUTE8,
7768 p_ATTRIBUTE9 => l_shipment_rec.ATTRIBUTE9,
7769 p_ATTRIBUTE10 => l_shipment_rec.ATTRIBUTE10,
7770 p_ATTRIBUTE11 => l_shipment_rec.ATTRIBUTE11,
7771 p_ATTRIBUTE12 => l_shipment_rec.ATTRIBUTE12,
7772 p_ATTRIBUTE13 => l_shipment_rec.ATTRIBUTE13,
7773 p_ATTRIBUTE14 => l_shipment_rec.ATTRIBUTE14,
7774 p_ATTRIBUTE15 => l_shipment_rec.ATTRIBUTE15,
7775 p_ATTRIBUTE16 => l_shipment_rec.ATTRIBUTE16,
7776 p_ATTRIBUTE17 => l_shipment_rec.ATTRIBUTE17,
7777 p_ATTRIBUTE18 => l_shipment_rec.ATTRIBUTE18,
7778 p_ATTRIBUTE19 => l_shipment_rec.ATTRIBUTE19,
7779 p_ATTRIBUTE20 => l_shipment_rec.ATTRIBUTE20,
7780 p_SHIP_FROM_ORG_ID =>l_shipment_rec.SHIP_FROM_ORG_ID,
7781 p_SHIP_TO_CUST_PARTY_ID => l_shipment_rec.SHIP_TO_CUST_PARTY_ID,
7782 p_SHIP_METHOD_CODE_FROM => l_shipment_rec.SHIP_METHOD_CODE_FROM,
7783 p_FREIGHT_TERMS_CODE_FROM => l_shipment_rec.FREIGHT_TERMS_CODE_FROM,
7784 p_OBJECT_VERSION_NUMBER => l_shipment_rec.OBJECT_VERSION_NUMBER,
7785 p_REQUEST_DATE_TYPE => l_shipment_rec.REQUEST_DATE_TYPE,
7786 p_DEMAND_CLASS_CODE => l_shipment_rec.DEMAND_CLASS_CODE
7787 );
7788
7789 ELSIF l_shipment_rec.operation_code = 'DELETE' THEN
7790
7791 OPEN C_ship_partial(l_qte_line_rec.QUOTE_LINE_ID);
7792 FETCH C_ship_partial into l_ship_count;
7793 CLOSE C_ship_partial;
7794
7795 IF l_ship_count = 1 THEN
7796 x_return_status := FND_API.G_RET_STS_ERROR;
7797 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7798 FND_MESSAGE.Set_Name('ASO', 'DELETE_SHIPMENT');
7799 FND_MESSAGE.Set_Token('COLUMN', 'SHIPMENT_ID', FALSE);
7800 FND_MSG_PUB.ADD;
7801 END IF;
7802 END IF;
7803
7804
7805 ASO_SHIPMENTS_PKG.Delete_Row(
7806 p_SHIPMENT_ID => l_shipment_tbl(i).SHIPMENT_ID);
7807
7808 END IF;
7809
7810 END LOOP; -- for shipments
7811
7812 -- insert rows into aso_freight_charges
7813
7814 FOR i IN 1..l_Freight_Charge_Tbl.count LOOP
7815 l_freight_charge_rec := l_freight_charge_tbl(i);
7816 -- l_freight_charge_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
7817 x_freight_charge_tbl(i) := l_freight_charge_rec;
7818
7819 IF l_freight_charge_rec.operation_code = 'CREATE' THEN
7820
7821 l_freight_charge_rec.quote_line_id := l_qte_line_rec.quote_line_id;
7822 -- BC4J Fix
7823 --x_FREIGHT_CHARGE_tbl(i).freight_charge_id := null;
7824
7825 ASO_FREIGHT_CHARGES_PKG.Insert_Row(
7826 px_FREIGHT_CHARGE_ID => x_FREIGHT_CHARGE_tbl(i).freight_charge_id,
7827 p_CREATION_DATE => SYSDATE,
7828 p_CREATED_BY => G_USER_ID,
7829 p_LAST_UPDATE_DATE => SYSDATE,
7830 p_LAST_UPDATED_BY => G_USER_ID,
7831 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7832 p_REQUEST_ID => l_freight_charge_rec.REQUEST_ID,
7833 p_PROGRAM_APPLICATION_ID
7834 => l_freight_charge_rec.PROGRAM_APPLICATION_ID,
7835 p_PROGRAM_ID => l_freight_charge_rec.PROGRAM_ID,
7836 p_PROGRAM_UPDATE_DATE => l_freight_charge_rec.PROGRAM_UPDATE_DATE,
7837 p_QUOTE_SHIPMENT_ID => l_freight_charge_rec.QUOTE_SHIPMENT_ID,
7838 p_FREIGHT_CHARGE_TYPE_ID
7839 => l_freight_charge_rec.FREIGHT_CHARGE_TYPE_ID,
7840 p_CHARGE_AMOUNT => l_freight_charge_rec.CHARGE_AMOUNT,
7841 p_ATTRIBUTE_CATEGORY => l_freight_charge_rec.ATTRIBUTE_CATEGORY,
7842 p_ATTRIBUTE1 => l_freight_charge_rec.ATTRIBUTE1,
7843 p_ATTRIBUTE2 => l_freight_charge_rec.ATTRIBUTE2,
7844 p_ATTRIBUTE3 => l_freight_charge_rec.ATTRIBUTE3,
7845 p_ATTRIBUTE4 => l_freight_charge_rec.ATTRIBUTE4,
7846 p_ATTRIBUTE5 => l_freight_charge_rec.ATTRIBUTE5,
7847 p_ATTRIBUTE6 => l_freight_charge_rec.ATTRIBUTE6,
7848 p_ATTRIBUTE7 => l_freight_charge_rec.ATTRIBUTE7,
7849 p_ATTRIBUTE8 => l_freight_charge_rec.ATTRIBUTE8,
7850 p_ATTRIBUTE9 => l_freight_charge_rec.ATTRIBUTE9,
7851 p_ATTRIBUTE10 => l_freight_charge_rec.ATTRIBUTE10,
7852 p_ATTRIBUTE11 => l_freight_charge_rec.ATTRIBUTE11,
7853 p_ATTRIBUTE12 => l_freight_charge_rec.ATTRIBUTE12,
7854 p_ATTRIBUTE13 => l_freight_charge_rec.ATTRIBUTE13,
7855 p_ATTRIBUTE14 => l_freight_charge_rec.ATTRIBUTE14,
7856 p_ATTRIBUTE15 => l_freight_charge_rec.ATTRIBUTE15
7857 );
7858
7859
7860 ELSIF l_freight_charge_rec.operation_code = 'UPDATE' THEN
7861 ASO_FREIGHT_CHARGES_PKG.Update_Row(
7862 p_FREIGHT_CHARGE_ID => p_FREIGHT_CHARGE_tbl(i).freight_charge_id,
7863 p_CREATION_DATE => l_freight_charge_rec.creation_date,
7864 p_CREATED_BY => G_USER_ID,
7865 p_LAST_UPDATE_DATE => SYSDATE,
7866 p_LAST_UPDATED_BY => G_USER_ID,
7867 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7868 p_REQUEST_ID => l_freight_charge_rec.REQUEST_ID,
7869 p_PROGRAM_APPLICATION_ID
7870 => l_freight_charge_rec.PROGRAM_APPLICATION_ID,
7871 p_PROGRAM_ID => l_freight_charge_rec.PROGRAM_ID,
7872 p_PROGRAM_UPDATE_DATE => l_freight_charge_rec.PROGRAM_UPDATE_DATE,
7873 p_QUOTE_SHIPMENT_ID => l_freight_charge_rec.QUOTE_SHIPMENT_ID,
7874 p_FREIGHT_CHARGE_TYPE_ID
7875 => l_freight_charge_rec.FREIGHT_CHARGE_TYPE_ID,
7876 p_CHARGE_AMOUNT => l_freight_charge_rec.CHARGE_AMOUNT,
7877 p_ATTRIBUTE_CATEGORY => l_freight_charge_rec.ATTRIBUTE_CATEGORY,
7878 p_ATTRIBUTE1 => l_freight_charge_rec.ATTRIBUTE1,
7879 p_ATTRIBUTE2 => l_freight_charge_rec.ATTRIBUTE2,
7880 p_ATTRIBUTE3 => l_freight_charge_rec.ATTRIBUTE3,
7881 p_ATTRIBUTE4 => l_freight_charge_rec.ATTRIBUTE4,
7882 p_ATTRIBUTE5 => l_freight_charge_rec.ATTRIBUTE5,
7883 p_ATTRIBUTE6 => l_freight_charge_rec.ATTRIBUTE6,
7884 p_ATTRIBUTE7 => l_freight_charge_rec.ATTRIBUTE7,
7885 p_ATTRIBUTE8 => l_freight_charge_rec.ATTRIBUTE8,
7886 p_ATTRIBUTE9 => l_freight_charge_rec.ATTRIBUTE9,
7887 p_ATTRIBUTE10 => l_freight_charge_rec.ATTRIBUTE10,
7888 p_ATTRIBUTE11 => l_freight_charge_rec.ATTRIBUTE11,
7889 p_ATTRIBUTE12 => l_freight_charge_rec.ATTRIBUTE12,
7890 p_ATTRIBUTE13 => l_freight_charge_rec.ATTRIBUTE13,
7891 p_ATTRIBUTE14 => l_freight_charge_rec.ATTRIBUTE14,
7892 p_ATTRIBUTE15 => l_freight_charge_rec.ATTRIBUTE15);
7893
7894 ELSIF l_freight_charge_rec.operation_code = 'DELETE' THEN
7895 ASO_FREIGHT_CHARGES_PKG.delete_Row(
7896 p_FREIGHT_CHARGE_ID => p_FREIGHT_CHARGE_tbl(i).freight_charge_id);
7897
7898 END IF;
7899 END LOOP; -- freight charges
7900
7901
7902 -- tax information
7903
7904 FOR i IN 1..l_tax_detail_Tbl.count LOOP
7905 l_tax_detail_rec := l_tax_detail_tbl(i);
7906 -- l_tax_detail_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
7907 x_tax_detail_tbl(i) := l_tax_detail_rec;
7908
7909 IF l_tax_detail_rec.operation_code = 'CREATE' THEN
7910 l_tax_detail_rec.quote_header_id := l_qte_line_rec.quote_header_id;
7911 l_tax_detail_rec.quote_line_id := l_qte_line_rec.quote_line_id;
7912 -- BC4J Fix
7913 --x_tax_detail_tbl(i).TAX_DETAIL_ID := null;
7914
7915 ASO_TAX_DETAILS_PKG.Insert_Row(
7916 px_TAX_DETAIL_ID => x_tax_detail_tbl(i).TAX_DETAIL_ID,
7917 p_CREATION_DATE => SYSDATE,
7918 p_CREATED_BY => G_USER_ID,
7919 p_LAST_UPDATE_DATE => SYSDATE,
7920 p_LAST_UPDATED_BY => G_USER_ID,
7921 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7922 p_REQUEST_ID => l_tax_detail_rec.REQUEST_ID,
7923 p_PROGRAM_APPLICATION_ID =>l_tax_detail_rec.PROGRAM_APPLICATION_ID,
7924 p_PROGRAM_ID => l_tax_detail_rec.PROGRAM_ID,
7925 p_PROGRAM_UPDATE_DATE => l_tax_detail_rec.PROGRAM_UPDATE_DATE,
7926 p_QUOTE_HEADER_ID => l_tax_detail_rec.QUOTE_HEADER_ID,
7927 p_QUOTE_LINE_ID => l_tax_detail_rec.QUOTE_LINE_ID,
7928 p_QUOTE_SHIPMENT_ID => l_tax_detail_rec.QUOTE_SHIPMENT_ID,
7929 p_ORIG_TAX_CODE => l_tax_detail_rec.ORIG_TAX_CODE,
7930 p_TAX_CODE => l_tax_detail_rec.TAX_CODE,
7931 p_TAX_RATE => l_tax_detail_rec.TAX_RATE,
7932 p_TAX_DATE => l_tax_detail_rec.TAX_DATE,
7933 p_TAX_AMOUNT => l_tax_detail_rec.TAX_AMOUNT,
7934 p_TAX_EXEMPT_FLAG => l_tax_detail_rec.TAX_EXEMPT_FLAG,
7935 p_TAX_EXEMPT_NUMBER => l_tax_detail_rec.TAX_EXEMPT_NUMBER,
7936 p_TAX_EXEMPT_REASON_CODE =>l_tax_detail_rec.TAX_EXEMPT_REASON_CODE,
7937 p_ATTRIBUTE_CATEGORY => l_tax_detail_rec.ATTRIBUTE_CATEGORY,
7938 p_ATTRIBUTE1 => l_tax_detail_rec.ATTRIBUTE1,
7939 p_ATTRIBUTE2 => l_tax_detail_rec.ATTRIBUTE2,
7940 p_ATTRIBUTE3 => l_tax_detail_rec.ATTRIBUTE3,
7941 p_ATTRIBUTE4 => l_tax_detail_rec.ATTRIBUTE4,
7942 p_ATTRIBUTE5 => l_tax_detail_rec.ATTRIBUTE5,
7943 p_ATTRIBUTE6 => l_tax_detail_rec.ATTRIBUTE6,
7944 p_ATTRIBUTE7 => l_tax_detail_rec.ATTRIBUTE7,
7945 p_ATTRIBUTE8 => l_tax_detail_rec.ATTRIBUTE8,
7946 p_ATTRIBUTE9 => l_tax_detail_rec.ATTRIBUTE9,
7947 p_ATTRIBUTE10 => l_tax_detail_rec.ATTRIBUTE10,
7948 p_ATTRIBUTE11 => l_tax_detail_rec.ATTRIBUTE11,
7949 p_ATTRIBUTE12 => l_tax_detail_rec.ATTRIBUTE12,
7950 p_ATTRIBUTE13 => l_tax_detail_rec.ATTRIBUTE13,
7951 p_ATTRIBUTE14 => l_tax_detail_rec.ATTRIBUTE14,
7952 p_ATTRIBUTE15 => l_tax_detail_rec.ATTRIBUTE15,
7953 p_ATTRIBUTE16 => l_tax_detail_rec.ATTRIBUTE16,
7954 p_ATTRIBUTE17 => l_tax_detail_rec.ATTRIBUTE17,
7955 p_ATTRIBUTE18 => l_tax_detail_rec.ATTRIBUTE18,
7956 p_ATTRIBUTE19 => l_tax_detail_rec.ATTRIBUTE19,
7957 p_ATTRIBUTE20 => l_tax_detail_rec.ATTRIBUTE20,
7958 p_TAX_INCLUSIVE_FLAG => l_tax_detail_rec.TAX_INCLUSIVE_FLAG,
7959 p_OBJECT_VERSION_NUMBER => l_tax_detail_rec.OBJECT_VERSION_NUMBER,
7960 p_TAX_RATE_ID => l_tax_detail_rec.TAX_RATE_ID
7961 );
7962
7963 ELSIF l_tax_detail_rec.operation_code = 'UPDATE' THEN
7964
7965 ASO_TAX_DETAILS_PKG.Update_Row(
7966 p_TAX_DETAIL_ID => l_tax_detail_rec.TAX_DETAIL_ID,
7967 p_CREATION_DATE => l_tax_detail_rec.creation_date,
7968 p_CREATED_BY => G_USER_ID,
7969 p_LAST_UPDATE_DATE => SYSDATE,
7970 p_LAST_UPDATED_BY => G_USER_ID,
7971 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
7972 p_REQUEST_ID => l_tax_detail_rec.REQUEST_ID,
7973 p_PROGRAM_APPLICATION_ID =>l_tax_detail_rec.PROGRAM_APPLICATION_ID,
7974 p_PROGRAM_ID => l_tax_detail_rec.PROGRAM_ID,
7975 p_PROGRAM_UPDATE_DATE => l_tax_detail_rec.PROGRAM_UPDATE_DATE,
7976 p_QUOTE_HEADER_ID => l_tax_detail_rec.QUOTE_HEADER_ID,
7977 p_QUOTE_LINE_ID => l_tax_detail_rec.QUOTE_LINE_ID,
7978 p_QUOTE_SHIPMENT_ID => l_tax_detail_rec.QUOTE_SHIPMENT_ID,
7979 p_ORIG_TAX_CODE => l_tax_detail_rec.ORIG_TAX_CODE,
7980 p_TAX_CODE => l_tax_detail_rec.TAX_CODE,
7981 p_TAX_RATE => l_tax_detail_rec.TAX_RATE,
7982 p_TAX_DATE => l_tax_detail_rec.TAX_DATE,
7983 p_TAX_AMOUNT => l_tax_detail_rec.TAX_AMOUNT,
7984 p_TAX_EXEMPT_FLAG => l_tax_detail_rec.TAX_EXEMPT_FLAG,
7985 p_TAX_EXEMPT_NUMBER => l_tax_detail_rec.TAX_EXEMPT_NUMBER,
7986 p_TAX_EXEMPT_REASON_CODE =>l_tax_detail_rec.TAX_EXEMPT_REASON_CODE,
7987 p_ATTRIBUTE_CATEGORY => l_tax_detail_rec.ATTRIBUTE_CATEGORY,
7988 p_ATTRIBUTE1 => l_tax_detail_rec.ATTRIBUTE1,
7989 p_ATTRIBUTE2 => l_tax_detail_rec.ATTRIBUTE2,
7990 p_ATTRIBUTE3 => l_tax_detail_rec.ATTRIBUTE3,
7991 p_ATTRIBUTE4 => l_tax_detail_rec.ATTRIBUTE4,
7992 p_ATTRIBUTE5 => l_tax_detail_rec.ATTRIBUTE5,
7993 p_ATTRIBUTE6 => l_tax_detail_rec.ATTRIBUTE6,
7994 p_ATTRIBUTE7 => l_tax_detail_rec.ATTRIBUTE7,
7995 p_ATTRIBUTE8 => l_tax_detail_rec.ATTRIBUTE8,
7996 p_ATTRIBUTE9 => l_tax_detail_rec.ATTRIBUTE9,
7997 p_ATTRIBUTE10 => l_tax_detail_rec.ATTRIBUTE10,
7998 p_ATTRIBUTE11 => l_tax_detail_rec.ATTRIBUTE11,
7999 p_ATTRIBUTE12 => l_tax_detail_rec.ATTRIBUTE12,
8000 p_ATTRIBUTE13 => l_tax_detail_rec.ATTRIBUTE13,
8001 p_ATTRIBUTE14 => l_tax_detail_rec.ATTRIBUTE14,
8002 p_ATTRIBUTE15 => l_tax_detail_rec.ATTRIBUTE15,
8003 p_ATTRIBUTE16 => l_tax_detail_rec.ATTRIBUTE16,
8004 p_ATTRIBUTE17 => l_tax_detail_rec.ATTRIBUTE17,
8005 p_ATTRIBUTE18 => l_tax_detail_rec.ATTRIBUTE18,
8006 p_ATTRIBUTE19 => l_tax_detail_rec.ATTRIBUTE19,
8007 p_ATTRIBUTE20 => l_tax_detail_rec.ATTRIBUTE20,
8008 p_TAX_INCLUSIVE_FLAG => l_tax_detail_rec.TAX_INCLUSIVE_FLAG,
8009 p_OBJECT_VERSION_NUMBER => l_tax_detail_rec.OBJECT_VERSION_NUMBER,
8010 p_TAX_RATE_ID => l_tax_detail_rec.TAX_RATE_ID
8011 );
8012
8013 ELSIF l_tax_detail_rec.operation_code = 'DELETE' THEN
8014
8015 ASO_TAX_DETAILS_PKG.Delete_Row(
8016 p_TAX_DETAIL_ID => l_tax_detail_tbl(i).TAX_DETAIL_ID);
8017
8018 END IF;
8019 END LOOP; -- tax details
8020
8021 -- quote party
8022 FOR i IN 1..l_quote_party_Tbl.count LOOP
8023 l_quote_party_rec := l_quote_party_tbl(i);
8024 x_quote_party_tbl(i) := l_quote_party_rec;
8025
8026 IF l_quote_party_rec.operation_code = 'CREATE' THEN
8027 l_quote_party_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
8028 l_quote_party_rec.quote_header_id := l_Qte_Line_Rec.quote_header_id;
8029 -- BC4J Fix
8030 --x_quote_party_tbl(i).QUOTE_PARTY_ID := NULL;
8031
8032 ASO_QUOTE_PARTIES_PKG.Insert_Row(
8033 px_QUOTE_PARTY_ID => x_quote_party_tbl(i).QUOTE_PARTY_ID,
8034 p_CREATION_DATE => SYSDATE,
8035 p_CREATED_BY => G_USER_ID,
8036 p_LAST_UPDATE_DATE => SYSDATE,
8037 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8038 p_LAST_UPDATED_BY => G_USER_ID,
8039 p_REQUEST_ID => l_QUOTE_PARTY_rec.REQUEST_ID,
8040 p_PROGRAM_APPLICATION_ID =>l_QUOTE_PARTY_rec.PROGRAM_APPLICATION_ID,
8041 p_PROGRAM_ID => l_QUOTE_PARTY_rec.PROGRAM_ID,
8042 p_PROGRAM_UPDATE_DATE => l_QUOTE_PARTY_rec.PROGRAM_UPDATE_DATE,
8043 p_QUOTE_HEADER_ID => l_QUOTE_PARTY_rec.QUOTE_HEADER_ID,
8044 p_QUOTE_LINE_ID => l_QUOTE_PARTY_rec.QUOTE_LINE_ID,
8045 p_QUOTE_SHIPMENT_ID => l_QUOTE_PARTY_rec.QUOTE_SHIPMENT_ID,
8046 p_PARTY_TYPE => l_QUOTE_PARTY_rec.PARTY_TYPE,
8047 p_PARTY_ID => l_QUOTE_PARTY_rec.PARTY_ID,
8048 p_PARTY_OBJECT_TYPE => l_QUOTE_PARTY_rec.PARTY_OBJECT_TYPE,
8049 p_PARTY_OBJECT_ID => l_QUOTE_PARTY_rec.PARTY_OBJECT_ID,
8050 p_ATTRIBUTE_CATEGORY => l_QUOTE_PARTY_rec.ATTRIBUTE_CATEGORY,
8051 p_ATTRIBUTE1 => l_QUOTE_PARTY_rec.ATTRIBUTE1,
8052 p_ATTRIBUTE2 => l_QUOTE_PARTY_rec.ATTRIBUTE2,
8053 p_ATTRIBUTE3 => l_QUOTE_PARTY_rec.ATTRIBUTE3,
8054 p_ATTRIBUTE4 => l_QUOTE_PARTY_rec.ATTRIBUTE4,
8055 p_ATTRIBUTE5 => l_QUOTE_PARTY_rec.ATTRIBUTE5,
8056 p_ATTRIBUTE6 => l_QUOTE_PARTY_rec.ATTRIBUTE6,
8057 p_ATTRIBUTE7 => l_QUOTE_PARTY_rec.ATTRIBUTE7,
8058 p_ATTRIBUTE8 => l_QUOTE_PARTY_rec.ATTRIBUTE8,
8059 p_ATTRIBUTE9 => l_QUOTE_PARTY_rec.ATTRIBUTE9,
8060 p_ATTRIBUTE10 => l_QUOTE_PARTY_rec.ATTRIBUTE10,
8061 p_ATTRIBUTE11 => l_QUOTE_PARTY_rec.ATTRIBUTE11,
8062 p_ATTRIBUTE12 => l_QUOTE_PARTY_rec.ATTRIBUTE12,
8063 p_ATTRIBUTE13 => l_QUOTE_PARTY_rec.ATTRIBUTE13,
8064 p_ATTRIBUTE14 => l_QUOTE_PARTY_rec.ATTRIBUTE14,
8065 p_ATTRIBUTE15 => l_QUOTE_PARTY_rec.ATTRIBUTE15,
8066 -- p_SECURITY_GROUP_ID => p_QUOTE_PARTY_rec.SECURITY_GROUP_ID);
8067 p_OBJECT_VERSION_NUMBER => l_QUOTE_PARTY_rec.OBJECT_VERSION_NUMBER);
8068
8069 ELSIF l_quote_party_rec.operation_code = 'UPDATE' THEN
8070 ASO_QUOTE_PARTIES_PKG.Update_Row(
8071 p_QUOTE_PARTY_ID => l_quote_party_rec.QUOTE_PARTY_ID,
8072 p_CREATION_DATE => l_quote_party_rec.creation_date,
8073 p_CREATED_BY => G_USER_ID,
8074 p_LAST_UPDATE_DATE => SYSDATE,
8075 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8076 p_LAST_UPDATED_BY => G_USER_ID,
8077 p_REQUEST_ID => l_QUOTE_PARTY_rec.REQUEST_ID,
8078 p_PROGRAM_APPLICATION_ID =>l_QUOTE_PARTY_rec.PROGRAM_APPLICATION_ID,
8079 p_PROGRAM_ID => l_QUOTE_PARTY_rec.PROGRAM_ID,
8080 p_PROGRAM_UPDATE_DATE => l_QUOTE_PARTY_rec.PROGRAM_UPDATE_DATE,
8081 p_QUOTE_HEADER_ID => l_QUOTE_PARTY_rec.QUOTE_HEADER_ID,
8082 p_QUOTE_LINE_ID => l_QUOTE_PARTY_rec.QUOTE_LINE_ID,
8083 p_QUOTE_SHIPMENT_ID => l_QUOTE_PARTY_rec.QUOTE_SHIPMENT_ID,
8084 p_PARTY_TYPE => l_QUOTE_PARTY_rec.PARTY_TYPE,
8085 p_PARTY_ID => l_QUOTE_PARTY_rec.PARTY_ID,
8086 p_PARTY_OBJECT_TYPE => l_QUOTE_PARTY_rec.PARTY_OBJECT_TYPE,
8087 p_PARTY_OBJECT_ID => l_QUOTE_PARTY_rec.PARTY_OBJECT_ID,
8088 p_ATTRIBUTE_CATEGORY => l_QUOTE_PARTY_rec.ATTRIBUTE_CATEGORY,
8089 p_ATTRIBUTE1 => l_QUOTE_PARTY_rec.ATTRIBUTE1,
8090 p_ATTRIBUTE2 => l_QUOTE_PARTY_rec.ATTRIBUTE2,
8091 p_ATTRIBUTE3 => l_QUOTE_PARTY_rec.ATTRIBUTE3,
8092 p_ATTRIBUTE4 => l_QUOTE_PARTY_rec.ATTRIBUTE4,
8093 p_ATTRIBUTE5 => l_QUOTE_PARTY_rec.ATTRIBUTE5,
8094 p_ATTRIBUTE6 => l_QUOTE_PARTY_rec.ATTRIBUTE6,
8095 p_ATTRIBUTE7 => l_QUOTE_PARTY_rec.ATTRIBUTE7,
8096 p_ATTRIBUTE8 => l_QUOTE_PARTY_rec.ATTRIBUTE8,
8097 p_ATTRIBUTE9 => l_QUOTE_PARTY_rec.ATTRIBUTE9,
8098 p_ATTRIBUTE10 => l_QUOTE_PARTY_rec.ATTRIBUTE10,
8099 p_ATTRIBUTE11 => l_QUOTE_PARTY_rec.ATTRIBUTE11,
8100 p_ATTRIBUTE12 => l_QUOTE_PARTY_rec.ATTRIBUTE12,
8101 p_ATTRIBUTE13 => l_QUOTE_PARTY_rec.ATTRIBUTE13,
8102 p_ATTRIBUTE14 => l_QUOTE_PARTY_rec.ATTRIBUTE14,
8103 p_ATTRIBUTE15 => l_QUOTE_PARTY_rec.ATTRIBUTE15,
8104 p_OBJECT_VERSION_NUMBER => l_QUOTE_PARTY_rec.OBJECT_VERSION_NUMBER);
8105
8106 ELSIF l_quote_party_rec.operation_code = 'DELETE' THEN
8107 ASO_QUOTE_PARTIES_PKG.Delete_Row(
8108 p_QUOTE_PARTY_ID => l_QUOTE_PARTY_rec.QUOTE_PARTY_ID);
8109
8110 END IF;
8111 END LOOP;
8112
8113
8114
8115
8116 -- price adjustment attributes
8117
8118
8119 FOR i IN 1..l_Price_Adj_Tbl.count LOOP
8120 l_price_adj_rec := l_price_adj_tbl(i);
8121 -- l_price_adj_rec.quote_line_id := x_qte_line_rec.quote_line_id;
8122 x_price_adj_tbl(i) := l_price_adj_rec;
8123
8124 IF l_price_adj_rec.operation_code = 'CREATE' THEN
8125
8126 l_price_adj_rec.quote_header_id := l_qte_line_rec.quote_header_id;
8127 l_price_adj_rec.quote_line_id := l_qte_line_rec.quote_line_id;
8128 -- BC4J Fix
8129 --x_price_adj_tbl(i).PRICE_ADJUSTMENT_ID := NULL;
8130
8131 ASO_PRICE_ADJUSTMENTS_PKG.Insert_Row(
8132 px_PRICE_ADJUSTMENT_ID => x_price_adj_tbl(i).PRICE_ADJUSTMENT_ID,
8133 p_CREATION_DATE => SYSDATE,
8134 p_CREATED_BY => G_USER_ID,
8135 p_LAST_UPDATE_DATE => SYSDATE,
8136 p_LAST_UPDATED_BY => G_USER_ID,
8137 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8138 p_PROGRAM_APPLICATION_ID =>l_price_adj_rec.PROGRAM_APPLICATION_ID,
8139 p_PROGRAM_ID => l_price_adj_rec.PROGRAM_ID,
8140 p_PROGRAM_UPDATE_DATE => l_price_adj_rec.PROGRAM_UPDATE_DATE,
8141 p_REQUEST_ID => l_price_adj_rec.REQUEST_ID,
8142 p_QUOTE_HEADER_ID => l_price_adj_rec.QUOTE_HEADER_ID,
8143 p_QUOTE_LINE_ID => l_price_adj_rec.QUOTE_LINE_ID,
8144 p_QUOTE_SHIPMENT_ID => l_price_adj_rec.QUOTE_SHIPMENT_ID,
8145 p_MODIFIER_HEADER_ID => l_price_adj_rec.MODIFIER_HEADER_ID,
8146 p_MODIFIER_LINE_ID => l_price_adj_rec.MODIFIER_LINE_ID,
8147 p_MODIFIER_LINE_TYPE_CODE
8148 => l_price_adj_rec.MODIFIER_LINE_TYPE_CODE,
8149 p_MODIFIER_MECHANISM_TYPE_CODE
8150 => l_price_adj_rec.MODIFIER_MECHANISM_TYPE_CODE,
8151 p_MODIFIED_FROM => l_price_adj_rec.MODIFIED_FROM,
8152 p_MODIFIED_TO => l_price_adj_rec.MODIFIED_TO,
8153 p_OPERAND => l_price_adj_rec.OPERAND,
8154 p_ARITHMETIC_OPERATOR => l_price_adj_rec.ARITHMETIC_OPERATOR,
8155 p_AUTOMATIC_FLAG => l_price_adj_rec.AUTOMATIC_FLAG,
8156 p_UPDATE_ALLOWABLE_FLAG => l_price_adj_rec.UPDATE_ALLOWABLE_FLAG,
8157 p_UPDATED_FLAG => l_price_adj_rec.UPDATED_FLAG,
8158 p_APPLIED_FLAG => l_price_adj_rec.APPLIED_FLAG,
8159 p_ON_INVOICE_FLAG => l_price_adj_rec.ON_INVOICE_FLAG,
8160 p_PRICING_PHASE_ID => l_price_adj_rec.PRICING_PHASE_ID,
8161 p_ATTRIBUTE_CATEGORY => l_price_adj_rec.ATTRIBUTE_CATEGORY,
8162 p_ATTRIBUTE1 => l_price_adj_rec.ATTRIBUTE1,
8163 p_ATTRIBUTE2 => l_price_adj_rec.ATTRIBUTE2,
8164 p_ATTRIBUTE3 => l_price_adj_rec.ATTRIBUTE3,
8165 p_ATTRIBUTE4 => l_price_adj_rec.ATTRIBUTE4,
8166 p_ATTRIBUTE5 => l_price_adj_rec.ATTRIBUTE5,
8167 p_ATTRIBUTE6 => l_price_adj_rec.ATTRIBUTE6,
8168 p_ATTRIBUTE7 => l_price_adj_rec.ATTRIBUTE7,
8169 p_ATTRIBUTE8 => l_price_adj_rec.ATTRIBUTE8,
8170 p_ATTRIBUTE9 => l_price_adj_rec.ATTRIBUTE9,
8171 p_ATTRIBUTE10 => l_price_adj_rec.ATTRIBUTE10,
8172 p_ATTRIBUTE11 => l_price_adj_rec.ATTRIBUTE11,
8173 p_ATTRIBUTE12 => l_price_adj_rec.ATTRIBUTE12,
8174 p_ATTRIBUTE13 => l_price_adj_rec.ATTRIBUTE13,
8175 p_ATTRIBUTE14 => l_price_adj_rec.ATTRIBUTE14,
8176 p_ATTRIBUTE15 => l_price_adj_rec.ATTRIBUTE15,
8177 p_ATTRIBUTE16 => l_price_adj_rec.ATTRIBUTE16,
8178 p_ATTRIBUTE17 => l_price_adj_rec.ATTRIBUTE17,
8179 p_ATTRIBUTE18 => l_price_adj_rec.ATTRIBUTE18,
8180 p_ATTRIBUTE19 => l_price_adj_rec.ATTRIBUTE19,
8181 p_ATTRIBUTE20 => l_price_adj_rec.ATTRIBUTE20,
8182 p_ORIG_SYS_DISCOUNT_REF => l_price_adj_rec.ORIG_SYS_DISCOUNT_REF ,
8183 p_CHANGE_SEQUENCE => l_price_adj_rec.CHANGE_SEQUENCE ,
8184 -- p_LIST_HEADER_ID => l_price_adj_rec. ,
8185 -- p_LIST_LINE_ID => l_price_adj_rec. ,
8186 -- p_LIST_LINE_TYPE_CODE => l_price_adj_rec.,
8187 p_UPDATE_ALLOWED => l_price_adj_rec.UPDATE_ALLOWED,
8188 p_CHANGE_REASON_CODE => l_price_adj_rec.CHANGE_REASON_CODE,
8189 p_CHANGE_REASON_TEXT => l_price_adj_rec.CHANGE_REASON_TEXT,
8190 p_COST_ID => l_price_adj_rec.COST_ID ,
8191 p_TAX_CODE => l_price_adj_rec.TAX_CODE,
8192 p_TAX_EXEMPT_FLAG => l_price_adj_rec.TAX_EXEMPT_FLAG,
8193 p_TAX_EXEMPT_NUMBER => l_price_adj_rec.TAX_EXEMPT_NUMBER,
8194 p_TAX_EXEMPT_REASON_CODE => l_price_adj_rec.TAX_EXEMPT_REASON_CODE,
8195 p_PARENT_ADJUSTMENT_ID => l_price_adj_rec.PARENT_ADJUSTMENT_ID,
8196 p_INVOICED_FLAG => l_price_adj_rec.INVOICED_FLAG,
8197 p_ESTIMATED_FLAG => l_price_adj_rec.ESTIMATED_FLAG,
8198 p_INC_IN_SALES_PERFORMANCE => l_price_adj_rec.INC_IN_SALES_PERFORMANCE,
8199 p_SPLIT_ACTION_CODE => l_price_adj_rec.SPLIT_ACTION_CODE,
8200 p_ADJUSTED_AMOUNT => l_price_adj_rec.ADJUSTED_AMOUNT ,
8201 p_CHARGE_TYPE_CODE => l_price_adj_rec.CHARGE_TYPE_CODE,
8202 p_CHARGE_SUBTYPE_CODE => l_price_adj_rec.CHARGE_SUBTYPE_CODE,
8203 p_RANGE_BREAK_QUANTITY => l_price_adj_rec.RANGE_BREAK_QUANTITY,
8204 p_ACCRUAL_CONVERSION_RATE => l_price_adj_rec.ACCRUAL_CONVERSION_RATE ,
8205 p_PRICING_GROUP_SEQUENCE => l_price_adj_rec.PRICING_GROUP_SEQUENCE,
8206 p_ACCRUAL_FLAG => l_price_adj_rec.ACCRUAL_FLAG,
8207 p_LIST_LINE_NO => l_price_adj_rec.LIST_LINE_NO,
8208 p_SOURCE_SYSTEM_CODE => l_price_adj_rec.SOURCE_SYSTEM_CODE ,
8209 p_BENEFIT_QTY => l_price_adj_rec.BENEFIT_QTY,
8210 p_BENEFIT_UOM_CODE => l_price_adj_rec.BENEFIT_UOM_CODE,
8211 p_PRINT_ON_INVOICE_FLAG => l_price_adj_rec.PRINT_ON_INVOICE_FLAG,
8212 p_EXPIRATION_DATE => l_price_adj_rec.EXPIRATION_DATE,
8213 p_REBATE_TRANSACTION_TYPE_CODE => l_price_adj_rec.REBATE_TRANSACTION_TYPE_CODE,
8214 p_REBATE_TRANSACTION_REFERENCE => l_price_adj_rec.REBATE_TRANSACTION_REFERENCE,
8215 p_REBATE_PAYMENT_SYSTEM_CODE => l_price_adj_rec.REBATE_PAYMENT_SYSTEM_CODE,
8216 p_REDEEMED_DATE => l_price_adj_rec.REDEEMED_DATE,
8217 p_REDEEMED_FLAG => l_price_adj_rec.REDEEMED_FLAG,
8218 p_MODIFIER_LEVEL_CODE => l_price_adj_rec.MODIFIER_LEVEL_CODE,
8219 p_PRICE_BREAK_TYPE_CODE => l_price_adj_rec.PRICE_BREAK_TYPE_CODE ,
8220 p_SUBSTITUTION_ATTRIBUTE => l_price_adj_rec.SUBSTITUTION_ATTRIBUTE,
8221 p_PRORATION_TYPE_CODE => l_price_adj_rec.PRORATION_TYPE_CODE ,
8222 p_INCLUDE_ON_RETURNS_FLAG => l_price_adj_rec.INCLUDE_ON_RETURNS_FLAG,
8223 p_CREDIT_OR_CHARGE_FLAG => l_price_adj_rec.CREDIT_OR_CHARGE_FLAG,
8224 p_OPERAND_PER_PQTY => l_price_adj_rec.OPERAND_PER_PQTY,
8225 p_ADJUSTED_AMOUNT_PER_PQTY => l_price_adj_rec.ADJUSTED_AMOUNT_PER_PQTY,
8226 p_OBJECT_VERSION_NUMBER => l_price_adj_rec.OBJECT_VERSION_NUMBER);
8227
8228 FOR j in 1..l_price_adj_attr_tbl.count LOOP
8229 IF l_price_adj_attr_tbl(j).price_adj_index = j THEN
8230 l_price_adj_attr_tbl(j).price_adjustment_id := x_price_adj_tbl(i).PRICE_ADJUSTMENT_ID;
8231 END IF;
8232 END LOOP;
8233
8234
8235 ELSIF l_price_adj_rec.operation_code = 'UPDATE' THEN
8236 -- New Code for updating PBH
8237 if l_price_adj_rec.updated_flag = 'Y' then
8238
8239 l_price_adjustment_id := null;
8240
8241 --get the price_adjustment_id of the PBH adjustment line, if this is children of a PBH parent
8242 open c_pbh( l_price_adj_rec.price_adjustment_id );
8243 fetch c_pbh into l_price_adjustment_id;
8244 close c_pbh;
8245
8246
8247 --if the above query returns a not null value then update all the children of this PBH
8248
8249 if l_price_adjustment_id is not null then
8250
8251 --update all child lines
8252 UPDATE aso_price_adjustments
8253 SET updated_flag = 'Y',
8254 applied_flag = null
8255 Where price_adjustment_id in ( SELECT rltd_price_adj_id
8256 FROM aso_price_adj_relationships b
8257 WHERE price_adjustment_id = l_price_adjustment_id );
8258
8259 --update the parent PBH line
8260 UPDATE aso_price_adjustments
8261 SET updated_flag = 'Y',
8262 applied_flag = 'Y'
8263 Where price_adjustment_id = l_price_adjustment_id;
8264
8265 end if;
8266
8267 end if;
8268
8269
8270 ASO_PRICE_ADJUSTMENTS_PKG.Update_Row(
8271 p_PRICE_ADJUSTMENT_ID => l_price_adj_rec.PRICE_ADJUSTMENT_ID,
8272 p_CREATION_DATE => l_price_adj_rec.creation_date,
8273 p_CREATED_BY => G_USER_ID,
8274 p_LAST_UPDATE_DATE => SYSDATE,
8275 p_LAST_UPDATED_BY => G_USER_ID,
8276 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8277 p_PROGRAM_APPLICATION_ID =>l_price_adj_rec.PROGRAM_APPLICATION_ID,
8278 p_PROGRAM_ID => l_price_adj_rec.PROGRAM_ID,
8279 p_PROGRAM_UPDATE_DATE => l_price_adj_rec.PROGRAM_UPDATE_DATE,
8280 p_REQUEST_ID => l_price_adj_rec.REQUEST_ID,
8281 p_QUOTE_HEADER_ID => l_price_adj_rec.QUOTE_HEADER_ID,
8282 p_QUOTE_LINE_ID => l_price_adj_rec.QUOTE_LINE_ID,
8283 p_QUOTE_SHIPMENT_ID => l_price_adj_rec.QUOTE_SHIPMENT_ID,
8284 p_MODIFIER_HEADER_ID => l_price_adj_rec.MODIFIER_HEADER_ID,
8285 p_MODIFIER_LINE_ID => l_price_adj_rec.MODIFIER_LINE_ID,
8286 p_MODIFIER_LINE_TYPE_CODE
8287 => l_price_adj_rec.MODIFIER_LINE_TYPE_CODE,
8288 p_MODIFIER_MECHANISM_TYPE_CODE
8289 => l_price_adj_rec.MODIFIER_MECHANISM_TYPE_CODE,
8290 p_MODIFIED_FROM => l_price_adj_rec.MODIFIED_FROM,
8291 p_MODIFIED_TO => l_price_adj_rec.MODIFIED_TO,
8292 p_OPERAND => l_price_adj_rec.OPERAND,
8293 p_ARITHMETIC_OPERATOR => l_price_adj_rec.ARITHMETIC_OPERATOR,
8294 p_AUTOMATIC_FLAG => l_price_adj_rec.AUTOMATIC_FLAG,
8295 p_UPDATE_ALLOWABLE_FLAG => l_price_adj_rec.UPDATE_ALLOWABLE_FLAG,
8296 p_UPDATED_FLAG => l_price_adj_rec.UPDATED_FLAG,
8297 p_APPLIED_FLAG => l_price_adj_rec.APPLIED_FLAG,
8298 p_ON_INVOICE_FLAG => l_price_adj_rec.ON_INVOICE_FLAG,
8299 p_PRICING_PHASE_ID => l_price_adj_rec.PRICING_PHASE_ID,
8300 p_ATTRIBUTE_CATEGORY => l_price_adj_rec.ATTRIBUTE_CATEGORY,
8301 p_ATTRIBUTE1 => l_price_adj_rec.ATTRIBUTE1,
8302 p_ATTRIBUTE2 => l_price_adj_rec.ATTRIBUTE2,
8303 p_ATTRIBUTE3 => l_price_adj_rec.ATTRIBUTE3,
8304 p_ATTRIBUTE4 => l_price_adj_rec.ATTRIBUTE4,
8305 p_ATTRIBUTE5 => l_price_adj_rec.ATTRIBUTE5,
8306 p_ATTRIBUTE6 => l_price_adj_rec.ATTRIBUTE6,
8307 p_ATTRIBUTE7 => l_price_adj_rec.ATTRIBUTE7,
8308 p_ATTRIBUTE8 => l_price_adj_rec.ATTRIBUTE8,
8309 p_ATTRIBUTE9 => l_price_adj_rec.ATTRIBUTE9,
8310 p_ATTRIBUTE10 => l_price_adj_rec.ATTRIBUTE10,
8311 p_ATTRIBUTE11 => l_price_adj_rec.ATTRIBUTE11,
8312 p_ATTRIBUTE12 => l_price_adj_rec.ATTRIBUTE12,
8313 p_ATTRIBUTE13 => l_price_adj_rec.ATTRIBUTE13,
8314 p_ATTRIBUTE14 => l_price_adj_rec.ATTRIBUTE14,
8315 p_ATTRIBUTE15 => l_price_adj_rec.ATTRIBUTE15,
8316 p_ATTRIBUTE16 => l_price_adj_rec.ATTRIBUTE16,
8317 p_ATTRIBUTE17 => l_price_adj_rec.ATTRIBUTE17,
8318 p_ATTRIBUTE18 => l_price_adj_rec.ATTRIBUTE18,
8319 p_ATTRIBUTE19 => l_price_adj_rec.ATTRIBUTE19,
8320 p_ATTRIBUTE20 => l_price_adj_rec.ATTRIBUTE20,
8321 p_ORIG_SYS_DISCOUNT_REF => l_price_adj_rec.ORIG_SYS_DISCOUNT_REF ,
8322 p_CHANGE_SEQUENCE => l_price_adj_rec.CHANGE_SEQUENCE ,
8323 -- p_LIST_HEADER_ID => l_price_adj_rec. ,
8324 -- p_LIST_LINE_ID => l_price_adj_rec. ,
8325 -- p_LIST_LINE_TYPE_CODE => l_price_adj_rec.,
8326 p_UPDATE_ALLOWED => l_price_adj_rec.UPDATE_ALLOWED,
8327 p_CHANGE_REASON_CODE => l_price_adj_rec.CHANGE_REASON_CODE,
8328 p_CHANGE_REASON_TEXT => l_price_adj_rec.CHANGE_REASON_TEXT,
8329 p_COST_ID => l_price_adj_rec.COST_ID ,
8330 p_TAX_CODE => l_price_adj_rec.TAX_CODE,
8331 p_TAX_EXEMPT_FLAG => l_price_adj_rec.TAX_EXEMPT_FLAG,
8332 p_TAX_EXEMPT_NUMBER => l_price_adj_rec.TAX_EXEMPT_NUMBER,
8333 p_TAX_EXEMPT_REASON_CODE => l_price_adj_rec.TAX_EXEMPT_REASON_CODE,
8334 p_PARENT_ADJUSTMENT_ID => l_price_adj_rec.PARENT_ADJUSTMENT_ID,
8335 p_INVOICED_FLAG => l_price_adj_rec.INVOICED_FLAG,
8336 p_ESTIMATED_FLAG => l_price_adj_rec.ESTIMATED_FLAG,
8337 p_INC_IN_SALES_PERFORMANCE => l_price_adj_rec.INC_IN_SALES_PERFORMANCE,
8338 p_SPLIT_ACTION_CODE => l_price_adj_rec.SPLIT_ACTION_CODE,
8339 p_ADJUSTED_AMOUNT => l_price_adj_rec.ADJUSTED_AMOUNT ,
8340 p_CHARGE_TYPE_CODE => l_price_adj_rec.CHARGE_TYPE_CODE,
8341 p_CHARGE_SUBTYPE_CODE => l_price_adj_rec.CHARGE_SUBTYPE_CODE,
8342 p_RANGE_BREAK_QUANTITY => l_price_adj_rec.RANGE_BREAK_QUANTITY,
8343 p_ACCRUAL_CONVERSION_RATE => l_price_adj_rec.ACCRUAL_CONVERSION_RATE ,
8344 p_PRICING_GROUP_SEQUENCE => l_price_adj_rec.PRICING_GROUP_SEQUENCE,
8345 p_ACCRUAL_FLAG => l_price_adj_rec.ACCRUAL_FLAG,
8346 p_LIST_LINE_NO => l_price_adj_rec.LIST_LINE_NO,
8347 p_SOURCE_SYSTEM_CODE => l_price_adj_rec.SOURCE_SYSTEM_CODE ,
8348 p_BENEFIT_QTY => l_price_adj_rec.BENEFIT_QTY,
8349 p_BENEFIT_UOM_CODE => l_price_adj_rec.BENEFIT_UOM_CODE,
8350 p_PRINT_ON_INVOICE_FLAG => l_price_adj_rec.PRINT_ON_INVOICE_FLAG,
8351 p_EXPIRATION_DATE => l_price_adj_rec.EXPIRATION_DATE,
8352 p_REBATE_TRANSACTION_TYPE_CODE => l_price_adj_rec.REBATE_TRANSACTION_TYPE_CODE,
8353 p_REBATE_TRANSACTION_REFERENCE => l_price_adj_rec.REBATE_TRANSACTION_REFERENCE,
8354 p_REBATE_PAYMENT_SYSTEM_CODE => l_price_adj_rec.REBATE_PAYMENT_SYSTEM_CODE,
8355 p_REDEEMED_DATE => l_price_adj_rec.REDEEMED_DATE,
8356 p_REDEEMED_FLAG => l_price_adj_rec.REDEEMED_FLAG,
8357 p_MODIFIER_LEVEL_CODE => l_price_adj_rec.MODIFIER_LEVEL_CODE,
8358 p_PRICE_BREAK_TYPE_CODE => l_price_adj_rec.PRICE_BREAK_TYPE_CODE ,
8359 p_SUBSTITUTION_ATTRIBUTE => l_price_adj_rec.SUBSTITUTION_ATTRIBUTE,
8360 p_PRORATION_TYPE_CODE => l_price_adj_rec.PRORATION_TYPE_CODE ,
8361 p_INCLUDE_ON_RETURNS_FLAG => l_price_adj_rec.INCLUDE_ON_RETURNS_FLAG,
8362 p_CREDIT_OR_CHARGE_FLAG => l_price_adj_rec.CREDIT_OR_CHARGE_FLAG,
8363 p_OPERAND_PER_PQTY => l_price_adj_rec.OPERAND_PER_PQTY,
8364 p_ADJUSTED_AMOUNT_PER_PQTY => l_price_adj_rec.ADJUSTED_AMOUNT_PER_PQTY,
8365 p_OBJECT_VERSION_NUMBER => l_price_adj_rec.OBJECT_VERSION_NUMBER
8366 );
8367
8368 ELSIF l_price_adj_rec.operation_code = 'DELETE' THEN
8369 ASO_PRICE_ADJUSTMENTS_PKG.Delete_Row(
8370 p_PRICE_ADJ_ID => l_price_adj_rec.PRICE_ADJUSTMENT_ID);
8371
8372 END IF;
8373 END LOOP;
8374
8375
8376 -- price adjustment attributes
8377
8378 FOR i in 1..l_price_adj_attr_tbl.count LOOP
8379
8380 x_price_adj_attr_tbl(i) := l_price_adj_attr_tbl(i);
8381
8382 IF l_price_adj_attr_tbl(i).operation_code = 'CREATE' THEN
8383 -- BC4J Fix
8384 -- x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID := null;
8385
8386 ASO_PRICE_ADJ_ATTRIBS_PKG.Insert_Row(
8387 px_PRICE_ADJ_ATTRIB_ID=> x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID,
8388 p_CREATION_DATE => SYSDATE,
8389 p_CREATED_BY => G_USER_ID,
8390 p_LAST_UPDATE_DATE => SYSDATE,
8391 p_LAST_UPDATED_BY => G_USER_ID,
8392 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8393 p_PROGRAM_APPLICATION_ID
8394 =>l_price_adj_attr_tbl(i).PROGRAM_APPLICATION_ID,
8395 p_PROGRAM_ID => l_price_adj_attr_tbl(i).PROGRAM_ID,
8396 p_PROGRAM_UPDATE_DATE => l_price_adj_attr_tbl(i).PROGRAM_UPDATE_DATE,
8397 p_REQUEST_ID => l_price_adj_attr_tbl(i).REQUEST_ID,
8398 p_PRICE_ADJUSTMENT_ID => l_price_adj_attr_tbl(i).PRICE_ADJUSTMENT_ID,
8399 p_PRICING_CONTEXT => l_price_adj_attr_tbl(i).PRICING_CONTEXT,
8400 p_PRICING_ATTRIBUTE => l_price_adj_attr_tbl(i).PRICING_ATTRIBUTE,
8401 p_PRICING_ATTR_VALUE_FROM
8402 => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_FROM,
8403 p_PRICING_ATTR_VALUE_TO
8404 => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_TO,
8405 p_COMPARISON_OPERATOR => l_price_adj_attr_tbl(i).COMPARISON_OPERATOR,
8406 p_FLEX_TITLE => l_price_adj_attr_tbl(i).FLEX_TITLE ,
8407 p_OBJECT_VERSION_NUMBER => l_price_adj_attr_tbl(i).OBJECT_VERSION_NUMBER);
8408
8409 ELSIF l_price_adj_attr_tbl(i).operation_code = 'UPDATE' THEN
8410
8411 ASO_PRICE_ADJ_ATTRIBS_PKG.Update_Row(
8412 p_PRICE_ADJ_ATTRIB_ID => l_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID,
8413 p_CREATION_DATE => l_price_adj_attr_tbl(i).creation_date,
8414 p_CREATED_BY => G_USER_ID,
8415 p_LAST_UPDATE_DATE => SYSDATE,
8416 p_LAST_UPDATED_BY => G_USER_ID,
8417 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8418 p_PROGRAM_APPLICATION_ID
8419 =>l_price_adj_attr_tbl(i).PROGRAM_APPLICATION_ID,
8420 p_PROGRAM_ID => l_price_adj_attr_tbl(i).PROGRAM_ID,
8421 p_PROGRAM_UPDATE_DATE => l_price_adj_attr_tbl(i).PROGRAM_UPDATE_DATE,
8422 p_REQUEST_ID => l_price_adj_attr_tbl(i).REQUEST_ID,
8423 p_PRICE_ADJUSTMENT_ID => l_price_adj_attr_tbl(i).PRICE_ADJUSTMENT_ID,
8424 p_PRICING_CONTEXT => l_price_adj_attr_tbl(i).PRICING_CONTEXT,
8425 p_PRICING_ATTRIBUTE => l_price_adj_attr_tbl(i).PRICING_ATTRIBUTE,
8426 p_PRICING_ATTR_VALUE_FROM
8427 => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_FROM,
8428 p_PRICING_ATTR_VALUE_TO
8429 => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_TO,
8430 p_COMPARISON_OPERATOR => l_price_adj_attr_tbl(i).COMPARISON_OPERATOR,
8431 p_FLEX_TITLE => l_price_adj_attr_tbl(i).FLEX_TITLE ,
8432 p_OBJECT_VERSION_NUMBER => l_price_adj_attr_tbl(i).OBJECT_VERSION_NUMBER
8433 );
8434
8435 ELSIF l_price_adj_attr_tbl(i).operation_code = 'DELETE' THEN
8436
8437 ASO_PRICE_ADJ_ATTRIBS_PKG.Delete_Row(
8438 p_PRICE_ADJ_ATTRIB_ID => l_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID);
8439
8440 END IF;
8441
8442 END LOOP;
8443
8444
8445 -- New code to call aso_pricing_int.delete_promotion 07/22/02
8446 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8447 aso_debug_pub.add('Update_Rows: l_Price_Attributes_Tbl.count: '||l_Price_Attributes_Tbl.count,1, 'N');
8448 aso_debug_pub.add('Update_Rows: Before call to aso_pricing_int.Delete_Promotion',1, 'N');
8449 end if;
8450
8451 IF l_Price_Attributes_Tbl.count > 0 THEN
8452
8453 aso_pricing_int.Delete_Promotion (
8454 P_Api_Version_Number => 1.0,
8455 P_Init_Msg_List => FND_API.G_FALSE,
8456 P_Commit => FND_API.G_FALSE,
8457 p_price_attr_tbl => l_Price_Attributes_Tbl,
8458 x_return_status => x_return_status,
8459 x_msg_count => x_msg_count,
8460 x_msg_data => x_msg_data
8461 );
8462 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8463 aso_debug_pub.add('Update_Rows: After call to Delete_Promotion: x_return_status: '||x_return_status,1, 'N');
8464 end if;
8465
8466 END IF;
8467
8468 -- End of New code to call aso_pricing_int.delete_promotion 07/22/02
8469
8470
8471 -- insert rows into aso_payments_tbl
8472
8473
8474 FOR i IN 1..l_Payment_Tbl.count LOOP
8475 l_payment_rec := l_payment_tbl(i);
8476 -- l_payment_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
8477 x_payment_tbl(i) := l_payment_rec;
8478
8479 IF l_payment_rec.operation_code = 'CREATE' THEN
8480
8481 l_payment_rec.quote_header_id := l_qte_line_rec.quote_header_id;
8482 l_payment_rec.quote_line_id := l_qte_line_rec.quote_line_id;
8483 -- BC4J Fix
8484 -- x_payment_tbl(i).PAYMENT_ID := null;
8485 l_payment_rec.PAYMENT_TERM_ID_FROM := l_payment_tbl(i).payment_term_id;
8486 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8487 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');
8488 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');
8489 END IF;
8490
8491 -- Suyog Payments Changes
8492
8493 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8494 aso_debug_pub.add('Update_Quote_Line_Rows: Before call to create_payment_row ', 1, 'Y');
8495 END IF;
8496
8497 aso_payment_int.create_payment_row(p_payment_rec => l_payment_rec ,
8498 x_payment_rec => x_payment_tbl(i),
8499 x_return_status => x_return_status,
8500 x_msg_count => x_msg_count,
8501 x_msg_data => x_msg_data);
8502
8503 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8504 aso_debug_pub.add('Update_Quote_Line_Rows: After call to create_payment_row: x_return_status: '||x_return_status, 1, 'Y');
8505 END IF;
8506
8507 if x_return_status <> fnd_api.g_ret_sts_success then
8508 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
8509 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8510 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
8511 RAISE FND_API.G_EXC_ERROR;
8512 ELSE
8513 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8514 END IF;
8515 end if;
8516
8517 -- End Suyog Payment Changes
8518
8519 x_payment_tbl(i).PAYMENT_TERM_ID_FROM := l_payment_rec.PAYMENT_TERM_ID_FROM;
8520
8521 ELSIF l_payment_rec.operation_code = 'UPDATE' THEN
8522
8523 IF l_payment_rec.payment_term_id = FND_API.G_MISS_NUM THEN
8524 FOR l_payment_db_rec IN c_db_payment_terms(l_payment_rec.PAYMENT_ID) LOOP
8525 IF l_payment_db_rec.payment_term_id_from IS NULL THEN
8526 l_payment_rec.payment_term_id_from := l_payment_db_rec.payment_term_id;
8527 END IF;
8528 END LOOP;
8529 ELSE
8530 l_payment_rec.payment_term_id_from := l_payment_rec.payment_term_id;
8531 END IF;
8532 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8533 aso_debug_pub.add('Inside ASO_PAYMENTS_PKG - Update Rows l_payment_rec.payment_term_id'||l_payment_rec.payment_term_id, 1, 'Y');
8534 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');
8535 END IF;
8536
8537
8538 -- Suyog Payments Changes
8539
8540 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8541 aso_debug_pub.add('Update_Quote_Line_Rows: Before call to update_payment_row ', 1, 'Y');
8542 END IF;
8543
8544 aso_payment_int.update_payment_row(p_payment_rec => l_payment_rec ,
8545 x_payment_rec => x_payment_tbl(i),
8546 x_return_status => x_return_status,
8547 x_msg_count => x_msg_count,
8548 x_msg_data => x_msg_data);
8549
8550 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8551 aso_debug_pub.add('Update_Quote_Line_Rows: After call to update_payment_row: x_return_status: '||x_return_status, 1, 'Y');
8552 END IF;
8553 if x_return_status <> fnd_api.g_ret_sts_success then
8554 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
8555 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8556 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
8557 RAISE FND_API.G_EXC_ERROR;
8558 ELSE
8559 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8560 END IF;
8561 end if;
8562
8563 -- End Suyog Payment Changes
8564
8565
8566 ELSIF l_payment_rec.operation_code = 'DELETE' THEN
8567
8568 -- Suyog Payments Changes
8569
8570 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8571 aso_debug_pub.add('Update_Quote_Line_Rows: Before call to delete_payment_row ', 1, 'Y');
8572 END IF;
8573
8574 aso_payment_int.delete_payment_row(p_payment_rec => l_payment_rec ,
8575 x_return_status => x_return_status,
8576 x_msg_count => x_msg_count,
8577 x_msg_data => x_msg_data);
8578
8579 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8580 aso_debug_pub.add('Update_Quote_Line_Rows: After call to delete_payment_row: x_return_status: '||x_return_status, 1, 'Y');
8581 END IF;
8582 if x_return_status <> fnd_api.g_ret_sts_success then
8583 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
8584 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8585 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
8586 RAISE FND_API.G_EXC_ERROR;
8587 ELSE
8588 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8589 END IF;
8590 end if;
8591
8592 -- End Suyog Payment Changes
8593
8594 END IF;
8595
8596 END LOOP; -- payment loop
8597
8598 -- fix for bug 4483808 , moved validation after the row has been updated
8599 aso_validate_pvt.Validate_po_line_number
8600 (
8601 p_init_msg_list => fnd_api.g_false,
8602 p_qte_header_rec => l_qte_header_rec,
8603 P_Qte_Line_rec => l_Qte_Line_Rec,
8604 x_return_status => x_return_status,
8605 x_msg_count => x_msg_count,
8606 x_msg_data => x_msg_data);
8607
8608 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8609 RAISE FND_API.G_EXC_ERROR;
8610 END IF;
8611
8612 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
8613 aso_debug_pub.add('x_return_status for Validate_po_line_number'|| x_return_status, 1, 'Y');
8614 END IF;
8615
8616
8617 FOR i IN 1..l_line_attribs_ext_Tbl.count LOOP
8618 l_line_attribs_rec := l_line_attribs_ext_tbl(i);
8619 -- l_line_attribs_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
8620 x_line_attribs_ext_tbl(i) := l_line_attribs_rec;
8621
8622 IF l_line_attribs_rec.operation_code = 'CREATE' THEN
8623 -- BC4J Fix
8624 --x_LINE_ATTRIBS_EXT_TBL(i).LINE_ATTRIBUTE_ID := null;
8625
8626 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Insert_Row(
8627 px_LINE_ATTRIBUTE_ID => x_LINE_ATTRIBS_EXT_TBL(i).LINE_ATTRIBUTE_ID,
8628 p_CREATION_DATE => SYSDATE,
8629 p_CREATED_BY => G_USER_ID,
8630 p_LAST_UPDATE_DATE => SYSDATE,
8631 p_LAST_UPDATED_BY => G_USER_ID,
8632 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8633 p_REQUEST_ID => l_LINE_ATTRIBS_rec.REQUEST_ID,
8634 p_PROGRAM_APPLICATION_ID =>l_LINE_ATTRIBS_rec.PROGRAM_APPLICATION_ID,
8635 p_PROGRAM_ID => l_LINE_ATTRIBS_rec.PROGRAM_ID,
8636 p_PROGRAM_UPDATE_DATE => l_LINE_ATTRIBS_rec.PROGRAM_UPDATE_DATE,
8637 p_APPLICATION_ID => l_LINE_ATTRIBS_rec.APPLICATION_ID,
8638 p_STATUS => l_LINE_ATTRIBS_rec.STATUS,
8639 p_QUOTE_HEADER_ID => l_LINE_ATTRIBS_rec.QUOTE_HEADER_ID,
8640 p_QUOTE_LINE_ID => l_LINE_ATTRIBS_rec.QUOTE_LINE_ID,
8641 p_QUOTE_SHIPMENT_ID => l_LINE_ATTRIBS_rec.QUOTE_SHIPMENT_ID,
8642 p_ATTRIBUTE_TYPE_CODE => l_LINE_ATTRIBS_rec.ATTRIBUTE_TYPE_CODE,
8643 p_NAME => l_LINE_ATTRIBS_rec.NAME,
8644 p_VALUE => l_LINE_ATTRIBS_rec.VALUE,
8645 p_VALUE_TYPE => l_LINE_ATTRIBS_rec.VALUE_TYPE,
8646 p_START_DATE_ACTIVE => l_LINE_ATTRIBS_rec.START_DATE_ACTIVE,
8647 p_END_DATE_ACTIVE => l_LINE_ATTRIBS_rec.END_DATE_ACTIVE,
8648 p_OBJECT_VERSION_NUMBER => l_LINE_ATTRIBS_rec.OBJECT_VERSION_NUMBER);
8649
8650 ELSIF l_line_attribs_rec.operation_code = 'UPDATE' THEN
8651 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Update_Row(
8652 p_LINE_ATTRIBUTE_ID => l_LINE_ATTRIBS_REC.LINE_ATTRIBUTE_ID,
8653 p_CREATION_DATE => l_LINE_ATTRIBS_rec.creation_date,
8654 p_CREATED_BY => G_USER_ID,
8655 p_LAST_UPDATE_DATE => SYSDATE,
8656 p_LAST_UPDATED_BY => G_USER_ID,
8657 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8658 p_REQUEST_ID => l_LINE_ATTRIBS_rec.REQUEST_ID,
8659 p_PROGRAM_APPLICATION_ID =>l_LINE_ATTRIBS_rec.PROGRAM_APPLICATION_ID,
8660 p_PROGRAM_ID => l_LINE_ATTRIBS_rec.PROGRAM_ID,
8661 p_PROGRAM_UPDATE_DATE => l_LINE_ATTRIBS_rec.PROGRAM_UPDATE_DATE,
8662 p_APPLICATION_ID => l_LINE_ATTRIBS_rec.APPLICATION_ID,
8663 p_STATUS => l_LINE_ATTRIBS_rec.STATUS,
8664 p_QUOTE_HEADER_ID => l_LINE_ATTRIBS_rec.QUOTE_HEADER_ID,
8665 p_QUOTE_LINE_ID => l_LINE_ATTRIBS_rec.QUOTE_LINE_ID,
8666 p_QUOTE_SHIPMENT_ID => l_LINE_ATTRIBS_rec.QUOTE_SHIPMENT_ID,
8667 p_ATTRIBUTE_TYPE_CODE => l_LINE_ATTRIBS_rec.ATTRIBUTE_TYPE_CODE,
8668 p_NAME => l_LINE_ATTRIBS_rec.NAME,
8669 p_VALUE => l_LINE_ATTRIBS_rec.VALUE,
8670 p_VALUE_TYPE => l_LINE_ATTRIBS_rec.VALUE_TYPE,
8671 p_START_DATE_ACTIVE => l_LINE_ATTRIBS_rec.START_DATE_ACTIVE,
8672 p_END_DATE_ACTIVE => l_LINE_ATTRIBS_rec.END_DATE_ACTIVE,
8673 p_OBJECT_VERSION_NUMBER => l_LINE_ATTRIBS_rec.OBJECT_VERSION_NUMBER);
8674
8675 ELSIF l_line_attribs_rec.operation_code = 'DELETE' THEN
8676 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.delete_Row(
8677 p_LINE_ATTRIB_ID => l_LINE_ATTRIBS_rec.LINE_ATTRIBUTE_ID);
8678 END IF;
8679 END LOOP; -- line attribs
8680
8681
8682 --set the ship partial flag
8683
8684 OPEN C_ship_partial(l_Qte_Line_Rec.quote_line_id);
8685 FETCH C_ship_partial INTO l_ship_count;
8686 CLOSE C_ship_partial;
8687
8688 IF l_ship_count > 1 THEN
8689
8690 update aso_quote_lines_all
8691 set split_shipment_flag = 'T',
8692 last_update_date = sysdate,
8693 last_updated_by = fnd_global.user_id,
8694 last_update_login = fnd_global.conc_login_id
8695 where quote_line_id = l_Qte_Line_Rec.quote_line_id;
8696
8697 ELSIF l_ship_count = 1 THEN
8698
8699 update aso_quote_lines_all
8700 set split_shipment_flag = 'F',
8701 last_update_date = sysdate,
8702 last_updated_by = fnd_global.user_id,
8703 last_update_login = fnd_global.conc_login_id
8704 where quote_line_id = l_Qte_Line_Rec.quote_line_id;
8705
8706 END IF;
8707
8708
8709
8710 IF l_control_rec.line_pricing_event IS NOT NULL AND
8711 l_control_rec.line_pricing_event <> FND_API.G_MISS_CHAR THEN
8712
8713 l_pricing_control_rec.pricing_event := l_control_rec.line_pricing_event;
8714 l_pricing_control_rec.request_type := l_control_rec.pricing_request_type;
8715 l_pricing_control_rec.price_mode := l_control_rec.price_mode;
8716
8717 x_qte_line_rec.quote_line_id := l_qte_line_rec.quote_line_id;
8718 l_qte_line_tbl(1) := l_Qte_Line_Rec;
8719
8720 --New Code to call overload pricing_order
8721
8722 l_hd_price_attr_tbl := aso_utility_pvt.query_price_attr_rows(l_qte_header_rec.quote_header_id,null);
8723 l_hd_shipment_tbl := aso_utility_pvt.query_shipment_rows(l_qte_header_rec.quote_header_id,null);
8724
8725 if l_hd_shipment_tbl.count = 1 then
8726 l_hd_shipment_rec := l_hd_shipment_tbl(1);
8727 end if;
8728
8729
8730 ASO_PRICING_INT.Pricing_Order(
8731 P_Api_Version_Number => 1.0,
8732 P_Init_Msg_List => fnd_api.g_false,
8733 P_Commit => fnd_api.g_false,
8734 p_control_rec => l_pricing_control_rec,
8735 p_qte_header_rec => l_qte_header_rec,
8736 p_hd_shipment_rec => l_hd_shipment_rec,
8737 p_hd_price_attr_tbl => l_hd_price_attr_tbl,
8738 p_qte_line_tbl => l_qte_line_tbl,
8739 --p_line_rltship_tbl => l_line_rltship_tbl,
8740 --p_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
8741 --p_ln_shipment_tbl => ln_shipment_tbl,
8742 --p_ln_price_attr_tbl => l_ln_price_attr_tbl,
8743 x_qte_header_rec => lx_qte_header_rec,
8744 x_qte_line_tbl => lx_qte_line_tbl,
8745 x_qte_line_dtl_tbl => lx_qte_line_dtl_tbl,
8746 x_price_adj_tbl => lx_price_adj_tbl,
8747 x_price_adj_attr_tbl => lx_price_adj_attr_tbl,
8748 x_price_adj_rltship_tbl => lx_price_adj_rltship_tbl,
8749 x_return_status => x_return_status,
8750 x_msg_count => x_msg_count,
8751 x_msg_data => x_msg_data );
8752
8753 if lx_qte_line_tbl.count > 0 then
8754 x_qte_line_rec := lx_qte_line_tbl(1);
8755 end if;
8756
8757 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8758
8759 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
8760 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8761 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
8762 RAISE FND_API.G_EXC_ERROR;
8763 END IF;
8764
8765 END IF;
8766
8767
8768 END IF; -- pricing
8769
8770 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
8771 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8772 END IF;
8773
8774 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8775 aso_debug_pub.add('Update_Quote_line - before calculate_tax_flag ', 1, 'N');
8776 end if;
8777
8778 /*
8779 *
8780 *
8781 IF l_control_rec.CALCULATE_TAX_FLAG = 'Y'THEN
8782 l_tax_control_rec.tax_level := 'SHIPPING';
8783 l_tax_control_rec.update_db := 'Y' ; --FND_API.G_TRUE;
8784
8785 l_calc_tax_detail_rec.quote_header_id := l_Qte_Line_Rec.quote_header_id;
8786 l_calc_tax_detail_rec.quote_line_id := l_Qte_Line_Rec.quote_line_id;
8787
8788 -- added to calc tax based on accounts
8789 OPEN get_cust_acct( l_Qte_Line_Rec.QUOTE_HEADER_ID);
8790 FETCH get_cust_acct into l_cust_acct;
8791 IF get_cust_acct%NOTFOUND THEN
8792 NULL;
8793 END IF;
8794 CLOSE get_cust_acct;
8795
8796 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8797 aso_debug_pub.add('Cust acct'||l_cust_acct , 1, 'Y');
8798 end if;
8799
8800 IF (l_Qte_Line_Rec.invoice_to_party_site_id is not NULL
8801 AND l_Qte_Line_Rec.invoice_to_party_site_id <> FND_API.G_MISS_NUM) AND
8802 (l_cust_acct is NOT NULL AND l_cust_acct <> FND_API.G_MISS_NUM) THEN
8803 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8804 aso_debug_pub.add('inside if'||nvl(to_char(l_Qte_Line_Rec.invoice_to_party_site_id),'null'), 1, 'Y' );
8805 end if;
8806
8807 ASO_PARTY_INT.GET_ACCT_SITE_USES (
8808 p_api_version => 1.0
8809 ,P_Cust_Account_Id => l_cust_acct
8810 ,P_Party_Site_Id => l_Qte_Line_Rec.invoice_to_party_site_id
8811 ,P_Acct_Site_type => 'BILL_TO'
8812 ,x_return_status => l_return_status
8813 ,x_msg_count => l_msg_count
8814 ,x_msg_data => l_msg_data
8815 ,x_site_use_id => l_invoice_org_id
8816 );
8817 IF L_Return_Status <> FND_API.G_RET_STS_SUCCESS THEN
8818 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
8819 THEN
8820 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_ID');
8821 FND_MESSAGE.Set_Token('COLUMN', 'INVOICE_TO_SITE_USE_ID',FALSE);
8822 FND_MSG_PUB.ADD;
8823 END IF;
8824 -- raise FND_API.G_EXC_ERROR;
8825 END IF;
8826 END IF;
8827
8828 lx_tax_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows(l_Qte_Line_Rec.quote_header_id,l_Qte_Line_Rec.quote_line_id);
8829
8830 FOR i in 1..lx_tax_shipment_tbl.count LOOP
8831 l_calc_tax_detail_rec.quote_shipment_id := lx_tax_shipment_tbl(i).shipment_id;
8832
8833 IF (lx_tax_shipment_tbl(i).ship_to_party_site_id is not NULL
8834 AND lx_tax_shipment_tbl(i).ship_to_party_site_id <> FND_API.G_MISS_NUM)
8835 AND (l_cust_acct is NOT NULL AND l_cust_acct <> FND_API.G_MISS_NUM)
8836 THEN
8837 ASO_PARTY_INT.GET_ACCT_SITE_USES (
8838 p_api_version => 1.0
8839 ,P_Cust_Account_Id => l_cust_acct
8840 ,P_Party_Site_Id => lx_tax_shipment_tbl(i).ship_to_party_site_id
8841 ,P_Acct_Site_type => 'SHIP_TO'
8842 ,x_return_status => l_return_status
8843 ,x_msg_count => l_msg_count
8844 ,x_msg_data => l_msg_data
8845 ,x_site_use_id => l_ship_org_id
8846 );
8847
8848 IF L_Return_Status <> FND_API.G_RET_STS_SUCCESS THEN
8849 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
8850 THEN
8851 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_ID');
8852 FND_MESSAGE.Set_Token('COLUMN', 'INVOICE_TO_SITE_USE_ID',FALSE);
8853 FND_MSG_PUB.ADD;
8854 END IF;
8855 -- raise FND_API.G_EXC_ERROR;
8856 END IF;
8857
8858 END IF;
8859 ASO_TAX_INT.Calculate_Tax(
8860 P_Api_Version_Number => 1.0,
8861 p_quote_header_id => l_Qte_Line_Rec.quote_header_id,
8862 P_Tax_Control_Rec => l_tax_control_rec,
8863 x_tax_amount => x_tax_amount ,
8864 x_tax_detail_tbl => l_tax_detail_tbl,
8865 X_Return_Status => x_return_status ,
8866 X_Msg_Count => x_msg_count ,
8867 X_Msg_Data => x_msg_data );
8868
8869 if l_tax_detail_tbl.count > 0 then
8870 x_tax_detail_tbl(i) := l_tax_detail_tbl(1);
8871 end if;
8872
8873 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8874 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8875 FND_MESSAGE.Set_Name('ASO', 'ASO_TAX_CALCULATION');
8876 FND_MSG_PUB.ADD;
8877 END IF;
8878 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
8879 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8880 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
8881 RAISE FND_API.G_EXC_ERROR;
8882 END IF;
8883 END IF;
8884 END LOOP;
8885
8886 END IF;
8887
8888 *
8889 */
8890 -- check the profile option for reservation and create reservation if needed
8891
8892 IF FND_PROFILE.Value('ASO_RESERVATION_LEVEL') = 'AUTO_CART' THEN
8893 l_shipment_tbl := x_shipment_tbl;
8894
8895 FOR i in 1..l_shipment_tbl.count LOOP
8896
8897 -- shipment quantity should be changed
8898 IF l_shipment_tbl(i).quantity is not NULL AND
8899 l_shipment_tbl(i).quantity <> FND_API.G_MISS_NUM THEN
8900
8901 SELECT reservation_id INTO l_shipment_tbl(i).reservation_id
8902 FROM ASO_SHIPMENTS
8903 WHERE shipment_id = l_shipment_tbl(i).shipment_id;
8904
8905 ASO_RESERVATION_INT.Update_reservation(
8906 P_Api_Version_Number => 1.0,
8907 p_line_rec => x_qte_line_rec,
8908 p_shipment_rec => l_shipment_tbl(i),
8909 X_Return_Status => x_return_status,
8910 X_Msg_Count => x_msg_count,
8911 X_Msg_Data => x_msg_data
8912 );
8913
8914 UPDATE ASO_SHIPMENTS
8915 SET reservation_id = l_shipment_tbl(i).reservation_id,
8916 reserved_quantity = l_shipment_tbl(i).reserved_quantity,
8917 last_update_date = sysdate,
8918 last_updated_by = fnd_global.user_id,
8919 last_update_login = fnd_global.conc_login_id
8920 WHERE shipment_id = l_shipment_tbl(i).shipment_id;
8921
8922 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8923 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8924 FND_MESSAGE.Set_Name('ASO', 'ASO_CREATING_RESERVATION');
8925 FND_MSG_PUB.ADD;
8926 END IF;
8927 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
8928 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8929 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
8930 RAISE FND_API.G_EXC_ERROR;
8931 END IF;
8932 END IF;
8933
8934
8935 END IF; -- quantity change
8936 END LOOP;
8937
8938 END IF; --automatic reservation
8939
8940
8941
8942 IF p_update_header_flag = 'Y' THEN
8943
8944 -- Update Quote total info (do summation to get TOTAL_LIST_PRICE,
8945 -- TOTAL_ADJUSTED_AMOUNT, TOTAL_TAX, TOTAL_SHIPPING_CHARGE, SURCHARGE,
8946 -- TOTAL_QUOTE_PRICE, PAYMENT_AMOUNT)
8947 -- IF calculate_tax_flag = 'N', not summation on line level tax,
8948 -- just take the value of p_qte_rec.total_tax as the total_tax
8949 -- IF calculate_Freight_Charge = 'N', not summation on line level freight charge,
8950 -- just take the value of p_qte_rec.total_freight_charge
8951 -- how can i get the calc_tax_flag and calc_freight_charge_flag ??
8952
8953 ASO_QUOTE_HEADERS_PVT.Update_Quote_Total (
8954 P_Qte_Header_id => l_Qte_Line_Rec.quote_header_id,
8955 P_calculate_tax => l_control_rec.CALCULATE_TAX_FLAG,
8956 P_calculate_freight_charge=> l_control_rec.calculate_freight_charge_flag,
8957 p_control_rec => l_control_rec,
8958 X_Return_Status => l_return_status,
8959 X_Msg_Count => x_msg_count,
8960 X_Msg_Data => x_msg_data);
8961
8962 IF l_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8963 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8964 FND_MESSAGE.Set_Name('ASO', 'ASO_UPDATE_QUOTE_TOTAL');
8965 -- FND_MESSAGE.Set_Token('LINE' , x_qte_line_rec.line_number, FALSE);
8966 FND_MSG_PUB.ADD;
8967 END IF;
8968 END IF;
8969
8970 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
8971 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
8972 -- ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH, 'Private API: '|| l_api_name || 'error in updating header');
8973 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8974 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
8975 x_return_status := FND_API.G_RET_STS_ERROR;
8976 END IF;
8977
8978
8979 END IF;
8980
8981 -- Change START
8982 -- Release 12 TAP Changes
8983 -- Girish Sachdeva 8/30/2005
8984 -- Adding the call to insert record in the ASO_CHANGED_QUOTES
8985
8986 SELECT quote_number
8987 INTO l_quote_number
8988 FROM aso_quote_headers
8989 WHERE quote_header_id = l_Qte_Line_Rec.quote_header_id;
8990
8991 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8992 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');
8993 END IF;
8994
8995 -- Call to insert record in ASO_CHANGED_QUOTES
8996 ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES(l_quote_number);
8997
8998 -- Change END
8999
9000
9001 IF FND_API.to_Boolean( p_commit )
9002 THEN
9003 COMMIT WORK;
9004 END IF;
9005
9006
9007
9008 -- Standard call to get message count and if count is 1, get message info.
9009 FND_MSG_PUB.Count_And_Get
9010 ( p_count => x_msg_count,
9011 p_data => x_msg_data
9012 );
9013
9014 EXCEPTION
9015 WHEN FND_API.G_EXC_ERROR THEN
9016 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
9017 P_API_NAME => L_API_NAME
9018 ,P_PKG_NAME => G_PKG_NAME
9019 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
9020 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
9021 ,P_SQLCODE => SQLCODE
9022 ,P_SQLERRM => SQLERRM
9023 ,X_MSG_COUNT => X_MSG_COUNT
9024 ,X_MSG_DATA => X_MSG_DATA
9025 ,X_RETURN_STATUS => X_RETURN_STATUS);
9026
9027 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
9028 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
9029 P_API_NAME => L_API_NAME
9030 ,P_PKG_NAME => G_PKG_NAME
9031 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
9032 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
9033 ,P_SQLCODE => SQLCODE
9034 ,P_SQLERRM => SQLERRM
9035 ,X_MSG_COUNT => X_MSG_COUNT
9036 ,X_MSG_DATA => X_MSG_DATA
9037 ,X_RETURN_STATUS => X_RETURN_STATUS);
9038
9039 WHEN OTHERS THEN
9040 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
9041 P_API_NAME => L_API_NAME
9042 ,P_PKG_NAME => G_PKG_NAME
9043 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
9044 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
9045 ,P_SQLCODE => SQLCODE
9046 ,P_SQLERRM => SQLERRM
9047 ,X_MSG_COUNT => X_MSG_COUNT
9048 ,X_MSG_DATA => X_MSG_DATA
9049 ,X_RETURN_STATUS => X_RETURN_STATUS);
9050
9051
9052 End Update_quote_line;
9053
9054
9055 -- *******************************************************
9056 -- Start of Comments
9057 -- *******************************************************
9058 -- API Name: Delete_Quote_Line
9059 -- Type : Public
9060 -- Pre-Req :
9061 -- Parameters:
9062 -- IN
9063 -- p_api_version_number IN NUMBER Required
9064 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
9065 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
9066 -- p_identity_salesforce_id IN NUMBER Optional Default = NULL
9067 -- P_qte_line_Rec IN qte_line_Rec_Type Required
9068 -- P_quote_header_id IN NUMBER Required
9069 -- P_header_last_update_date IN DATE Required
9070 --
9071 -- OUT:
9072 -- x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
9073 -- x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
9074 -- x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
9075 -- Version : Current version 2.0
9076 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
9077 -- and basic operation, developer must manually add parameters and business logic as necessary.
9078 --
9079 -- End of Comments
9080 --
9081 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
9082 -- The Master delete procedure may not be needed depends on different business requirements.
9083
9084 PROCEDURE Delete_Quote_Line(
9085 P_Api_Version_Number IN NUMBER,
9086 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
9087 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
9088 P_qte_line_Rec IN ASO_QUOTE_PUB.qte_line_Rec_Type,
9089 P_Control_REC IN ASO_QUOTE_PUB.Control_Rec_Type
9090 := ASO_QUOTE_PUB.G_MISS_Control_Rec,
9091 P_Update_Header_Flag IN VARCHAR2 := 'Y',
9092 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
9093 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
9094 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
9095 )
9096 IS
9097 Cursor C_Get_quote(c_QUOTE_LINE_ID Number) IS
9098 Select head.LAST_UPDATE_DATE, head.QUOTE_STATUS_ID, head.QUOTE_NUMBER,
9099 head.TOTAL_ADJUSTED_PERCENT, head.quote_header_id
9100 From ASO_QUOTE_HEADERS_ALL head,
9101 ASO_QUOTE_LINES_ALL line
9102 Where head.QUOTE_HEADER_ID = line.QUOTE_HEADER_ID
9103 And line.QUOTE_LINE_ID = c_QUOTE_LINE_ID;
9104
9105 CURSOR C_Qte_Status(c_qte_status_id NUMBER) IS
9106 SELECT UPDATE_ALLOWED_FLAG, AUTO_VERSION_FLAG FROM ASO_QUOTE_STATUSES_B
9107 WHERE quote_status_id = c_qte_status_id;
9108
9109 CURSOR C_Qte_Version (X_qte_number NUMBER) IS
9110 SELECT max(quote_version)
9111 FROM ASO_QUOTE_HEADERS_ALL
9112 WHERE quote_number = X_qte_number;
9113
9114 CURSOR C_Shipment IS
9115 SELECT shipment_id, reservation_id
9116 FROM aso_shipments
9117 WHERE quote_line_id = p_qte_line_rec.quote_line_id;
9118
9119 CURSOR C_Inst_Details(shipment_id NUMBER) IS
9120 SELECT line_inst_detail_id
9121 FROM cs_line_inst_details
9122 WHERE quote_line_shipment_id = shipment_id;
9123
9124 -- hyang csi change 1935614
9125 cursor c_csi_details is
9126 select transaction_line_id
9127 from csi_t_transaction_lines
9128 where source_transaction_id = p_qte_line_rec.quote_line_id
9129 and source_transaction_table = 'ASO_QUOTE_LINES_ALL';
9130
9131 CURSOR C_config IS
9132 SELECT qln.item_type_code, dtl.config_header_id, dtl.config_revision_num, dtl.ref_type_code
9133 FROM aso_quote_lines_all qln, aso_quote_line_details dtl
9134 WHERE qln.quote_line_id = p_qte_line_rec.quote_line_id
9135 AND qln.quote_line_id = dtl.quote_line_id;
9136
9137 CURSOR C_Children(l_quote_line_id NUMBER) IS
9138 SELECT quote_line_id
9139 FROM aso_quote_line_details
9140 WHERE ref_line_id = l_quote_line_id
9141 AND ref_type_code = 'TOP_MODEL';
9142
9143 cursor c_pricing_line_type_indicator is
9144 select pricing_line_type_indicator
9145 from aso_quote_lines_all
9146 where quote_line_id = P_qte_line_Rec.quote_line_id;
9147
9148 cursor c_prg_lines is
9149 select modifier_line_type_code
9150 from aso_price_adjustments
9151 where quote_line_id = p_qte_line_rec.quote_line_id
9152 and modifier_line_type_code = G_PROMO_GOODS_DISCOUNT;
9153
9154 cursor c_free_lines is
9155 select a.quote_line_id
9156 from aso_price_adjustments a, aso_price_adj_relationships b
9157 where a.price_adjustment_id = b.rltd_price_adj_id
9158 and b.quote_line_id = p_qte_line_rec.quote_line_id
9159 and a.quote_line_id <> p_qte_line_rec.quote_line_id;
9160
9161 cursor get_qte_nbr(qte_hdr_id number) is
9162 SELECT quote_number
9163 FROM aso_quote_headers
9164 WHERE quote_header_id = qte_hdr_id;
9165
9166 l_api_name CONSTANT VARCHAR2(30) := 'Delete_quote_line';
9167 l_api_version_number CONSTANT NUMBER := 1.0;
9168
9169 l_last_update_date DATE;
9170 l_quote_line_detail_id NUMBER;
9171 l_shipment_rec ASO_QUOTE_PUB.shipment_rec_type;
9172 l_Return_Status VARCHAR2(50);
9173 l_Msg_Count NUMBER;
9174 l_Msg_Data VARCHAR2(240);
9175 l_line_rltship_rec ASO_quote_PUB.LINE_RLTSHIP_Rec_Type
9176 := ASO_quote_PUB.G_MISS_LINE_RLTSHIP_Rec;
9177 l_price_adj_rltship_rec ASO_QUOTE_PUB.PRICE_ADJ_RLTSHIP_Rec_Type ;
9178 l_hd_discount_percent NUMBER;
9179 l_qte_status_id NUMBER;
9180 l_update_allowed VARCHAR2(1);
9181 l_auto_version VARCHAR2(1);
9182 l_quote_number NUMBER;
9183 l_old_header_rec ASO_QUOTE_PUB.qte_header_rec_type;
9184 l_qte_header_rec ASO_QUOTE_PUB.qte_header_rec_type;
9185 l_quote_version NUMBER;
9186 x_quote_header_id NUMBER;
9187 l_quote_header_id NUMBER;
9188 l_line_inst_dtl_id NUMBER;
9189 l_item_type VARCHAR2(50);
9190 l_config_id NUMBER;
9191 l_rev_num NUMBER;
9192 l_ref_type_code VARCHAR2(30);
9193 l_qte_line_rec ASO_QUOTE_PUB.Qte_line_Rec_Type
9194 := ASO_QUOTE_PUB.G_MISS_Qte_Line_rec;
9195
9196 l_copy_quote_control_rec aso_copy_quote_pub.copy_quote_control_rec_type;
9197 l_copy_quote_header_rec aso_copy_quote_pub.copy_quote_header_rec_type;
9198 l_qte_nbr number;
9199 l_pricing_line_type_indicator varchar2(3);
9200
9201 adj_id_tbl number_tbl_type;
9202 l_modifier_line_type_code varchar2(30);
9203 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
9204 l_payment_rec aso_quote_pub.payment_rec_type;
9205 l_qte_number NUMBER ;
9206 BEGIN
9207 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9208 aso_debug_pub.add('Delete_Quote_lines - Begin ', 1, 'Y');
9209 aso_debug_pub.add('Delete_Quote_Line: P_qte_line_Rec.quote_line_id: '||P_qte_line_Rec.quote_line_id);
9210 aso_debug_pub.add('Delete_Quote_Line: P_Update_Header_Flag: '||P_Update_Header_Flag);
9211 end if;
9212
9213 -- Standard Start of API savepoint
9214 SAVEPOINT DELETE_quote_line_PVT;
9215
9216 -- Standard call to check for call compatibility.
9217 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
9218 p_api_version_number,
9219 l_api_name,
9220 G_PKG_NAME)
9221 THEN
9222 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9223 END IF;
9224
9225
9226 -- Initialize message list if p_init_msg_list is set to TRUE.
9227 IF FND_API.to_Boolean( p_init_msg_list ) THEN
9228 FND_MSG_PUB.initialize;
9229 END IF;
9230
9231
9232 -- Initialize API return status to SUCCESS
9233 x_return_status := FND_API.G_RET_STS_SUCCESS;
9234
9235 --
9236 -- Api body
9237 --
9238 -- ******************************************************************
9239 -- Validate Environment
9240 -- ******************************************************************
9241 IF FND_GLOBAL.User_Id IS NULL THEN
9242 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9243 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
9244 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
9245 FND_MSG_PUB.ADD;
9246 END IF;
9247 RAISE FND_API.G_EXC_ERROR;
9248 END IF;
9249
9250 open c_pricing_line_type_indicator;
9251 fetch c_pricing_line_type_indicator into l_pricing_line_type_indicator;
9252 close c_pricing_line_type_indicator;
9253
9254 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9255 aso_debug_pub.add('l_pricing_line_type_indicator: '|| l_pricing_line_type_indicator);
9256 end if;
9257
9258 IF (p_update_header_flag = 'Y') THEN
9259
9260 Open C_Get_quote( p_qte_line_rec.QUOTE_LINE_ID);
9261 Fetch C_Get_quote into l_LAST_UPDATE_DATE, l_qte_status_id,
9262 l_quote_number, l_hd_discount_percent,
9263 l_quote_header_id;
9264 If ( C_Get_quote%NOTFOUND) Then
9265 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9266 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_UPDATE_TARGET');
9267 FND_MESSAGE.Set_Token ('INFO', 'quote', FALSE);
9268 FND_MSG_PUB.Add;
9269 END IF;
9270 raise FND_API.G_EXC_ERROR;
9271 END IF; -- update header flag
9272 Close C_Get_quote;
9273
9274
9275 If (l_last_update_date is NULL or
9276 l_last_update_date = FND_API.G_MISS_Date ) Then
9277 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9278 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_ID');
9279 FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
9280 FND_MSG_PUB.ADD;
9281 END IF;
9282 raise FND_API.G_EXC_ERROR;
9283 End if;
9284
9285
9286 -- Check Whether record has been changed by someone else
9287 If l_last_update_date <> p_control_rec.last_update_date Then
9288 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9289 FND_MESSAGE.Set_Name('ASO', 'API_RECORD_CHANGED');
9290 FND_MESSAGE.Set_Token('INFO', 'quote', FALSE);
9291 FND_MSG_PUB.ADD;
9292 END IF;
9293 raise FND_API.G_EXC_ERROR;
9294 End if;
9295
9296 Open c_qte_status (l_qte_status_id);
9297 Fetch C_qte_status into l_update_allowed, l_auto_version;
9298 Close c_qte_status;
9299
9300
9301 IF p_control_rec.auto_version_flag = FND_API.G_TRUE AND NVL(l_auto_version,'Y') = 'Y' THEN
9302
9303 OPEN C_Qte_Version(l_quote_number);
9304 FETCH C_Qte_Version into l_quote_version;
9305 l_quote_version := nvl(l_quote_version, 0) + 1;
9306 CLOSE C_Qte_Version;
9307
9308 ELSE
9309
9310 l_auto_version := 'N';
9311
9312 END IF;
9313
9314 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9315 aso_debug_pub.add('Delete_Quote_Line: l_auto_version: '|| l_auto_version);
9316 end if;
9317
9318
9319 IF l_auto_version = 'Y' THEN
9320
9321 l_old_header_rec := aso_utility_pvt.Query_Header_Row(p_qte_line_rec.QUOTE_HEADER_ID);
9322
9323 IF l_quote_header_id IS NULL OR l_quote_header_id = FND_API.G_MISS_NUM THEN
9324
9325 open c_get_quote( p_qte_line_rec.quote_line_id);
9326 fetch c_get_quote into l_last_update_date, l_qte_status_id,
9327 l_quote_number, l_hd_discount_percent,
9328 l_quote_header_id;
9329 close c_get_quote;
9330
9331
9332 END IF; -- l_quote_header is null
9333
9334 l_copy_quote_control_rec.new_version := fnd_api.g_true;
9335 l_copy_quote_header_rec.quote_header_id := l_old_header_rec.quote_header_id;
9336
9337 aso_copy_quote_pvt.copy_quote( P_Api_Version_Number => 1.0,
9338 P_Init_Msg_List => FND_API.G_FALSE,
9339 P_Commit => FND_API.G_FALSE,
9340 P_Copy_Quote_Header_Rec => l_copy_quote_header_rec,
9341 P_Copy_Quote_Control_Rec => l_copy_quote_control_rec,
9342 X_Qte_Header_Id => x_quote_header_id,
9343 X_Qte_Number => l_qte_nbr,
9344 X_Return_Status => l_return_status,
9345 X_Msg_Count => x_msg_count,
9346 X_Msg_Data => x_msg_data
9347 );
9348
9349 if aso_debug_pub.g_debug_flag = 'Y' THEN
9350 aso_debug_pub.add('Delete_Quote_Line: After call to aso_copy_quote_pvt.copy_quote');
9351 aso_debug_pub.add('After copy_quote l_return_status: ' || l_return_status);
9352 aso_debug_pub.add('After copy_quote x_quote_header_id: ' || x_quote_header_id);
9353 aso_debug_pub.add('After copy_quote l_qte_nbr: ' || l_qte_nbr);
9354 end if;
9355
9356 update aso_quote_headers_all
9357 set quote_version = l_quote_version + 1,
9358 max_version_flag = 'Y',
9359 last_update_date = sysdate,
9360 last_updated_by = fnd_global.user_id,
9361 last_update_login = fnd_global.conc_login_id
9362 where quote_header_id = p_qte_line_rec.quote_header_id;
9363
9364 update aso_quote_headers_all
9365 set max_version_flag = 'N',
9366 quote_version = l_old_header_rec.quote_version,
9367 last_update_date = sysdate,
9368 last_updated_by = fnd_global.user_id,
9369 last_update_login = fnd_global.conc_login_id
9370 where quote_header_id = x_quote_header_id;
9371
9372 update aso_quote_headers_all
9373 set quote_version = l_quote_version,
9374 last_update_date = sysdate,
9375 last_updated_by = fnd_global.user_id,
9376 last_update_login = fnd_global.conc_login_id
9377 where quote_header_id = p_qte_line_rec.quote_header_id;
9378
9379 END IF;
9380
9381
9382 END IF;
9383
9384 --Code for PRG line deletion 05/01/2003
9385
9386 if nvl(l_pricing_line_type_indicator,'XXX') = 'F' then
9387
9388 begin
9389
9390 --Get the free lines and update it
9391
9392 select rel.rltd_price_adj_id
9393 BULK COLLECT INTO
9394 adj_id_tbl
9395 from aso_price_adj_relationships rel,
9396 aso_price_adjustments adj
9397 where rel.price_adjustment_id = adj.price_adjustment_id
9398 and adj.modifier_line_type_code = G_PROMO_GOODS_DISCOUNT
9399 and rel.price_adjustment_id in (select a.price_adjustment_id
9400 from aso_price_adj_relationships a,
9401 aso_price_adjustments b
9402 where a.rltd_price_adj_id = b.price_adjustment_id
9403 and b.quote_line_id = p_qte_line_rec.quote_line_id);
9404
9405 if aso_debug_pub.g_debug_flag = 'Y' THEN
9406 aso_debug_pub.add('No. of free adjustment lines selected is sql%rowcount: '||sql%rowcount);
9407 end if;
9408
9409 if aso_debug_pub.g_debug_flag = 'Y' THEN
9410
9411 if adj_id_tbl.count > 0 then
9412
9413 for i in adj_id_tbl.FIRST..adj_id_tbl.LAST loop
9414 aso_debug_pub.add('adj_id_tbl('||i||'): ' || adj_id_tbl(i));
9415 end loop;
9416
9417 end if;
9418
9419 end if;
9420
9421 if adj_id_tbl.count > 0 then
9422
9423 FORALL i IN adj_id_tbl.FIRST..adj_id_tbl.LAST
9424
9425 UPDATE aso_price_adjustments
9426 SET updated_flag = 'Y'
9427 WHERE price_adjustment_id = adj_id_tbl(i)
9428 AND modifier_line_type_code = G_DISCOUNT;
9429
9430 if aso_debug_pub.g_debug_flag = 'Y' THEN
9431 aso_debug_pub.add('No of adjustment lines updated is sql%rowcount: '||sql%rowcount);
9432 end if;
9433
9434 end if;
9435
9436 --Get the PRG lines and update it
9437
9438 select a.price_adjustment_id
9439 BULK COLLECT INTO
9440 adj_id_tbl
9441 from aso_price_adj_relationships a, aso_price_adjustments b
9442 where a.rltd_price_adj_id = b.price_adjustment_id
9443 and b.quote_line_id = p_qte_line_rec.quote_line_id;
9444
9445 if aso_debug_pub.g_debug_flag = 'Y' THEN
9446 aso_debug_pub.add('No. of PRG adjustment lines selected is sql%rowcount: '||sql%rowcount);
9447 end if;
9448
9449 if aso_debug_pub.g_debug_flag = 'Y' THEN
9450
9451 if adj_id_tbl.count > 0 then
9452
9453 for i in adj_id_tbl.FIRST..adj_id_tbl.LAST loop
9454 aso_debug_pub.add('adj_id_tbl('||i||'): ' || adj_id_tbl(i));
9455 end loop;
9456
9457 end if;
9458
9459 end if;
9460
9461 if adj_id_tbl.count> 0 then
9462
9463 FORALL i IN adj_id_tbl.FIRST..adj_id_tbl.LAST
9464
9465 UPDATE aso_price_adjustments
9466 SET updated_flag = 'Y'
9467 WHERE price_adjustment_id = adj_id_tbl(i)
9468 AND modifier_line_type_code = G_PROMO_GOODS_DISCOUNT;
9469
9470 if aso_debug_pub.g_debug_flag = 'Y' THEN
9471 aso_debug_pub.add('No of PRG adjustment lines updated is sql%rowcount: '||sql%rowcount);
9472 end if;
9473
9474 end if;
9475
9476 exception
9477
9478 when others then
9479
9480 if aso_debug_pub.g_debug_flag = 'Y' THEN
9481 aso_debug_pub.add('Delete_Quote_Line: Updation of updated_flag column in aso_price_adjustments table failed.');
9482 end if;
9483
9484 end;
9485
9486 end if;
9487
9488 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9489 aso_debug_pub.add('After updation of updated_flag column in aso_price_adjustments table.', 1, 'Y');
9490 end if;
9491
9492 --Changes for deleting PRG lines
9493 open c_prg_lines;
9494 fetch c_prg_lines into l_modifier_line_type_code;
9495
9496 if c_prg_lines%found then
9497
9498 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9499 aso_debug_pub.add('before deleting the PRG lines', 1, 'Y');
9500 end if;
9501
9502 for row in c_free_lines loop
9503
9504 l_qte_line_rec := aso_quote_pub.g_miss_qte_line_rec;
9505 l_qte_line_rec.quote_line_id := row.quote_line_id;
9506
9507 aso_quote_lines_pvt.delete_quote_line(
9508 P_Api_Version_Number => 1.0,
9509 p_control_rec => p_control_rec,
9510 p_update_header_flag => fnd_api.g_false,
9511 P_qte_Line_Rec => l_qte_line_rec,
9512 X_Return_Status => x_return_status,
9513 X_Msg_Count => x_msg_count,
9514 X_Msg_Data => x_msg_data);
9515
9516 if x_return_status <> fnd_api.g_ret_sts_success then
9517 raise fnd_api.g_exc_error;
9518 end if;
9519
9520 end loop;
9521
9522 end if;
9523
9524 close c_prg_lines;
9525
9526 -- Invoke table handler(ASO_QUOTE_HEADERS_PKG.Delete_Row)
9527 -- these tables may or may not have any rows
9528 -- ideally exception should be handled by the table handler
9529
9530
9531 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9532 aso_debug_pub.add('before deleting the quote line attributes.', 1, 'Y');
9533 end if;
9534
9535 -- delete quote line attributes
9536 BEGIN
9537 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Delete_Row(
9538 p_QUOTE_LINE_ID => p_qte_line_rec.quote_line_id);
9539 EXCEPTION
9540 WHEN NO_DATA_FOUND THEN
9541 null;
9542 END;
9543
9544 -- delete price attributes
9545 BEGIN
9546 ASO_PRICE_ATTRIBUTES_PKG.Delete_Row(
9547 p_QUOTE_LINE_ID => p_qte_line_rec.quote_line_id);
9548 EXCEPTION
9549 WHEN NO_DATA_FOUND THEN
9550 null;
9551 END;
9552
9553 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9554 aso_debug_pub.add('before deleting the quote line relationships.', 1, 'Y');
9555 end if;
9556
9557 -- delete line relationships
9558
9559 l_line_rltship_rec.quote_line_id := p_qte_line_rec.quote_line_id;
9560 ASO_LINE_RLTSHIP_PVT.Delete_line_rltship(
9561 P_Api_Version_Number => 1.0,
9562 p_control_rec => p_control_rec,
9563 P_LINE_RLTSHIP_Rec => l_line_rltship_rec,
9564 X_Return_Status => x_return_status,
9565 X_Msg_Count => x_msg_count,
9566 X_Msg_Data => x_msg_data);
9567
9568 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9569 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9570 FND_MESSAGE.Set_Name('ASO', 'ASO_DELETE');
9571 FND_MESSAGE.Set_Token('OBJECT','LINE_RLTSHIP',FALSE);
9572 FND_MSG_PUB.ADD;
9573 END IF;
9574 RAISE FND_API.G_EXC_ERROR;
9575 END IF;
9576
9577
9578 -- delete price adjustment relationships
9579
9580 l_price_adj_rltship_rec.quote_line_id := p_qte_line_rec.quote_line_id;
9581 ASO_PRICE_ADJ_RLTSHIP_PVT.Delete_Price_Adj_Rltship(
9582 P_Api_Version_Number => 1.0,
9583 P_PRICE_ADJ_RLTSHIP_Rec => l_price_adj_rltship_rec,
9584 X_Return_Status => x_return_status,
9585 X_Msg_Count => x_msg_count,
9586 X_Msg_Data => x_msg_data);
9587
9588 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9589 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9590 FND_MESSAGE.Set_Name('ASO', 'ASO_DELETE');
9591 FND_MESSAGE.Set_Token('OBJECT','PRICE_ADJ_RLTSHIP',FALSE);
9592 FND_MSG_PUB.ADD;
9593 END IF;
9594 RAISE FND_API.G_EXC_ERROR;
9595 END IF;
9596
9597 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9598 aso_debug_pub.add('before deleting the quote line price adjustments.', 1, 'Y');
9599 end if;
9600
9601 -- delete price adjustments
9602 -- this should once again delete price adj relationships
9603 BEGIN
9604 ASO_PRICE_ADJUSTMENTS_PKG.Delete_Row(
9605 p_LINE_ID => p_qte_line_rec.quote_line_id,
9606 p_TYPE_CODE => 'QUOTE_LINE');
9607 EXCEPTION
9608 WHEN NO_DATA_FOUND THEN
9609 null;
9610 END;
9611
9612 -- delete payments
9613 BEGIN
9614
9615 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9616 aso_debug_pub.add('Delete_Quote_Line: Before call to delete_payment_row ', 1, 'Y');
9617 END IF;
9618
9619 l_payment_tbl := aso_utility_pvt.Query_Payment_Rows(p_qte_line_rec.quote_header_id,p_qte_line_rec.quote_line_id);
9620
9621 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9622 aso_debug_pub.add('Delete_Quote_Line: l_payment_tbl.count: '|| l_payment_tbl.count, 1, 'Y');
9623 END IF;
9624
9625 if l_payment_tbl.count > 0 then
9626
9627 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9628 aso_debug_pub.add('Delete_Quote_Line: Inside if for payment tbl count > 0 ', 1, 'Y');
9629 END IF;
9630
9631
9632 if l_payment_tbl(1).trxn_extension_id is not null then
9633
9634 l_payment_rec := l_payment_tbl(1);
9635
9636 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9637 aso_debug_pub.add('Delete_Quote_Line: Before call to delete_payment_row', 1, 'Y');
9638 END IF;
9639
9640 aso_payment_int.delete_payment_row(p_payment_rec => l_payment_rec ,
9641 x_return_status => x_return_status,
9642 x_msg_count => x_msg_count,
9643 x_msg_data => x_msg_data);
9644
9645 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9646 aso_debug_pub.add('Delete_Quote_Line: After call to delete_payment_row: x_return_status: '||x_return_status, 1, 'Y');
9647 END IF;
9648 if x_return_status <> fnd_api.g_ret_sts_success then
9649 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
9650 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9651 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
9652 RAISE FND_API.G_EXC_ERROR;
9653 ELSE
9654 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9655 END IF;
9656 end if;
9657
9658 else
9659
9660 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9661 aso_debug_pub.add('Delete_Quote_Line: Before calling table handler to delete payment row', 1, 'Y');
9662 END IF;
9663
9664 aso_payments_pkg.Delete_Row(p_payment_id => l_payment_tbl(1).payment_id);
9665 end if;
9666
9667 end if;
9668
9669 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9670 aso_debug_pub.add('Delete_Quote_Line: After deleting the payment row', 1, 'Y');
9671 END IF;
9672
9673 EXCEPTION
9674 WHEN NO_DATA_FOUND THEN
9675 null;
9676 END;
9677
9678 -- delete freight
9679 BEGIN
9680 ASO_FREIGHT_CHARGES_PKG.delete_Row(
9681 p_QUOTE_LINE_ID => p_qte_line_rec.quote_line_id);
9682 EXCEPTION
9683 WHEN NO_DATA_FOUND THEN
9684 null;
9685 END;
9686
9687 -- delete tax details
9688 BEGIN
9689 ASO_TAX_DETAILS_PKG.Delete_Row(
9690 p_QUOTE_LINE_ID => p_qte_line_rec.quote_line_id);
9691 EXCEPTION
9692 WHEN NO_DATA_FOUND THEN
9693 null;
9694 END;
9695
9696 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9697 aso_debug_pub.add('Delete_Quote_Line: Before deleting the sales credits', 1, 'Y');
9698 END IF;
9699
9700 -- delete salescredits
9701 ASO_SALES_CREDITS_PKG.Delete_row(
9702 p_QUOTE_LINE_ID => p_qte_line_rec.quote_line_id);
9703
9704 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9705 aso_debug_pub.add('Delete_Quote_Line: Before deleting the quote parties', 1, 'Y');
9706 END IF;
9707
9708 -- delete quote parties
9709 ASO_QUOTE_PARTIES_PKG.Delete_row(
9710 p_QUOTE_LINE_ID => p_qte_line_rec.quote_line_id);
9711
9712 -- delete configurations - supported only at model levels
9713 OPEN C_config;
9714 FETCH C_config into l_item_type, l_config_id, l_rev_num, l_ref_type_code;
9715 IF (C_config%NOTFOUND) THEN
9716 null;
9717 END IF;
9718 CLOSE C_config;
9719
9720 IF l_item_type = 'MDL' THEN
9721
9722 IF l_config_id is not NULL THEN
9723
9724 ASO_CFG_INT.DELETE_CONFIGURATION(
9725 P_API_VERSION_NUMBER => 1.0,
9726 P_INIT_MSG_LIST => FND_API.G_FALSE,
9727 P_CONFIG_HDR_ID => l_config_id,
9728 P_CONFIG_REV_NBR => l_rev_num,
9729 X_RETURN_STATUS => x_return_status,
9730 X_MSG_COUNT => x_msg_count,
9731 X_MSG_DATA => x_msg_data);
9732
9733 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9734 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9735 FND_MESSAGE.Set_Name('ASO', 'ASO_DELETE');
9736 FND_MESSAGE.Set_Token('OBJECT', 'CONFIGURATION', FALSE);
9737 FND_MSG_PUB.ADD;
9738 END IF;
9739 RAISE FND_API.G_EXC_ERROR;
9740 END IF;
9741
9742 ELSIF l_ref_type_code = 'TOP_MODEL' THEN
9743
9744 FOR Cur_Children IN C_Children(p_qte_line_rec.quote_line_id) LOOP
9745
9746 l_qte_line_rec.quote_line_id := Cur_Children.quote_line_id;
9747
9748 ASO_QUOTE_LINES_PVT.Delete_Quote_Line(
9749 P_Api_Version_Number => 1.0,
9750 p_control_rec => p_control_rec,
9751 p_update_header_flag => p_update_header_flag,
9752 P_qte_Line_Rec => l_qte_line_rec,
9753 X_Return_Status => x_return_status,
9754 X_Msg_Count => x_msg_count,
9755 X_Msg_Data => x_msg_data);
9756 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9757 RAISE FND_API.G_EXC_ERROR;
9758 END IF;
9759
9760 END LOOP;
9761
9762 END IF; -- config
9763
9764
9765 END IF; -- 'MDL'
9766
9767 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9768 aso_debug_pub.add('Delete_Quote_Line: Before deleting the quote line details', 1, 'Y');
9769 aso_debug_pub.add('p_qte_line_rec.quote_line_id: '|| p_qte_line_rec.quote_line_id);
9770 END IF;
9771
9772 -- delete quote line details
9773 BEGIN
9774 ASO_QUOTE_LINE_DETAILS_PKG.Delete_Row(
9775 p_QUOTE_LINE_ID => p_qte_line_rec.quote_line_id);
9776
9777 EXCEPTION
9778
9779 WHEN NO_DATA_FOUND THEN
9780 null;
9781 END;
9782
9783
9784 -- shipment should exist
9785 -- OPEN C_Shipment;
9786 FOR i in C_Shipment LOOP
9787
9788 l_shipment_rec.shipment_id := i.shipment_id;
9789 l_shipment_rec.reservation_id := i.reservation_id;
9790
9791 -- hyang csi change 1935614
9792 if not (csi_utility_grp.ib_active()) then
9793
9794 FOR j in C_inst_details(l_shipment_rec.shipment_id) LOOP
9795
9796 l_line_inst_dtl_id := j.line_inst_detail_id;
9797
9798 null;
9799
9800 END LOOP;
9801
9802 else
9803
9804 -- new ib module
9805 for j in C_csi_details LOOP
9806
9807 l_line_inst_dtl_id := j.transaction_line_id;
9808
9809 ASO_INSTBASE_INT.Delete_Installation_Detail(
9810 p_api_version_number => 1.0,
9811 p_init_msg_list => FND_API.G_FALSE,
9812 p_commit => FND_API.G_FALSE,
9813 x_return_status => x_return_status,
9814 x_msg_count => x_msg_count,
9815 x_msg_data => x_msg_data,
9816 p_line_inst_dtl_id => l_line_inst_dtl_id
9817 );
9818
9819 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9820 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9821 FND_MESSAGE.Set_Name('ASO', 'ASO_DELETE');
9822 FND_MESSAGE.Set_Token('OBJECT', 'INSTALLATION DETAILS');
9823 FND_MSG_PUB.ADD;
9824 END IF;
9825 RAISE FND_API.G_EXC_ERROR;
9826 END IF;
9827 END LOOP;
9828 END IF;
9829
9830
9831 ASO_SHIPMENT_PVT.Delete_shipment(
9832 P_Api_Version_Number => 1.0,
9833 P_SHIPMENT_Rec => l_shipment_rec,
9834 X_Return_Status => x_return_status,
9835 X_Msg_Count => x_msg_count,
9836 X_Msg_Data => x_msg_data);
9837
9838 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9839 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9840 FND_MESSAGE.Set_Name('ASO', 'ASO_DELETE');
9841 FND_MESSAGE.Set_Token('OBJECT', 'LINE_SHIPMENTS', FALSE);
9842 FND_MSG_PUB.ADD;
9843 END IF;
9844 RAISE FND_API.G_EXC_ERROR;
9845 END IF;
9846
9847 END LOOP;
9848
9849
9850 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9851 aso_debug_pub.add('Delete_Quote_Line: Before deleting the quote line', 1, 'Y');
9852 aso_debug_pub.add('p_qte_line_rec.quote_line_id: '|| p_qte_line_rec.quote_line_id);
9853 END IF;
9854
9855 BEGIN
9856 ASO_QUOTE_LINES_PKG.Delete_Row( p_quote_line_id => p_qte_line_rec.quote_line_id);
9857 EXCEPTION
9858 WHEN no_data_found then
9859 null;
9860 END;
9861
9862
9863 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9864 aso_debug_pub.add('Delete_Quote_Line: After deleting the quote line', 1, 'Y');
9865 END IF;
9866
9867 IF p_update_header_flag = 'Y' THEN
9868
9869 -- Update Quote total info (do summation to get TOTAL_LIST_PRICE,
9870 -- TOTAL_ADJUSTED_AMOUNT, TOTAL_TAX, TOTAL_SHIPPING_CHARGE, SURCHARGE,
9871 -- TOTAL_QUOTE_PRICE, PAYMENT_AMOUNT)
9872 -- IF calculate_tax_flag = 'N', not summation on line level tax,
9873 -- just take the value of p_qte_rec.total_tax as the total_tax
9874 -- IF calculate_Freight_Charge = 'N', not summation on line level freight charge,
9875 -- just take the value of p_qte_rec.total_freight_charge
9876 -- how can i get the calc_tax_flag and calc_freight_charge_flag ??
9877
9878
9879 ASO_QUOTE_HEADERS_PVT.Update_Quote_Total(
9880 P_Qte_Header_id => l_quote_header_id,
9881 P_calculate_tax => p_control_rec.CALCULATE_TAX_FLAG,
9882 P_calculate_freight_charge => p_control_rec.calculate_freight_charge_flag,
9883 p_control_rec => p_control_rec,
9884 X_Return_Status => l_return_status,
9885 X_Msg_Count => x_msg_count,
9886 X_Msg_Data => x_msg_data);
9887
9888 IF l_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9889
9890 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9891 FND_MESSAGE.Set_Name('ASO', 'ASO_UPDATE_QUOTE_TOTAL');
9892 FND_MSG_PUB.ADD;
9893 END IF;
9894
9895 END IF;
9896
9897
9898 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
9899 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9900 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9901 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
9902 x_return_status := FND_API.G_RET_STS_ERROR;
9903 END IF;
9904
9905
9906 END IF;
9907
9908 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9909 aso_debug_pub.add('Delete_Quote_Line: Before call to Delete_OTA_Line.');
9910 aso_debug_pub.add('p_qte_line_rec.quote_line_id: '|| p_qte_line_rec.quote_line_id);
9911 end if;
9912
9913 ASO_EDUCATION_INT.Delete_OTA_Line(
9914 P_Init_Msg_List => FND_API.G_FALSE,
9915 P_Commit => FND_API.G_FALSE,
9916 P_Qte_Line_Id => p_qte_line_rec.quote_line_id,
9917 X_Return_Status => l_return_status,
9918 X_Msg_Count => x_msg_count,
9919 X_Msg_Data => x_msg_data);
9920
9921 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9922 aso_debug_pub.add('Delete_Quote_Line: After call to Delete_OTA_Line.');
9923 aso_debug_pub.add('Delete_Quote_Line: l_return_status: '|| l_return_status);
9924 end if;
9925
9926 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9927 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9928 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9929 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
9930 x_return_status := FND_API.G_RET_STS_ERROR;
9931 RAISE FND_API.G_EXC_ERROR;
9932 END IF;
9933
9934 -- Change START
9935 -- Release 12 TAP Changes
9936 -- Girish Sachdeva 8/30/2005
9937 -- Adding the call to insert record in the ASO_CHANGED_QUOTES
9938
9939 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
9940
9941 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9942 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');
9943 END IF;
9944
9945 OPEN get_qte_nbr(p_qte_line_rec.quote_header_id);
9946 FETCH get_qte_nbr INTO l_qte_number;
9947 CLOSE get_qte_nbr;
9948
9949 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9950 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');
9951 END IF;
9952
9953
9954 -- Call to insert record in ASO_CHANGED_QUOTES
9955 ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES(l_qte_number);
9956
9957 END IF ;
9958
9959 -- Change END
9960
9961 --
9962 -- End of API body
9963 --
9964
9965 -- Standard check for p_commit
9966 IF FND_API.to_Boolean( p_commit ) THEN
9967 COMMIT WORK;
9968 END IF;
9969
9970 -- Standard call to get message count and if count is 1, get message info.
9971 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
9972 p_data => x_msg_data );
9973
9974
9975 EXCEPTION
9976
9977 WHEN FND_API.G_EXC_ERROR THEN
9978 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
9979 P_API_NAME => L_API_NAME
9980 ,P_PKG_NAME => G_PKG_NAME
9981 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
9982 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
9983 ,P_SQLCODE => SQLCODE
9984 ,P_SQLERRM => SQLERRM
9985 ,X_MSG_COUNT => X_MSG_COUNT
9986 ,X_MSG_DATA => X_MSG_DATA
9987 ,X_RETURN_STATUS => X_RETURN_STATUS);
9988
9989 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
9990 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
9991 P_API_NAME => L_API_NAME
9992 ,P_PKG_NAME => G_PKG_NAME
9993 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
9994 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
9995 ,P_SQLCODE => SQLCODE
9996 ,P_SQLERRM => SQLERRM
9997 ,X_MSG_COUNT => X_MSG_COUNT
9998 ,X_MSG_DATA => X_MSG_DATA
9999 ,X_RETURN_STATUS => X_RETURN_STATUS);
10000
10001 WHEN OTHERS THEN
10002 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
10003 P_API_NAME => L_API_NAME
10004 ,P_PKG_NAME => G_PKG_NAME
10005 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
10006 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
10007 ,P_SQLCODE => SQLCODE
10008 ,P_SQLERRM => SQLERRM
10009 ,X_MSG_COUNT => X_MSG_COUNT
10010 ,X_MSG_DATA => X_MSG_DATA
10011 ,X_RETURN_STATUS => X_RETURN_STATUS);
10012
10013 END;
10014
10015
10016
10017
10018 -- *******************************************************
10019 -- Start of Comments
10020 -- *******************************************************
10021 -- API Name: Get_Quote_Lines
10022 -- Type : Public
10023 -- Pre-Req :
10024 -- Parameters:
10025 -- IN
10026 -- p_api_version_number IN NUMBER Required
10027 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
10028 -- p_identity_salesforce_id IN NUMBER Optional Default = NULL
10029 -- P_quote_id IN NUMBER Required
10030 -- p_rec_requested IN NUMBER Optional Default = 30
10031 -- p_start_rec_ptr IN NUMBER Optional Default = 1
10032 --
10033 -- Return Total Records Count Flag. This flag controls whether the total record count
10034 -- and total record amount is returned.
10035 --
10036 -- p_return_tot_count IN VARCHAR2 Optional Default = FND_API.G_FALSE
10037 -- Hint: User defined record type
10038 -- p_order_by_tbl IN AS_UTILITY_PUB.UTIL_ORDER_BY_TBL_TYPE;
10039 --
10040 -- OUT:
10041 -- x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
10042 -- x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
10043 -- x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
10044 -- X_qte_line_Tbl OUT NOCOPY /* file.sql.39 change */ qte_line_Tbl_Type
10045 -- X_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ Payment_Tbl_Type
10046 -- X_Price_Adj_Tbl OUT NOCOPY /* file.sql.39 change */ Price_Adj_Tbl_Type
10047 -- X_Qte_Line_Dtl_Tbl OUT NOCOPY /* file.sql.39 change */ Qte_Line_Dtl_Tbl_Type
10048 -- X_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ Shipment_Tbl_Type
10049 -- X_Tax_Details_Tbl OUT NOCOPY /* file.sql.39 change */ Tax_Details_Tbl_Type
10050 -- X_Freight_Charges_Tbl OUT NOCOPY /* file.sql.39 change */ Freight_Charges_Tbl_Type
10051 -- X_Line_Relationship_Tbl OUT NOCOPY /* file.sql.39 change */ Line_Relationship_Tbl_Type
10052 -- X_Related_Object_Tbl OUT NOCOPY /* file.sql.39 change */ Related_Object_Tbl_Type
10053 -- X_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ Price_Attributes_Tbl_Type
10054 -- X_Price_Adj_Relationship_Tbl OUT NOCOPY /* file.sql.39 change */ Price_Adj_relationship_Tbl_Type
10055 -- x_returned_rec_count OUT NOCOPY /* file.sql.39 change */ NUMBER
10056 -- x_next_rec_ptr OUT NOCOPY /* file.sql.39 change */ NUMBER
10057 -- x_tot_rec_count OUT NOCOPY /* file.sql.39 change */ NUMBER
10058 -- other optional OUT NOCOPY /* file.sql.39 change */ parameters
10059 -- x_tot_rec_amount OUT NOCOPY /* file.sql.39 change */ NUMBER
10060 -- Version : Current version 2.0
10061 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
10062 -- and basic operation, developer must manually add parameters and business logic as necessary.
10063 --
10064 -- End of Comments
10065 --
10066 PROCEDURE Get_Quote_Line(
10067 P_Api_Version_Number IN NUMBER,
10068 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
10069 p_rec_requested IN NUMBER := G_DEFAULT_NUM_REC_FETCH,
10070 p_start_rec_prt IN NUMBER := 1,
10071 p_return_tot_count IN NUMBER := FND_API.G_FALSE,
10072 -- Hint: user defined record type
10073 p_order_by_rec IN ASO_QUOTE_PUB.qte_line_sort_rec_type,
10074 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
10075 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
10076 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
10077 x_returned_rec_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
10078 x_next_rec_ptr OUT NOCOPY /* file.sql.39 change */ NUMBER,
10079 x_tot_rec_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
10080 P_Qte_Line_Rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_qte_line_REC,
10081 P_Control_REC IN ASO_QUOTE_PUB.Control_Rec_Type := ASO_QUOTE_PUB.G_MISS_Control_Rec,
10082 X_Qte_Line_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Rec_Type,
10083 X_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
10084 X_Price_Adj_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
10085 X_Qte_Line_Dtl_rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Dtl_rec_Type,
10086 X_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Tbl_Type,
10087 X_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
10088 X_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type ,
10089 X_Line_Rltship_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Rltship_Tbl_Type,
10090 X_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type ,
10091 X_Price_Adj_rltship_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type,
10092 X_Line_Attribs_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_type
10093 )
10094 IS
10095 BEGIN
10096 null;
10097 END;
10098
10099 Procedure service_item_qty_update
10100 (p_qte_line_rec IN ASO_QUOTE_PUB.QTE_LINE_REC_TYPE,
10101 p_service_item_flag IN VARCHAR2,
10102 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
10103 )IS
10104
10105 CURSOR C_ord_qty(ord_line_id NUMBER) IS
10106 SELECT ordered_quantity
10107 FROM oe_order_lines_All
10108 WHERE line_id = ord_line_id;
10109
10110 CURSOR C_cs_qty(p_instance_id NUMBER) IS
10111 SELECT quantity
10112 FROM CSI_ITEM_INSTANCES
10113 WHERE instance_id = p_instance_id;
10114
10115 CURSOR C_quantity(p_quote_line_id NUMBER) IS
10116 SELECT quantity
10117 FROM aso_quote_lines_all
10118 WHERE quote_line_id = p_quote_line_id;
10119
10120 l_serviceable_product_flag VARCHAR2(1);
10121 l_qte_line_rec ASO_QUOTE_PUB.QTE_LINE_REC_TYPE;
10122 l_org_id NUMBER;
10123 l_inventory_item_id NUMBER;
10124 l_organization_id NUMBER;
10125 l_qte_line_detail_tbl ASO_QUOTE_PUB.QTE_LINE_DTL_TBL_TYPE;
10126 l_quantity NUMBER;
10127 l_update_flag VARCHAR2(1) := FND_API.G_FALSE;
10128
10129 Begin
10130 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10131 aso_debug_pub.add('Procedure Service_item_qty_update Starts.', 1, 'Y');
10132 end if;
10133 x_return_status := FND_API.G_RET_STS_SUCCESS;
10134
10135 IF p_service_item_flag = FND_API.G_FALSE THEN
10136 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10137 aso_debug_pub.add('Service_item_qty_update: Inside IF condition p_service_item_flag = FND_API.G_FALSE', 1, 'N');
10138 end if;
10139
10140 l_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row(p_qte_line_rec.quote_line_id);
10141 begin
10142 UPDATE aso_quote_lines_all
10143 set quantity = l_qte_line_rec.quantity,
10144 last_update_date = sysdate,
10145 last_updated_by = fnd_global.user_id,
10146 last_update_login = fnd_global.conc_login_id
10147 where quote_line_id IN
10148 ( select quote_line_id from aso_quote_line_details
10149 where service_ref_type_code = 'QUOTE' and service_ref_line_id = l_qte_line_rec.quote_line_id );
10150
10151 EXCEPTION
10152 WHEN OTHERS THEN
10153 x_return_status := FND_API.G_RET_STS_ERROR;
10154 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10155 aso_debug_pub.add('Service_item_qty_update:Exception1',1,'N');
10156 end if;
10157 end;
10158 ELSE
10159 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10160 aso_debug_pub.add('Service_item_qty_update:ELSE condition of p_service_item_flag = FND_API.G_FALSE', 1, 'N');
10161 end if;
10162 l_qte_line_detail_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows(p_qte_line_rec.quote_line_id);
10163
10164 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10165 aso_debug_pub.add('Service_item_qty_update: ASO_UTILITY_PVT.Query_Line_Dtl_Rows', 1, 'N');
10166 end if;
10167
10168 FOR i IN 1..l_qte_line_detail_tbl.count LOOP
10169 IF l_qte_line_detail_tbl(i).service_ref_type_code = 'QUOTE' THEN
10170 OPEN C_quantity(l_qte_line_detail_tbl(i).service_ref_line_id);
10171 FETCH C_quantity INTO l_quantity;
10172 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10173 aso_debug_pub.add('Service_item_qty_update: Cursor C_quantity: l_quantity: '||l_quantity, 1, 'N');
10174 end if;
10175 IF C_quantity%NOTFOUND THEN
10176 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10177 aso_debug_pub.add('Service_item_qty_update: Inside cursor C_quantity%NOTFOUND ', 1, 'N');
10178 end if;
10179 x_return_status := FND_API.G_RET_STS_ERROR;
10180 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10181 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SERVICE_REF_LINE');
10182 FND_MESSAGE.Set_Token('CODE', 'QUOTE', FALSE);
10183 FND_MESSAGE.Set_Token('VALUE', l_qte_line_detail_tbl(i).service_ref_line_id, FALSE);
10184 FND_MSG_PUB.ADD;
10185 END IF;
10186 ELSE
10187 l_update_flag := FND_API.G_TRUE;
10188 END IF;
10189 CLOSE C_quantity;
10190 ELSIF l_qte_line_detail_tbl(i).service_ref_type_code = 'ORDER' THEN
10191 OPEN C_ord_qty(l_qte_line_detail_tbl(i).service_ref_line_id);
10192 FETCH C_ord_qty INTO l_quantity;
10193 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10194 aso_debug_pub.add('Service_item_qty_update: Cursor C_ord_qty: l_quantity: '||l_quantity, 1, 'N');
10195 end if;
10196 IF C_ord_qty%NOTFOUND THEN
10197 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10198 aso_debug_pub.add('Service_item_qty_update: Inside cursor C_ord_qty%NOTFOUND condition.', 1, 'N');
10199 end if;
10200 x_return_status := FND_API.G_RET_STS_ERROR;
10201 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10202 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SERVICE_REF_LINE');
10203 FND_MESSAGE.Set_Token('CODE', 'ORDER', FALSE);
10204 FND_MESSAGE.Set_Token('VALUE', l_qte_line_detail_tbl(i).service_ref_line_id, FALSE);
10205 FND_MSG_PUB.ADD;
10206 END IF;
10207 ELSE
10208 l_update_flag := FND_API.G_TRUE;
10209 END IF;
10210 CLOSE C_ord_qty;
10211 ELSIF l_qte_line_detail_tbl(i).service_ref_type_code = 'CUSTOMER_PRODUCT' THEN
10212 OPEN C_cs_qty(l_qte_line_detail_tbl(i).service_ref_line_id);
10213 FETCH C_cs_qty INTO l_quantity;
10214 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10215 aso_debug_pub.add('Service_item_qty_update: Cursor C_cs_qty: l_quantity: '||l_quantity, 1, 'N');
10216 end if;
10217
10218 IF C_cs_qty%NOTFOUND THEN
10219 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10220 aso_debug_pub.add('Service_item_qty_update: Inside cursor C_cs_qty%NOTFOUND condition. ', 1, 'N');
10221 end if;
10222 x_return_status := FND_API.G_RET_STS_ERROR;
10223 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10224 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_SERVICE_REF_LINE');
10225 FND_MESSAGE.Set_Token('CODE', 'CUSTOMER_PRODUCT', FALSE);
10226 FND_MESSAGE.Set_Token('VALUE', l_qte_line_detail_tbl(i).service_ref_line_id, FALSE);
10227 FND_MSG_PUB.ADD;
10228 END IF;
10229 ELSE
10230 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10231 aso_debug_pub.add('Service_item_qty_update: cursor C_cs_qty%FOUND ', 1, 'N ');
10232 end if;
10233 l_update_flag := FND_API.G_TRUE;
10234 END IF;
10235 CLOSE C_cs_qty;
10236 END IF;
10237
10238 IF x_return_status <> FND_API.G_RET_STS_ERROR AND l_update_flag = FND_API.G_TRUE THEN
10239
10240 Begin
10241
10242 UPDATE aso_quote_lines_all
10243 set quantity = l_quantity,
10244 last_update_date = sysdate,
10245 last_updated_by = fnd_global.user_id,
10246 last_update_login = fnd_global.conc_login_id
10247 where quote_line_id = p_qte_line_rec.quote_line_id;
10248
10249 EXCEPTION
10250 WHEN OTHERS THEN
10251 x_return_status := FND_API.G_RET_STS_ERROR;
10252
10253 if aso_debug_pub.g_debug_flag = 'Y' THEN
10254 aso_debug_pub.add('Service_item_qty_update:Exception raised when others', 1, 'N');
10255 end if;
10256
10257 End;
10258
10259 END IF;
10260
10261 l_update_flag := FND_API.G_FALSE;
10262
10263 END LOOP;
10264
10265 END IF;
10266 End service_item_qty_update;
10267
10268 END ASO_QUOTE_LINES_PVT;