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