[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;