[Home] [Help]
PACKAGE BODY: APPS.PSB_WS_POSITION_FTE_I_PVT
Source
1 PACKAGE BODY PSB_WS_POSITION_FTE_I_PVT AS
2 /* $Header: PSBWFTIB.pls 120.2 2005/07/13 11:34:23 shtripat ship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PSB_WS_POSITION_FTE_I_PVT';
5
6 /*=======================================================================+
7 | PROCEDURE Insert_Row |
8 +=======================================================================*/
9
10 PROCEDURE Insert_Row
11 (
12 p_api_version IN NUMBER,
13 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
14 p_commit IN VARCHAR2 := FND_API.G_FALSE,
15 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
16 --
17 p_return_status OUT NOCOPY VARCHAR2,
18 p_msg_count OUT NOCOPY NUMBER,
19 p_msg_data OUT NOCOPY VARCHAR2,
20 p_fte_line_id OUT NOCOPY NUMBER,
21 --
22 p_worksheet_id IN NUMBER,
23 p_position_line_id IN NUMBER,
24 p_budget_year_id IN NUMBER,
25 p_service_package_id IN NUMBER,
26 p_stage_set_id IN NUMBER,
27 p_current_stage_seq IN NUMBER,
28 p_period_1 IN NUMBER,
29 p_period_2 IN NUMBER,
30 p_period_3 IN NUMBER,
31 p_period_4 IN NUMBER,
32 p_period_5 IN NUMBER,
33 p_period_6 IN NUMBER,
34 p_period_7 IN NUMBER,
35 p_period_8 IN NUMBER,
36 p_period_9 IN NUMBER,
37 p_period_10 IN NUMBER,
38 p_period_11 IN NUMBER,
39 p_period_12 IN NUMBER
40 )
41 IS
42 --
43 l_api_name CONSTANT VARCHAR2(30) := 'Insert_Row';
44 l_api_version CONSTANT NUMBER := 1.0;
45 --
46 l_return_status VARCHAR2(1);
47 --
48 l_init_index BINARY_INTEGER;
49 l_period_fte PSB_WS_ACCT1.g_prdamt_tbl_type;
50
51
52 BEGIN
53 --
54 SAVEPOINT Insert_Row_Pvt ;
55 --
56 IF NOT FND_API.Compatible_API_Call ( l_api_version,
57 p_api_version,
58 l_api_name,
59 G_PKG_NAME )
60 THEN
61 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
62 END IF;
63
64 --
65
66 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
67 FND_MSG_PUB.initialize ;
68 END IF;
69 --
70 for l_init_index in 1..PSB_WS_ACCT1.g_max_num_amounts loop
71 l_period_fte(l_init_index) := null;
72 end loop;
73
74
75 l_period_fte(1) := p_period_1;
76 l_period_fte(2) := p_period_2;
77 l_period_fte(3) := p_period_3;
78 l_period_fte(4) := p_period_4;
79 l_period_fte(5) := p_period_5;
80 l_period_fte(6) := p_period_6;
81 l_period_fte(7) := p_period_7;
82 l_period_fte(8) := p_period_8;
83 l_period_fte(9) := p_period_9;
84 l_period_fte(10) := p_period_10;
85 l_period_fte(11) := p_period_11;
86 l_period_fte(12) := p_period_12;
87
88 p_return_status := FND_API.G_RET_STS_SUCCESS ;
89
90 --
91
92 PSB_WS_POS_PVT.Create_FTE_Lines
93 (
94 p_api_version => 1.0,
95 p_init_msg_list => FND_API.G_FALSE,
96 p_commit => FND_API.G_FALSE,
97 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
98 --
99 p_return_status => l_return_status,
100 p_msg_count => p_msg_count,
101 p_msg_data => p_msg_data,
102 p_fte_line_id => p_fte_line_id,
103 p_recalculate_flag => FND_API.G_TRUE,
104 --
105 p_worksheet_id => p_worksheet_id,
106 p_position_line_id => p_position_line_id,
107 p_budget_year_id => p_budget_year_id,
108 p_service_package_id => p_service_package_id,
109 p_stage_set_id => p_stage_set_id,
110 p_current_stage_seq => p_current_stage_seq,
111 p_period_fte => l_period_fte
112 );
113 --
114 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
115 fnd_message.set_name('PSB', 'WS_CREATE_FTE_FAILED_EXC');
116 RAISE FND_API.G_EXC_ERROR ;
117 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
118 fnd_message.set_name('PSB', 'WS_CREATE_FTE_FAILED_UNEXC');
119 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
120 END IF;
121
122
123 --
124 IF FND_API.To_Boolean ( p_commit ) THEN
125 COMMIT WORK;
126 END iF;
127 --
128 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
129 p_data => p_msg_data );
130 --
131 EXCEPTION
132 --
133 WHEN FND_API.G_EXC_ERROR THEN
134 --
135 ROLLBACK TO Insert_Row_Pvt ;
136 p_return_status := FND_API.G_RET_STS_ERROR;
137 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
138 p_data => p_msg_data );
139 --
140 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
141 --
142 ROLLBACK TO Insert_Row_Pvt ;
143 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
144 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
145 p_data => p_msg_data );
146 --
147 WHEN OTHERS THEN
148 --
149 ROLLBACK TO Insert_Row_Pvt ;
150 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
151 --
152 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
153 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
154 l_api_name);
155 END if;
156 --
157 FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
158 p_data => p_msg_data );
159 --
160 END Insert_Row;
161 /*-------------------------------------------------------------------------*/
162 END PSB_WS_POSITION_FTE_I_PVT;