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