DBA Data[Home] [Help]

PACKAGE BODY: APPS.PSB_WS_LINE_PERIOD_I_PVT

Source


1 PACKAGE BODY PSB_WS_LINE_PERIOD_I_PVT AS
2 /* $Header: PSBWLPIB.pls 120.2 2005/07/13 11:34:49 shtripat ship $ */
3 
4   G_PKG_NAME CONSTANT VARCHAR2(30):= 'PSB_WS_LINE_PERIOD_I_PVT';
5 
6 
7 
8 /*=======================================================================+
9  |                       PROCEDURE Insert_Row                            |
10  +=======================================================================*/
11 
12 PROCEDURE Insert_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_budget_group_id             IN      NUMBER,
24   p_service_package_id          IN      NUMBER,
25   p_flex_code                   IN      NUMBER,
26   p_concatenated_segments       IN      VARCHAR2,
27   p_currency_code               IN      VARCHAR2,
28   p_column_count                IN      NUMBER,
29   --
30   p_year_id                     IN      NUMBER,
31   p_year_type                   IN      VARCHAR2,
32   p_balance_type                IN      VARCHAR2,
33   --
34   p_ytd_amount                  IN      NUMBER,
35   p_amount_P1                   IN      NUMBER,
36   p_amount_P2                   IN      NUMBER,
37   p_amount_P3                   IN      NUMBER,
38   p_amount_P4                   IN      NUMBER,
39   p_amount_P5                   IN      NUMBER,
40   p_amount_P6                   IN      NUMBER,
41   p_amount_P7                   IN      NUMBER,
42   p_amount_P8                   IN      NUMBER,
43   p_amount_P9                   IN      NUMBER,
44   p_amount_P10                  IN      NUMBER,
45   p_amount_P11                  IN      NUMBER,
46   p_amount_P12                  IN      NUMBER
47 )
48 IS
49   --
50   l_api_name            CONSTANT VARCHAR2(30)   := 'Insert_Row';
51   l_api_version         CONSTANT NUMBER         :=  1.0;
52   --
53   l_return_status VARCHAR2(1);
54   --
55   l_period_amount       PSB_WS_ACCT1.g_prdamt_tbl_type;
56   l_index               BINARY_INTEGER;
57   l_account_line_id     NUMBER;
58 
59   --
60 
61 BEGIN
62   --
63   SAVEPOINT Insert_Row_Pvt ;
64   --
65   IF NOT FND_API.Compatible_API_Call ( l_api_version,
66 				       p_api_version,
67 				       l_api_name,
68 				       G_PKG_NAME )
69   THEN
70     RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
71   END IF;
72 
73   --
74 
75   IF FND_API.to_Boolean ( p_init_msg_list ) THEN
76     FND_MSG_PUB.initialize ;
77   END IF;
78   --
79   p_return_status := FND_API.G_RET_STS_SUCCESS ;
80 
81 
82 
83   -- Initialize the table
84   FOR l_index in 1..PSB_WS_ACCT1.G_MAX_NUM_AMOUNTS LOOP
85      l_period_amount(l_index) := NULL;
86   END LOOP;
87 
88   --
89   -- process only for displayed columns
90 
91     -- amount types can be B-Budget, A-Actuals, E- Estimate, F -FTE
92     -- Create new rows only for current and proposed years
93     -- and only when amount type is not FTE
94     IF p_year_type IN ('PP','CY') and p_balance_type <> 'F'  THEN
95 
96 
97       PSB_WS_ACCT_PVT.Create_Account_Dist
98       (
99 	p_api_version                 => 1.0,
100 	p_init_msg_list               => FND_API.G_FALSE,
101 	p_commit                      => FND_API.G_FALSE,
102 	p_validation_level            => FND_API.G_VALID_LEVEL_FULL,
103 	p_return_status               => l_return_status,
104 	p_msg_count                   => p_msg_count,
105 	p_msg_data                    => p_msg_data,
106 	--
107 	p_account_line_id             => l_account_line_id,
108 	--
109 	p_worksheet_id                => p_worksheet_id,
110 	p_map_accounts                => TRUE,
111 	p_budget_year_id              => p_year_id,
112 	p_budget_group_id             => p_budget_group_id,
113 	p_flex_code                   => p_flex_code,
114 	p_concatenated_segments       => p_concatenated_segments,
115 	p_currency_code               => p_currency_code,
116 	p_balance_type                => p_balance_type,
117 	p_ytd_amount                  => p_ytd_amount,
118 	p_distribute_flag             => FND_API.G_FALSE,
119 	p_period_amount               => l_period_amount,
120 	p_service_package_id          => p_service_package_id
121 
122       );
123        --
124        IF    l_return_status = FND_API.G_RET_STS_ERROR THEN
125 	  RAISE FND_API.G_EXC_ERROR ;
126        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
127 	  RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
128        END IF;
129        --
130 
131      END IF;
132 
133 
134 
135   --
136   IF FND_API.To_Boolean ( p_commit ) THEN
137     COMMIT WORK;
138   END iF;
139   --
140   FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
141 			      p_data  => p_msg_data );
142   --
143 EXCEPTION
144   --
145   WHEN FND_API.G_EXC_ERROR THEN
146     --
147     ROLLBACK TO Insert_Row_Pvt ;
148     p_return_status := FND_API.G_RET_STS_ERROR;
149     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
150 				p_data  => p_msg_data );
151   --
152   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
153     --
154     ROLLBACK TO Insert_Row_Pvt ;
155     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
156     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
157 				p_data  => p_msg_data );
158   --
159   WHEN OTHERS THEN
160     --
161     ROLLBACK TO Insert_Row_Pvt ;
162     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
163     --
164     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
165       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
166 				l_api_name);
167     END if;
168     --
169     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
170 				p_data  => p_msg_data );
171      --
172 END Insert_Row;
173 /*-------------------------------------------------------------------------*/
174 
175 
176 END PSB_WS_LINE_PERIOD_I_PVT;