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