[Home] [Help]
PACKAGE BODY: APPS.ASO_CONFIG_OPERATIONS_INT
Source
1 PACKAGE BODY ASO_CONFIG_OPERATIONS_INT as
2 /* $Header: asoicfob.pls 120.3 2005/11/18 14:58:55 bmishra ship $ */
3
4
5 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ASO_CONFIG_OPERATIONS_INT';
6
7 PROCEDURE config_operations(
8 P_Api_Version_Number IN NUMBER,
9 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
10 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
11 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
12 P_Control_Rec IN ASO_QUOTE_PUB.Control_Rec_Type := ASO_QUOTE_PUB.G_Miss_Control_Rec,
13 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type:=ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec,
14 P_qte_line_tbl IN ASO_QUOTE_PUB.Qte_line_tbl_type := ASO_QUOTE_PUB.G_MISS_Qte_line_tbl ,
15 P_instance_tbl IN ASO_QUOTE_HEADERS_PVT.Instance_Tbl_Type,
16 p_operation_code IN VARCHAR2,
17 p_delete_flag IN VARCHAR2 := FND_API.G_TRUE,
18 x_Qte_Header_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Header_Rec_Type,
19 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
20 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
21 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
22 )is
23
24 l_api_name CONSTANT VARCHAR2(30) := 'config_operations';
25 l_api_version CONSTANT NUMBER := 1.0;
26 l_last_update_date Date;
27 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type:=ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec;
28 l_Control_Rec ASO_QUOTE_PUB.Control_Rec_Type := ASO_QUOTE_PUB.G_Miss_Control_Rec;
29 l_QTE_LINE_TBL ASO_QUOTE_PUB.Qte_line_tbl_type := ASO_QUOTE_PUB.G_MISS_Qte_line_tbl;
30
31 l_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
32 l_ln_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
33 lx_Qte_Line_Tbl ASO_QUOTE_PUB.Qte_line_tbl_type;
34 lx_Qte_Line_Dtl_Tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
35 lx_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
36 lx_hd_Price_Attr_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
37 lx_hd_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
38 lx_hd_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
39 lx_hd_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
40 lx_hd_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
41 lX_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
42 lx_Line_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
43 lx_line_rltship_tbl ASO_QUOTE_PUB.Line_Rltship_Tbl_Type;
44 lx_Price_Adjustment_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
45 lx_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
46 lx_price_adj_rltship_tbl ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type;
47 lx_hd_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
48 lx_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
49 lX_Ln_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
50 lX_Ln_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
51 lx_ln_Price_Attr_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
52 lx_ln_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
53 lx_ln_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
54 lx_ln_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
55 lx_ln_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
56
57
58 Begin
59
60 SAVEPOINT config_operations_int;
61
62 -- Standard call to check for call compatibility.
63 IF NOT FND_API.Compatible_API_Call (
64 l_api_version,
65 p_api_version_Number,
66 l_api_name,
67 G_PKG_NAME )
68 THEN
69 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
70 END IF;
71
72 -- Initialize message list if p_init_msg_list is set to TRUE.
73 IF FND_API.to_Boolean( p_init_msg_list ) THEN
74 FND_MSG_PUB.initialize;
75 END IF;
76
77
78 -- Initialize API return status to success
79 x_return_status := FND_API.G_RET_STS_SUCCESS;
80 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
81 If (p_operation_code = ASO_QUOTE_PUB.G_ADD_TO_CONTAINER) THEN
82
83 ASO_CONFIG_OPERATIONS_PVT.Add_to_Container_from_IB(
84 P_Api_Version_Number => 1.0,
85 P_Init_Msg_List => FND_API.G_FALSE,
86 P_Commit => FND_API.G_FALSE,
87 p_validation_level => p_validation_level,
88 P_Control_Rec => l_control_rec,
89 P_Qte_Header_Rec => p_qte_header_rec,
90 P_Quote_line_Id => p_qte_line_tbl(1).quote_line_id,
91 P_instance_tbl => p_instance_tbl,
92 X_qte_header_rec => x_Qte_Header_Rec,
93 X_Return_Status => X_Return_Status,
94 X_Msg_Count => X_Msg_Count,
95 X_Msg_Data => X_Msg_Data
96 );
97
98 ELSIF (p_operation_code = ASO_QUOTE_PUB.G_RECONFIGURE) THEN
99
100 ASO_CONFIG_OPERATIONS_PVT.Reconfigure_from_IB(
101 P_Api_Version_Number => 1.0,
102 P_Init_Msg_List => FND_API.G_FALSE,
103 P_Commit => FND_API.G_FALSE,
104 p_validation_level => p_validation_level,
105 P_Control_Rec => l_control_rec,
106 P_Qte_Header_Rec => p_qte_header_rec,
107 P_instance_tbl => p_instance_tbl,
108 X_qte_header_rec => x_Qte_Header_Rec,
109 X_Return_Status => X_Return_Status,
110 X_Msg_Count => X_Msg_Count,
111 X_Msg_Data => X_Msg_Data
112 );
113
114 ELSIF (p_operation_code = ASO_QUOTE_PUB.G_DEACTIVATE) THEN
115
116 IF (P_Control_Rec.deactivate_all = FND_API.G_TRUE)THEN
117
118 l_Control_Rec.deactivate_all := FND_API.G_TRUE;
119 END IF;
120
121 ASO_CONFIG_OPERATIONS_PVT.Deactivate_from_quote(
122 P_Api_Version_Number => 1.0,
123 P_Init_Msg_List => FND_API.G_FALSE,
124 P_Commit => FND_API.G_FALSE,
125 p_validation_level => p_validation_level,
126 P_Control_Rec => l_control_rec,
127 P_Qte_Header_Rec => p_qte_header_rec,
128 P_Qte_line_tbl => p_qte_line_tbl,
129 p_delete_flag => p_delete_flag,
130 X_qte_header_rec => x_Qte_Header_Rec,
131 X_Return_Status => X_Return_Status,
132 X_Msg_Count => X_Msg_Count,
133 X_Msg_Data => X_Msg_Data
134 );
135
136 END IF;
137
138 IF aso_debug_pub.g_debug_flag = 'Y' THEN
139 aso_debug_pub.add('Config_Operations:X_Return_Status:'||X_Return_Status,1,'N');
140 aso_debug_pub.add('Config_Operations:X_Msg_Count:'||X_Msg_Count,1,'N');
141 END IF;
142
143 IF x_return_status = FND_API.G_RET_STS_ERROR then
144 raise FND_API.G_EXC_ERROR;
145 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
146 raise FND_API.G_EXC_UNEXPECTED_ERROR;
147 END IF;
148
149 l_qte_header_rec := p_qte_header_rec;
150
151 Begin
152 SELECT last_update_date, object_version_number into l_QTE_HEADER_REC.last_update_date, l_QTE_HEADER_REC.object_version_number
153 FROM ASO_QUOTE_HEADERS_ALL
154 WHERE quote_header_id = l_qte_header_rec.quote_header_id;
155
156 -- l_QTE_HEADER_REC.last_update_date := l_last_update_date;
157
158 exception when no_data_found then
159
160 x_return_status := FND_API.G_RET_STS_ERROR;
161 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
162 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_COLUMN');
163 FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
164 FND_MSG_PUB.ADD;
165 END IF;
166
167 raise FND_API.G_EXC_ERROR;
168
169 end;
170
171 ASO_QUOTE_PUB.Update_Quote(
172 p_api_version_number => 1.0,
173 p_init_msg_list => p_init_msg_list,
174 p_commit => p_commit,
175 p_control_rec => p_control_rec,
176 p_qte_header_rec => l_qte_header_rec,
177 X_Qte_Header_Rec => lx_qte_header_rec,
178 X_Qte_Line_Tbl => lx_Qte_Line_Tbl,
179 X_Qte_Line_Dtl_Tbl => lx_Qte_Line_Dtl_Tbl,
180 X_hd_Price_Attributes_Tbl => lx_hd_Price_Attr_Tbl,
181 X_hd_Payment_Tbl => lx_hd_Payment_Tbl,
182 X_hd_Shipment_Tbl => lx_hd_Shipment_Tbl,
183 X_hd_Freight_Charge_Tbl => lx_hd_Freight_Charge_Tbl,
184 X_hd_Tax_Detail_Tbl => lx_hd_Tax_Detail_Tbl,
185 X_hd_Attr_Ext_Tbl => lX_hd_Attr_Ext_Tbl,
186 X_hd_Sales_Credit_Tbl => lx_hd_Sales_Credit_Tbl,
187 X_hd_Quote_Party_Tbl => lx_Quote_Party_Tbl,
188 X_Line_Attr_Ext_Tbl => lx_Line_Attr_Ext_Tbl,
189 X_line_rltship_tbl => lx_line_rltship_tbl,
190 X_Price_Adjustment_Tbl => lx_Price_Adjustment_Tbl,
191 X_Price_Adj_Attr_Tbl => lx_Price_Adj_Attr_Tbl,
192 X_Price_Adj_Rltship_Tbl => lx_Price_Adj_Rltship_Tbl,
193 X_ln_Price_Attributes_Tbl=> lx_ln_Price_Attr_Tbl,
194 X_ln_Payment_Tbl => lx_ln_Payment_Tbl,
195 X_ln_Shipment_Tbl => lx_ln_Shipment_Tbl,
196 X_ln_Freight_Charge_Tbl => lx_ln_Freight_Charge_Tbl,
197 X_ln_Tax_Detail_Tbl => lx_ln_Tax_Detail_Tbl,
198 X_Ln_Sales_Credit_Tbl => lX_Ln_Sales_Credit_Tbl,
199 X_Ln_Quote_Party_Tbl => lX_Ln_Quote_Party_Tbl,
200 X_Return_Status => x_Return_Status,
201 X_Msg_Count => x_Msg_Count,
202 X_Msg_Data => x_Msg_Data);
203
204 IF aso_debug_pub.g_debug_flag = 'Y' THEN
205 aso_debug_pub.add('Config_Operations:update_quote:X_Return_Status:'||X_Return_Status,1,'N');
206 aso_debug_pub.add('Config_Operations:update_quote:X_Msg_Count:'||X_Msg_Count,1,'N');
207 END IF;
208
209 IF x_return_status = FND_API.G_RET_STS_ERROR then
210 raise FND_API.G_EXC_ERROR;
211 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
212 raise FND_API.G_EXC_UNEXPECTED_ERROR;
213 END IF;
214
215
216 -- End of API body
217 IF aso_debug_pub.g_debug_flag = 'Y' THEN
218 aso_debug_pub.add('****** End of confog operations API ******', 1, 'Y');
219 END IF;
220
221 -- Standard check of p_commit
222 IF FND_API.To_Boolean(p_commit) THEN
223 COMMIT WORK;
224 END IF;
225
226 -- Standard call to get message count and if count is 1, get message info
227 FND_Msg_Pub.Count_And_Get(
228 p_encoded => FND_API.G_FALSE,
229 p_count => x_msg_count ,
230 p_data => x_msg_data
231 );
232
233
234 EXCEPTION
235 WHEN FND_API.G_EXC_ERROR THEN
236 x_return_status := FND_API.G_RET_STS_ERROR;
237 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
238 P_API_NAME => L_API_NAME
239 ,P_PKG_NAME => G_PKG_NAME
240 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
241 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT
242 ,X_MSG_COUNT => X_MSG_COUNT
243 ,X_MSG_DATA => X_MSG_DATA
244 ,X_RETURN_STATUS => X_RETURN_STATUS);
245
246 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
247 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
248 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
249 P_API_NAME => L_API_NAME
250 ,P_PKG_NAME => G_PKG_NAME
251 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
252 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT
253 ,X_MSG_COUNT => X_MSG_COUNT
254 ,X_MSG_DATA => X_MSG_DATA
255 ,X_RETURN_STATUS => X_RETURN_STATUS);
256
257 WHEN OTHERS THEN
258 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
259 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
260 P_API_NAME => L_API_NAME
261 ,P_PKG_NAME => G_PKG_NAME
262 ,P_SQLERRM => sqlerrm
263 ,P_SQLCODE => sqlcode
264 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
265 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT
266 ,X_MSG_COUNT => X_MSG_COUNT
267 ,X_MSG_DATA => X_MSG_DATA
268 ,X_RETURN_STATUS => X_RETURN_STATUS);
269 end;
270
271 END ASO_CONFIG_OPERATIONS_INT;
272