DBA Data[Home] [Help]

PACKAGE BODY: APPS.BSC_CALENDAR_WRAPPER

Source


1 PACKAGE BODY BSC_CALENDAR_WRAPPER AS
2 /* $Header: BSCWCALB.pls 120.1 2005/11/07 03:37:14 appldev noship $ */
3 /*
4 REM +=======================================================================+
5 REM |    Copyright (c) 2004 Oracle Corporation, Redwood Shores, CA, USA     |
6 REM |                         All rights reserved.                          |
7 REM +=======================================================================+
8 REM | FILENAME                                                              |
9 REM |     BSCWCALB.pls                                                      |
10 REM |                                                                       |
11 REM | DESCRIPTION                                                           |
12 REM |     Module: This is Wrapper Packages which takes the Values from UI   |
13 REM |             and populates calendar record with these values         |
14 REM | NOTES                                                                 |
15 REM | 07-JUN-2005 Krishna Created.                                          |
16 REM | 29-JUN-2005 Aditya Rao added parameter p_Base_Per_Ids                 |
17 REM | 07-JUL-2005 Aditya Rao added Locking APIs                             |
18 REM +=======================================================================+
19 */
20 
21 G_PKG_NAME CONSTANT VARCHAR2(30):='BSC_CALENDAR_WRAPPER';
22 
23 PROCEDURE Create_Calendar_UI
24 ( p_Api_Version           IN          NUMBER
25 , p_Commit                IN          VARCHAR2
26 , p_Calendar_Id           IN          NUMBER
27 , p_Edw_Flag              IN          NUMBER
28 , p_Edw_Calendar_Id       IN          NUMBER
29 , p_Edw_Calendar_Type_Id  IN          NUMBER
30 , p_Fiscal_Year           IN          NUMBER
31 , p_Fiscal_Change         IN          NUMBER
32 , p_Range_Yr_Mod          IN          NUMBER
33 , p_Current_Year          IN          NUMBER
34 , p_Start_Month           IN          NUMBER
35 , p_Start_Day             IN          NUMBER
36 , p_Name                  IN          VARCHAR2
37 , p_Help                  IN          VARCHAR2
38 , p_Dim_Short_Name        IN          VARCHAR2
39 , p_Application_Id        IN          NUMBER
40 , p_Base_Per_Ids          IN          VARCHAR2
41 , p_Created_By            IN          NUMBER
42 , p_Creation_Date         IN          DATE
43 , p_Last_Updated_By       IN          NUMBER
44 , p_Last_Update_Date      IN          DATE
45 , p_Last_Update_Login     IN          NUMBER
46 , x_Return_Status         OUT NOCOPY  VARCHAR2
47 , x_Msg_Count             OUT NOCOPY  NUMBER
48 , x_Msg_Data              OUT NOCOPY  VARCHAR2
49 )IS
50 l_Calendar_Record   BSC_CALENDAR_PUB.Calendar_Type_Record;
51 BEGIN
52   FND_MSG_PUB.Initialize;
53   x_Return_Status := FND_API.G_RET_STS_SUCCESS;
54   --Here Just populate the calendar record with the values passed from UI and call public API
55   l_Calendar_Record.Calendar_Id            := p_Calendar_Id;
56   l_Calendar_Record.Edw_Flag               := p_Edw_Flag;
57   l_Calendar_Record.Edw_Calendar_Id        := p_Edw_Calendar_Id;
58   l_Calendar_Record.Edw_Calendar_Type_Id   := p_Edw_Calendar_Type_Id;
59   l_Calendar_Record.Fiscal_Year            := p_Fiscal_Year;
60   l_Calendar_Record.Fiscal_Change          := p_Fiscal_Change;
61   l_Calendar_Record.Range_Yr_Mod           := p_Range_Yr_Mod;
62   l_Calendar_Record.Current_Year           := p_Current_Year;
63   l_Calendar_Record.Start_Month            := p_Start_Month;
64   l_Calendar_Record.Start_Day              := p_Start_Day;
65   l_Calendar_Record.Name                   := p_Name;
66   l_Calendar_Record.Help                   := p_Help;
67   l_Calendar_Record.Dim_Short_Name         := p_Dim_Short_Name;
68   l_Calendar_Record.Application_Id         := p_Application_Id;
69   l_Calendar_Record.Creation_Date          := p_Creation_Date;
70   l_Calendar_Record.Last_Updated_By        := p_Last_Updated_By;
71   l_Calendar_Record.Last_Update_Date       := p_Last_Update_Date;
72   l_Calendar_Record.Last_Update_Login      := p_Last_Update_Login;
73   l_Calendar_Record.Base_Periodicities_Ids := p_Base_Per_Ids;
74   --dbms_output.put_line('before creating BSC_CALENDAR_PUB.Create_Calendar');
75   BSC_CALENDAR_PUB.Create_Calendar
76   ( p_Api_Version      => p_Api_Version
77   , p_Commit           => p_Commit
78   , p_Calendar_Record  => l_Calendar_Record
79   , x_Return_Status    => x_Return_Status
80   , x_Msg_Count        => x_Msg_Count
81   , x_Msg_Data         => x_Msg_Data
82   );
83   IF(x_Return_Status <> FND_API.G_RET_STS_SUCCESS) THEN
84     RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
85   END IF;
86 
87 EXCEPTION
88   WHEN FND_API.G_EXC_ERROR THEN
89     IF (x_msg_data IS NULL) THEN
90       FND_MSG_PUB.Count_And_Get
91       ( p_encoded   =>  FND_API.G_FALSE
92       , p_count     =>  x_msg_count
93       , p_data      =>  x_msg_data
94       );
95     END IF;
96     x_return_status :=  FND_API.G_RET_STS_ERROR;
97   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
98     IF (x_msg_data IS NULL) THEN
99       FND_MSG_PUB.Count_And_Get
100       ( p_encoded   =>  FND_API.G_FALSE
101       , p_count     =>  x_msg_count
102       , p_data      =>  x_msg_data
103       );
104     END IF;
105     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
106   WHEN NO_DATA_FOUND THEN
107     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
108     IF (x_msg_data IS NOT NULL) THEN
109       x_msg_data      :=  x_msg_data||' -> BSC_CALENDAR_WRAPPER.Create_Calendar_UI ';
110     ELSE
111       x_msg_data      :=  SQLERRM||' at BSC_CALENDAR_WRAPPER.Create_Calendar_UI ';
112     END IF;
113   WHEN OTHERS THEN
114     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
115     IF (x_msg_data IS NOT NULL) THEN
116       x_msg_data      :=  x_msg_data||' -> BSC_CALENDAR_WRAPPER.Create_Calendar_UI ';
117     ELSE
118       x_msg_data      :=  SQLERRM||' at BSC_CALENDAR_WRAPPER.Create_Calendar_UI ';
119     END IF;
120 
121 END Create_Calendar_UI;
122 /*******************************************************************************/
123 PROCEDURE Update_Calendar_UI
124 ( p_Api_Version           IN          NUMBER
125 , p_Commit                IN          VARCHAR2
126 , p_Calendar_Id           IN          NUMBER
127 , p_Edw_Flag              IN          NUMBER
128 , p_Edw_Calendar_Id       IN          NUMBER
129 , p_Edw_Calendar_Type_Id  IN          NUMBER
130 , p_Fiscal_Year           IN          NUMBER
131 , p_Fiscal_Change         IN          NUMBER
132 , p_Range_Yr_Mod          IN          NUMBER
133 , p_Current_Year          IN          NUMBER
134 , p_Start_Month           IN          NUMBER
135 , p_Start_Day             IN          NUMBER
136 , p_Name                  IN          VARCHAR2
137 , p_Help                  IN          VARCHAR2
138 , p_Dim_Short_Name        IN          VARCHAR2
139 , p_Application_Id        IN          NUMBER
140 , p_Time_Stamp            IN          VARCHAR2 := NULL
141 , p_Created_By            IN          NUMBER
142 , p_Creation_Date         IN          DATE
143 , p_Last_Updated_By       IN          NUMBER
144 , p_Last_Update_Date      IN          DATE
145 , p_Last_Update_Login     IN          NUMBER
146 , x_Return_Status         OUT NOCOPY  VARCHAR2
147 , x_Msg_Count             OUT NOCOPY  NUMBER
148 , x_Msg_Data              OUT NOCOPY  VARCHAR2
149 )IS
150 l_Calendar_Record   BSC_CALENDAR_PUB.Calendar_Type_Record;
151 BEGIN
152   --dbms_output.put_line('i came here');
153   FND_MSG_PUB.Initialize;
154   x_Return_Status := FND_API.G_RET_STS_SUCCESS;
155   --Here Just populate the calendar record with the values passed from UI and call public API
156   l_Calendar_Record.Calendar_Id           := p_Calendar_Id;
157   --dbms_output.put_line('not able to assign the value');
158   l_Calendar_Record.Edw_Flag              := p_Edw_Flag;
159   l_Calendar_Record.Edw_Calendar_Id       := p_Edw_Calendar_Id;
160   l_Calendar_Record.Edw_Calendar_Type_Id  := p_Edw_Calendar_Type_Id;
161   l_Calendar_Record.Fiscal_Year           := p_Fiscal_Year;
162   l_Calendar_Record.Fiscal_Change         := p_Fiscal_Change;
163   l_Calendar_Record.Range_Yr_Mod          := p_Range_Yr_Mod;
164   l_Calendar_Record.Current_Year          := p_Current_Year;
165   l_Calendar_Record.Start_Month           := p_Start_Month;
166   l_Calendar_Record.Start_Day             := p_Start_Day;
167   l_Calendar_Record.Name                  := p_Name;
168   l_Calendar_Record.Help                  := p_Help;
169   l_Calendar_Record.Dim_Short_Name        := p_Dim_Short_Name;
170   l_Calendar_Record.Application_Id        := p_Application_Id;
171   l_Calendar_Record.Created_By            := p_Created_By;
172   l_Calendar_Record.Creation_Date         := p_Creation_Date;
173   l_Calendar_Record.Last_Updated_By       := p_Last_Updated_By;
174   l_Calendar_Record.Last_Update_Date      := p_Last_Update_Date;
175   l_Calendar_Record.Last_Update_Login     := p_Last_Update_Login;
176   --dbms_output.put_line('before creating BSC_CALENDAR_PUB.Update_Calendar');
177 
178   BSC_BIS_LOCKS_PUB.Lock_Calendar (
179        p_Calendar_Id    => p_Calendar_Id
180      , p_Time_Stamp     => p_Time_Stamp
181      , x_Return_Status  => x_Return_Status
182      , x_Msg_Count      => x_Msg_Count
183      , x_Msg_Data       => x_Msg_Data
184   );
185   IF(x_Return_Status <> FND_API.G_RET_STS_SUCCESS) THEN
186     RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
187   END IF;
188 
189 
190   BSC_CALENDAR_PUB.Update_Calendar
191   ( p_Api_Version      => p_Api_Version
192   , p_Commit           => p_Commit
193   , p_Calendar_Record  => l_Calendar_Record
194   , x_Return_Status    => x_Return_Status
195   , x_Msg_Count        => x_Msg_Count
196   , x_Msg_Data         => x_Msg_Data
197   );
198   IF(x_Return_Status <> FND_API.G_RET_STS_SUCCESS) THEN
199     RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
200   END IF;
201 
202 EXCEPTION
203   WHEN FND_API.G_EXC_ERROR THEN
204     IF (x_msg_data IS NULL) THEN
205       FND_MSG_PUB.Count_And_Get
206       ( p_encoded   =>  FND_API.G_FALSE
207       , p_count     =>  x_msg_count
208       , p_data      =>  x_msg_data
209       );
210     END IF;
211     x_return_status :=  FND_API.G_RET_STS_ERROR;
212   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
213     IF (x_msg_data IS NULL) THEN
214       FND_MSG_PUB.Count_And_Get
215       ( p_encoded   =>  FND_API.G_FALSE
216       , p_count     =>  x_msg_count
217       , p_data      =>  x_msg_data
218       );
219     END IF;
220     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
221   WHEN NO_DATA_FOUND THEN
222     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
223     IF (x_msg_data IS NOT NULL) THEN
224       x_msg_data      :=  x_msg_data||' -> BSC_CALENDAR_WRAPPER.Update_Calendar_UI ';
225     ELSE
226       x_msg_data      :=  SQLERRM||' at BSC_CALENDAR_WRAPPER.Update_Calendar_UI ';
227     END IF;
228   WHEN OTHERS THEN
229     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
230     IF (x_msg_data IS NOT NULL) THEN
231       x_msg_data      :=  x_msg_data||' -> BSC_CALENDAR_WRAPPER.Update_Calendar_UI ';
232     ELSE
233       x_msg_data      :=  SQLERRM||' at BSC_CALENDAR_WRAPPER.Update_Calendar_UI ';
234     END IF;
235 
236 END Update_Calendar_UI;
237 
238 PROCEDURE Delete_Calendar_UI
239 (  p_Api_Version           IN          NUMBER
240 , p_Commit                IN          VARCHAR2
241 , p_Calendar_Id           IN          NUMBER
242 , p_Time_Stamp            IN          VARCHAR2 := NULL
243 , x_Return_Status         OUT NOCOPY  VARCHAR2
244 , x_Msg_Count             OUT NOCOPY  NUMBER
245 , x_Msg_Data              OUT NOCOPY  VARCHAR2
246 )IS
247 l_Calendar_Record   BSC_CALENDAR_PUB.Calendar_Type_Record;
248 BEGIN
249   FND_MSG_PUB.Initialize;
250   x_Return_Status := FND_API.G_RET_STS_SUCCESS;
251   --Here Just populate the calendar record with the values passed from UI and call public API
252   l_Calendar_Record.Calendar_Id           := p_Calendar_Id;
253 
254   BSC_BIS_LOCKS_PUB.Lock_Calendar_And_Periods (
255        p_Calendar_Id    => p_Calendar_Id
256      , p_Time_Stamp     => p_Time_Stamp
257      , x_Return_Status  => x_Return_Status
258      , x_Msg_Count      => x_Msg_Count
259      , x_Msg_Data       => x_Msg_Data
260   );
261   IF(x_Return_Status <> FND_API.G_RET_STS_SUCCESS) THEN
262     RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
263   END IF;
264 
265   BSC_CALENDAR_PUB.Delete_Calendar
266   ( p_Api_Version      => p_Api_Version
267   , p_Commit           => p_Commit
268   , p_Calendar_Record  => l_Calendar_Record
269   , x_Return_Status    => x_Return_Status
270   , x_Msg_Count        => x_Msg_Count
271   , x_Msg_Data         => x_Msg_Data
272   );
273   IF(x_Return_Status <> FND_API.G_RET_STS_SUCCESS) THEN
274     RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
275   END IF;
276 
277 EXCEPTION
278   WHEN FND_API.G_EXC_ERROR THEN
279     IF (x_msg_data IS NULL) THEN
280       FND_MSG_PUB.Count_And_Get
281       ( p_encoded   =>  FND_API.G_FALSE
282       , p_count     =>  x_msg_count
283       , p_data      =>  x_msg_data
284       );
285     END IF;
286     x_return_status :=  FND_API.G_RET_STS_ERROR;
287   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
288     IF (x_msg_data IS NULL) THEN
289       FND_MSG_PUB.Count_And_Get
290       ( p_encoded   =>  FND_API.G_FALSE
291       , p_count     =>  x_msg_count
292       , p_data      =>  x_msg_data
293       );
294     END IF;
295     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
296   WHEN NO_DATA_FOUND THEN
297     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
298     IF (x_msg_data IS NOT NULL) THEN
299       x_msg_data      :=  x_msg_data||' -> BSC_CALENDAR_WRAPPER.Delete_Calendar_UI ';
300     ELSE
301       x_msg_data      :=  SQLERRM||' at BSC_CALENDAR_WRAPPER.Delete_Calendar_UI ';
302     END IF;
303   WHEN OTHERS THEN
304     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
305     IF (x_msg_data IS NOT NULL) THEN
306       x_msg_data      :=  x_msg_data||' -> BSC_CALENDAR_WRAPPER.Delete_Calendar_UI ';
307     ELSE
308       x_msg_data      :=  SQLERRM||' at BSC_CALENDAR_WRAPPER.Delete_Calendar_UI ';
309     END IF;
310 
311 END Delete_Calendar_UI;
312 
313 /*
314 API to check if DBI is installed.
315 */
316 
317 FUNCTION Is_Dbi_Calendar_Enabled
318 RETURN VARCHAR2 IS
319 BEGIN
320 
321   IF (bsc_dbi_calendar.check_for_dbi) THEN
322       RETURN FND_API.G_TRUE;
323   ELSE
324       RETURN FND_API.G_FALSE;
325   END IF;
326 
327 EXCEPTION
328    WHEN OTHERS THEN
329        RETURN FND_API.G_FALSE;
330 END Is_Dbi_Calendar_Enabled;
331 
332 
333 END BSC_CALENDAR_WRAPPER;