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