DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_SPLIT_CONTRACT_PUB

Source


1 package body OKL_SPLIT_CONTRACT_PUB as
2 /* $Header: OKLPSKHB.pls 115.7 2004/01/24 00:54:12 rravikir noship $ */
3   G_API_TYPE                    CONSTANT  VARCHAR2(4) := '_PUB';
4   G_API_VERSION                 CONSTANT  NUMBER := 1.0;
5   G_SCOPE                       CONSTANT  VARCHAR2(4) := '_PUB';
6   G_PKG_NAME	                CONSTANT  VARCHAR2(200) := 'OKL_SPLIT_CONTRACT_PUB';
7   G_APP_NAME		        CONSTANT  VARCHAR2(3)   :=  OKL_API.G_APP_NAME;
8 
9 -----------------------------------------------------------------------------------------------
10 ------------------------ Main Process for Split Contract Contract------------------------------
11 -----------------------------------------------------------------------------------------------
12   Procedure create_split_contract(
13             p_api_version          IN  NUMBER,
14             p_init_msg_list        IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
15             x_return_status        OUT NOCOPY VARCHAR2,
16             x_msg_count            OUT NOCOPY NUMBER,
17             x_msg_data             OUT NOCOPY VARCHAR2,
18             p_old_contract_number  IN  OKC_K_HEADERS_V.CONTRACT_NUMBER%TYPE,
19             p_new_khr_top_line     IN  ktl_tbl_type,
20             x_new_khr_top_line     OUT NOCOPY ktl_tbl_type)  IS
21     l_api_name               CONSTANT VARCHAR2(30) := 'SPLIT_CONTRACT';
22     l_api_version            CONSTANT NUMBER := 1;
23   BEGIN
24     savepoint create_split_contract_pub;
25     x_return_status     := FND_API.G_RET_STS_SUCCESS;
26     -- Standard call to check for call compatibility.
27     IF NOT (FND_API.Compatible_API_Call (l_api_version,
28 	                                 p_api_version,
29 			                 l_api_name,
30 		                         G_PKG_NAME)) THEN
31        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
32     END IF;
33     -- Initialize message list if p_init_msg_list is set to TRUE.
34     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
35        FND_MSG_PUB.initialize;
36     END IF;
37     --  Customer pre processing  section
38     -- 	Verticle industry pre- processing section
39     -- Business API call  section
40     OKL_SPLIT_CONTRACT_PVT.create_split_contract(p_api_version         => p_api_version,
41                                                  p_init_msg_list       => p_init_msg_list,
42                                                  x_return_status       => x_return_status,
43                                                  x_msg_count           => x_msg_count,
44                                                  x_msg_data            => x_msg_data,
45                                                  p_old_contract_number => p_old_contract_number,
46                                                  p_new_khr_top_line    => p_new_khr_top_line,
47                                                  x_new_khr_top_line    => x_new_khr_top_line);
48     IF (x_return_status = FND_API.G_RET_STS_ERROR )  THEN
49        RAISE FND_API.G_EXC_ERROR;
50     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
51        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
52     END IF;
53     --	Verticle industry post- processing section
54     --  Customer post processing  section
55   EXCEPTION
56     When FND_API.G_EXC_ERROR  then
57       ROLLBACK TO create_split_contract_pub;
58       x_return_status := FND_API.G_RET_STS_ERROR;
59       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
60                                  p_data  => x_msg_data);
61     When FND_API.G_EXC_UNEXPECTED_ERROR  then
62       ROLLBACK TO create_split_contract_pub;
63       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
64       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
65                                  p_data  => x_msg_data);
66     When OTHERS  then
67       ROLLBACK TO create_split_contract_pub;
68       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
69       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_SPLIT_CONTRACT_PUB');
70       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
71                                  p_count   => x_msg_count,
72                                  p_data    => x_msg_data);
73 
74   END create_split_contract;
75 -----------------------------------------------------------------------------------------------
76 ------------------------- Main Process for post split of Contract -----------------------------
77 -----------------------------------------------------------------------------------------------
78   PROCEDURE post_split_contract(
79             p_api_version          IN  NUMBER,
80             p_init_msg_list        IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
81             x_return_status        OUT NOCOPY VARCHAR2,
82             x_msg_count            OUT NOCOPY NUMBER,
83             x_msg_data             OUT NOCOPY VARCHAR2,
84             p_commit               IN  VARCHAR2 DEFAULT OKL_API.G_TRUE,
85             p_new1_contract_id     IN  OKC_K_HEADERS_V.ID%TYPE,
86             p_new2_contract_id     IN  OKC_K_HEADERS_V.ID%TYPE,
87             x_trx1_number          OUT NOCOPY NUMBER,
88             x_trx1_status          OUT NOCOPY VARCHAR2,
89             x_trx2_number          OUT NOCOPY NUMBER,
90             x_trx2_status          OUT NOCOPY VARCHAR2) IS
91     l_api_name               CONSTANT VARCHAR2(30) := 'SPLIT_CONTRACT';
92     l_api_version            CONSTANT NUMBER := 1;
93   BEGIN
94     savepoint post_split_contract_pub;
95     x_return_status     := FND_API.G_RET_STS_SUCCESS;
96     -- Standard call to check for call compatibility.
97     IF NOT (FND_API.Compatible_API_Call (l_api_version,
98 	                                 p_api_version,
99 			                 l_api_name,
100 		                         G_PKG_NAME)) THEN
101        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
102     END IF;
103     -- Initialize message list if p_init_msg_list is set to TRUE.
104     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
105        FND_MSG_PUB.initialize;
106     END IF;
107     --  Customer pre processing  section
108     -- 	Verticle industry pre- processing section
109     -- Business API call  section
110     OKL_SPLIT_CONTRACT_PVT.post_split_contract(
111                                p_api_version         => p_api_version,
112                                p_init_msg_list       => p_init_msg_list,
113                                x_return_status       => x_return_status,
114                                x_msg_count           => x_msg_count,
115                                x_msg_data            => x_msg_data,
116                                p_commit              => p_commit,
117                                p_new1_contract_id    => p_new1_contract_id,
118                                p_new2_contract_id    => p_new2_contract_id,
119                                x_trx1_number         => x_trx1_number,
120                                x_trx1_status         => x_trx1_status,
121                                x_trx2_number         => x_trx2_number,
122                                x_trx2_status         => x_trx2_status);
123 
124     IF (x_return_status = FND_API.G_RET_STS_ERROR )  THEN
125        RAISE FND_API.G_EXC_ERROR;
126     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
127        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
128     END IF;
129     --	Verticle industry post- processing section
130     --  Customer post processing  section
131   EXCEPTION
132     When FND_API.G_EXC_ERROR  then
133       ROLLBACK TO post_split_contract_pub;
134       x_return_status := FND_API.G_RET_STS_ERROR;
135       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
136                                  p_data  => x_msg_data);
137     When FND_API.G_EXC_UNEXPECTED_ERROR  then
138       ROLLBACK TO post_split_contract_pub;
139       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
140       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
141                                  p_data  => x_msg_data);
142     When OTHERS  then
143       ROLLBACK TO post_split_contract_pub;
144       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
145       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_SPLIT_CONTRACT_PUB');
146       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
147                                  p_count   => x_msg_count,
148                                  p_data    => x_msg_data);
149 
150   END post_split_contract;
151 -----------------------------------------------------------------------------------------------
152 ------------------------- Set the context for Split contract process --------------------
153 -----------------------------------------------------------------------------------------------
154   PROCEDURE set_context(
155             p_api_version          IN  NUMBER,
156             p_init_msg_list    IN  VARCHAR2,
157             x_msg_count        OUT NOCOPY NUMBER,
158             x_msg_data         OUT NOCOPY VARCHAR2,
159             p_resp_id          IN  NUMBER,
160             p_appl_id          IN  NUMBER,
161             p_user_id          IN  NUMBER,
162             x_return_status    OUT NOCOPY VARCHAR2) IS
163     l_api_name               CONSTANT VARCHAR2(30) := 'SPLIT_CONTRACT';
164     l_api_version            CONSTANT NUMBER := 1;
165   BEGIN
166     savepoint post_split_contract_pub;
167     x_return_status     := FND_API.G_RET_STS_SUCCESS;
168     -- Standard call to check for call compatibility.
169     IF NOT (FND_API.Compatible_API_Call (l_api_version,
170 	                                     p_api_version,
171 			                             l_api_name,
172 		                                 G_PKG_NAME)) THEN
173        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
174     END IF;
175     -- Initialize message list if p_init_msg_list is set to TRUE.
176     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
177        FND_MSG_PUB.initialize;
178     END IF;
179 
180     OKL_SPLIT_CONTRACT_PVT.set_context (
181                                p_api_version    => p_api_version,
182                                p_init_msg_list  => p_init_msg_list,
183                                x_msg_count      => x_msg_count,
184                                x_msg_data       => x_msg_data,
185                                p_resp_id        => p_resp_id,
186                                p_appl_id        => p_appl_id,
187                                p_user_id        => p_user_id,
188                                x_return_status  => x_return_status);
189 
190     IF (x_return_status = FND_API.G_RET_STS_ERROR )  THEN
191        RAISE FND_API.G_EXC_ERROR;
192     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
193        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
194     END IF;
195   EXCEPTION
196     When FND_API.G_EXC_ERROR  then
197       ROLLBACK TO post_split_contract_pub;
198       x_return_status := FND_API.G_RET_STS_ERROR;
199       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
200                                  p_data  => x_msg_data);
201     When FND_API.G_EXC_UNEXPECTED_ERROR  then
202       ROLLBACK TO post_split_contract_pub;
203       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
204       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
205                                  p_data  => x_msg_data);
206     When OTHERS  then
207       ROLLBACK TO post_split_contract_pub;
208       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
209       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_SPLIT_CONTRACT_PUB');
210       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
211                                  p_count   => x_msg_count,
212                                  p_data    => x_msg_data);
213   END set_context;
214 -----------------------------------------------------------------------------------------------
215 ------------------------- Main Process for checking Split contract process --------------------
216 -----------------------------------------------------------------------------------------------
217   PROCEDURE check_split_process (
218             p_api_version      IN  NUMBER,
219             p_init_msg_list    IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
220             x_return_status    OUT NOCOPY VARCHAR2,
221             x_msg_count        OUT NOCOPY NUMBER,
222             x_msg_data         OUT NOCOPY VARCHAR2,
223             x_process_action   OUT NOCOPY VARCHAR2,
224             x_transaction_id   OUT NOCOPY OKL_TRX_CONTRACTS.ID%TYPE,
225             x_child_chrid1     OUT NOCOPY OKC_K_HEADERS_B.ID%TYPE,
226             x_child_chrid2     OUT NOCOPY OKC_K_HEADERS_B.ID%TYPE,
227             p_contract_id      IN  OKC_K_HEADERS_V.ID%TYPE) IS
228     l_api_name               CONSTANT VARCHAR2(30) := 'SPLIT_CONTRACT';
229     l_api_version            CONSTANT NUMBER := 1;
230   BEGIN
231     savepoint post_split_contract_pub;
232     x_return_status     := FND_API.G_RET_STS_SUCCESS;
233     -- Standard call to check for call compatibility.
234     IF NOT (FND_API.Compatible_API_Call (l_api_version,
235 	                                     p_api_version,
236 			                             l_api_name,
237 		                                 G_PKG_NAME)) THEN
238        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
239     END IF;
240     -- Initialize message list if p_init_msg_list is set to TRUE.
241     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
242        FND_MSG_PUB.initialize;
243     END IF;
244     --  Customer pre processing  section
245     -- 	Verticle industry pre- processing section
246     -- Business API call  section
247     OKL_SPLIT_CONTRACT_PVT.check_split_process (
248                                p_api_version      => p_api_version,
249                                p_init_msg_list    => p_init_msg_list,
250                                x_return_status    => x_return_status,
251                                x_msg_count        => x_msg_count,
252                                x_msg_data         => x_msg_data,
253                                x_process_action   => x_process_action,
254                                x_transaction_id   => x_transaction_id,
255                                x_child_chrid1     => x_child_chrid1,
256                                x_child_chrid2     => x_child_chrid2,
257                                p_contract_id      => p_contract_id);
258 
259     IF (x_return_status = FND_API.G_RET_STS_ERROR )  THEN
260        RAISE FND_API.G_EXC_ERROR;
261     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
262        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
263     END IF;
264     --	Verticle industry post- processing section
265     --  Customer post processing  section
266   EXCEPTION
267     When FND_API.G_EXC_ERROR  then
268       ROLLBACK TO post_split_contract_pub;
269       x_return_status := FND_API.G_RET_STS_ERROR;
270       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
271                                  p_data  => x_msg_data);
272     When FND_API.G_EXC_UNEXPECTED_ERROR  then
273       ROLLBACK TO post_split_contract_pub;
274       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
275       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
276                                  p_data  => x_msg_data);
277     When OTHERS  then
278       ROLLBACK TO post_split_contract_pub;
279       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
280       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_SPLIT_CONTRACT_PUB');
281       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
282                                  p_count   => x_msg_count,
283                                  p_data    => x_msg_data);
284 
285   END check_split_process;
286 -----------------------------------------------------------------------------------------------
287 ------------------------- Main Process for canceling Split contract process --------------------
288 -----------------------------------------------------------------------------------------------
289   PROCEDURE cancel_split_process (
290                               p_api_version      IN  NUMBER,
291                               p_init_msg_list    IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
292                               x_return_status    OUT NOCOPY VARCHAR2,
293                               x_msg_count        OUT NOCOPY NUMBER,
294                               x_msg_data         OUT NOCOPY VARCHAR2,
295                               p_contract_id      IN  OKC_K_HEADERS_V.ID%TYPE) IS
296     l_api_name               CONSTANT VARCHAR2(30) := 'SPLIT_CONTRACT';
297     l_api_version            CONSTANT NUMBER := 1;
298   BEGIN
299     savepoint post_split_contract_pub;
300     x_return_status     := FND_API.G_RET_STS_SUCCESS;
301     -- Standard call to check for call compatibility.
302     IF NOT (FND_API.Compatible_API_Call (l_api_version,
303 	                                     p_api_version,
304 			                             l_api_name,
305 		                                 G_PKG_NAME)) THEN
306        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
307     END IF;
308     -- Initialize message list if p_init_msg_list is set to TRUE.
309     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
310        FND_MSG_PUB.initialize;
311     END IF;
312     --  Customer pre processing  section
313     -- 	Verticle industry pre- processing section
314     -- Business API call  section
315     OKL_SPLIT_CONTRACT_PVT.cancel_split_process (
316                                p_api_version      => p_api_version,
317                                p_init_msg_list    => p_init_msg_list,
318                                x_return_status    => x_return_status,
319                                x_msg_count        => x_msg_count,
320                                x_msg_data         => x_msg_data,
321                                p_contract_id      => p_contract_id);
322 
323     IF (x_return_status = FND_API.G_RET_STS_ERROR )  THEN
324        RAISE FND_API.G_EXC_ERROR;
325     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
326        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
327     END IF;
328     --	Verticle industry post- processing section
329     --  Customer post processing  section
330   EXCEPTION
331     When FND_API.G_EXC_ERROR  then
332       ROLLBACK TO post_split_contract_pub;
333       x_return_status := FND_API.G_RET_STS_ERROR;
334       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
335                                  p_data  => x_msg_data);
336     When FND_API.G_EXC_UNEXPECTED_ERROR  then
337       ROLLBACK TO post_split_contract_pub;
338       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
339       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
340                                  p_data  => x_msg_data);
341     When OTHERS  then
342       ROLLBACK TO post_split_contract_pub;
343       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
344       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_SPLIT_CONTRACT_PUB');
345       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
346                                  p_count   => x_msg_count,
347                                  p_data    => x_msg_data);
348 
349   END cancel_split_process;
350 END OKL_SPLIT_CONTRACT_PUB;