209:
210: /******************************************
211: * Initialize API return status to success *
212: ******************************************/
213: x_return_status := FND_API.G_RET_STS_SUCCESS;
214:
215: /***************************************
216: * just to make sure no elements exist. *
217: ***************************************/
220:
221: /**************************
222: * Organization Validation *
223: **************************/
224: IF (p_header_rec.organization_id <> FND_API.G_MISS_NUM)
225: AND (p_header_rec.organization_id IS NOT NULL)
226: THEN
227: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
228: THEN
232: add_header_to_error_stack(p_header_rec);
233: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ORGN_ID');
234: FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID',p_header_rec.organization_id);
235: FND_MSG_PUB.Add;
236: RAISE FND_API.G_EXC_ERROR;
237: END IF;
238: IF (p_header_rec.organization_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.organization_code IS NOT NULL)
239: THEN
240: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
234: FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID',p_header_rec.organization_id);
235: FND_MSG_PUB.Add;
236: RAISE FND_API.G_EXC_ERROR;
237: END IF;
238: IF (p_header_rec.organization_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.organization_code IS NOT NULL)
239: THEN
240: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
241: THEN
242: FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_ORGN_CODE');
244: FND_MSG_PUB.Add;
245: END IF;
246: END IF;
247: ELSE
248: IF (p_header_rec.organization_code <> FND_API.G_MISS_CHAR)
249: AND (p_header_rec.organization_code IS NOT NULL)
250: THEN
251: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
252: THEN
258: add_header_to_error_stack(p_header_rec);
259: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ORGN_CODE');
260: FND_MESSAGE.SET_TOKEN('ORG_CODE',p_header_rec.organization_code);
261: FND_MSG_PUB.Add;
262: RAISE FND_API.G_EXC_ERROR;
263: ELSE
264: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN -- Bug 5586406, pmarada
265: log_msg('Organization Id : ' || x_header_rec.organization_id );
266: END IF;
268: ELSE
269: add_header_to_error_stack(p_header_rec);
270: FND_MESSAGE.SET_NAME('GMF','GMF_API_ORGANIZATION_ID_REQ');
271: FND_MSG_PUB.Add;
272: RAISE FND_API.G_EXC_ERROR;
273: END IF;
274: END IF;
275: x_header_rec.organization_id := nvl(p_header_rec.organization_id, x_header_rec.organization_id) ;
276:
276:
277: /***********************
278: * Cost TYPE Validation *
279: ***********************/
280: IF (p_header_rec.cost_type_id <> FND_API.G_MISS_NUM)
281: AND (p_header_rec.cost_type_id IS NOT NULL)
282: THEN
283: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
284: THEN
288: add_header_to_error_stack(p_header_rec);
289: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_COST_TYPE_ID');
290: FND_MESSAGE.SET_TOKEN('COST_TYPE_ID',p_header_rec.cost_type_id);
291: FND_MSG_PUB.Add;
292: RAISE FND_API.G_EXC_ERROR;
293: END IF;
294: IF (p_header_rec.cost_mthd_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.cost_mthd_code IS NOT NULL)
295: THEN
296: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
290: FND_MESSAGE.SET_TOKEN('COST_TYPE_ID',p_header_rec.cost_type_id);
291: FND_MSG_PUB.Add;
292: RAISE FND_API.G_EXC_ERROR;
293: END IF;
294: IF (p_header_rec.cost_mthd_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.cost_mthd_code IS NOT NULL)
295: THEN
296: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
297: THEN
298: FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_COST_TYPE');
300: FND_MSG_PUB.Add;
301: END IF;
302: END IF;
303: ELSE
304: IF (p_header_rec.cost_mthd_code <> FND_API.G_MISS_CHAR)
305: AND (p_header_rec.cost_mthd_code IS NOT NULL)
306: THEN
307: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
308: THEN
313: add_header_to_error_stack(p_header_rec);
314: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_COST_TYPE');
315: FND_MESSAGE.SET_TOKEN('COST_TYPE',p_header_rec.cost_mthd_code);
316: FND_MSG_PUB.Add;
317: RAISE FND_API.G_EXC_ERROR;
318: ELSE
319: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN -- Bug 5586406, pmarada
320: log_msg('Cost Type Id : ' || x_header_rec.cost_Type_id );
321: END IF;
323: ELSE
324: add_header_to_error_stack(p_header_rec);
325: FND_MESSAGE.SET_NAME('GMF','GMF_API_COST_TYPE_ID_REQ');
326: FND_MSG_PUB.Add;
327: RAISE FND_API.G_EXC_ERROR;
328: END IF;
329: END IF;
330: x_header_rec.cost_type_id := nvl(p_header_rec.cost_type_id, x_header_rec.cost_type_id) ;
331:
331:
332: /***********************
333: * Period Id Validation *
334: ***********************/
335: IF (p_header_rec.period_id <> FND_API.G_MISS_NUM)
336: AND (p_header_rec.period_id IS NOT NULL)
337: THEN
338: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
339: THEN
344: add_header_to_error_stack(p_header_rec);
345: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_PERIOD_ID');
346: FND_MESSAGE.SET_TOKEN('PERIOD_ID',p_header_rec.period_id);
347: FND_MSG_PUB.Add;
348: RAISE FND_API.G_EXC_ERROR;
349: END IF;
350: IF ((p_header_rec.calendar_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.calendar_code IS NOT NULL))
351: AND ((p_header_rec.period_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.period_code IS NOT NULL))
352: THEN
346: FND_MESSAGE.SET_TOKEN('PERIOD_ID',p_header_rec.period_id);
347: FND_MSG_PUB.Add;
348: RAISE FND_API.G_EXC_ERROR;
349: END IF;
350: IF ((p_header_rec.calendar_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.calendar_code IS NOT NULL))
351: AND ((p_header_rec.period_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.period_code IS NOT NULL))
352: THEN
353: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
354: THEN
347: FND_MSG_PUB.Add;
348: RAISE FND_API.G_EXC_ERROR;
349: END IF;
350: IF ((p_header_rec.calendar_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.calendar_code IS NOT NULL))
351: AND ((p_header_rec.period_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.period_code IS NOT NULL))
352: THEN
353: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
354: THEN
355: FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_PERIOD_CODE');
362: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
363: THEN
364: log_msg('Validating Calendar Code : '|| p_header_rec.Calendar_code||' period_code : ' || p_header_rec.period_code);
365: END IF;
366: IF ((p_header_rec.calendar_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.calendar_code IS NOT NULL))
367: AND ((p_header_rec.period_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.period_code IS NOT NULL))
368: THEN
369: x_header_rec.period_id := GMF_VALIDATIONS_PVT.Validate_Period_code(x_header_rec.organization_id, p_header_rec.calendar_code,p_header_rec.period_code, x_header_rec.cost_Type_id);
370: IF nvl(x_header_rec.period_id, -1) <= 0 THEN
363: THEN
364: log_msg('Validating Calendar Code : '|| p_header_rec.Calendar_code||' period_code : ' || p_header_rec.period_code);
365: END IF;
366: IF ((p_header_rec.calendar_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.calendar_code IS NOT NULL))
367: AND ((p_header_rec.period_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.period_code IS NOT NULL))
368: THEN
369: x_header_rec.period_id := GMF_VALIDATIONS_PVT.Validate_Period_code(x_header_rec.organization_id, p_header_rec.calendar_code,p_header_rec.period_code, x_header_rec.cost_Type_id);
370: IF nvl(x_header_rec.period_id, -1) <= 0 THEN
371: add_header_to_error_stack(p_header_rec);
372: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_CLDR_PERIOD');
373: FND_MESSAGE.SET_TOKEN('CALENDAR_CODE',p_header_rec.calendar_code);
374: FND_MESSAGE.SET_TOKEN('PERIOD_CODE',p_header_rec.period_code);
375: FND_MSG_PUB.Add;
376: RAISE FND_API.G_EXC_ERROR;
377: ELSE
378: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN -- Bug 5586406, pmarada
379: log_msg('Period Id : ' || x_header_rec.period_id );
380: END IF;
382: ELSE
383: add_header_to_error_stack(p_header_rec);
384: FND_MESSAGE.SET_NAME('GMF','GMF_API_PERIOD_ID_REQ');
385: FND_MSG_PUB.Add;
386: RAISE FND_API.G_EXC_ERROR;
387: END IF;
388: END IF;
389: x_header_rec.period_id := nvl(p_header_rec.period_id, x_header_rec.period_id) ;
390:
402: add_header_to_error_stack(p_header_rec);
403: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_PERIOD_STATUS');
404: FND_MESSAGE.SET_TOKEN('PERIOD_ID',x_header_rec.period_id);
405: FND_MSG_PUB.Add;
406: RAISE FND_API.G_EXC_ERROR;
407: ELSIF l_period_status = 'F'
408: THEN
409: IF p_operation IN ('UPDATE','DELETE')
410: THEN
411: add_header_to_error_stack(p_header_rec);
412: FND_MESSAGE.SET_NAME('GMF','GMF_API_FROZEN_PERIOD_ID');
413: FND_MESSAGE.SET_TOKEN('PERIOD_ID',x_header_rec.period_id);
414: FND_MSG_PUB.Add;
415: RAISE FND_API.G_EXC_ERROR;
416: END IF ;
417: ELSIF l_period_status = 'C'
418: THEN
419: add_header_to_error_stack(p_header_rec);
419: add_header_to_error_stack(p_header_rec);
420: FND_MESSAGE.SET_NAME('GMF','GMF_API_CLOSED_PERIOD_ID');
421: FND_MESSAGE.SET_TOKEN('PERIOD_ID',x_header_rec.period_id);
422: FND_MSG_PUB.Add;
423: RAISE FND_API.G_EXC_ERROR;
424: END IF;
425:
426: /******************
427: * Item Validation *
425:
426: /******************
427: * Item Validation *
428: ******************/
429: IF (p_header_rec.inventory_item_id <> FND_API.G_MISS_NUM) AND (p_header_rec.inventory_item_id IS NOT NULL)
430: THEN
431: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
432: THEN
433: log_msg('Validating Inventory Item Id : ' || p_header_rec.inventory_item_id);
437: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ITEM_ID');
438: FND_MESSAGE.SET_TOKEN('ITEM_ID', p_header_rec.inventory_item_id);
439: FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID',x_header_Rec.organization_id);
440: FND_MSG_PUB.Add;
441: RAISE FND_API.G_EXC_ERROR;
442: END IF;
443: IF (p_header_rec.item_number <> FND_API.G_MISS_CHAR) AND (p_header_rec.item_number IS NOT NULL)
444: THEN
445: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
439: FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID',x_header_Rec.organization_id);
440: FND_MSG_PUB.Add;
441: RAISE FND_API.G_EXC_ERROR;
442: END IF;
443: IF (p_header_rec.item_number <> FND_API.G_MISS_CHAR) AND (p_header_rec.item_number IS NOT NULL)
444: THEN
445: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
446: THEN
447: FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_ITEM_NO');
448: FND_MESSAGE.SET_TOKEN('ITEM_NO',p_header_rec.item_number);
449: FND_MSG_PUB.Add;
450: END IF;
451: END IF;
452: ELSIF (p_header_rec.item_number <> FND_API.G_MISS_CHAR) AND (p_header_rec.item_number IS NOT NULL)
453: THEN
454: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
455: THEN
456: log_msg('Validating Item Number : ' || p_header_rec.item_number);
461: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ITEM_NO');
462: FND_MESSAGE.SET_TOKEN('ITEM_NO',p_header_rec.item_number);
463: FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID',x_header_Rec.organization_id);
464: FND_MSG_PUB.Add;
465: RAISE FND_API.G_EXC_ERROR;
466: ELSE
467: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
468: log_msg('Inventory Item id : ' || x_header_rec.inventory_item_id);
469: END IF;
470: END IF;
471: ELSE
472: FND_MESSAGE.SET_NAME('GMF','GMF_API_ITEM_ID_REQ');
473: FND_MSG_PUB.Add;
474: RAISE FND_API.G_EXC_ERROR;
475: END IF;
476: x_header_rec.inventory_item_id := nvl(p_header_rec.inventory_item_id, x_header_rec.inventory_item_id);
477:
478: IF (l_period_status = 'F') AND (p_operation = 'INSERT')
493: FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID',x_header_rec.organization_id);
494: FND_MESSAGE.SET_TOKEN('PERIOD_ID',x_header_rec.period_id);
495: FND_MESSAGE.SET_TOKEN('COST_TYPE_ID',x_header_rec.cost_type_id);
496: FND_MSG_PUB.Add;
497: RAISE FND_API.G_EXC_ERROR;
498: END IF ;
499: END IF ;
500:
501: /***********************
505: THEN
506: log_msg('Validating user name : ' || p_header_rec.user_name);
507: END IF;
508:
509: IF (p_header_rec.user_name <> FND_API.G_MISS_CHAR)
510: AND (p_header_rec.user_name IS NOT NULL)
511: THEN
512: GMA_GLOBAL_GRP.Get_who( p_user_name => p_header_rec.user_name, x_user_id => x_user_id);
513: IF x_user_id = -1
515: add_header_to_error_stack(p_header_rec);
516: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_USER_NAME');
517: FND_MESSAGE.SET_TOKEN('USER_NAME',p_header_rec.user_name);
518: FND_MSG_PUB.Add;
519: RAISE FND_API.G_EXC_ERROR;
520: END IF;
521: ELSE
522: add_header_to_error_stack(p_header_rec);
523: FND_MESSAGE.SET_NAME('GMF','GMF_API_USER_NAME_REQ');
521: ELSE
522: add_header_to_error_stack(p_header_rec);
523: FND_MESSAGE.SET_NAME('GMF','GMF_API_USER_NAME_REQ');
524: FND_MSG_PUB.Add;
525: RAISE FND_API.G_EXC_ERROR;
526: END IF;
527: x_header_rec.inventory_item_id := nvl(p_header_rec.inventory_item_id, x_header_rec.inventory_item_id);
528: x_header_rec.period_id := nvl(p_header_rec.period_id, x_header_rec.period_id) ;
529: x_header_rec.calendar_code := nvl(p_header_rec.calendar_code, x_header_rec.calendar_code) ;
564: * on all unique key columns only *
565: *****************************************************************************************/
566:
567: IF ((p_operation = 'DELETE')
568: AND ((p_this_level(i).cmpntcost_id <> FND_API.G_MISS_NUM)
569: OR (p_this_level(i).cmpntcost_id IS NOT NULL)))
570: THEN
571: add_header_to_error_stack(p_header_rec);
572: FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_IC_UNIQUE_KEY');
580: * of unique key i.e., cmpntcls and alys code If cmpntcost_id is not supplied *
581: * then do all validations *
582: *****************************************************************************/
583: IF ((p_operation = 'UPDATE')
584: AND ((p_this_level(i).cmpntcost_id <> FND_API.G_MISS_NUM)
585: OR (p_this_level(i).cmpntcost_id IS NOT NULL)))
586: THEN
587: l_cmpntcost_id := p_this_level(i).cmpntcost_id;
588: ELSE
590: * Use cmpntcls_id if sent otherwise use cmpntcls_code, If both are sent *
591: * then use only cmpntcls_id and ignore other params and log a message *
592: * If both are not sent then raise error. *
593: ************************************************************************/
594: IF (p_this_level(i).cost_cmpntcls_id <> FND_API.G_MISS_NUM)
595: AND (p_this_level(i).cost_cmpntcls_id IS NOT NULL)
596: THEN
597: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
598: THEN
611: FND_MSG_PUB.Add;
612: RAISE e_this_level;
613: END IF;
614: l_cost_cmpntcls_id := p_this_level(i).cost_cmpntcls_id ;
615: IF (p_this_level(i).cost_cmpntcls_code <> FND_API.G_MISS_CHAR)
616: AND (p_this_level(i).cost_cmpntcls_code IS NOT NULL)
617: THEN
618: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
619: THEN
622: FND_MESSAGE.SET_TOKEN('CMPNTCLS_CODE',p_this_level(i).cost_cmpntcls_code);
623: FND_MSG_PUB.Add;
624: END IF;
625: END IF;
626: ELSIF (p_this_level(i).cost_cmpntcls_code <> FND_API.G_MISS_CHAR)
627: AND (p_this_level(i).cost_cmpntcls_code IS NOT NULL)
628: THEN
629: l_cost_cmpntcls_code := p_this_level(i).cost_cmpntcls_code ;
630: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
664: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
665: THEN
666: log_msg('validating this level analysis_code('||i||') : ' || p_this_level(i).cost_analysis_code);
667: END IF;
668: IF (p_this_level(i).cost_analysis_code <> FND_API.G_MISS_CHAR)
669: AND (p_this_level(i).cost_analysis_code IS NOT NULL)
670: THEN
671: IF NOT GMF_VALIDATIONS_PVT.Validate_Analysis_Code(p_this_level(i).cost_analysis_code)
672: THEN
698: THEN
699: log_msg('validating this level Component Cost('||i||') for format : '||p_this_level(i).cmpnt_cost);
700: END IF;
701:
702: IF (p_this_level(i).cmpnt_cost <> FND_API.G_MISS_NUM)
703: AND (p_this_level(i).cmpnt_cost IS NOT NULL)
704: THEN
705: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
706: THEN
717: FND_MESSAGE.SET_TOKEN('CMPNT_COST',p_this_level(i).cmpnt_cost);
718: FND_MSG_PUB.Add;
719: RAISE e_this_level;
720: END IF ;
721: ELSIF (p_this_level(i).cmpnt_cost = FND_API.G_MISS_NUM AND p_operation = 'UPDATE')
722: OR (p_operation = 'INSERT')
723: THEN
724: add_header_to_error_stack(p_header_rec);
725: FND_MESSAGE.SET_NAME('GMF','GMF_API_CMPNT_COST_REQ');
735: THEN
736: log_msg('validating this level Burden Indicator('||i||') : '||p_this_level(i).burden_ind);
737: END IF;
738:
739: IF (p_this_level(i).burden_ind <> FND_API.G_MISS_NUM)
740: AND (p_this_level(i).burden_ind IS NOT NULL)
741: THEN
742: IF (p_this_level(i).burden_ind NOT IN (0,1) )
743: THEN
755: FND_MESSAGE.SET_TOKEN('CMPNT_CLS',l_cost_cmpntcls_code);
756: FND_MSG_PUB.Add;
757: RAISE e_this_level;
758: END IF ;
759: ELSIF (p_this_level(i).burden_ind = FND_API.G_MISS_NUM AND p_operation = 'UPDATE')
760: OR (p_operation = 'INSERT')
761: THEN
762: add_header_to_error_stack(p_header_rec); -- Bug 2659435
763: FND_MESSAGE.SET_NAME('GMF','GMF_API_BURDEN_IND_REQ');
774: THEN
775: log_msg('validating this level Raw Material Calculation Type('||i||') :'|| p_this_level(i).rmcalc_type);
776: END IF;
777:
778: IF (p_this_level(i).rmcalc_type <> FND_API.G_MISS_NUM) AND (p_this_level(i).rmcalc_type IS NOT NULL)
779: THEN
780: IF l_cost_type = 1
781: THEN
782: IF ((p_this_level(i).rmcalc_type NOT IN (1, 2, 3, 4, 5)) OR (p_this_level(i).rmcalc_type IS NULL))
798: THEN
799: log_msg('validating this level delete_mark('||i||') :' || p_this_level(i).delete_mark);
800: END IF;
801:
802: IF (p_this_level(i).delete_mark <> FND_API.G_MISS_NUM)
803: AND (p_this_level(i).delete_mark IS NOT NULL)
804: THEN
805: IF p_this_level(i).delete_mark NOT IN (0,1)
806: THEN
809: FND_MESSAGE.SET_TOKEN('DELETE_MARK',p_this_level(i).delete_mark);
810: FND_MSG_PUB.Add;
811: RAISE e_this_level;
812: END IF;
813: ELSIF (p_this_level(i).delete_mark = FND_API.G_MISS_NUM AND p_operation = 'UPDATE')
814: OR (p_operation = 'INSERT')
815: THEN
816: add_header_to_error_stack(p_header_rec);
817: FND_MESSAGE.SET_NAME('GMF','GMF_API_DELETE_MARK_REQ');
831: * Ignore unique key combination if Cmpntcost_Id is supplied. If not supplied then *
832: * query the Cmpntcost_Id. This is done only in case of Update and Delete *
833: **********************************************************************************/
834: IF (p_operation IN ('UPDATE','DELETE')
835: AND ((p_this_level(i).cmpntcost_id <> FND_API.G_MISS_NUM)
836: OR (p_this_level(i).cmpntcost_id IS NOT NULL)))
837: THEN
838: add_header_to_error_stack(p_header_rec);
839: FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_IC_UNIQUE_KEY');
902: log_msg('x_delete_mark('||l_idx||'): '||x_this_level(l_idx).delete_mark);
903: END IF;
904: EXCEPTION
905: WHEN e_this_level THEN
906: RAISE FND_API.G_EXC_ERROR;
907: END ;
908: END LOOP;
909:
910: /********************************
928: * cmpntcost_id to delete the records, if cmpntcost_id is not supplied then *
929: * do validations on all unique key columns only *
930: ******************************************************************************/
931: IF ((p_operation = 'DELETE')
932: AND ((p_lower_level(i).cmpntcost_id <> FND_API.G_MISS_NUM)
933: OR (p_lower_level(i).cmpntcost_id IS NOT NULL)))
934: THEN
935: add_header_to_error_stack(p_header_rec);
936: FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_IC_UNIQUE_KEY');
938: FND_MSG_PUB.Add;
939: l_cmpntcost_id := p_lower_level(i).cmpntcost_id;
940: ELSE
941: IF ((p_operation = 'UPDATE')
942: AND ((p_lower_level(i).cmpntcost_id <> FND_API.G_MISS_NUM)
943: OR (p_lower_level(i).cmpntcost_id IS NOT NULL)))
944: THEN
945: l_cmpntcost_id := p_lower_level(i).cmpntcost_id;
946: ELSE
948: * Use cmpntcls_id if sent otherwise use cmpntcls_code *
949: * If both are sent then use only cmpntcls_id and ignore other params and log a message *
950: * If both are not sent then raise error. *
951: ***************************************************************************************/
952: IF (p_lower_level(i).cost_cmpntcls_id <> FND_API.G_MISS_NUM)
953: AND (p_lower_level(i).cost_cmpntcls_id IS NOT NULL)
954: THEN
955: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
956: THEN
968:
969: /***************************************************
970: * Log message if cost_cmpntcls_code is also passed *
971: ***************************************************/
972: IF (p_lower_level(i).cost_cmpntcls_code <> FND_API.G_MISS_CHAR)
973: AND (p_lower_level(i).cost_cmpntcls_code IS NOT NULL)
974: THEN
975: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
976: THEN
979: FND_MESSAGE.SET_TOKEN('CMPNTCLS_CODE',p_lower_level(i).cost_cmpntcls_code);
980: FND_MSG_PUB.Add;
981: END IF;
982: END IF;
983: ELSIF (p_lower_level(i).cost_cmpntcls_code <> FND_API.G_MISS_CHAR)
984: AND (p_lower_level(i).cost_cmpntcls_code IS NOT NULL)
985: THEN
986: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
987: THEN
1013: THEN
1014: log_msg('validating lower level analysis_code('||i||') :' || p_lower_level(i).cost_analysis_code);
1015: END IF;
1016:
1017: IF (p_lower_level(i).cost_analysis_code <> FND_API.G_MISS_CHAR)
1018: AND (p_lower_level(i).cost_analysis_code IS NOT NULL)
1019: THEN
1020: IF NOT GMF_VALIDATIONS_PVT.Validate_Analysis_Code(p_lower_level(i).cost_analysis_code)
1021: THEN
1048: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
1049: THEN
1050: log_msg('validating lower level Component Cost('||i||') for format : '||p_lower_level(i).cmpnt_cost);
1051: END IF;
1052: IF (p_lower_level(i).cmpnt_cost <> FND_API.G_MISS_NUM)
1053: AND (p_lower_level(i).cmpnt_cost IS NOT NULL)
1054: THEN
1055: IF p_lower_level(i).cmpnt_cost >= 1000000000
1056: THEN
1063: FND_MESSAGE.SET_TOKEN('CMPNT_COST',p_lower_level(i).cmpnt_cost);
1064: FND_MSG_PUB.Add;
1065: RAISE e_lower_level;
1066: END IF ;
1067: ELSIF (p_lower_level(i).cmpnt_cost = FND_API.G_MISS_NUM AND p_operation = 'UPDATE')
1068: OR (p_operation = 'INSERT')
1069: THEN
1070: add_header_to_error_stack(p_header_rec);
1071: FND_MESSAGE.SET_NAME('GMF','GMF_API_CMPNT_COST_REQ');
1075: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
1076: THEN
1077: log_msg('validating lower level delete_mark('||i||') :' || p_lower_level(i).delete_mark);
1078: END IF;
1079: IF (p_lower_level(i).delete_mark <> FND_API.G_MISS_NUM)
1080: AND (p_lower_level(i).delete_mark IS NOT NULL)
1081: THEN
1082: IF p_lower_level(i).delete_mark NOT IN (0,1)
1083: THEN
1086: FND_MESSAGE.SET_TOKEN('DELETE_MARK',p_lower_level(i).delete_mark);
1087: FND_MSG_PUB.Add;
1088: RAISE e_lower_level;
1089: END IF;
1090: ELSIF (p_lower_level(i).delete_mark = FND_API.G_MISS_NUM AND p_operation = 'UPDATE')
1091: OR (p_operation = 'INSERT')
1092: THEN
1093: add_header_to_error_stack(p_header_rec);
1094: FND_MESSAGE.SET_NAME('GMF','GMF_API_DELETE_MARK_REQ');
1108: * Ignore unique key combination if Cmpntcost_Id is supplied. If not supplied then *
1109: * query the Cmpntcost_Id. This is done only in case of Update and Delete *
1110: **********************************************************************************/
1111: IF (p_operation IN ('UPDATE','DELETE')
1112: AND ((p_lower_level(i).cmpntcost_id <> FND_API.G_MISS_NUM)
1113: OR (p_lower_level(i).cmpntcost_id IS NOT NULL)))
1114: THEN
1115: add_header_to_error_stack(p_header_rec);
1116: FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_IC_UNIQUE_KEY');
1140: log_msg('x_delete_mark('||l_idx||'): '||x_lower_level(l_idx).delete_mark);
1141: END IF;
1142: EXCEPTION
1143: WHEN e_lower_level THEN
1144: RAISE FND_API.G_EXC_ERROR ;
1145: END ;
1146: END LOOP;
1147: EXCEPTION
1148: WHEN FND_API.G_EXC_ERROR THEN
1144: RAISE FND_API.G_EXC_ERROR ;
1145: END ;
1146: END LOOP;
1147: EXCEPTION
1148: WHEN FND_API.G_EXC_ERROR THEN
1149: x_return_status := FND_API.G_RET_STS_ERROR ;
1150: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1151: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1152: END VALIDATE_INPUT_PARAMS ;
1145: END ;
1146: END LOOP;
1147: EXCEPTION
1148: WHEN FND_API.G_EXC_ERROR THEN
1149: x_return_status := FND_API.G_RET_STS_ERROR ;
1150: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1151: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1152: END VALIDATE_INPUT_PARAMS ;
1153:
1146: END LOOP;
1147: EXCEPTION
1148: WHEN FND_API.G_EXC_ERROR THEN
1149: x_return_status := FND_API.G_RET_STS_ERROR ;
1150: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1151: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1152: END VALIDATE_INPUT_PARAMS ;
1153:
1154: --Start of comments
1147: EXCEPTION
1148: WHEN FND_API.G_EXC_ERROR THEN
1149: x_return_status := FND_API.G_RET_STS_ERROR ;
1150: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1151: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1152: END VALIDATE_INPUT_PARAMS ;
1153:
1154: --Start of comments
1155: --+========================================================================+
1187:
1188: PROCEDURE Create_Item_Cost
1189: (
1190: p_api_version IN NUMBER,
1191: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1192: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1193: x_return_status OUT NOCOPY VARCHAR2,
1194: x_msg_count OUT NOCOPY NUMBER,
1195: x_msg_data OUT NOCOPY VARCHAR2,
1188: PROCEDURE Create_Item_Cost
1189: (
1190: p_api_version IN NUMBER,
1191: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1192: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1193: x_return_status OUT NOCOPY VARCHAR2,
1194: x_msg_count OUT NOCOPY NUMBER,
1195: x_msg_data OUT NOCOPY VARCHAR2,
1196: p_header_rec IN Header_Rec_Type,
1224:
1225: /*************************************************************
1226: * Initialize message list if p_init_msg_list is set to TRUE. *
1227: *************************************************************/
1228: IF FND_API.to_Boolean( p_init_msg_list )
1229: THEN
1230: FND_MSG_PUB.initialize;
1231: END IF;
1232:
1232:
1233: /*************************************************
1234: * Standard call to check for call compatibility. *
1235: *************************************************/
1236: IF NOT FND_API.Compatible_API_Call (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
1237: THEN
1238: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1239: END IF;
1240:
1234: * Standard call to check for call compatibility. *
1235: *************************************************/
1236: IF NOT FND_API.Compatible_API_Call (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
1237: THEN
1238: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1239: END IF;
1240:
1241: /******************************************
1242: * Initialize API return status to success *
1240:
1241: /******************************************
1242: * Initialize API return status to success *
1243: ******************************************/
1244: x_return_status := FND_API.G_RET_STS_SUCCESS;
1245:
1246: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
1247: THEN
1248: log_msg('Beginning Create Item Cost process.');
1286:
1287: /*****************************************
1288: * Return if validation failures detected *
1289: *****************************************/
1290: IF l_return_status = FND_API.G_RET_STS_ERROR
1291: THEN
1292: add_header_to_error_stack(p_header_rec);
1293: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
1294: FND_MSG_PUB.Add;
1291: THEN
1292: add_header_to_error_stack(p_header_rec);
1293: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
1294: FND_MSG_PUB.Add;
1295: RAISE FND_API.G_EXC_ERROR;
1296: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
1297: THEN
1298: add_header_to_error_stack(p_header_rec);
1299: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
1292: add_header_to_error_stack(p_header_rec);
1293: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
1294: FND_MSG_PUB.Add;
1295: RAISE FND_API.G_EXC_ERROR;
1296: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
1297: THEN
1298: add_header_to_error_stack(p_header_rec);
1299: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
1300: FND_MSG_PUB.Add;
1297: THEN
1298: add_header_to_error_stack(p_header_rec);
1299: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
1300: FND_MSG_PUB.Add;
1301: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1302: END IF;
1303: END IF;
1304:
1305: IF ((l_this_level_dtl_tbl.count > 0) OR (l_lower_level_dtl_tbl.count > 0))
1310: END IF;
1311: GMF_ITEMCOST_PVT.CREATE_ITEM_COST
1312: (
1313: p_api_version => 3.0,
1314: p_init_msg_list => FND_API.G_FALSE,
1315: p_commit => FND_API.G_FALSE,
1316: x_return_status => l_return_status,
1317: x_msg_count => l_count,
1318: x_msg_data => l_data,
1311: GMF_ITEMCOST_PVT.CREATE_ITEM_COST
1312: (
1313: p_api_version => 3.0,
1314: p_init_msg_list => FND_API.G_FALSE,
1315: p_commit => FND_API.G_FALSE,
1316: x_return_status => l_return_status,
1317: x_msg_count => l_count,
1318: x_msg_data => l_data,
1319: p_header_rec => l_header_rec,
1325:
1326: /****************************************
1327: * Return if insert fails for any reason *
1328: ****************************************/
1329: IF l_return_status = FND_API.G_RET_STS_ERROR
1330: THEN
1331: add_header_to_error_stack(l_header_rec);
1332: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
1333: FND_MSG_PUB.Add;
1330: THEN
1331: add_header_to_error_stack(l_header_rec);
1332: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
1333: FND_MSG_PUB.Add;
1334: RAISE FND_API.G_EXC_ERROR;
1335: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1336: add_header_to_error_stack(l_header_rec);
1337: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
1338: FND_MSG_PUB.Add;
1331: add_header_to_error_stack(l_header_rec);
1332: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
1333: FND_MSG_PUB.Add;
1334: RAISE FND_API.G_EXC_ERROR;
1335: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1336: add_header_to_error_stack(l_header_rec);
1337: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
1338: FND_MSG_PUB.Add;
1339: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1335: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1336: add_header_to_error_stack(l_header_rec);
1337: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_INS');
1338: FND_MSG_PUB.Add;
1339: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1340: END IF;
1341: add_header_to_error_stack(l_header_rec);
1342: FND_MESSAGE.SET_NAME('GMF','GMF_API_ROWS_INS');
1343: FND_MESSAGE.SET_TOKEN('NUM_ROWS',x_costcmpnt_ids.count);
1349: END IF ;
1350: /******************************
1351: * Standard check of p_commit. *
1352: ******************************/
1353: IF FND_API.To_Boolean( p_commit )
1354: THEN
1355: COMMIT WORK;
1356: END IF;
1357:
1363: p_count => x_msg_count,
1364: p_data => x_msg_data
1365: );
1366: EXCEPTION
1367: WHEN FND_API.G_EXC_ERROR THEN
1368: ROLLBACK TO CREATE_ITEM_COST_PUB;
1369: x_return_status := FND_API.G_RET_STS_ERROR ;
1370: FND_MSG_PUB.Count_And_Get
1371: (
1365: );
1366: EXCEPTION
1367: WHEN FND_API.G_EXC_ERROR THEN
1368: ROLLBACK TO CREATE_ITEM_COST_PUB;
1369: x_return_status := FND_API.G_RET_STS_ERROR ;
1370: FND_MSG_PUB.Count_And_Get
1371: (
1372: p_count => x_msg_count,
1373: p_data => x_msg_data
1371: (
1372: p_count => x_msg_count,
1373: p_data => x_msg_data
1374: );
1375: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1376: ROLLBACK TO CREATE_ITEM_COST_PUB;
1377: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1378: FND_MSG_PUB.Count_And_Get
1379: (
1373: p_data => x_msg_data
1374: );
1375: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1376: ROLLBACK TO CREATE_ITEM_COST_PUB;
1377: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1378: FND_MSG_PUB.Count_And_Get
1379: (
1380: p_count => x_msg_count,
1381: p_data => x_msg_data
1381: p_data => x_msg_data
1382: );
1383: WHEN OTHERS THEN
1384: ROLLBACK TO CREATE_ITEM_COST_PUB;
1385: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1386: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1387: THEN
1388: FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME, l_api_name);
1389: END IF;
1428:
1429: PROCEDURE Update_Item_Cost
1430: (
1431: p_api_version IN NUMBER,
1432: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1433: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1434: x_return_status OUT NOCOPY VARCHAR2,
1435: x_msg_count OUT NOCOPY NUMBER,
1436: x_msg_data OUT NOCOPY VARCHAR2,
1429: PROCEDURE Update_Item_Cost
1430: (
1431: p_api_version IN NUMBER,
1432: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1433: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1434: x_return_status OUT NOCOPY VARCHAR2,
1435: x_msg_count OUT NOCOPY NUMBER,
1436: x_msg_data OUT NOCOPY VARCHAR2,
1437: p_header_rec IN Header_Rec_Type,
1464:
1465: /*************************************************************
1466: * Initialize message list if p_init_msg_list is set to TRUE. *
1467: *************************************************************/
1468: IF FND_API.to_Boolean( p_init_msg_list )
1469: THEN
1470: FND_MSG_PUB.initialize;
1471: END IF;
1472:
1472:
1473: /*************************************************
1474: * Standard call to check for call compatibility. *
1475: *************************************************/
1476: IF NOT FND_API.Compatible_API_Call (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
1477: THEN
1478: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1479: END IF;
1480:
1474: * Standard call to check for call compatibility. *
1475: *************************************************/
1476: IF NOT FND_API.Compatible_API_Call (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
1477: THEN
1478: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1479: END IF;
1480:
1481: /******************************************
1482: * Initialize API return status to success *
1480:
1481: /******************************************
1482: * Initialize API return status to success *
1483: ******************************************/
1484: x_return_status := FND_API.G_RET_STS_SUCCESS;
1485:
1486: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
1487: THEN
1488: log_msg('Beginning Update Item Cost process.');
1525:
1526: /*****************************************
1527: * Return if validation failures detected *
1528: *****************************************/
1529: IF l_return_status = FND_API.G_RET_STS_ERROR
1530: THEN
1531: add_header_to_error_stack(p_header_rec);
1532: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1533: FND_MSG_PUB.Add;
1530: THEN
1531: add_header_to_error_stack(p_header_rec);
1532: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1533: FND_MSG_PUB.Add;
1534: RAISE FND_API.G_EXC_ERROR;
1535: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
1536: THEN
1537: add_header_to_error_stack(p_header_rec);
1538: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1531: add_header_to_error_stack(p_header_rec);
1532: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1533: FND_MSG_PUB.Add;
1534: RAISE FND_API.G_EXC_ERROR;
1535: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
1536: THEN
1537: add_header_to_error_stack(p_header_rec);
1538: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1539: FND_MSG_PUB.Add;
1536: THEN
1537: add_header_to_error_stack(p_header_rec);
1538: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1539: FND_MSG_PUB.Add;
1540: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1541: END IF;
1542: END IF;
1543:
1544: IF ((l_this_level_dtl_tbl.count > 0) OR (l_lower_level_dtl_tbl.count > 0))
1549: END IF;
1550: GMF_ITEMCOST_PVT.UPDATE_ITEM_COST
1551: (
1552: p_api_version => 3.0,
1553: p_init_msg_list => FND_API.G_FALSE,
1554: p_commit => FND_API.G_FALSE,
1555: x_return_status => l_return_status,
1556: x_msg_count => l_count,
1557: x_msg_data => l_data,
1550: GMF_ITEMCOST_PVT.UPDATE_ITEM_COST
1551: (
1552: p_api_version => 3.0,
1553: p_init_msg_list => FND_API.G_FALSE,
1554: p_commit => FND_API.G_FALSE,
1555: x_return_status => l_return_status,
1556: x_msg_count => l_count,
1557: x_msg_data => l_data,
1558: p_header_rec => l_header_rec,
1562: );
1563: /****************************************
1564: * Return if insert fails for any reason *
1565: ****************************************/
1566: IF l_return_status = FND_API.G_RET_STS_ERROR
1567: THEN
1568: add_header_to_error_stack(p_header_rec);
1569: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1570: FND_MSG_PUB.Add;
1567: THEN
1568: add_header_to_error_stack(p_header_rec);
1569: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1570: FND_MSG_PUB.Add;
1571: RAISE FND_API.G_EXC_ERROR;
1572: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1573: add_header_to_error_stack(p_header_rec);
1574: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1575: FND_MSG_PUB.Add;
1568: add_header_to_error_stack(p_header_rec);
1569: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1570: FND_MSG_PUB.Add;
1571: RAISE FND_API.G_EXC_ERROR;
1572: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1573: add_header_to_error_stack(p_header_rec);
1574: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1575: FND_MSG_PUB.Add;
1576: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1572: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1573: add_header_to_error_stack(p_header_rec);
1574: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_UPD');
1575: FND_MSG_PUB.Add;
1576: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1577: END IF;
1578: add_header_to_error_stack(p_header_rec);
1579: FND_MESSAGE.SET_NAME('GMF','GMF_API_ROWS_UPD');
1580: FND_MESSAGE.SET_TOKEN('NUM_ROWS',l_this_level_dtl_tbl.count+l_lower_level_dtl_tbl.count);
1587:
1588: /******************************
1589: * Standard check of p_commit. *
1590: ******************************/
1591: IF FND_API.To_Boolean( p_commit )
1592: THEN
1593: COMMIT WORK;
1594: END IF;
1595:
1601: p_count => x_msg_count,
1602: p_data => x_msg_data
1603: );
1604: EXCEPTION
1605: WHEN FND_API.G_EXC_ERROR THEN
1606: ROLLBACK TO UPDATE_ITEM_COST_PUB;
1607: x_return_status := FND_API.G_RET_STS_ERROR ;
1608: FND_MSG_PUB.Count_And_Get
1609: (
1603: );
1604: EXCEPTION
1605: WHEN FND_API.G_EXC_ERROR THEN
1606: ROLLBACK TO UPDATE_ITEM_COST_PUB;
1607: x_return_status := FND_API.G_RET_STS_ERROR ;
1608: FND_MSG_PUB.Count_And_Get
1609: (
1610: p_count => x_msg_count,
1611: p_data => x_msg_data
1609: (
1610: p_count => x_msg_count,
1611: p_data => x_msg_data
1612: );
1613: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1614: ROLLBACK TO UPDATE_ITEM_COST_PUB;
1615: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1616: FND_MSG_PUB.Count_And_Get
1617: (
1611: p_data => x_msg_data
1612: );
1613: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1614: ROLLBACK TO UPDATE_ITEM_COST_PUB;
1615: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1616: FND_MSG_PUB.Count_And_Get
1617: (
1618: p_count => x_msg_count,
1619: p_data => x_msg_data
1619: p_data => x_msg_data
1620: );
1621: WHEN OTHERS THEN
1622: ROLLBACK TO UPDATE_ITEM_COST_PUB;
1623: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1624: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1625: THEN
1626: FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME, l_api_name);
1627: END IF;
1666:
1667: PROCEDURE Delete_Item_Cost
1668: (
1669: p_api_version IN NUMBER,
1670: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1671: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1672: x_return_status OUT NOCOPY VARCHAR2,
1673: x_msg_count OUT NOCOPY NUMBER,
1674: x_msg_data OUT NOCOPY VARCHAR2,
1667: PROCEDURE Delete_Item_Cost
1668: (
1669: p_api_version IN NUMBER,
1670: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1671: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1672: x_return_status OUT NOCOPY VARCHAR2,
1673: x_msg_count OUT NOCOPY NUMBER,
1674: x_msg_data OUT NOCOPY VARCHAR2,
1675: p_header_rec IN Header_Rec_Type,
1700:
1701: /*************************************************************
1702: * Initialize message list if p_init_msg_list is set to TRUE. *
1703: *************************************************************/
1704: IF FND_API.to_Boolean( p_init_msg_list )
1705: THEN
1706: FND_MSG_PUB.initialize;
1707: END IF;
1708:
1708:
1709: /*************************************************
1710: * Standard call to check for call compatibility. *
1711: *************************************************/
1712: IF NOT FND_API.Compatible_API_Call (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
1713: THEN
1714: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1715: END IF;
1716:
1710: * Standard call to check for call compatibility. *
1711: *************************************************/
1712: IF NOT FND_API.Compatible_API_Call (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
1713: THEN
1714: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1715: END IF;
1716:
1717: /******************************************
1718: * Initialize API return status to success *
1716:
1717: /******************************************
1718: * Initialize API return status to success *
1719: ******************************************/
1720: x_return_status := FND_API.G_RET_STS_SUCCESS;
1721:
1722: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
1723: THEN
1724: log_msg('Beginning Delete Item Cost process.');
1762:
1763: /*****************************************
1764: * Return if validation failures detected *
1765: *****************************************/
1766: IF l_return_status = FND_API.G_RET_STS_ERROR
1767: THEN
1768: add_header_to_error_stack(p_header_rec);
1769: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1770: FND_MSG_PUB.Add;
1767: THEN
1768: add_header_to_error_stack(p_header_rec);
1769: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1770: FND_MSG_PUB.Add;
1771: RAISE FND_API.G_EXC_ERROR;
1772: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
1773: THEN
1774: add_header_to_error_stack(p_header_rec);
1775: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1768: add_header_to_error_stack(p_header_rec);
1769: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1770: FND_MSG_PUB.Add;
1771: RAISE FND_API.G_EXC_ERROR;
1772: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
1773: THEN
1774: add_header_to_error_stack(p_header_rec);
1775: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1776: FND_MSG_PUB.Add;
1773: THEN
1774: add_header_to_error_stack(p_header_rec);
1775: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1776: FND_MSG_PUB.Add;
1777: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1778: END IF;
1779: END IF;
1780:
1781: IF ((l_this_level_dtl_tbl.count > 0) OR (l_lower_level_dtl_tbl.count > 0))
1787:
1788: GMF_ITEMCOST_PVT.UPDATE_ITEM_COST
1789: (
1790: p_api_version => 3.0,
1791: p_init_msg_list => FND_API.G_FALSE,
1792: p_commit => FND_API.G_FALSE,
1793: x_return_status => l_return_status,
1794: x_msg_count => l_count,
1795: x_msg_data => l_data,
1788: GMF_ITEMCOST_PVT.UPDATE_ITEM_COST
1789: (
1790: p_api_version => 3.0,
1791: p_init_msg_list => FND_API.G_FALSE,
1792: p_commit => FND_API.G_FALSE,
1793: x_return_status => l_return_status,
1794: x_msg_count => l_count,
1795: x_msg_data => l_data,
1796: p_header_rec => l_header_rec,
1801:
1802: /****************************************
1803: * Return if update fails for any reason *
1804: ****************************************/
1805: IF l_return_status = FND_API.G_RET_STS_ERROR
1806: THEN
1807: add_header_to_error_stack(p_header_rec);
1808: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1809: FND_MSG_PUB.Add;
1806: THEN
1807: add_header_to_error_stack(p_header_rec);
1808: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1809: FND_MSG_PUB.Add;
1810: RAISE FND_API.G_EXC_ERROR;
1811: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
1812: THEN
1813: add_header_to_error_stack(p_header_rec);
1814: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1807: add_header_to_error_stack(p_header_rec);
1808: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1809: FND_MSG_PUB.Add;
1810: RAISE FND_API.G_EXC_ERROR;
1811: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
1812: THEN
1813: add_header_to_error_stack(p_header_rec);
1814: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1815: FND_MSG_PUB.Add;
1812: THEN
1813: add_header_to_error_stack(p_header_rec);
1814: FND_MESSAGE.SET_NAME('GMF','GMF_API_NO_ROWS_DEL');
1815: FND_MSG_PUB.Add;
1816: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1817: END IF;
1818: add_header_to_error_stack(p_header_rec);
1819: FND_MESSAGE.SET_NAME('GMF','GMF_API_ROWS_DEL');
1820: FND_MESSAGE.SET_TOKEN('NUM_ROWS',l_this_level_dtl_tbl.count+l_lower_level_dtl_tbl.count);
1827:
1828: /******************************
1829: * Standard check of p_commit. *
1830: ******************************/
1831: IF FND_API.To_Boolean( p_commit )
1832: THEN
1833: COMMIT WORK;
1834: END IF;
1835:
1841: p_count => x_msg_count,
1842: p_data => x_msg_data
1843: );
1844: EXCEPTION
1845: WHEN FND_API.G_EXC_ERROR THEN
1846: ROLLBACK TO DELETE_ITEM_COST_PUB;
1847: x_return_status := FND_API.G_RET_STS_ERROR ;
1848: FND_MSG_PUB.Count_And_Get
1849: (
1843: );
1844: EXCEPTION
1845: WHEN FND_API.G_EXC_ERROR THEN
1846: ROLLBACK TO DELETE_ITEM_COST_PUB;
1847: x_return_status := FND_API.G_RET_STS_ERROR ;
1848: FND_MSG_PUB.Count_And_Get
1849: (
1850: p_count => x_msg_count,
1851: p_data => x_msg_data
1849: (
1850: p_count => x_msg_count,
1851: p_data => x_msg_data
1852: );
1853: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1854: ROLLBACK TO DELETE_ITEM_COST_PUB;
1855: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1856: FND_MSG_PUB.Count_And_Get
1857: (
1851: p_data => x_msg_data
1852: );
1853: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1854: ROLLBACK TO DELETE_ITEM_COST_PUB;
1855: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1856: FND_MSG_PUB.Count_And_Get
1857: (
1858: p_count => x_msg_count,
1859: p_data => x_msg_data
1859: p_data => x_msg_data
1860: );
1861: WHEN OTHERS THEN
1862: ROLLBACK TO DELETE_ITEM_COST_PUB;
1863: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1864: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1865: THEN
1866: FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME, l_api_name);
1867: END IF;
1906:
1907: PROCEDURE Get_Item_Cost
1908: (
1909: p_api_version IN NUMBER,
1910: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1911: x_return_status OUT NOCOPY VARCHAR2,
1912: x_msg_count OUT NOCOPY NUMBER,
1913: x_msg_data OUT NOCOPY VARCHAR2,
1914: p_header_rec IN Header_Rec_Type,
1941:
1942: /*************************************************************
1943: * Initialize message list if p_init_msg_list is set to TRUE. *
1944: *************************************************************/
1945: IF FND_API.to_Boolean( p_init_msg_list )
1946: THEN
1947: FND_MSG_PUB.initialize;
1948: END IF;
1949:
1949:
1950: /*************************************************
1951: * Standard call to check for call compatibility. *
1952: *************************************************/
1953: IF NOT FND_API.Compatible_API_Call (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
1954: THEN
1955: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1956: END IF;
1957:
1951: * Standard call to check for call compatibility. *
1952: *************************************************/
1953: IF NOT FND_API.Compatible_API_Call (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
1954: THEN
1955: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1956: END IF;
1957:
1958: /******************************************
1959: * Initialize API return status to success *
1957:
1958: /******************************************
1959: * Initialize API return status to success *
1960: ******************************************/
1961: x_return_status := FND_API.G_RET_STS_SUCCESS;
1962:
1963: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
1964: THEN
1965: log_msg('Beginning Get Item Cost API.');
1973: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
1974: THEN
1975: log_msg('Validating Organization Id :' || p_header_rec.Organization_id);
1976: END IF;
1977: IF (p_header_rec.organization_id <> FND_API.G_MISS_NUM)
1978: AND (p_header_rec.organization_id IS NOT NULL)
1979: THEN
1980: IF NOT GMF_VALIDATIONS_PVT.Validate_organization_id(p_header_rec.organization_id) THEN
1981: add_header_to_error_stack(p_header_rec);
1981: add_header_to_error_stack(p_header_rec);
1982: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ORGN_ID');
1983: FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID',p_header_rec.organization_id);
1984: FND_MSG_PUB.Add;
1985: RAISE FND_API.G_EXC_ERROR;
1986: END IF;
1987: IF (p_header_rec.organization_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.organization_code IS NOT NULL)
1988: THEN
1989: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
1983: FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID',p_header_rec.organization_id);
1984: FND_MSG_PUB.Add;
1985: RAISE FND_API.G_EXC_ERROR;
1986: END IF;
1987: IF (p_header_rec.organization_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.organization_code IS NOT NULL)
1988: THEN
1989: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
1990: THEN
1991: FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_ORGN_CODE');
1993: FND_MSG_PUB.Add;
1994: END IF;
1995: END IF;
1996: ELSE
1997: IF (p_header_rec.organization_code <> FND_API.G_MISS_CHAR)
1998: AND (p_header_rec.organization_code IS NOT NULL)
1999: THEN
2000: l_header_rec.organization_id := GMF_VALIDATIONS_PVT.Validate_organization_Code(p_header_rec.organization_code);
2001: IF l_header_rec.organization_id IS NULL
2003: add_header_to_error_stack(p_header_rec);
2004: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ORGN_CODE');
2005: FND_MESSAGE.SET_TOKEN('ORG_CODE',p_header_rec.organization_code);
2006: FND_MSG_PUB.Add;
2007: RAISE FND_API.G_EXC_ERROR;
2008: END IF;
2009: ELSE
2010: add_header_to_error_stack(p_header_rec);
2011: FND_MESSAGE.SET_NAME('GMF','GMF_API_ORGANIZATION_ID_REQ');
2009: ELSE
2010: add_header_to_error_stack(p_header_rec);
2011: FND_MESSAGE.SET_NAME('GMF','GMF_API_ORGANIZATION_ID_REQ');
2012: FND_MSG_PUB.Add;
2013: RAISE FND_API.G_EXC_ERROR;
2014: END IF;
2015: END IF;
2016:
2017: /***********************
2020: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
2021: THEN
2022: log_msg('Validating Cost type Id : ' || p_header_rec.cost_type_id);
2023: END IF;
2024: IF (p_header_rec.cost_type_id <> FND_API.G_MISS_NUM)
2025: AND (p_header_rec.cost_type_id IS NOT NULL)
2026: THEN
2027: IF NOT GMF_VALIDATIONS_PVT.Validate_Cost_type_id(p_header_rec.cost_type_id) THEN
2028: add_header_to_error_stack(p_header_rec);
2028: add_header_to_error_stack(p_header_rec);
2029: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_COST_TYPE_ID');
2030: FND_MESSAGE.SET_TOKEN('COST_TYPE_ID',p_header_rec.cost_type_id);
2031: FND_MSG_PUB.Add;
2032: RAISE FND_API.G_EXC_ERROR;
2033: END IF;
2034: IF (p_header_rec.cost_mthd_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.cost_mthd_code IS NOT NULL)
2035: THEN
2036: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
2030: FND_MESSAGE.SET_TOKEN('COST_TYPE_ID',p_header_rec.cost_type_id);
2031: FND_MSG_PUB.Add;
2032: RAISE FND_API.G_EXC_ERROR;
2033: END IF;
2034: IF (p_header_rec.cost_mthd_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.cost_mthd_code IS NOT NULL)
2035: THEN
2036: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
2037: THEN
2038: FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_COST_TYPE');
2040: FND_MSG_PUB.Add;
2041: END IF;
2042: END IF;
2043: ELSE
2044: IF (p_header_rec.cost_mthd_code <> FND_API.G_MISS_CHAR)
2045: AND (p_header_rec.cost_mthd_code IS NOT NULL)
2046: THEN
2047: l_header_rec.cost_type_id := GMF_VALIDATIONS_PVT.Validate_Cost_type_Code(p_header_rec.cost_mthd_code);
2048: IF l_header_rec.cost_type_id IS NULL THEN
2049: add_header_to_error_stack(p_header_rec);
2050: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_COST_TYPE');
2051: FND_MESSAGE.SET_TOKEN('COST_TYPE',p_header_rec.cost_mthd_code);
2052: FND_MSG_PUB.Add;
2053: RAISE FND_API.G_EXC_ERROR;
2054: END IF;
2055: ELSE
2056: add_header_to_error_stack(p_header_rec);
2057: FND_MESSAGE.SET_NAME('GMF','GMF_API_COST_TYPE_ID_REQ');
2055: ELSE
2056: add_header_to_error_stack(p_header_rec);
2057: FND_MESSAGE.SET_NAME('GMF','GMF_API_COST_TYPE_ID_REQ');
2058: FND_MSG_PUB.Add;
2059: RAISE FND_API.G_EXC_ERROR;
2060: END IF;
2061: END IF;
2062:
2063: /***********************
2067: THEN
2068: log_msg('validating Period Id : ' || p_header_rec.period_id);
2069: END IF;
2070:
2071: IF (p_header_rec.period_id <> FND_API.G_MISS_NUM)
2072: AND (p_header_rec.period_id IS NOT NULL)
2073: THEN
2074: IF NOT GMF_VALIDATIONS_PVT.Validate_period_id(p_header_rec.period_id)
2075: THEN
2076: add_header_to_error_stack(p_header_rec);
2077: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_PERIOD_ID');
2078: FND_MESSAGE.SET_TOKEN('PERIOD_ID',p_header_rec.period_id);
2079: FND_MSG_PUB.Add;
2080: RAISE FND_API.G_EXC_ERROR;
2081: END IF;
2082: IF ((p_header_rec.calendar_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.calendar_code IS NOT NULL))
2083: AND ((p_header_rec.period_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.period_code IS NOT NULL))
2084: THEN
2078: FND_MESSAGE.SET_TOKEN('PERIOD_ID',p_header_rec.period_id);
2079: FND_MSG_PUB.Add;
2080: RAISE FND_API.G_EXC_ERROR;
2081: END IF;
2082: IF ((p_header_rec.calendar_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.calendar_code IS NOT NULL))
2083: AND ((p_header_rec.period_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.period_code IS NOT NULL))
2084: THEN
2085: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
2086: THEN
2079: FND_MSG_PUB.Add;
2080: RAISE FND_API.G_EXC_ERROR;
2081: END IF;
2082: IF ((p_header_rec.calendar_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.calendar_code IS NOT NULL))
2083: AND ((p_header_rec.period_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.period_code IS NOT NULL))
2084: THEN
2085: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
2086: THEN
2087: FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_PERIOD_CODE');
2095: THEN
2096: log_msg('Validating Calendar Code : '|| p_header_rec.Calendar_code||' period_code : ' || p_header_rec.period_code);
2097: END IF;
2098:
2099: IF ((p_header_rec.calendar_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.calendar_code IS NOT NULL))
2100: AND ((p_header_rec.period_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.period_code IS NOT NULL))
2101: THEN
2102: l_header_rec.period_id := GMF_VALIDATIONS_PVT.Validate_Period_code(p_header_rec.organization_id, p_header_rec.calendar_code,p_header_rec.period_code,p_header_rec.cost_type_id);
2103: ELSE
2096: log_msg('Validating Calendar Code : '|| p_header_rec.Calendar_code||' period_code : ' || p_header_rec.period_code);
2097: END IF;
2098:
2099: IF ((p_header_rec.calendar_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.calendar_code IS NOT NULL))
2100: AND ((p_header_rec.period_code <> FND_API.G_MISS_CHAR) AND (p_header_rec.period_code IS NOT NULL))
2101: THEN
2102: l_header_rec.period_id := GMF_VALIDATIONS_PVT.Validate_Period_code(p_header_rec.organization_id, p_header_rec.calendar_code,p_header_rec.period_code,p_header_rec.cost_type_id);
2103: ELSE
2104: add_header_to_error_stack(p_header_rec);
2103: ELSE
2104: add_header_to_error_stack(p_header_rec);
2105: FND_MESSAGE.SET_NAME('GMF','GMF_API_PERIOD_ID_REQ');
2106: FND_MSG_PUB.Add;
2107: RAISE FND_API.G_EXC_ERROR;
2108: END IF;
2109: END IF;
2110:
2111: /******************
2110:
2111: /******************
2112: * Item Validation *
2113: ******************/
2114: IF (p_header_rec.inventory_item_id <> FND_API.G_MISS_NUM) AND (p_header_rec.inventory_item_id IS NOT NULL)
2115: THEN
2116: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
2117: THEN
2118: log_msg('Validating Inventory Item Id : ' || p_header_rec.inventory_item_id);
2122: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ITEM_ID');
2123: FND_MESSAGE.SET_TOKEN('ITEM_ID', p_header_rec.inventory_item_id);
2124: FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID',p_header_rec.organization_id);
2125: FND_MSG_PUB.Add;
2126: RAISE FND_API.G_EXC_ERROR;
2127: END IF;
2128: IF (p_header_rec.item_number <> FND_API.G_MISS_CHAR) AND (p_header_rec.item_number IS NOT NULL)
2129: THEN
2130: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
2124: FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID',p_header_rec.organization_id);
2125: FND_MSG_PUB.Add;
2126: RAISE FND_API.G_EXC_ERROR;
2127: END IF;
2128: IF (p_header_rec.item_number <> FND_API.G_MISS_CHAR) AND (p_header_rec.item_number IS NOT NULL)
2129: THEN
2130: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
2131: THEN
2132: FND_MESSAGE.SET_NAME('GMF','GMF_API_IGNORE_ITEM_NO');
2134: FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID',p_header_rec.organization_id);
2135: FND_MSG_PUB.Add;
2136: END IF;
2137: END IF;
2138: ELSIF (p_header_rec.item_number <> FND_API.G_MISS_CHAR) AND (p_header_rec.item_number IS NOT NULL)
2139: THEN
2140: IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level
2141: THEN
2142: log_msg('Validating Item Number : ' || p_header_rec.item_number);
2151: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_ITEM_NO');
2152: FND_MESSAGE.SET_TOKEN('ITEM_NO',p_header_rec.item_number);
2153: FND_MESSAGE.SET_TOKEN('ORGANIZATION_ID',p_header_rec.organization_id);
2154: FND_MSG_PUB.Add;
2155: RAISE FND_API.G_EXC_ERROR;
2156: END IF;
2157: ELSE
2158: FND_MESSAGE.SET_NAME('GMF','GMF_API_ITEM_ID_REQ');
2159: FND_MSG_PUB.Add;
2156: END IF;
2157: ELSE
2158: FND_MESSAGE.SET_NAME('GMF','GMF_API_ITEM_ID_REQ');
2159: FND_MSG_PUB.Add;
2160: RAISE FND_API.G_EXC_ERROR;
2161: END IF;
2162:
2163: /***********************
2164: * User Name Validation *
2167: THEN
2168: log_msg('Validating user name : ' || p_header_rec.user_name);
2169: END IF;
2170:
2171: IF (p_header_rec.user_name <> FND_API.G_MISS_CHAR)
2172: AND (p_header_rec.user_name IS NOT NULL)
2173: THEN
2174: GMA_GLOBAL_GRP.Get_who( p_user_name => p_header_rec.user_name, x_user_id => l_user_id);
2175: IF l_user_id = -1
2177: add_header_to_error_stack(p_header_rec);
2178: FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_USER_NAME');
2179: FND_MESSAGE.SET_TOKEN('USER_NAME',p_header_rec.user_name);
2180: FND_MSG_PUB.Add;
2181: RAISE FND_API.G_EXC_ERROR;
2182: END IF;
2183: ELSE
2184: add_header_to_error_stack(p_header_rec);
2185: FND_MESSAGE.SET_NAME('GMF','GMF_API_USER_NAME_REQ');
2183: ELSE
2184: add_header_to_error_stack(p_header_rec);
2185: FND_MESSAGE.SET_NAME('GMF','GMF_API_USER_NAME_REQ');
2186: FND_MSG_PUB.Add;
2187: RAISE FND_API.G_EXC_ERROR;
2188: END IF;
2189:
2190: l_header_rec.period_id := nvl(p_header_rec.period_id, l_header_rec.period_id);
2191: l_header_rec.cost_type_id := nvl(p_header_rec.cost_type_id, l_header_rec.cost_type_id);
2199:
2200: GMF_ITEMCOST_PVT.GET_ITEM_COST
2201: (
2202: p_api_version => 3.0,
2203: p_init_msg_list => FND_API.G_FALSE,
2204: x_return_status => l_return_status,
2205: x_msg_count => l_count,
2206: x_msg_data => l_data,
2207: p_header_rec => l_header_rec,
2211:
2212: /****************************************
2213: * Return if update fails for any reason *
2214: ****************************************/
2215: IF l_return_status = FND_API.G_RET_STS_ERROR
2216: THEN
2217: RAISE FND_API.G_EXC_ERROR;
2218: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
2219: THEN
2213: * Return if update fails for any reason *
2214: ****************************************/
2215: IF l_return_status = FND_API.G_RET_STS_ERROR
2216: THEN
2217: RAISE FND_API.G_EXC_ERROR;
2218: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
2219: THEN
2220: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2221: END IF;
2214: ****************************************/
2215: IF l_return_status = FND_API.G_RET_STS_ERROR
2216: THEN
2217: RAISE FND_API.G_EXC_ERROR;
2218: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
2219: THEN
2220: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2221: END IF;
2222:
2216: THEN
2217: RAISE FND_API.G_EXC_ERROR;
2218: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR
2219: THEN
2220: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2221: END IF;
2222:
2223: /**************************************************************************
2224: * Standard call to get message count and if count is 1, get message info. *
2228: p_count => x_msg_count,
2229: p_data => x_msg_data
2230: );
2231: EXCEPTION
2232: WHEN FND_API.G_EXC_ERROR THEN
2233: ROLLBACK TO GET_ITEM_COST_PUB;
2234: x_return_status := FND_API.G_RET_STS_ERROR ;
2235: FND_MSG_PUB.Count_And_Get
2236: (
2230: );
2231: EXCEPTION
2232: WHEN FND_API.G_EXC_ERROR THEN
2233: ROLLBACK TO GET_ITEM_COST_PUB;
2234: x_return_status := FND_API.G_RET_STS_ERROR ;
2235: FND_MSG_PUB.Count_And_Get
2236: (
2237: p_count => x_msg_count,
2238: p_data => x_msg_data
2236: (
2237: p_count => x_msg_count,
2238: p_data => x_msg_data
2239: );
2240: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2241: ROLLBACK TO GET_ITEM_COST_PUB;
2242: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2243: FND_MSG_PUB.Count_And_Get
2244: (
2238: p_data => x_msg_data
2239: );
2240: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2241: ROLLBACK TO GET_ITEM_COST_PUB;
2242: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2243: FND_MSG_PUB.Count_And_Get
2244: (
2245: p_count => x_msg_count,
2246: p_data => x_msg_data
2246: p_data => x_msg_data
2247: );
2248: WHEN OTHERS THEN
2249: ROLLBACK TO GET_ITEM_COST_PUB;
2250: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2251: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2252: THEN
2253: FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME, l_api_name);
2254: END IF;