The following lines contain the word 'select', 'insert', 'update' or 'delete':
,p_operation => 'INSERT'
,x_header_rec => l_header_rec
,x_dtl_tbl => l_dtl_tbl
,x_user_id => l_user_id
,x_brdn_factor_tbl => l_brdn_factor_tbl
,x_return_status => l_return_status
) ;
log_msg('Calling private API to insert record...');
PROCEDURE Update_Burden_Details
(
p_api_version IN NUMBER ,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE ,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY VARCHAR2 ,
x_msg_data OUT NOCOPY VARCHAR2 ,
p_header_rec IN Burden_Header_Rec_Type ,
p_dtl_tbl IN Burden_Dtl_Tbl_Type
)
IS
l_api_name CONSTANT VARCHAR2(30) := 'Update_Burden_Details' ;
SAVEPOINT Update_Burden_Details_PUB;
log_msg('Beginning Update Burden Details Definition process.');
,p_operation => 'UPDATE'
,x_header_rec => l_header_rec
,x_dtl_tbl => l_dtl_tbl
,x_user_id => l_user_id
,x_brdn_factor_tbl => l_brdn_factor_tbl
,x_return_status => l_return_status
) ;
log_msg('Calling private API to update records...');
GMF_BurdenDetails_PVT.Update_Burden_Details
(
p_api_version => 2.0
, p_init_msg_list => FND_API.G_FALSE
, p_commit => FND_API.G_FALSE
, x_return_status => l_return_status
, x_msg_count => l_count
, x_msg_data => l_data
, p_header_rec => l_header_rec
, p_dtl_tbl => l_dtl_tbl
, p_user_id => l_user_id
, p_burden_factor_tbl => l_brdn_factor_tbl
);
ROLLBACK TO Update_Burden_Details_PUB;
ROLLBACK TO Update_Burden_Details_PUB;
ROLLBACK TO Update_Burden_Details_PUB;
END Update_Burden_Details ;
PROCEDURE Delete_Burden_Details
(
p_api_version IN NUMBER ,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE ,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY VARCHAR2 ,
x_msg_data OUT NOCOPY VARCHAR2 ,
p_header_rec IN Burden_Header_Rec_Type ,
p_dtl_tbl IN Burden_Dtl_Tbl_Type
)
IS
l_api_name CONSTANT VARCHAR2(30) := 'Delete_Burden_Details' ;
SAVEPOINT Delete_Burden_Details_PUB;
log_msg('Beginning Delete Burden Details process.');
,p_operation => 'DELETE'
,x_header_rec => l_header_rec
,x_dtl_tbl => l_dtl_tbl
,x_user_id => l_user_id
,x_brdn_factor_tbl => l_brdn_factor_tbl
,x_return_status => l_return_status
) ;
log_msg('Calling private API to delete records...');
GMF_BurdenDetails_PVT.Update_Burden_Details
(
p_api_version => 2.0
, p_init_msg_list => FND_API.G_FALSE
, p_commit => FND_API.G_FALSE
, x_return_status => l_return_status
, x_msg_count => l_count
, x_msg_data => l_data
, p_header_rec => l_header_rec
, p_dtl_tbl => l_dtl_tbl
, p_user_id => l_user_id
, p_burden_factor_tbl => l_brdn_factor_tbl
);
ROLLBACK TO Delete_Burden_Details_PUB;
ROLLBACK TO Delete_Burden_Details_PUB;
ROLLBACK TO Delete_Burden_Details_PUB;
END Delete_Burden_Details ;
x_dtl_tbl.delete ;
x_brdn_factor_tbl.delete ;
SELECT Primary_uom_code INTO l_act_item_uom
FROM mtl_system_items_b
WHERE inventory_item_id = nvl(p_header_rec.inventory_item_id,x_header_rec.inventory_item_id)
AND organization_id = nvl(p_header_rec.organization_id,x_header_rec.organization_id);
IF ((p_operation = 'DELETE') AND
((p_dtl_tbl(i).burdenline_id <> FND_API.G_MISS_NUM) OR (p_dtl_tbl(i).burdenline_id IS NOT NULL))
) THEN
add_header_to_error_stack(p_header_rec); -- Bug 2659435
IF ((p_operation = 'UPDATE') AND
((p_dtl_tbl(i).burdenline_id <> FND_API.G_MISS_NUM) OR
(p_dtl_tbl(i).burdenline_id IS NOT NULL))
) THEN
l_burdenline_id := p_dtl_tbl(i).burdenline_id;
SELECT resources, burden_qty, burden_usage, burden_uom, item_qty, item_uom
INTO l_resources, l_burden_qty, l_burden_usage, l_burden_uom, l_item_qty, l_item_uom
FROM cm_brdn_dtl
WHERE burdenline_id = l_burdenline_id;
IF (p_operation = 'UPDATE') THEN
--
-- Bug 2681243: added new elsif block. For updates when burdenline_id is
-- passed retrieve all burden details to use later in the program for
-- UOM conversions.
--
BEGIN
SELECT resources, burden_qty, burden_usage, burden_uom, item_qty, item_uom
INTO l_resources, l_burden_qty, l_burden_usage, l_burden_uom, l_item_qty, l_item_uom
FROM
cm_brdn_dtl
WHERE
organization_id = x_header_rec.organization_id
AND inventory_item_id = x_header_rec.inventory_item_id
AND period_id = x_header_rec.period_id
AND cost_type_id = x_header_rec.cost_type_id
AND resources = l_resources
AND cost_cmpntcls_id = l_cost_cmpntcls_id
AND cost_analysis_code = p_dtl_tbl(i).cost_analysis_code ;
IF (p_operation <> 'DELETE') THEN
--
-- Burden Usage
-- Burden Usage should be > 0
-- In the form the format mask for this is : 999999999D999999999(999,999,999.999999999)
-- To put that check here, the cost should not be >= 1,000,000,000
--
IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN -- Bug 2659435
log_msg('validating Burden Usage : '||p_dtl_tbl(i).burden_usage);
p_operation = 'UPDATE') OR
(p_operation = 'INSERT') THEN
add_header_to_error_stack(p_header_rec); -- Bug 2659435
p_operation = 'UPDATE') OR
(p_operation = 'INSERT') THEN
add_header_to_error_stack(p_header_rec); -- Bug 2659435
p_operation = 'UPDATE') OR
(p_operation = 'INSERT') THEN
add_header_to_error_stack(p_header_rec); -- Bug 2659435
IF ((p_operation = 'INSERT') OR
( (p_operation = 'UPDATE') AND
(p_dtl_tbl(i).burden_qty IS NOT NULL OR
p_dtl_tbl(i).burden_usage IS NOT NULL OR
p_dtl_tbl(i).burden_uom IS NOT NULL OR
p_dtl_tbl(i).item_qty IS NOT NULL OR
p_dtl_tbl(i).item_uom IS NOT NULL)
)
) THEN
-- Convert item quantity actual item UOM
IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN -- Bug 2659435
log_msg('Converting Item Qty ' || l_item_qty ||
' from UOM ' || l_item_uom || ' to UOM ' || l_act_item_uom ||
' for Item_Id : ' || x_header_rec.inventory_item_id);
p_operation = 'UPDATE') OR
(p_operation = 'INSERT') THEN
add_header_to_error_stack(p_header_rec); -- Bug 2659435
p_operation = 'UPDATE') OR
(p_operation = 'INSERT') THEN
add_header_to_error_stack(p_header_rec); -- Bug 2659435
log_msg('validating delete_mark('||i||') :' ||
p_dtl_tbl(i).delete_mark);
IF (p_dtl_tbl(i).delete_mark <> FND_API.G_MISS_NUM) AND
(p_dtl_tbl(i).delete_mark IS NOT NULL) THEN
IF p_dtl_tbl(i).delete_mark NOT IN (0,1) THEN
add_header_to_error_stack(p_header_rec); -- Bug 2659435
FND_MESSAGE.SET_NAME('GMF','GMF_API_INVALID_DELETE_MARK');
FND_MESSAGE.SET_TOKEN('DELETE_MARK',p_dtl_tbl(i).delete_mark);
ELSIF (p_dtl_tbl(i).delete_mark = FND_API.G_MISS_NUM AND -- Bug 2659435
p_operation = 'UPDATE') OR
(p_operation = 'INSERT') THEN
add_header_to_error_stack(p_header_rec); -- Bug 2659435
FND_MESSAGE.SET_NAME('GMF','GMF_API_DELETE_MARK_REQ');
IF ((p_operation = 'UPDATE') AND (p_dtl_tbl(i).delete_mark = 1)) THEN
add_header_to_error_stack(p_header_rec); -- Bug 2659435
END IF ; -- check for delete to eliminate unneccessary validations.
IF ((p_operation = 'UPDATE') AND
((p_dtl_tbl(i).burdenline_id <> FND_API.G_MISS_NUM) OR (p_dtl_tbl(i).burdenline_id IS NOT NULL))
) THEN
add_header_to_error_stack(p_header_rec); -- Bug 2659435
END IF ; -- Main if(after for loop stmt) to check for delete operation and check for burdenline_id.
IF p_operation in ('INSERT', 'UPDATE') THEN
x_dtl_tbl(l_idx).delete_mark := 0 ;
x_dtl_tbl(l_idx).delete_mark := 1 ;
log_msg('x_delete_mark('||l_idx||'): '||x_dtl_tbl(l_idx).delete_mark);