DBA Data[Home] [Help]

PACKAGE BODY: APPS.PO_REQ_DOCUMENT_UPDATE_GRP

Source


1 PACKAGE BODY PO_REQ_DOCUMENT_UPDATE_GRP AS
2 /* $Header: POXGCRQB.pls 115.1 2003/09/24 03:53:48 bmunagal noship $*/
3 
4 G_PKG_NAME CONSTANT varchar2(30) := 'PO_REQ_DOCUMENT_UPDATE_GRP';
5 
6 c_log_head    CONSTANT VARCHAR2(50) := 'po.plsql.'|| G_PKG_NAME || '.';
7 
8 -- Read the profile option that enables/disables the debug log
9 g_fnd_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
10 
11 -------------------------------------------------------------------------------
12 --Start of Comments
13 --Name: validate_inputs
14 --Pre-reqs:
15 --  None.
16 --Modifies:
17 --  None.
18 --Locks:
19 --  None.
20 --Function:
21 --  The following Validations done, called by req_status_check Group procedure.
22 --    1. The ID input tables p_req_header_id, p_req_line_id should be of same size.
23 --    2. Each entity specifies a required field Requisition Header ID
24 --       Note that the Line is optional but a Header is required.
25 --Notes:
26 --  Detailed comments maintained in PVT Package Body PO_REQ_DOCUMENT_CHECKS_PVT.req_status_check
27 --End of Comments
28 -------------------------------------------------------------------------------
29 PROCEDURE validate_inputs (
30     p_api_version         IN NUMBER,
31     p_req_changes         IN OUT NOCOPY PO_REQ_CHANGES_REC_TYPE,
32     p_update_source       IN VARCHAR2,
33     x_return_status       OUT NOCOPY VARCHAR2,
34     x_msg_count           OUT NOCOPY NUMBER,
35     x_msg_data            OUT NOCOPY VARCHAR2
36 ) IS
37 
38 l_api_name    CONSTANT VARCHAR(30) := 'validate_inputs';
39 l_progress    VARCHAR2(3) := '000';
40 l_count       NUMBER := p_req_changes.line_changes.req_line_id.count;
41 l_dummy_table_number    po_tbl_number := po_tbl_number();
42 l_dummy_table_date    po_tbl_date := po_tbl_date();
43 
44 BEGIN
45 
46 --Initialize any null Tables to a dummy table of null values with length of req_line_id.count
47 l_progress := '010';
48 l_dummy_table_number.extend(l_count);
49 l_dummy_table_date.extend(l_count);
50 
51 IF p_req_changes.line_changes.unit_price IS NULL THEN
52     p_req_changes.line_changes.unit_price := l_dummy_table_number;
53 END IF;
54 IF p_req_changes.line_changes.currency_unit_price IS NULL THEN
55     p_req_changes.line_changes.currency_unit_price := l_dummy_table_number;
56 END IF;
57 IF p_req_changes.line_changes.quantity IS NULL THEN
58     p_req_changes.line_changes.quantity := l_dummy_table_number;
59 END IF;
60 IF p_req_changes.line_changes.secondary_quantity IS NULL THEN
61     p_req_changes.line_changes.secondary_quantity := l_dummy_table_number;
62 END IF;
63 IF p_req_changes.line_changes.need_by_date IS NULL THEN
64     p_req_changes.line_changes.need_by_date := l_dummy_table_date;
65 END IF;
66 IF p_req_changes.line_changes.deliver_to_location_id IS NULL THEN
67     p_req_changes.line_changes.deliver_to_location_id := l_dummy_table_number;
68 END IF;
69 IF p_req_changes.line_changes.assignment_start_date IS NULL THEN
70     p_req_changes.line_changes.assignment_start_date := l_dummy_table_date;
71 END IF;
72 IF p_req_changes.line_changes.assignment_end_date IS NULL THEN
73     p_req_changes.line_changes.assignment_end_date := l_dummy_table_date;
74 END IF;
75 IF p_req_changes.line_changes.amount IS NULL THEN
76     p_req_changes.line_changes.amount := l_dummy_table_number;
77 END IF;
78 
79 x_return_status := FND_API.G_RET_STS_SUCCESS;
80 
81 EXCEPTION
82     WHEN FND_API.G_EXC_ERROR THEN
83         FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
84         x_return_status := FND_API.G_RET_STS_ERROR;
85     WHEN OTHERS THEN
86         FND_MSG_PUB.add_exc_msg(G_PKG_NAME, l_api_name || '.' || l_progress);
87         FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
88         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
89 
90 END validate_inputs;
91 
92 -------------------------------------------------------------------------------
93 --Start of Comments
94 --Name: update_requisition
95 --Pre-reqs:
96 --  None.
97 --Modifies:
98 --  None.
99 --Locks:
100 --  None.
101 --Function:
102 --  Group procedure to updates a Requisition. Validates and calls private procedure
103 --  This currently does not do any validations. The may do validations in the future.
104 --Notes:
105 --  Detailed comments maintained in PVT Package Body PO_REQ_DOCUMENT_UPDATE_PVT.update_requisition
106 --End of Comments
107 -------------------------------------------------------------------------------
108 PROCEDURE update_requisition (
109     p_api_version         IN NUMBER,
110     p_req_changes         IN OUT NOCOPY PO_REQ_CHANGES_REC_TYPE,
111     p_update_source       IN VARCHAR2,
112     x_return_status       OUT NOCOPY VARCHAR2,
113     x_msg_count           OUT NOCOPY NUMBER,
114     x_msg_data            OUT NOCOPY VARCHAR2
115 ) IS
116 
117 l_api_name    CONSTANT VARCHAR(30) := 'UPDATE_REQUISITION';
118 l_api_version CONSTANT NUMBER := 1.0;
119 l_progress    VARCHAR2(3) := '000';
120 
121 BEGIN
122 
123 --Standard call to check for call compatibility
124 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
125     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
126 END IF;
127 
128 --Validate/Default Input
129 l_progress := '005';
130 validate_inputs(
131     p_api_version => 1.0,
132     p_req_changes => p_req_changes,
133     p_update_source => p_update_source,
134     x_return_status  => x_return_status,
135     x_msg_count  => x_msg_count,
136     x_msg_data  => x_msg_data);
137 
138 --Call the private procedure to update requisition
139 l_progress := '010';
140 PO_REQ_DOCUMENT_UPDATE_PVT.update_requisition(
141     p_api_version => 1.0,
142     p_req_changes => p_req_changes,
143     p_update_source => p_update_source,
144     x_return_status  => x_return_status,
145     x_msg_count  => x_msg_count,
146     x_msg_data  => x_msg_data);
147 
148 l_progress := '020';
149 
150 EXCEPTION
151     WHEN FND_API.G_EXC_ERROR THEN
152         FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
153         x_return_status := FND_API.G_RET_STS_ERROR;
154     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
155         FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
156         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
157     WHEN OTHERS THEN
158         FND_MSG_PUB.add_exc_msg(G_PKG_NAME, l_api_name || '.' || l_progress);
159         FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
160         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
161 
162 END update_requisition;
163 
164 
165 END PO_REQ_DOCUMENT_UPDATE_GRP;