[Home] [Help]
PACKAGE BODY: APPS.GMF_ACTUAL_COST_ADJUSTMENT_PUB
Source
1 PACKAGE BODY GMF_ACTUAL_COST_ADJUSTMENT_PUB AS
2 /* $Header: GMFPACAB.pls 120.6.12020000.2 2012/07/24 14:49:04 spabolu ship $ */
3
4 /********************************************************************
5 * PACKAGE *
6 * GMF_ACTUAL_COST_ADJUSTMENT_PUB *
7 * *
8 * TYPE *
9 * PUBLIC *
10 * *
11 * FUNCTION *
12 * Actual Cost Adjustment Creation, Updation, Query and Deletion *
13 * *
14 * PARAMETERS *
15 * N/A *
16 * *
17 * DESCRIPTION *
18 * This package contains public procedures relating to Actual Cost *
19 * Adjustment Creation, Updation, Query and Deletion *
20 * *
21 * HISTORY *
22 * 16-Sep-2005 Anand Thiyagarajan Created *
23 ********************************************************************/
24
25 /*******************
26 * Global Variables *
27 *******************/
28 G_PKG_NAME CONSTANT VARCHAR2(30) := 'GMF_ACTUAL_COST_ADJUSTMENT_PUB';
29 G_tmp BOOLEAN := FND_MSG_PUB.Check_Msg_Level(0) ;
30 G_debug_level NUMBER(2) := FND_MSG_PUB.G_Msg_Level_Threshold;
31 G_header_logged VARCHAR2(1) := 'N';
32
33 /**************************************************************
34 * PROCEDURE *
35 * log_msg *
36 * *
37 * DESCRIPTION *
38 * This procedure logs messages to message stack. *
39 * *
40 * PARAMETERS *
41 * p_msg_lvl IN NUMBER(10) - Message Level *
42 * p_msg_text IN NUMBER(10) - Actual Message Text *
43 * *
44 * HISTORY *
45 * 16-SEP-2005 Anand Thiyagarajan Created *
46 * *
47 **************************************************************/
48 PROCEDURE LOG_MSG
49 (
50 p_msg_text IN VARCHAR2
51 )
52 IS
53 BEGIN
54 FND_MESSAGE.SET_NAME('GMF','GMF_API_DEBUG');
55 FND_MESSAGE.SET_TOKEN('MSG',p_msg_text);
56 FND_MSG_PUB.Add;
57 END log_msg ;
58
59 /**************************************************************
60 * PROCEDURE *
61 * add_record_to_error_stack *
62 * *
63 * DESCRIPTION *
64 * This procedure adds the record to Error Stack. *
65 * *
66 * PARAMETERS *
67 * p_adjustment_rec IN ADJUSTMENT_REC_TYPE *
68 * *
69 * HISTORY *
70 * 16-SEP-2005 Anand Thiyagarajan Created *
71 * 10-Nov-2009 Prasad marada Bug 9005515 Applied adjustments *
72 * can be alloed to update/delete through api. *
73 * *
74 **************************************************************/
75 PROCEDURE ADD_RECORD_TO_ERROR_STACK
76 (
77 p_adjustment_rec IN GMF_ACTUAL_COST_ADJUSTMENT_PUB.ADJUSTMENT_REC_TYPE
78 )
79 IS
80 BEGIN
81 IF G_header_logged = 'N'
82 THEN
83 G_header_logged := 'Y';
84 FND_MESSAGE.SET_NAME('GMF','GMF_API_ACA_RECORD');
85 FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID', p_adjustment_rec.organization_id);
86 FND_MESSAGE.SET_TOKEN('ORGANIZATION_CODE', p_adjustment_rec.organization_code);
87 FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID', p_adjustment_rec.inventory_item_id);
88 FND_MESSAGE.SET_TOKEN('ITEM_NUMBER', p_adjustment_rec.item_number);
89 FND_MESSAGE.SET_TOKEN('COST_TYPE_ID', p_adjustment_rec.cost_type_id);
90 FND_MESSAGE.SET_TOKEN('COST_MTHD_CODE', p_adjustment_rec.cost_mthd_code);
91 FND_MESSAGE.SET_TOKEN('PERIOD_ID', p_adjustment_rec.period_id);
92 FND_MESSAGE.SET_TOKEN('CALENDAR_CODE', p_adjustment_rec.calendar_code);
93 FND_MESSAGE.SET_TOKEN('PERIOD_CODE', p_adjustment_rec.period_code);
94 FND_MESSAGE.SET_TOKEN('COST_CMPNTCLS_ID', p_adjustment_rec.cost_cmpntcls_id);
95 FND_MESSAGE.SET_TOKEN('COST_CMPNTCLS_CODE', p_adjustment_rec.cost_cmpntcls_code);
96 FND_MESSAGE.SET_TOKEN('COST_ANALYSIS_CODE', p_adjustment_rec.cost_analysis_code);
97 FND_MSG_PUB.Add;
98 END IF;
99 END ADD_RECORD_TO_ERROR_STACK;
100
101 /**************************************************************
102 * PROCEDURE *
103 * validate_input_params *
104 * *
105 * DESCRIPTION *
106 * This procedure validates the input parameters passed *
107 * *
108 * PARAMETERS *
109 * p_adjustment_rec IN ADJUSTMENT_REC_TYPE *
110 * *
111 * HISTORY *
112 * 16-SEP-2005 Anand Thiyagarajan Created *
113 * 11-JAN-2011 Saptagirish Pabolu Changed against *
114 * the bug# 10371629 *
115 **************************************************************/
116 PROCEDURE VALIDATE_INPUT_PARAMS
117 (
118 p_adjustment_rec IN OUT NOCOPY GMF_ACTUAL_COST_ADJUSTMENT_PUB.ADJUSTMENT_REC_TYPE,
119 p_operation IN VARCHAR2,
120 x_user_id OUT NOCOPY fnd_user.user_id%TYPE,
121 x_return_status OUT NOCOPY VARCHAR2
122 )
123 IS
124
125 /******************
126 * Local Variables *
127 ******************/
128 l_reason_cnt NUMBER;
129 l_text_cnt NUMBER;
130 l_header_cnt NUMBER;
131 l_cost_adjust_id cm_adjs_dtl.cost_adjust_id%TYPE;
132 l_adjust_cost cm_adjs_dtl.adjust_cost%TYPE;
133 l_adjust_status cm_adjs_dtl.adjust_status%TYPE;
134 l_start_date DATE;
135 l_end_date DATE;
136 l_gl_posted_ind NUMBER;
137 BEGIN
138
139 /******************************************
140 * Initialize API return status to success *
141 ******************************************/
142 x_return_status := FND_API.G_RET_STS_SUCCESS;
143 l_adjust_status := NULL;
144 G_header_logged := 'N';
145
146 IF P_OPERATION IN ('INSERT', 'UPDATE', 'DELETE', 'GET') THEN
147 IF p_adjustment_rec.cost_adjust_id IS NOT NULL AND P_OPERATION = 'INSERT' THEN
148 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
149 log_msg('Resetting Cost Adjust Id to NULL for Operation: ' || P_OPERATION);
150 END IF;
151 p_adjustment_rec.cost_adjust_id := NULL;
152 END IF;
153 IF p_adjustment_rec.cost_adjust_id IS NOT NULL AND P_OPERATION IN ('UPDATE', 'DELETE', 'GET') THEN
154 BEGIN
155 SELECT adjust_status,
156 period_id,
157 cost_Type_id,
158 organization_id,
159 inventory_item_id
160 INTO
161 l_adjust_status,
162 p_adjustment_rec.period_id,
163 p_adjustment_rec.cost_Type_id,
164 p_adjustment_rec.organization_id,
165 p_adjustment_rec.inventory_item_id
166 FROM cm_adjs_dtl
167 WHERE
168 cost_adjust_id = p_adjustment_rec.cost_adjust_id
169 AND ROWNUM = 1;
170 EXCEPTION
171 WHEN NO_DATA_FOUND THEN
172 l_adjust_status := NULL;
173 END;
174
175 /* bug 9005515, applied adjustments can be allowwed to updated/deleted
176 IF l_adjust_status = 1 AND P_OPERATION IN ('UPDATE', 'DELETE') THEN
177 FND_MESSAGE.SET_NAME('GMF','GMF_API_ACA_APPLIED');
178 FND_MSG_PUB.Add;
179 RAISE FND_API.G_EXC_ERROR;
180 END IF; bug 9005515 */
181 IF (p_adjustment_rec.organization_id IS NOT NULL OR p_adjustment_rec.organization_code IS NOT NULL) AND
182 (p_adjustment_rec.cost_type_id IS NOT NULL OR p_adjustment_rec.cost_mthd_code IS NOT NULL) AND
183 (p_adjustment_rec.inventory_item_id IS NOT NULL OR p_adjustment_rec.item_number IS NOT NULL) AND
184 (p_adjustment_rec.period_id IS NOT NULL OR (p_adjustment_rec.calendar_code IS NOT NULL AND p_adjustment_rec.period_code IS NOT NULL)) THEN
185 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS) THEN
186 FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_HEADER_KEYS');
187 FND_MSG_PUB.Add;
188 END IF;
189 END IF;
190 ELSE
191 IF (p_adjustment_rec.period_id = FND_API.G_MISS_NUM) OR (p_adjustment_rec.period_id IS NULL) THEN
192 /***********************
193 * Cost Type Validation *
194 ***********************/
195 IF (p_adjustment_rec.cost_type_id <> FND_API.G_MISS_NUM) AND (p_adjustment_rec.cost_type_id IS NOT NULL) THEN
196 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
197 log_msg('Validating Cost Type Id : ' || p_adjustment_rec.cost_type_id);
198 END IF;
199 IF NOT gmf_validations_pvt.validate_cost_type_id (p_adjustment_rec.cost_type_id, 'A') THEN
200 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_COST_TYPE_ID');
201 FND_MESSAGE.SET_TOKEN('COST_TYPE_ID', p_adjustment_rec.cost_type_id);
202 FND_MSG_PUB.Add;
203 RAISE FND_API.G_EXC_ERROR;
204 END IF;
205 IF (p_adjustment_rec.cost_mthd_code <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.cost_mthd_code IS NOT NULL) THEN
206 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS) THEN
207 FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_COST_TYPE');
208 FND_MESSAGE.SET_TOKEN('COST_TYPE', p_adjustment_rec.cost_mthd_code);
209 FND_MSG_PUB.Add;
210 END IF;
211 END IF;
212 ELSIF (p_adjustment_rec.cost_mthd_code <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.cost_mthd_code IS NOT NULL) THEN
213 /************************
214 * Convert Code into ID. *
215 ************************/
216 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
217 log_msg('Validating Cost Type Code : ' || p_adjustment_rec.cost_mthd_code);
218 END IF;
219 p_adjustment_rec.cost_type_id := GMF_VALIDATIONS_PVT.Validate_Cost_type_code(p_adjustment_rec.cost_mthd_code, 'A');
220
221 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
222 log_msg('Cost Type Id : ' || p_adjustment_rec.cost_type_id);
223 END IF;
224 IF p_adjustment_rec.cost_type_id IS NULL THEN
225 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_COST_TYPE');
226 FND_MESSAGE.SET_TOKEN('COST_TYPE',p_adjustment_rec.cost_mthd_code);
227 FND_MSG_PUB.Add;
228 RAISE FND_API.G_EXC_ERROR;
229 END IF;
230 ELSE
231 FND_MESSAGE.SET_NAME('GMF','GMF_API_COST_TYPE_ID_REQ');
232 FND_MSG_PUB.Add;
233 RAISE FND_API.G_EXC_ERROR;
234 END IF;
235 ELSE
236 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
237 log_msg('Skipping Cost Type validation since Period Id is passed');
238 END IF;
239 END IF;
240 /**************************
241 * Organization Validation *
242 **************************/
243 IF ((p_adjustment_rec.organization_id <> FND_API.G_MISS_NUM) AND (p_adjustment_rec.organization_id IS NOT NULL)) THEN
244 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
245 log_msg('Validating Organization Id : ' || p_adjustment_rec.organization_id);
246 END IF;
247 IF NOT gmf_validations_pvt.validate_organization_id(p_adjustment_rec.organization_id) THEN
248 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ORGN_ID');
249 FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID', p_adjustment_rec.organization_id);
250 FND_MSG_PUB.Add;
251 RAISE FND_API.G_EXC_ERROR;
252 END IF;
253 IF (p_adjustment_rec.organization_code <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.organization_code IS NOT NULL) THEN
254 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS) THEN
255 FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_ORGN_CODE');
256 FND_MESSAGE.SET_TOKEN('ORGANIZATION_CODE', p_adjustment_rec.organization_code);
257 FND_MSG_PUB.Add;
258 END IF;
259 END IF;
260 ELSIF ((p_adjustment_rec.organization_code <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.organization_code IS NOT NULL)) THEN
261 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
262 log_msg('Validating Organization Code : ' || p_adjustment_rec.organization_code);
263 END IF;
264 p_adjustment_rec.organization_id := gmf_validations_pvt.validate_organization_code(p_adjustment_rec.organization_code);
265 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
266 log_msg('Organization id : ' || p_adjustment_rec.organization_id);
267 END IF;
268 IF p_adjustment_rec.organization_id IS NULL THEN
269 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ORGN_CODE');
270 FND_MESSAGE.SET_TOKEN('ORG_CODE', p_adjustment_rec.organization_code);
271 FND_MSG_PUB.Add;
272 RAISE FND_API.G_EXC_ERROR;
273 END IF;
274 ELSE
275 FND_MESSAGE.SET_NAME('GMF','GMF_API_ORGANIZATION_ID_REQ');
276 FND_MSG_PUB.Add;
277 RAISE FND_API.G_EXC_ERROR;
278 END IF;
279 /******************
280 * Item Validation *
281 ******************/
282 IF (p_adjustment_rec.inventory_item_id <> FND_API.G_MISS_NUM) AND (p_adjustment_rec.inventory_item_id IS NOT NULL)
283 THEN
284 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
285 log_msg('Validating Inventory Item Id : ' || p_adjustment_rec.inventory_item_id);
286 END IF;
287 IF NOT GMF_VALIDATIONS_PVT.Validate_inventory_item_Id(p_adjustment_rec.inventory_item_id, p_adjustment_rec.organization_id) THEN
288 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ITEM_ID');
289 FND_MESSAGE.SET_TOKEN('ITEM_ID', p_adjustment_rec.inventory_item_id);
290 FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID', p_adjustment_rec.organization_id);
291 FND_MSG_PUB.Add;
292 RAISE FND_API.G_EXC_ERROR;
293 END IF;
294 IF (p_adjustment_rec.item_number <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.item_number IS NOT NULL) THEN
295 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS) THEN
296 FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_ITEM_NO');
297 FND_MESSAGE.SET_TOKEN('ITEM_NO',p_adjustment_rec.item_number);
298 FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID', p_adjustment_rec.organization_id);
299 FND_MSG_PUB.Add;
300 END IF;
301 END IF;
302 ELSIF (p_adjustment_rec.item_number <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.item_number IS NOT NULL) THEN
303 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
304 log_msg('Validating Item Number : ' || p_adjustment_rec.item_number);
305 END IF;
306 p_adjustment_rec.inventory_item_id := GMF_VALIDATIONS_PVT.Validate_Item_Number(p_adjustment_rec.item_number, p_adjustment_rec.organization_id);
307 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
308 log_msg('Inventory Item id : ' || p_adjustment_rec.inventory_item_id);
309 END IF;
310 IF p_adjustment_rec.inventory_item_id IS NULL THEN
311 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ITEM_NO');
312 FND_MESSAGE.SET_TOKEN('ITEM_NO',p_adjustment_rec.item_number);
313 FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID', p_adjustment_rec.organization_id);
314 FND_MSG_PUB.Add;
315 RAISE FND_API.G_EXC_ERROR;
316 END IF;
317 ELSE
318 FND_MESSAGE.SET_NAME('GMF','GMF_API_ITEM_ID_REQ');
319 FND_MSG_PUB.Add;
320 RAISE FND_API.G_EXC_ERROR;
321 END IF;
322 /********************
323 * Period Validation *
324 ********************/
325 IF (p_adjustment_rec.period_id <> FND_API.G_MISS_NUM) AND (p_adjustment_rec.period_id IS NOT NULL)
326 THEN
327 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
328 log_msg('Validating Period Id : ' || p_adjustment_rec.Period_id);
329 END IF;
330 IF NOT gmf_validations_pvt.validate_period_id(p_adjustment_rec.period_id, p_adjustment_rec.cost_type_id) THEN
331 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_PERIOD_ID');
332 FND_MESSAGE.SET_TOKEN('PERIOD_ID', p_adjustment_rec.period_id);
333 FND_MSG_PUB.Add;
334 RAISE FND_API.G_EXC_ERROR;
335 END IF;
336 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
337 log_msg('Cost Type Id fetched based on Period Id is: '||p_adjustment_rec.cost_type_id);
338 END IF;
339 IF ((p_adjustment_rec.calendar_code <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.calendar_code IS NOT NULL)) AND
340 ((p_adjustment_rec.period_code <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.period_code IS NOT NULL)) THEN
341 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS) THEN
342 FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_PERIOD_CODE');
343 FND_MESSAGE.SET_TOKEN('CALENDAR_CODE', p_adjustment_rec.calendar_code);
344 FND_MESSAGE.SET_TOKEN('PERIOD_CODE', p_adjustment_rec.period_code);
345 FND_MSG_PUB.Add;
346 END IF;
347 END IF;
348 ELSIF (p_adjustment_rec.calendar_code <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.calendar_code IS NOT NULL) AND
349 ((p_adjustment_rec.period_code <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.period_code IS NOT NULL)) THEN
350 /************************
351 * Convert Code into ID. *
352 ************************/
353 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
354 log_msg('Validating Calendar Code : ' || p_adjustment_rec.calendar_code||', Period Code : '||p_adjustment_rec.period_code);
355 END IF;
356 p_adjustment_rec.period_id := GMF_VALIDATIONS_PVT.Validate_period_code(p_adjustment_rec.organization_id, p_adjustment_rec.calendar_code, p_adjustment_rec.period_code, p_adjustment_rec.cost_type_id);
357 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
358 log_msg('Period Id : ' || p_adjustment_rec.period_id);
359 END IF;
360 IF p_adjustment_rec.period_id IS NULL THEN
361 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_CLDR_PERIOD');
362 FND_MESSAGE.SET_TOKEN('CALENDAR_CODE',p_adjustment_rec.calendar_code);
363 FND_MESSAGE.SET_TOKEN('PERIOD_CODE',p_adjustment_rec.period_code);
364 FND_MSG_PUB.Add;
365 RAISE FND_API.G_EXC_ERROR;
366 END IF;
367 ELSE
368 FND_MESSAGE.SET_NAME('GMF','GMF_API_PERIOD_REQ');
369 FND_MSG_PUB.Add;
370 RAISE FND_API.G_EXC_ERROR;
371 END IF;
372 END IF;
373 /**********************************
374 * Cost Component Class Validation *
375 **********************************/
376 IF (p_adjustment_rec.cost_cmpntcls_id <> FND_API.G_MISS_NUM) AND (p_adjustment_rec.cost_cmpntcls_id IS NOT NULL)
377 THEN
378 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
379 log_msg('Validating Cost Component Class ID :'|| p_adjustment_rec.cost_cmpntcls_id);
380 END IF;
381 IF NOT GMF_VALIDATIONS_PVT.Validate_Cost_Cmpntcls_Id (p_adjustment_rec.cost_cmpntcls_id) THEN
382 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_CMPNTCLS_ID');
383 FND_MESSAGE.SET_TOKEN('CMPNTCLS_ID',p_adjustment_rec.cost_cmpntcls_id);
384 FND_MSG_PUB.Add;
385 RAISE FND_API.G_EXC_ERROR;
386 END IF;
387 IF (p_adjustment_rec.cost_cmpntcls_code <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.cost_cmpntcls_code IS NOT NULL) THEN
388 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS) THEN
389 FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_CMPNTCLS_CODE');
390 FND_MESSAGE.SET_TOKEN('CMPNTCLS_CODE', p_adjustment_rec.cost_cmpntcls_code);
391 FND_MSG_PUB.Add;
392 END IF;
393 END IF;
394 ELSIF (p_adjustment_rec.cost_cmpntcls_code <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.cost_cmpntcls_code IS NOT NULL)
395 THEN
396 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
397 log_msg('Validating Cost Component Class Code : ' || p_adjustment_rec.cost_cmpntcls_code);
398 END IF;
399 p_adjustment_rec.cost_cmpntcls_id := GMF_VALIDATIONS_PVT.Validate_Cost_Cmpntcls_Code (p_adjustment_rec.cost_cmpntcls_code);
400 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
401 log_msg('Component Class Id := ' || p_adjustment_rec.cost_cmpntcls_id);
402 END IF;
403 IF p_adjustment_rec.cost_cmpntcls_id IS NULL THEN
404 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_CMPNTCLS_CODE');
405 FND_MESSAGE.SET_TOKEN('CMPNTCLS_CODE', p_adjustment_rec.cost_cmpntcls_code);
406 FND_MSG_PUB.Add;
407 RAISE FND_API.G_EXC_ERROR;
408 END IF;
409 ELSE
410 FND_MESSAGE.SET_NAME('GMF','GMF_API_CMPNTCLS_ID_REQ');
411 FND_MSG_PUB.Add;
412 RAISE FND_API.G_EXC_ERROR;
413 END IF;
414 /***************************
415 * Analysis Code Validation *
416 ***************************/
417 IF (p_adjustment_rec.cost_analysis_code <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.cost_analysis_code IS NOT NULL)
418 THEN
419 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
420 log_msg('Validating Cost Analysis code :' || p_adjustment_rec.cost_analysis_code);
421 END IF;
422 IF NOT GMF_VALIDATIONS_PVT.Validate_Analysis_Code(p_adjustment_rec.cost_analysis_code) THEN
423 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ANALYSIS_CODE');
424 FND_MESSAGE.SET_TOKEN('ANALYSIS_CODE', p_adjustment_rec.cost_analysis_code);
425 FND_MSG_PUB.Add;
426 RAISE FND_API.G_EXC_ERROR;
427 END IF;
428 ELSE
429 FND_MESSAGE.SET_NAME('GMF','GMF_API_ANALYSIS_CODE_REQ');
430 FND_MSG_PUB.Add;
431 RAISE FND_API.G_EXC_ERROR;
432 END IF;
433 /***********************************
434 * Adjustment Indicator Validation *
435 ***********************************/
436 IF (p_adjustment_rec.adjustment_ind <> FND_API.G_MISS_NUM) AND (p_adjustment_rec.adjustment_ind IS NOT NULL)
437 THEN
438 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
439 log_msg('Validating Adjustment Indicator : ' || p_adjustment_rec.adjustment_ind );
440 END IF;
441 IF p_adjustment_rec.adjustment_ind NOT IN (0, 1, 2) THEN
442 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ADJ_IND');
443 FND_MESSAGE.SET_TOKEN('ADJUSTMENT_IND',p_adjustment_rec.adjustment_ind);
444 FND_MSG_PUB.Add;
445 RAISE FND_API.G_EXC_ERROR;
446 END IF;
447 ELSE
448 FND_MESSAGE.SET_NAME('GMF','GMF_API_ADJ_IND_REQ');
449 FND_MSG_PUB.Add;
450 RAISE FND_API.G_EXC_ERROR;
451 END IF;
452 IF P_OPERATION IN ('INSERT', 'UPDATE') THEN
453 /************************
454 * Adjust UOM Validation *
455 ************************/
456 IF (p_adjustment_rec.adjust_qty_uom <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.adjust_qty_uom IS NOT NULL)
457 THEN
458 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
459 log_msg('Validating Adjust Qty UOM :' || p_adjustment_rec.adjust_qty_uom);
460 END IF;
461 /* IF NOT GMF_VALIDATIONS_PVT.Validate_same_class_Uom(p_adjustment_rec.adjust_qty_uom, p_adjustment_rec.inventory_item_id, p_adjustment_rec.organization_id) Commented against Bug#14101225 */
462 IF NOT GMF_VALIDATIONS_PVT.Validate_Uom_Conv(p_adjustment_rec.adjust_qty_uom, p_adjustment_rec.inventory_item_id, p_adjustment_rec.organization_id, p_adjustment_rec.adjust_qty)
463 THEN
464 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ITEM_UM');
465 FND_MESSAGE.SET_TOKEN('ITEM_UOM', p_adjustment_rec.adjust_qty_uom);
466 FND_MSG_PUB.Add;
467 RAISE FND_API.G_EXC_ERROR;
468 END IF;
469 ELSE
470 FND_MESSAGE.SET_NAME('GMF','GMF_API_ITEM_UM_REQ');
471 FND_MSG_PUB.Add;
472 RAISE FND_API.G_EXC_ERROR;
473 END IF;
474 /*****************************
475 * Adjustment Cost validation *
476 *****************************/
477 IF P_OPERATION IN ('UPDATE', 'INSERT') THEN
478 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
479 log_msg('Validating Adjustment Cost');
480 END IF;
481 IF p_adjustment_rec.adjust_cost IS NULL THEN
482 FND_MESSAGE.SET_NAME('GMF','GMF_API_ACA_ADJ_COST');
483 FND_MSG_PUB.Add;
484 RAISE FND_API.G_EXC_ERROR;
485 END IF;
486 END IF;
487 /*************************
488 * Reason Code Validation *
489 *************************/
490 IF ((p_adjustment_rec.reason_code <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.reason_code IS NOT NULL)) THEN
491 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
492 log_msg('Validating Reason Code: ' || p_adjustment_rec.reason_code );
493 END IF;
494 BEGIN
495 SELECT 1
496 INTO l_reason_cnt
497 FROM cm_reas_cds
498 WHERE
499 reason_code = p_adjustment_rec.reason_code
500 AND delete_mark = 0
501 AND ROWNUM = 1;
502 EXCEPTION
503 WHEN NO_DATA_FOUND THEN
504 FND_MESSAGE.SET_NAME('GMF','GMF_API_ACA_REASON_CODE');
505 FND_MESSAGE.SET_TOKEN('REASON_CODE',p_adjustment_rec.reason_code);
506 FND_MSG_PUB.Add;
507 RAISE FND_API.G_EXC_ERROR;
508 END;
509 ELSE
510 FND_MESSAGE.SET_NAME('GMF','GMF_API_REASON_CODE_REQ');
511 FND_MSG_PUB.Add;
512 RAISE FND_API.G_EXC_ERROR;
513 END IF;
514 /*************************
515 * Delete mark Validation *
516 *************************/
517 IF (p_adjustment_rec.delete_mark <> FND_API.G_MISS_NUM) AND (p_adjustment_rec.delete_mark IS NOT NULL) THEN
518 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
519 log_msg('Validating Delete_mark : ' || p_adjustment_rec.delete_mark);
520 END IF;
521 IF p_adjustment_rec.delete_mark NOT IN (0,1) THEN
522 add_record_to_error_stack(p_adjustment_rec);
523 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_DELETE_MARK');
524 FND_MESSAGE.SET_TOKEN('DELETE_MARK',p_adjustment_rec.delete_mark);
525 FND_MSG_PUB.Add;
526 RAISE FND_API.G_EXC_ERROR;
527 END IF;
528 ELSIF (p_adjustment_rec.delete_mark = FND_API.G_MISS_NUM AND p_operation IN ('UPDATE', 'INSERT')) THEN
529 add_record_to_error_stack(p_adjustment_rec);
530 FND_MESSAGE.SET_NAME('GMF','GMF_API_DELETE_MARK_REQ');
531 FND_MSG_PUB.Add;
532 RAISE FND_API.G_EXC_ERROR;
533 END IF;
534
535 IF ((p_operation IN ('UPDATE','INSERT')) AND (p_adjustment_rec.delete_mark = 1)) THEN
536 add_record_to_error_stack(p_adjustment_rec);
537 FND_MESSAGE.SET_NAME('GMF','GMF_API_CANT_MARK_FOR_PURGE');
538 FND_MSG_PUB.Add;
539 RAISE FND_API.G_EXC_ERROR;
540 END IF;
541 /***********************************
542 * Subledger Indicator Validation *
543 ***********************************/
544 IF (p_adjustment_rec.subledger_ind <> FND_API.G_MISS_NUM) AND (p_adjustment_rec.subledger_ind IS NOT NULL) THEN
545 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
546 log_msg('Validating Subledger Ind : ' || p_adjustment_rec.subledger_ind );
547 END IF;
548 IF p_adjustment_rec.subledger_ind NOT IN (0,1) THEN
549 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_SUBLEDGER_IND');
550 FND_MESSAGE.SET_TOKEN('SUBLEDGER_IND',p_adjustment_rec.subledger_ind);
551 FND_MSG_PUB.Add;
552 RAISE FND_API.G_EXC_ERROR;
553 ELSE
554 /*****************************
555 * Adjustment Date Validation *
556 *****************************/
557 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
558 THEN
559 log_msg('Validating Adjustment date : ' || p_adjustment_rec.adjustment_date );
560 END IF;
561 IF p_adjustment_rec.subledger_ind = 0 THEN
562 p_adjustment_rec.adjustment_date := NULL;
563 ELSE
564 IF p_adjustment_rec.adjustment_date IS NULL
565 THEN
566 FND_MESSAGE.SET_NAME('GMF','GMF_API_ACA_DATE_DEFAULT');
567 FND_MSG_PUB.Add;
568 BEGIN
569 SELECT start_date
570 INTO p_adjustment_rec.adjustment_date
571 FROM gmf_period_statuses
572 WHERE period_id = p_adjustment_rec.period_id;
573 EXCEPTION
574 WHEN no_data_found THEN
575 p_adjustment_rec.adjustment_date := SYSDATE;
576 END;
577 ELSE
578 BEGIN
579 SELECT start_date, end_date
580 INTO l_start_date, l_end_date
581 FROM gmf_period_statuses
582 WHERE period_id = p_adjustment_rec.period_id;
583 EXCEPTION
584 WHEN no_data_found THEN
585 l_start_date := NULL;
586 l_end_date := NULL;
587 END;
588 IF p_adjustment_rec.adjustment_date NOT BETWEEN l_start_date AND l_end_date THEN
589 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ACA_DATE');
590 FND_MESSAGE.SET_TOKEN('ADJUSTMENT_DATE',p_adjustment_rec.adjustment_date);
591 FND_MESSAGE.SET_TOKEN('START_DATE', l_start_date);
592 FND_MESSAGE.SET_TOKEN('END_DATE', l_end_date);
593 FND_MSG_PUB.Add;
594 RAISE FND_API.G_EXC_ERROR;
595 END IF;
596 END IF;
597 END IF;
598 END IF;
599 ELSE
600 FND_MESSAGE.SET_NAME('GMF','GMF_API_SUBLEDGER_IND_REQ');
601 FND_MSG_PUB.Add;
602 RAISE FND_API.G_EXC_ERROR;
603 END IF;
604 END IF;
605 /**********************
606 * Username Validation *
607 **********************/
608 IF (p_adjustment_rec.user_name <> FND_API.G_MISS_CHAR) AND (p_adjustment_rec.user_name IS NOT NULL) THEN
609 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
610 log_msg('Validating user name : ' || p_adjustment_rec.user_name);
611 END IF;
612 GMA_GLOBAL_GRP.Get_who (
613 p_user_name => p_adjustment_rec.user_name,
614 x_user_id => x_user_id
615 );
616 IF x_user_id = -1 THEN
617 FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_USER_NAME');
618 FND_MESSAGE.SET_TOKEN('USER_NAME',p_adjustment_rec.user_name);
619 FND_MSG_PUB.Add;
620 RAISE FND_API.G_EXC_ERROR;
621 END IF;
622 ELSE
623 FND_MESSAGE.SET_NAME('GMF','GMF_API_USER_NAME_REQ');
624 FND_MSG_PUB.Add;
625 RAISE FND_API.G_EXC_ERROR;
626 END IF;
627 /***************************
628 * Adjustment ID validation *
629 ***************************/
630 IF p_operation IN ('UPDATE', 'DELETE') THEN
631 IF p_adjustment_rec.cost_adjust_id IS NULL
632 AND (p_adjustment_rec.organization_id IS NOT NULL OR p_adjustment_rec.organization_code IS NOT NULL)
633 AND (p_adjustment_rec.cost_type_id IS NOT NULL OR p_adjustment_rec.cost_mthd_code IS NOT NULL)
634 AND (p_adjustment_rec.inventory_item_id IS NOT NULL OR p_adjustment_rec.item_number IS NOT NULL)
635 AND (p_adjustment_rec.period_id IS NOT NULL OR (p_adjustment_rec.calendar_code IS NOT NULL AND p_adjustment_rec.period_code IS NOT NULL))
636 AND (p_adjustment_rec.cost_cmpntcls_id IS NOT NULL OR p_adjustment_rec.cost_cmpntcls_code IS NOT NULL)
637 AND p_adjustment_rec.cost_analysis_code IS NOT NULL
638 AND p_adjustment_rec.adjustment_ind IS NOT NULL
639 THEN
640 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
641 log_msg(' Fetching Cost Adjust ID for Code Combination for ' ||
642 ' Organization ' || p_adjustment_rec.Organization_id ||
643 ' Cost Type Id ' || p_adjustment_rec.cost_type_id ||
644 ' Item Id ' || p_adjustment_rec.inventory_item_id ||
645 ' Period Id ' || p_adjustment_rec.period_id ||
646 ' Cost Component Class Id ' || p_adjustment_rec.cost_cmpntcls_id ||
647 ' Cost Analysis Code ' || p_adjustment_rec.cost_analysis_code ||
648 ' Adjustment Indicator '||p_adjustment_rec.adjustment_ind ||
649 ' for '|| p_operation);
650 END IF;
651 BEGIN
652 SELECT cost_adjust_id, adjust_status
653 INTO p_adjustment_rec.cost_adjust_id, l_adjust_status
654 FROM cm_adjs_dtl
655 WHERE organization_id = p_adjustment_rec.organization_id
656 AND cost_type_id = p_adjustment_rec.cost_type_id
657 AND inventory_item_id = p_adjustment_rec.inventory_item_id
658 AND period_id = p_adjustment_rec.period_id
659 AND cost_cmpntcls_id = p_adjustment_rec.cost_cmpntcls_id
660 AND cost_analysis_code = p_adjustment_rec.cost_analysis_code
661 AND adjustment_ind = p_adjustment_rec.adjustment_ind
662 AND ROWNUM = 1;
663 EXCEPTION
664 WHEN NO_DATA_FOUND THEN
665 p_adjustment_rec.cost_adjust_id := NULL;
666 l_adjust_status := NULL;
667 END;
668 IF p_adjustment_rec.cost_adjust_id IS NULL THEN
669 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
670 log_msg( ' Cost Adjust ID for Code Combination for ' ||
671 ' Organization ' || p_adjustment_rec.Organization_id ||
672 ' Cost Type Id ' || p_adjustment_rec.cost_type_id ||
673 ' Item Id ' || p_adjustment_rec.inventory_item_id ||
674 ' Period Id ' || p_adjustment_rec.period_id ||
675 ' Cost Component Class Id ' || p_adjustment_rec.cost_cmpntcls_id ||
676 ' Cost Analysis Code ' || p_adjustment_rec.cost_analysis_code ||
677 ' Adjustment Indicator ' || p_adjustment_rec.adjustment_ind ||
678 ' for '|| p_operation || ' Does''nt Exist');
679 END IF;
680 FND_MESSAGE.SET_NAME('GMF','GMF_API_ACA_ADJUST_ID_NULL');
681 FND_MSG_PUB.Add;
682 RAISE FND_API.G_EXC_ERROR;
683 END IF;
684 /* Bug 9005515, Allow to update the applied adjustments
685 IF l_adjust_status = 1 THEN
686 FND_MESSAGE.SET_NAME('GMF','GMF_API_ACA_APPLIED');
687 FND_MSG_PUB.Add;
688 RAISE FND_API.G_EXC_ERROR;
689 END IF; Bu 9005515 */
690 END IF;
691 /*********************************
692 * Gl posted indicator validation *
693 *********************************/
694 /* Don't allow to update/delete GL posted adjustments */
695 SELECT nvl(gl_posted_ind,0) INTO l_gl_posted_ind
696 FROM cm_adjs_dtl
697 WHERE cost_adjust_id = p_adjustment_rec.cost_adjust_id
698 AND rownum = 1;
699
700 IF l_gl_posted_ind = 1 THEN
701 log_msg('Can not update/delete adjustment record, which is already posted to GL for adjustment id '
702 || p_adjustment_rec.cost_adjust_id);
703 RAISE FND_API.G_EXC_ERROR;
704 END IF;
705 END IF; /* end if for adjustment id val p_operation */
706 END IF;
707 END VALIDATE_INPUT_PARAMS;
708
709 /********************************************************************
710 * PROCEDURE *
711 * CREATE_ACTUAL_COST_ADJUSTMENT *
712 * *
713 * TYPE *
714 * PUBLIC *
715 * *
716 * FUNCTION *
717 * Creates Actual Cost Adjustment based on the input into table *
718 * GMF_LOT_COST_ADJUSTMENTS *
719 * *
720 * PARAMETERS *
721 * IN : *
722 * p_api_version IN NUMBER *
723 * p_init_msg_list IN VARCHAR2 *
724 * p_adjustment_rec IN OUT NOCOPY Adjustment_Rec_Type *
725 * *
726 * OUT : *
727 * x_return_statu OUT NOCOPY VARCHAR2 *
728 * x_msg_count OUT NOCOPY VARCHAR2 *
729 * x_msg_data OUT NOCOPY VARCHAR2 *
730 * *
731 * DESCRIPTION *
732 * This procedure creates Actual Cost Adjustments *
733 * *
734 * HISTORY *
735 * 16-Sep-2005 Anand Thiyagarajan Created *
736 ********************************************************************/
737 PROCEDURE CREATE_ACTUAL_COST_ADJUSTMENT
738 (
739 p_api_version IN NUMBER,
740 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
741 p_commit IN VARCHAR2 := FND_API.G_FALSE,
742 x_return_status OUT NOCOPY VARCHAR2,
743 x_msg_count OUT NOCOPY NUMBER,
744 x_msg_data OUT NOCOPY VARCHAR2,
745 p_adjustment_rec IN OUT NOCOPY GMF_ACTUAL_COST_ADJUSTMENT_PUB.ADJUSTMENT_REC_TYPE
746 )
747 IS
748
749 /******************
750 * Local Variables *
751 ******************/
752 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_ACTUAL_COST_ADJUSTMENT';
753 l_api_version CONSTANT NUMBER := 1.0 ;
754 l_header_exists BOOLEAN;
755 l_detail_exists BOOLEAN;
756 user_cnt NUMBER;
757 l_user_id FND_USER.USER_ID%TYPE ;
758 l_return_status VARCHAR2(11) ;
759
760 BEGIN
761
762 /**********************************
763 * Standard Start of API savepoint *
764 **********************************/
765 SAVEPOINT CREATE_ACT_COST_ADJUSTMENT_PUB ;
766
767 /*************************************************************
768 * Initialize message list if p_init_msg_list is set to TRUE. *
769 *************************************************************/
770 IF FND_API.to_Boolean( p_init_msg_list ) THEN
771 FND_MSG_PUB.initialize;
772 END IF;
773
774 /*************************************************
775 * Standard call to check for call compatibility. *
776 *************************************************/
777 IF NOT FND_API.Compatible_API_Call
778 (
779 l_api_version,
780 p_api_version,
781 l_api_name,
782 G_PKG_NAME
783 )
784 THEN
785 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
786 END IF;
787
788 /******************************************
789 * Initialize API return status to success *
790 ******************************************/
791 x_return_status := FND_API.G_RET_STS_SUCCESS;
792 G_header_logged := 'N';
793
794 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
795 log_msg('Beginning Public Create Actual Cost Adjustment API');
796 END IF;
797 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
798 log_msg('Validating input parameters');
799 END IF;
800
801 VALIDATE_INPUT_PARAMS
802 (
803 p_adjustment_rec => p_adjustment_rec,
804 p_operation => 'INSERT',
805 x_user_id => l_user_id,
806 x_return_status => l_return_status
807 );
808
809 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
810 log_msg('Return Status after validating : ' || l_return_status);
811 END IF;
812 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
813 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
814 FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
815 FND_MSG_PUB.Add;
816 RAISE FND_API.G_EXC_ERROR;
817 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
818 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
819 FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
820 FND_MSG_PUB.Add;
821 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
822 END IF;
823 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
824 log_msg('Calling private API to insert record...');
825 END IF;
826 /*************************
827 * Call Private Procedure *
828 *************************/
829 GMF_ACTUAL_COST_ADJUSTMENT_PVT.CREATE_ACTUAL_COST_ADJUSTMENT
830 (
831 p_api_version => p_api_version,
832 p_init_msg_list => FND_API.G_FALSE,
833 x_return_status => x_return_status,
834 x_msg_count => x_msg_count,
835 x_msg_data => x_msg_data,
836 p_adjustment_rec => p_adjustment_rec
837 );
838 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
839 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
840 FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
841 FND_MSG_PUB.Add;
842 RAISE FND_API.G_EXC_ERROR;
843 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
844 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
845 FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
846 FND_MSG_PUB.Add;
847 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
848 END IF;
849 /******************************
850 * Standard check of p_commit. *
851 ******************************/
852 IF FND_API.To_Boolean( p_commit ) THEN
853 COMMIT WORK;
854 END IF;
855 /**************************************************************************
856 * Standard call to get message count and if count is 1, get message info. *
857 **************************************************************************/
858 FND_MSG_PUB.Count_And_Get
859 (
860 p_count => x_msg_count,
861 p_data => x_msg_data
862 );
863 EXCEPTION
864 WHEN FND_API.G_EXC_ERROR
865 THEN
866 ROLLBACK TO CREATE_ACT_COST_ADJUSTMENT_PUB;
867 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
868 x_return_status := FND_API.G_RET_STS_ERROR ;
869 FND_MSG_PUB.Count_And_Get
870 (
871 p_count => x_msg_count,
872 p_data => x_msg_data
873 );
874 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
875 THEN
876 ROLLBACK TO CREATE_ACT_COST_ADJUSTMENT_PUB;
877 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
878 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
879 FND_MSG_PUB.Count_And_Get
880 (
881 p_count => x_msg_count,
882 p_data => x_msg_data
883 );
884 WHEN OTHERS
885 THEN
886 ROLLBACK TO CREATE_ACT_COST_ADJUSTMENT_PUB;
887 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
888 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
889 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
890 THEN
891 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, l_api_name);
892 END IF;
893 FND_MSG_PUB.Count_And_Get
894 (
895 p_count => x_msg_count,
896 p_data => x_msg_data
897 );
898 END CREATE_ACTUAL_COST_ADJUSTMENT;
899
900 /********************************************************************
901 * PROCEDURE *
902 * UPDATE_ACTUAL_COST_ADJUSTMENT *
903 * *
904 * TYPE *
905 * PUBLIC *
906 * *
907 * FUNCTION *
908 * Updates Actual Cost Adjustment based on the input into table *
909 * GMF_LOT_COST_ADJUSTMENTS *
910 * *
911 * PARAMETERS *
912 * IN : *
913 * p_api_version IN NUMBER *
914 * p_init_msg_list IN VARCHAR2 *
915 * p_adjustment_rec IN OUT NOCOPY Adjustment_Rec_Type *
916 * *
917 * OUT : *
918 * x_return_status OUT NOCOPY VARCHAR2 *
919 * x_msg_count OUT NOCOPY VARCHAR2 *
920 * x_msg_data OUT NOCOPY VARCHAR2 *
921 * *
922 * DESCRIPTION *
923 * This procedure updates Actual Cost Adjustments *
924 * *
925 * HISTORY *
926 * 16-Sep-2005 Anand Thiyagarajan Created *
927 ********************************************************************/
928 PROCEDURE UPDATE_ACTUAL_COST_ADJUSTMENT
929 (
930 p_api_version IN NUMBER,
931 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
932 p_commit IN VARCHAR2 := FND_API.G_FALSE,
933 x_return_status OUT NOCOPY VARCHAR2,
934 x_msg_count OUT NOCOPY NUMBER,
935 x_msg_data OUT NOCOPY VARCHAR2,
936 p_adjustment_rec IN OUT NOCOPY GMF_ACTUAL_COST_ADJUSTMENT_PUB.ADJUSTMENT_REC_TYPE
937 )
938 IS
939
940 /******************
941 * Local Variables *
942 ******************/
943 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_ACTUAL_COST_ADJUSTMENT';
944 l_api_version CONSTANT NUMBER := 1.0 ;
945 l_cost_adjust_id CM_ADJS_DTL.COST_ADJUST_ID%TYPE;
946 l_header_exists BOOLEAN;
947 l_detail_exists BOOLEAN;
948 user_cnt NUMBER;
949 l_user_id FND_USER.USER_ID%TYPE ;
950 l_return_status VARCHAR2(11) ;
951
952 BEGIN
953
954 /**********************************
955 * Standard Start of API savepoint *
956 **********************************/
957 SAVEPOINT UPDATE_ACT_COST_ADJUSTMENT_PUB ;
958
959 /*************************************************************
960 * Initialize message list if p_init_msg_list is set to TRUE. *
961 *************************************************************/
962 IF FND_API.to_Boolean( p_init_msg_list ) THEN
963 FND_MSG_PUB.initialize;
964 END IF;
965
966 /*************************************************
967 * Standard call to check for call compatibility. *
968 *************************************************/
969 IF NOT FND_API.Compatible_API_Call
970 (
971 l_api_version,
972 p_api_version,
973 l_api_name,
974 G_PKG_NAME
975 )
976 THEN
977 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
978 END IF;
979
980 /******************************************
981 * Initialize API return status to success *
982 ******************************************/
983 x_return_status := FND_API.G_RET_STS_SUCCESS;
984 G_header_logged := 'N';
985
986 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
987 log_msg('Beginning Public Update Actual Cost Adjustment API');
988 END IF;
989
990 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
991 log_msg('Validating input parameters');
992 END IF;
993
994 VALIDATE_INPUT_PARAMS
995 (
996 p_adjustment_rec => p_adjustment_rec,
997 p_operation => 'UPDATE',
998 x_user_id => l_user_id,
999 x_return_status => l_return_status
1000 );
1001
1002 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
1003 log_msg('Return Status after validating : ' || l_return_status);
1004 END IF;
1005 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1006 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1007 FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1008 FND_MSG_PUB.Add;
1009 RAISE FND_API.G_EXC_ERROR;
1010 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1011 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1012 FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1013 FND_MSG_PUB.Add;
1014 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1015 END IF;
1016 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
1017 log_msg('Calling private API to update record...');
1018 END IF;
1019 /*************************
1020 * Call Private Procedure *
1021 *************************/
1022 GMF_ACTUAL_COST_ADJUSTMENT_PVT.UPDATE_ACTUAL_COST_ADJUSTMENT
1023 (
1024 p_api_version => p_api_version,
1025 p_init_msg_list => FND_API.G_FALSE,
1026 x_return_status => x_return_status,
1027 x_msg_count => x_msg_count,
1028 x_msg_data => x_msg_data,
1029 p_adjustment_rec => p_adjustment_rec
1030 );
1031 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1032 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1033 FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1034 FND_MSG_PUB.Add;
1035 RAISE FND_API.G_EXC_ERROR;
1036 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1037 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1038 FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1039 FND_MSG_PUB.Add;
1040 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1041 END IF;
1042 /******************************
1043 * Standard check of p_commit. *
1044 ******************************/
1045 IF FND_API.To_Boolean( p_commit ) THEN
1046 COMMIT WORK;
1047 END IF;
1048 /**************************************************************************
1049 * Standard call to get message count and if count is 1, get message info. *
1050 **************************************************************************/
1051 FND_MSG_PUB.Count_And_Get
1052 (
1053 p_count => x_msg_count,
1054 p_data => x_msg_data
1055 );
1056 EXCEPTION
1057 WHEN FND_API.G_EXC_ERROR
1058 THEN
1059 ROLLBACK TO UPDATE_ACT_COST_ADJUSTMENT_PUB;
1060 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1061 x_return_status := FND_API.G_RET_STS_ERROR ;
1062 FND_MSG_PUB.Count_And_Get
1063 (
1064 p_count => x_msg_count,
1065 p_data => x_msg_data
1066 );
1067 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
1068 THEN
1069 ROLLBACK TO UPDATE_ACT_COST_ADJUSTMENT_PUB;
1070 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1071 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1072 FND_MSG_PUB.Count_And_Get
1073 (
1074 p_count => x_msg_count,
1075 p_data => x_msg_data
1076 );
1077 WHEN OTHERS
1078 THEN
1079 ROLLBACK TO UPDATE_ACT_COST_ADJUSTMENT_PUB;
1080 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1081 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1082 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1083 THEN
1084 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, l_api_name);
1085 END IF;
1086 FND_MSG_PUB.Count_And_Get
1087 (
1088 p_count => x_msg_count,
1089 p_data => x_msg_data
1090 );
1091 END UPDATE_ACTUAL_COST_ADJUSTMENT;
1092
1093 /********************************************************************
1094 * PROCEDURE *
1095 * DELETE_ACTUAL_COST_ADJUSTMENT *
1096 * *
1097 * TYPE *
1098 * PUBLIC *
1099 * *
1100 * FUNCTION *
1101 * Deletes Actual Cost Adjustment based on the input into table *
1102 * GMF_LOT_COST_ADJUSTMENTS *
1103 * *
1104 * PARAMETERS *
1105 * IN : *
1106 * p_api_version IN NUMBER *
1107 * p_init_msg_list IN VARCHAR2 *
1108 * p_adjustment_rec IN OUT NOCOPY Adjustment_Rec_Type *
1109 * *
1110 * OUT : *
1111 * x_return_status OUT NOCOPY VARCHAR2 *
1112 * x_msg_count OUT NOCOPY VARCHAR2 *
1113 * x_msg_data OUT NOCOPY VARCHAR2 *
1114 * *
1115 * DESCRIPTION *
1116 * This procedure deletes Actual Cost Adjustments *
1117 * *
1118 * HISTORY *
1119 * 16-Sep-2005 Anand Thiyagarajan Created *
1120 ********************************************************************/
1121 PROCEDURE DELETE_ACTUAL_COST_ADJUSTMENT
1122 (
1123 p_api_version IN NUMBER,
1124 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1125 p_commit IN VARCHAR2 := FND_API.G_FALSE,
1126 x_return_status OUT NOCOPY VARCHAR2,
1127 x_msg_count OUT NOCOPY NUMBER,
1128 x_msg_data OUT NOCOPY VARCHAR2,
1129 p_adjustment_rec IN OUT NOCOPY GMF_ACTUAL_COST_ADJUSTMENT_PUB.ADJUSTMENT_REC_TYPE
1130 )
1131 IS
1132
1133 /******************
1134 * Local Variables *
1135 ******************/
1136 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_ACTUAL_COST_ADJUSTMENT';
1137 l_api_version CONSTANT NUMBER := 1.0 ;
1138 l_cost_adjust_id CM_ADJS_DTL.COST_ADJUST_ID%TYPE;
1139 l_header_exists BOOLEAN;
1140 l_detail_exists BOOLEAN;
1141 user_cnt NUMBER;
1142 l_user_id FND_USER.USER_ID%TYPE ;
1143 l_return_status VARCHAR2(11) ;
1144
1145 BEGIN
1146
1147 /**********************************
1148 * Standard Start of API savepoint *
1149 **********************************/
1150 SAVEPOINT DELETE_ACT_COST_ADJUSTMENT_PUB ;
1151
1152 /*************************************************************
1153 * Initialize message list if p_init_msg_list is set to TRUE. *
1154 *************************************************************/
1155 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1156 FND_MSG_PUB.initialize;
1157 END IF;
1158
1159 /*************************************************
1160 * Standard call to check for call compatibility. *
1161 *************************************************/
1162 IF NOT FND_API.Compatible_API_Call
1163 (
1164 l_api_version,
1165 p_api_version,
1166 l_api_name,
1167 G_PKG_NAME
1168 ) THEN
1169 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1170 END IF;
1171
1172 /******************************************
1173 * Initialize API return status to success *
1174 ******************************************/
1175 x_return_status := FND_API.G_RET_STS_SUCCESS;
1176 G_header_logged := 'N';
1177
1178 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
1179 log_msg('Beginning Public Delete Actual Cost Adjustment API');
1180 END IF;
1181
1182 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
1183 log_msg('Validating input parameters');
1184 END IF;
1185
1186 VALIDATE_INPUT_PARAMS
1187 (
1188 p_adjustment_rec => p_adjustment_rec,
1189 p_operation => 'DELETE',
1190 x_user_id => l_user_id,
1191 x_return_status => l_return_status
1192 );
1193
1194 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
1195 log_msg('Return Status after validating : ' || l_return_status);
1196 END IF;
1197 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1198 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1199 FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1200 FND_MSG_PUB.Add;
1201 RAISE FND_API.G_EXC_ERROR;
1202 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1203 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1204 FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1205 FND_MSG_PUB.Add;
1206 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1207 END IF;
1208 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
1209 log_msg('Calling private API to delete record...');
1210 END IF;
1211 /*************************
1212 * Call Private Procedure *
1213 *************************/
1214 GMF_ACTUAL_COST_ADJUSTMENT_PVT.DELETE_ACTUAL_COST_ADJUSTMENT
1215 (
1216 p_api_version => p_api_version,
1217 p_init_msg_list => FND_API.G_FALSE,
1218 x_return_status => x_return_status,
1219 x_msg_count => x_msg_count,
1220 x_msg_data => x_msg_data,
1221 p_adjustment_rec => p_adjustment_rec
1222 );
1223 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1224 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1225 FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1226 FND_MSG_PUB.Add;
1227 RAISE FND_API.G_EXC_ERROR;
1228 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1229 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1230 FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1231 FND_MSG_PUB.Add;
1232 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1233 END IF;
1234 /******************************
1235 * Standard check of p_commit. *
1236 ******************************/
1237 IF FND_API.To_Boolean( p_commit ) THEN
1238 COMMIT WORK;
1239 END IF;
1240 /**************************************************************************
1241 * Standard call to get message count and if count is 1, get message info. *
1242 **************************************************************************/
1243 FND_MSG_PUB.Count_And_Get
1244 (
1245 p_count => x_msg_count,
1246 p_data => x_msg_data
1247 );
1248 EXCEPTION
1249 WHEN FND_API.G_EXC_ERROR
1250 THEN
1251 ROLLBACK TO DELETE_ACT_COST_ADJUSTMENT_PUB;
1252 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1253 x_return_status := FND_API.G_RET_STS_ERROR ;
1254 FND_MSG_PUB.Count_And_Get
1255 (
1256 p_count => x_msg_count,
1257 p_data => x_msg_data
1258 );
1259 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
1260 THEN
1261 ROLLBACK TO DELETE_ACT_COST_ADJUSTMENT_PUB;
1262 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1263 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1264 FND_MSG_PUB.Count_And_Get
1265 (
1266 p_count => x_msg_count,
1267 p_data => x_msg_data
1268 );
1269 WHEN OTHERS
1270 THEN
1271 ROLLBACK TO DELETE_ACT_COST_ADJUSTMENT_PUB;
1272 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1273 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1274 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1275 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, l_api_name);
1276 END IF;
1277 FND_MSG_PUB.Count_And_Get
1278 (
1279 p_count => x_msg_count,
1280 p_data => x_msg_data
1281 );
1282 END DELETE_ACTUAL_COST_ADJUSTMENT;
1283
1284 /********************************************************************
1285 * PROCEDURE *
1286 * GET_ACTUAL_COST_ADJUSTMENT *
1287 * *
1288 * TYPE *
1289 * PUBLIC *
1290 * *
1291 * FUNCTION *
1292 * Gets Actual Cost Adjustment based on the input from table *
1293 * GMF_LOT_COST_ADJUSTMENTS *
1294 * *
1295 * PARAMETERS *
1296 * IN : *
1297 * p_api_version IN NUMBER *
1298 * p_init_msg_list IN VARCHAR2 *
1299 * p_adjustment_rec IN OUT NOCOPY Adjustment_Rec_Type *
1300 * *
1301 * OUT : *
1302 * x_return_status OUT NOCOPY VARCHAR2 *
1303 * x_msg_count OUT NOCOPY VARCHAR2 *
1304 * x_msg_data OUT NOCOPY VARCHAR2 *
1305 * *
1306 * DESCRIPTION *
1307 * This procedure Gets Actual Cost Adjustments *
1308 * *
1309 * HISTORY *
1310 * 16-Sep-2005 Anand Thiyagarajan Created *
1311 ********************************************************************/
1312 PROCEDURE GET_ACTUAL_COST_ADJUSTMENT
1313 (
1314 p_api_version IN NUMBER,
1315 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1316 x_return_status OUT NOCOPY VARCHAR2,
1317 x_msg_count OUT NOCOPY NUMBER,
1318 x_msg_data OUT NOCOPY VARCHAR2,
1319 p_adjustment_rec IN OUT NOCOPY GMF_ACTUAL_COST_ADJUSTMENT_PUB.ADJUSTMENT_REC_TYPE
1320 )
1321 IS
1322
1323 /******************
1324 * Local Variables *
1325 ******************/
1326 l_api_name CONSTANT VARCHAR2(30) := 'GET_ACTUAL_COST_ADJUSTMENT';
1327 l_api_version CONSTANT NUMBER := 1.0 ;
1328 l_cost_adjust_id CM_ADJS_DTL.COST_ADJUST_ID%TYPE;
1329 l_header_exists BOOLEAN;
1330 l_detail_exists BOOLEAN;
1331 user_cnt NUMBER;
1332 l_user_id FND_USER.USER_ID%TYPE ;
1333 l_return_status VARCHAR2(11) ;
1334
1335 BEGIN
1336
1337 /*************************************************************
1338 * Initialize message list if p_init_msg_list is set to TRUE. *
1339 *************************************************************/
1340 IF FND_API.to_Boolean( p_init_msg_list )
1341 THEN
1342 FND_MSG_PUB.initialize;
1343 END IF;
1344
1345 /*************************************************
1346 * Standard call to check for call compatibility. *
1347 *************************************************/
1348 IF NOT FND_API.Compatible_API_Call
1349 (
1350 l_api_version,
1351 p_api_version,
1352 l_api_name,
1353 G_PKG_NAME
1354 )
1355 THEN
1356 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1357 END IF;
1358
1359 /******************************************
1360 * Initialize API return status to success *
1361 ******************************************/
1362 x_return_status := FND_API.G_RET_STS_SUCCESS;
1363 G_header_logged := 'N';
1364
1365 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
1366 THEN
1367 log_msg('Beginning Public Get Actual Cost Adjustment API');
1368 END IF;
1369
1370 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
1371 log_msg('Validating input parameters');
1372 END IF;
1373
1374 VALIDATE_INPUT_PARAMS
1375 (
1376 p_adjustment_rec => p_adjustment_rec,
1377 p_operation => 'GET',
1378 x_user_id => l_user_id,
1379 x_return_status => l_return_status
1380 );
1381
1382 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
1383 log_msg('Return Status after validating : ' || l_return_status);
1384 END IF;
1385 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1386 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1387 RAISE FND_API.G_EXC_ERROR;
1388 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1389 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1390 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1391 END IF;
1392
1393 IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
1394 log_msg('Calling private API to get record...');
1395 END IF;
1396 /*************************
1397 * Call Private Procedure *
1398 *************************/
1399 GMF_ACTUAL_COST_ADJUSTMENT_PVT.GET_ACTUAL_COST_ADJUSTMENT
1400 (
1401 p_api_version => p_api_version,
1402 p_init_msg_list => FND_API.G_FALSE,
1403 x_return_status => x_return_status,
1404 x_msg_count => x_msg_count,
1405 x_msg_data => x_msg_data,
1406 p_adjustment_rec => p_adjustment_rec
1407 );
1408 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1409 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1410 RAISE FND_API.G_EXC_ERROR;
1411 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1412 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1413 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1414 END IF;
1415 /**************************************************************************
1416 * Standard call to get message count and if count is 1, get message info. *
1417 **************************************************************************/
1418 FND_MSG_PUB.Count_And_Get
1419 (
1420 p_count => x_msg_count,
1421 p_data => x_msg_data
1422 );
1423 EXCEPTION
1424 WHEN FND_API.G_EXC_ERROR
1425 THEN
1426 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1427 x_return_status := FND_API.G_RET_STS_ERROR ;
1428 FND_MSG_PUB.Count_And_Get
1429 (
1430 p_count => x_msg_count,
1431 p_data => x_msg_data
1432 );
1433 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
1434 THEN
1435 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1436 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1437 FND_MSG_PUB.Count_And_Get
1438 (
1439 p_count => x_msg_count,
1440 p_data => x_msg_data
1441 );
1442 WHEN OTHERS
1443 THEN
1444 add_record_to_error_stack ( p_adjustment_rec => p_adjustment_rec );
1445 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1446 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1447 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, l_api_name);
1448 END IF;
1449 FND_MSG_PUB.Count_And_Get
1450 (
1451 p_count => x_msg_count,
1452 p_data => x_msg_data
1453 );
1454 END GET_ACTUAL_COST_ADJUSTMENT;
1455
1456 END GMF_ACTUAL_COST_ADJUSTMENT_PUB;