DBA Data[Home] [Help]

PACKAGE BODY: APPS.PO_SIGNATURE_GRP

Source


1 PACKAGE BODY PO_SIGNATURE_GRP AS
2 /* $Header: POXGSIGB.pls 120.1 2005/06/29 18:44:55 shsiung noship $ */
3 
4 -------------------------------------------------------------------------------
5 --Start of Comments
6 --Name: Update_Po_Details
7 --Pre-reqs:
8 --  None.
9 --Modifies:
10 --  None
11 --Locks:
12 --  None.
13 --Function:
14 --  Updates PO tables
15 --Parameters:
16 --IN:
17 --p_po_header_id
18 --  PO_HEADER_ID
19 --p_status
20 --  Indicates if the Document is 'ACCEPTED' or 'REJECTED' while signing
21 --p_action_code
22 --  Action code to be inserted in PO_ACTION_HISTORY table.
23 --  Valid values 'SIGNED', 'BUYER REJECTED', 'SUPPLIER REJECTED'
24 --p_object_type_code
25 --  Document type - 'PO', 'PA' etc
26 --p_object_subtype_code
27 --  Document Subtype - 'STANDARD', 'CONTRACT', 'BLANKET' etc
28 --p_employee_id
29 --  Employee Id of the Buyer
30 --p_revision_num
31 --  Revision Number of the document
32 --p_init_msg_list
33 --  True/False parameter to initialize message list
34 --p_api_version
35 --  API version
36 --OUT:
37 --x_msg_count
38 --  Message count
39 --x_msg_data
40 --  message data
41 --x_return_status
42 --  FND_API.G_RET_STS_UNEXP_ERROR - for unexpected error
43 
44 --Testing:
45 --  Testing to be done based on the test cases in Document Binding DLD
46 --End of Comments
47 -------------------------------------------------------------------------------
48 
49 PROCEDURE Update_Po_Details(p_api_version         IN NUMBER, -- bug3488839
50                             p_init_msg_list       IN VARCHAR2 := FND_API.G_FALSE,
51                             p_po_header_id        IN NUMBER,
52                             p_status              IN VARCHAR2,
53                             p_action_code         IN VARCHAR2,
54                             p_object_type_code    IN VARCHAR2,
55                             p_object_subtype_code IN VARCHAR2,
56                             p_employee_id         IN NUMBER,
57                             p_revision_num        IN NUMBER,
58                             x_return_status       OUT NOCOPY VARCHAR2,
59                             x_msg_count           OUT NOCOPY NUMBER,
60                             x_msg_data            OUT NOCOPY VARCHAR2) IS
61   -- declare local variables
62   l_api_name CONSTANT VARCHAR2(30) := 'update_po_details';
63   l_api_version CONSTANT NUMBER := 1.0;  -- bug3488839
64 
65 BEGIN
66 
67    IF NOT (FND_API.compatible_api_call(l_api_version
68                                      ,p_api_version
69                                      ,l_api_name
70                                      ,g_pkg_name)) THEN
71       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
72    END IF;
73 
74    -- initialize API return status to success
75    x_return_status:= FND_API.G_RET_STS_SUCCESS;
76 
77    -- initialize meesage list
78    IF (FND_API.to_Boolean(p_init_msg_list)) THEN
79        FND_MSG_PUB.initialize;
80    END IF;
81 
82    PO_SIGNATURE_PVT.update_po_details(
83                             p_po_header_id        => p_po_header_id,
84                             p_status              => p_status,
85                             p_action_code         => p_action_code,
86                             p_object_type_code    => p_object_type_code,
87                             p_object_subtype_code => p_object_subtype_code,
88                             p_employee_id         => p_employee_id,
89                             p_revision_num        => p_revision_num);
90 
91 EXCEPTION
92    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
93      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
94      FND_MSG_PUB.Count_and_Get(p_count => x_msg_count
95                               ,p_data  => x_msg_data);
96      WHEN OTHERS THEN
97      X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
98      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
99          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
100          IF (g_fnd_debug='Y') THEN
101            IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_UNEXPECTED) THEN
102              FND_LOG.string(log_level => FND_LOG.level_unexpected
103                          ,module    => g_module_prefix ||l_api_name
104                          ,message   => SQLERRM);
105            END IF;
106          END IF;
107      END IF;
108      FND_MSG_PUB.Count_and_Get(p_count => x_msg_count
109                               ,p_data  => x_msg_data);
110 END update_po_details;
111 
112 -------------------------------------------------------------------------------
113 --Start of Comments
114 --Name: GET_ITEM_KEY
115 --Pre-reqs:
116 --  None.
117 --Modifies:
118 --  None
119 --Locks:
120 --  None.
121 --Function:
122 --  Creates and Returns item key for the Document Signature Process
123 --Parameters:
124 --IN:
125 --p_po_header_id
126 --  PO_HEADER_ID
127 --p_revision_num
128 --  Revision Number of the document
129 --p_document_type
130 --  Document type - 'PO', 'PA' etc
131 --p_init_msg_list
132 --  True/False parameter to initialize message list
133 --p_api_version
134 --  API version
135 --OUT:
136 --x_msg_count
137 --  Message count
138 --x_msg_data
139 --  message data
140 --x_return_status
141 --  FND_API.G_RET_STS_UNEXP_ERROR - for unexpected error
142 --x_itemkey
143 --  Item key of the Document Signature Process
144 --Testing:
145 --  Testing to be done based on the test cases in Document Binding DLD
146 --End of Comments
147 -------------------------------------------------------------------------------
148 
149 PROCEDURE Get_Item_Key(p_api_version   IN NUMBER, -- bug3488839
150                        p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
151                        p_po_header_id  IN  NUMBER,
152                        p_revision_num  IN  NUMBER,
153                        p_document_type IN  VARCHAR2,
154                        x_itemkey       OUT NOCOPY VARCHAR2,
155                        x_result        OUT NOCOPY VARCHAR2,
156                        x_return_status OUT NOCOPY VARCHAR2,
157                        x_msg_count     OUT NOCOPY NUMBER,
158                        x_msg_data      OUT NOCOPY VARCHAR2) IS
159 
160 
161   -- declare local variables
162   l_api_name CONSTANT VARCHAR2(30) := 'get_item_key';
163   l_api_version CONSTANT NUMBER := 1.0; -- bug3488839
164 
165 BEGIN
166 
167    IF NOT (FND_API.compatible_api_call(l_api_version
168                                      ,p_api_version
169                                      ,l_api_name
170                                      ,g_pkg_name)) THEN
171       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
172    END IF;
173 
174    -- initialize API return status to success
175    x_return_status:= FND_API.G_RET_STS_SUCCESS;
176 
177    -- initialize meesage list
178    IF (FND_API.to_Boolean(p_init_msg_list)) THEN
179        FND_MSG_PUB.initialize;
180    END IF;
181 
182    PO_SIGNATURE_PVT.get_item_key(
183                        p_po_header_id  => p_po_header_id,
184                        p_revision_num  => p_revision_num,
185                        p_document_type => p_document_type,
186                        x_itemkey       => x_itemkey,
187                        x_result        => x_result);
188 
189 EXCEPTION
190    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
191      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
192      FND_MSG_PUB.Count_and_Get(p_count => x_msg_count
193                               ,p_data  => x_msg_data);
194    WHEN OTHERS THEN
195      X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
196      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
197          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
198          IF (g_fnd_debug='Y') THEN
199            IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_UNEXPECTED) THEN
200              FND_LOG.string(log_level => FND_LOG.level_unexpected
201                          ,module    => g_module_prefix ||l_api_name
202                          ,message   => SQLERRM);
203            END IF;
204          END IF;
205      END IF;
206      FND_MSG_PUB.Count_and_Get(p_count => x_msg_count
207                               ,p_data  => x_msg_data);
208 END get_item_key;
209 
210 -------------------------------------------------------------------------------
211 --Start of Comments
212 --Name: FIND_ITEM_KEY
213 --Pre-reqs:
214 --  None.
215 --Modifies:
216 --  None
217 --Locks:
218 --  None.
219 --Function:
220 --  Returns item key of the active Document Signature Process
221 --Parameters:
222 --IN:
223 --p_po_header_id
224 --  PO_HEADER_ID
225 --p_revision_num
226 --  Revision Number of the document
227 --p_document_type
228 --  Document type - 'PO', 'PA' etc
229 --p_init_msg_list
230 --  True/False parameter to initialize message list
231 --p_api_version
232 --  API version
233 --OUT:
234 --x_msg_count
235 --  Message count
236 --x_msg_data
237 --  message data
238 --x_return_status
239 --  FND_API.G_RET_STS_UNEXP_ERROR - for unexpected error
240 --x_itemkey
241 --  Item key of the active Document Signature Process
242 --x_result
243 --  Returns 'S' for success and 'E' for Error
244 --Testing:
245 --  Testing to be done based on the test cases in Document Binding DLD
246 --End of Comments
247 -------------------------------------------------------------------------------
248 
249 PROCEDURE find_item_key(p_api_version   IN NUMBER,  -- bug3488839
250                         p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
251                         p_po_header_id  IN  NUMBER,
252                         p_revision_num  IN  NUMBER,
253                         p_document_type IN  VARCHAR2,
254                         x_itemkey       OUT NOCOPY VARCHAR2,
255                         x_result        OUT NOCOPY VARCHAR2,
256                         x_return_status OUT NOCOPY VARCHAR2,
257                         x_msg_count     OUT NOCOPY NUMBER,
258                         x_msg_data      OUT NOCOPY VARCHAR2) IS
259 
260 
261   -- declare local variables
262   l_api_name CONSTANT VARCHAR2(30) := 'find_item_key';
263   l_api_version CONSTANT NUMBER := 1.0; -- bug3488839
264 
265 BEGIN
266 
267    IF NOT (FND_API.compatible_api_call(l_api_version
268                                      ,p_api_version
269                                      ,l_api_name
270                                      ,g_pkg_name)) THEN
271       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
272    END IF;
273 
274    -- initialize API return status to success
275    x_return_status:= FND_API.G_RET_STS_SUCCESS;
276 
277    -- initialize meesage list
278    IF (FND_API.to_Boolean(p_init_msg_list)) THEN
279        FND_MSG_PUB.initialize;
280    END IF;
281 
282    PO_SIGNATURE_PVT.find_item_key(
283                         p_po_header_id  => p_po_header_id,
284                         p_revision_num  => p_revision_num,
285                         p_document_type => p_document_type,
286                         x_itemkey       => x_itemkey,
287                         x_result        => x_result);
288 
289 EXCEPTION
290    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
291      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
292      FND_MSG_PUB.Count_and_Get(p_count => x_msg_count
293                               ,p_data  => x_msg_data);
294    WHEN OTHERS THEN
295      X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
296      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
297          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
298          IF (g_fnd_debug='Y') THEN
299            IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_UNEXPECTED) THEN
300              FND_LOG.string(log_level => FND_LOG.level_unexpected
301                          ,module    => g_module_prefix ||l_api_name
302                          ,message   => SQLERRM);
303            END IF;
304          END IF;
305      END IF;
306      FND_MSG_PUB.Count_and_Get(p_count => x_msg_count
307                               ,p_data  => x_msg_data);
308 END find_item_key;
309 
310 -------------------------------------------------------------------------------
311 --Start of Comments
312 --Name: Abort_Doc_Sign_Process
313 --Pre-reqs:
314 --  None.
315 --Modifies:
316 --  None
317 --Locks:
318 --  None.
319 --Function:
320 --  Once signatures are complete aborts the Document Signature Process
321 --Parameters:
322 --IN:
323 --p_itemkey
324 --  Item key of the PO Approval workflow Document Signature Process
325 --p_init_msg_list
326 --  True/False parameter to initialize message list
327 --p_api_version
328 --  API version
329 --OUT:
330 --x_msg_count
331 --  Message count
332 --x_msg_data
333 --  message data
334 --x_return_status
335 --  FND_API.G_RET_STS_UNEXP_ERROR - for unexpected error
336 --x_result
337 --  Returns 'S' for success and 'E' for Error
338 --Testing:
339 --  Testing to be done based on the test cases in Document Binding DLD
340 --End of Comments
341 -------------------------------------------------------------------------------
342 
343 PROCEDURE abort_doc_sign_process(p_api_version   IN NUMBER, -- bug3488839
344                                  p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
345                                  p_itemkey       IN  VARCHAR2,
346                                  x_result        OUT NOCOPY VARCHAR2,
347                                  x_return_status OUT NOCOPY VARCHAR2,
348                                  x_msg_count     OUT NOCOPY NUMBER,
349                                  x_msg_data      OUT NOCOPY VARCHAR2) IS
350 
351   -- local variables
352   l_api_name         CONSTANT VARCHAR2(30)  := 'abort_doc_sign_process';
356 BEGIN
353   l_api_version      CONSTANT NUMBER   := 1.0;  -- bug3488839
354 
355 
357 
358    IF NOT (FND_API.compatible_api_call(l_api_version
359                                      ,p_api_version
360                                      ,l_api_name
361                                      ,g_pkg_name)) THEN
362       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
363    END IF;
364 
365    -- initialize API return status to success
366    x_return_status:= FND_API.G_RET_STS_SUCCESS;
367 
368    -- initialize meesage list
369    IF (FND_API.to_Boolean(p_init_msg_list)) THEN
370        FND_MSG_PUB.initialize;
371    END IF;
372 
373    PO_SIGNATURE_PVT.Abort_Doc_Sign_Process(
374                                  p_itemkey => p_itemkey,
375                                  x_result  => x_result);
376 
377 EXCEPTION
378    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
379      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
380      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
381          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
382          IF (g_fnd_debug='Y') THEN
383            IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_UNEXPECTED) THEN
384              FND_LOG.string(log_level => FND_LOG.level_unexpected
385                          ,module    => g_module_prefix ||l_api_name
386                          ,message   => SQLERRM);
387            END IF;
388          END IF;
389      END IF;
390      FND_MSG_PUB.Count_and_Get(p_count => x_msg_count
391                               ,p_data  => x_msg_data);
392    WHEN OTHERS THEN
393      X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
394      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
395          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
396          IF (g_fnd_debug='Y') THEN
397            IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_UNEXPECTED) THEN
398              FND_LOG.string(log_level => FND_LOG.level_unexpected
399                          ,module    => g_module_prefix ||l_api_name
400                          ,message   => SQLERRM);
401            END IF;
402          END IF;
403      END IF;
404      FND_MSG_PUB.Count_and_Get(p_count => x_msg_count
405                               ,p_data  => x_msg_data);
406 
407 END abort_doc_sign_process;
408 -------------------------------------------------------------------------------
409 --Start of Comments
410 --Name: ERECORDS_ENABLED
411 --Pre-reqs:
412 --  None.
413 --Modifies:
414 --  None
415 --Locks:
416 --  None.
417 --Function:
418 --  If eRecords patch is applied and eRecords is enabled returns 'Y'
419 --  else returns 'N'
420 --Parameters:
421 --IN:
422 --p_init_msg_list
423 --  True/False parameter to initialize message list
424 --p_api_version
425 --  API version
426 --OUT:
427 --x_msg_count
428 --  Message count
429 --x_msg_data
430 --  message data
431 --x_return_status
432 --  FND_API.G_RET_STS_UNEXP_ERROR - for unexpected error
433 --x_erecords_enabled
434 --  Returns 'Y' if eRecords patch is applied and eRecords is enabled.
435 --  Otherwise returns 'N'.
436 --Testing:
437 --  Testing to be done based on the test cases in Document Binding DLD
438 --End of Comments
439 -------------------------------------------------------------------------------
440 
441 PROCEDURE erecords_enabled(p_api_version       IN NUMBER, -- bug3488839
442                            p_init_msg_list     IN VARCHAR2 := FND_API.G_FALSE,
443                            x_erecords_enabled  OUT NOCOPY VARCHAR2,
444                            x_return_status     OUT NOCOPY VARCHAR2,
445                            x_msg_count         OUT NOCOPY NUMBER,
446                            x_msg_data          OUT NOCOPY VARCHAR2) IS
447 
448   -- local variables
449   l_api_name         CONSTANT VARCHAR2(30)  := 'erecords_enabled';
450   l_api_version      CONSTANT NUMBER        := 1.0; -- bug3488839
451 
452 
453 BEGIN
454 
455    IF NOT (FND_API.compatible_api_call(l_api_version
456                                      ,p_api_version
457                                      ,l_api_name
458                                      ,g_pkg_name)) THEN
459       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
460    END IF;
461 
462    -- initialize API return status to success
463    x_return_status:= FND_API.G_RET_STS_SUCCESS;
464 
465    -- initialize meesage list
466    IF (FND_API.to_Boolean(p_init_msg_list)) THEN
467        FND_MSG_PUB.initialize;
468    END IF;
469 
470    PO_ERECORDS_PVT.erecords_enabled(
471                              x_erecords_enabled => x_erecords_enabled);
472 
473 EXCEPTION
474    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
475      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
476      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
477          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
478          IF (g_fnd_debug='Y') THEN
479            IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_UNEXPECTED) THEN
480              FND_LOG.string(log_level => FND_LOG.level_unexpected
481                          ,module    => g_module_prefix ||l_api_name
482                          ,message   => SQLERRM);
483            END IF;
484          END IF;
485      END IF;
486      FND_MSG_PUB.Count_and_Get(p_count => x_msg_count
487                               ,p_data  => x_msg_data);
488    WHEN OTHERS THEN
489      X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
490      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
491          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
492          IF (g_fnd_debug='Y') THEN
493            IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_UNEXPECTED) THEN
497            END IF;
494              FND_LOG.string(log_level => FND_LOG.level_unexpected
495                          ,module    => g_module_prefix ||l_api_name
496                          ,message   => SQLERRM);
498          END IF;
499      END IF;
500      FND_MSG_PUB.Count_and_Get(p_count => x_msg_count
501                               ,p_data  => x_msg_data);
502 
503 END erecords_enabled;
504 
505 END PO_SIGNATURE_GRP;