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