DBA Data[Home] [Help]

PACKAGE BODY: APPS.PSB_WS_LINE_PERIOD_O_PVT

Source


1 PACKAGE BODY PSB_WS_LINE_PERIOD_O_PVT AS
2 /* $Header: PSBWLPOB.pls 115.5 2003/12/18 11:01:49 vbellur ship $ */
3 
4   G_PKG_NAME CONSTANT VARCHAR2(30):= 'PSB_WS_LINE_PERIOD_O_PVT';
5 
6 
7 
8 /*==========================================================================+
9  |                       PROCEDURE Update_Row                               |
10  +==========================================================================*/
11 
12 PROCEDURE Update_Row
13 (
14   p_api_version                 IN      NUMBER,
15   p_init_msg_list               IN      VARCHAR2 := FND_API.G_FALSE,
16   p_commit                      IN      VARCHAR2 := FND_API.G_FALSE,
17   p_validation_level            IN      NUMBER   := FND_API.G_VALID_LEVEL_FULL,
18   p_return_status              OUT  NOCOPY      VARCHAR2,
19   p_msg_count                  OUT  NOCOPY      NUMBER,
20   p_msg_data                   OUT  NOCOPY      VARCHAR2,
21   --
22   p_worksheet_id                IN      NUMBER,
23   p_service_package_id          IN      NUMBER,
24   p_year_id                     IN      NUMBER,
25   p_year_type                   IN      VARCHAR2,
26   p_balance_type                IN      VARCHAR2,
27   p_wal_id                      IN      NUMBER,
28   --
29   p_column_count                IN      NUMBER,
30   --
31   p_ytd_amount                  IN      NUMBER,
32   p_amount_P1                   IN      NUMBER,
33   p_amount_P2                   IN      NUMBER,
34   p_amount_P3                   IN      NUMBER,
35   p_amount_P4                   IN      NUMBER,
36   p_amount_P5                   IN      NUMBER,
37   p_amount_P6                   IN      NUMBER,
38   p_amount_P7                   IN      NUMBER,
39   p_amount_P8                   IN      NUMBER,
40   p_amount_P9                   IN      NUMBER,
41   p_amount_P10                  IN      NUMBER,
42   p_amount_P11                  IN      NUMBER,
43   p_amount_P12                  IN      NUMBER
44 )
45 IS
46   --
47   l_api_name            CONSTANT VARCHAR2(30)   := 'Update_Row';
48   l_api_version         CONSTANT NUMBER         :=  1.0;
49   --
50   l_period_amount       PSB_WS_ACCT1.g_prdamt_tbl_type;
51   --
52   l_return_status       VARCHAR2(1);
53   l_distribute_flag     VARCHAR2(1);
54 
55   l_index               BINARY_INTEGER;
56   --
57 BEGIN
58   --
59   --
60   SAVEPOINT Update_Row_Pvt ;
61   --
62   IF NOT FND_API.Compatible_API_Call ( l_api_version,
63 				       p_api_version,
64 				       l_api_name,
65 				       G_PKG_NAME )
66   THEN
67     RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
68   END IF;
69   --
70 
71   IF FND_API.to_Boolean ( p_init_msg_list ) THEN
72     FND_MSG_PUB.initialize ;
73   END IF;
74   --
75   p_return_status := FND_API.G_RET_STS_SUCCESS ;
76   --
77 
78   -- Initialize the table
79   FOR l_index in 1..PSB_WS_ACCT1.G_MAX_NUM_AMOUNTS LOOP
80      l_period_amount(l_index) := NULL;
81   END LOOP;
82 
83 
84    l_period_amount(1)  :=   p_amount_P1;
85    l_period_amount(2)  :=   p_amount_P2;
86    l_period_amount(3)  :=   p_amount_P3;
87    l_period_amount(4)  :=   p_amount_P4;
88    l_period_amount(5)  :=   p_amount_P5;
89    l_period_amount(6)  :=   p_amount_P6;
90    l_period_amount(7)  :=   p_amount_P7;
91    l_period_amount(8)  :=   p_amount_P8;
92    l_period_amount(9)  :=   p_amount_P9;
93    l_period_amount(10) :=   p_amount_P10;
94    l_period_amount(11) :=   p_amount_P11;
95    l_period_amount(12) :=   p_amount_P12;
96 
97    l_distribute_flag   := FND_API.G_TRUE;
98 
99 
100 
101  -- Added the following loop for Bug 3243919
102    FOR l_index in 1..PSB_WS_ACCT1.G_MAX_NUM_AMOUNTS LOOP
103       IF nvl(l_period_amount(l_index),0) <> 0 THEN
104         l_distribute_flag := FND_API.G_FALSE;
105       END IF;
106    END LOOP;
107 
108 
109    -- amount types can be B-Budget, A-Actuals, E- Estimate, F -FTE
110    -- Update rows only for current and proposed years
111    -- and only when amount type is not FTE
112    IF p_balance_type = 'E'  THEN
113 
114       -- user enters a value for an year for which no row currently exists
115       -- create row
116 
117 	 PSB_WS_ACCT_PVT.Create_Account_Dist
118 	 (
119 	  p_api_version                 => 1.0,
120 	  p_init_msg_list               => FND_API.G_FALSE,
121 	  p_commit                      => FND_API.G_FALSE,
122 	  p_validation_level            => FND_API.G_VALID_LEVEL_FULL,
123 	  p_return_status               => l_return_status,
124 	  p_msg_count                   => p_msg_count,
125 	  p_msg_data                    => p_msg_data,
126 	  --
127 	  -- Changed p_distribute_flag to l_distribute_flag for bug 3243919
128 	  p_distribute_flag             => l_distribute_flag,
129 	  p_worksheet_id                => p_worksheet_id,
130 	  p_account_line_id             => p_wal_id,
131 	  p_service_package_id          => p_service_package_id,
132 	  p_ytd_amount                  => p_ytd_amount,
133 	  --
134 	  p_period_amount               => l_period_amount
135 	  );
136 
137     END IF;
138 
139     IF l_return_status = FND_API.G_RET_STS_ERROR THEN
140       RAISE FND_API.G_EXC_ERROR ;
141     ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
142       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
143     END IF;
144 
145 
146   IF FND_API.To_Boolean ( p_commit ) THEN
147     COMMIT WORK;
148   END iF;
149   --
150   FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
151 			      p_data  => p_msg_data );
152   --
153 EXCEPTION
154   --
155   WHEN FND_API.G_EXC_ERROR THEN
156     --
157     ROLLBACK TO Update_Row_Pvt ;
158     p_return_status := FND_API.G_RET_STS_ERROR;
159     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
160 				p_data  => p_msg_data );
161   --
162   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
163     --
164     ROLLBACK TO Update_Row_Pvt ;
165     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
166     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
167 				p_data  => p_msg_data );
168   --
169   WHEN OTHERS THEN
170     --
171     ROLLBACK TO Update_Row_Pvt ;
172     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
173     --
174     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
175       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
176 				l_api_name);
177     END if;
178     --
179     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
180 				p_data  => p_msg_data );
181   --
182 
183 
184 
185 
186 END Update_Row;
187 /* ----------------------------------------------------------------------- */
188 
189 
190 
191 
192 /*==========================================================================+
193  |                       PROCEDURE Delete_Row                               |
194  +==========================================================================*/
195 
196 PROCEDURE Delete_Row
197 (
198   p_api_version               IN       NUMBER,
199   p_init_msg_list             IN       VARCHAR2 := FND_API.G_FALSE,
200   p_commit                    IN       VARCHAR2 := FND_API.G_FALSE,
201   p_validation_level          IN       NUMBER   := FND_API.G_VALID_LEVEL_FULL,
202   p_return_status             OUT  NOCOPY      VARCHAR2,
203   p_msg_count                 OUT  NOCOPY      NUMBER,
204   p_msg_data                  OUT  NOCOPY      VARCHAR2,
205   --
206   p_wal_id                IN      NUMBER
207 )
208 IS
209   --
210   l_api_name            CONSTANT VARCHAR2(30)   := 'Delete_Row';
211   l_api_version         CONSTANT NUMBER         :=  1.0;
212   --
213 
214   --
215 BEGIN
216   --
217   SAVEPOINT Delete_Row_Pvt ;
218   --
219   IF NOT FND_API.Compatible_API_Call ( l_api_version,
220 				       p_api_version,
221 				       l_api_name,
222 				       G_PKG_NAME )
223   THEN
224     RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
225   END IF;
226   --
227 
228   IF FND_API.to_Boolean ( p_init_msg_list ) THEN
229     FND_MSG_PUB.initialize ;
230   END IF;
231   --
232   p_return_status := FND_API.G_RET_STS_SUCCESS ;
233   --
234 
235   DELETE FROM PSB_WS_ACCOUNT_LINES
236   WHERE account_line_id = p_wal_id;
237 
238   IF (SQL%NOTFOUND) THEN
239     RAISE NO_DATA_FOUND ;
240   END IF;
241 
242   --
243   IF FND_API.To_Boolean ( p_commit ) THEN
244     COMMIT WORK;
245   END iF;
246   --
247   FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
248 			      p_data  => p_msg_data );
249 
250 EXCEPTION
251   --
252   WHEN FND_API.G_EXC_ERROR THEN
253     --
254     ROLLBACK TO Delete_Row_Pvt ;
255     p_return_status := FND_API.G_RET_STS_ERROR;
256     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
257 				p_data  => p_msg_data );
258   --
259   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
260     --
261     ROLLBACK TO Delete_Row_Pvt ;
262     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
263     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
264 				p_data  => p_msg_data );
265   --
266   WHEN OTHERS THEN
267     --
268     ROLLBACK TO Delete_Row_Pvt ;
269     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
270     --
271     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
272       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
273 				l_api_name);
274     END if;
275     --
276     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
277 				p_data  => p_msg_data );
278   --
279 END Delete_Row;
280 /* ----------------------------------------------------------------------- */
281 
282 END PSB_WS_LINE_PERIOD_O_PVT;