[Home] [Help]
48: l_risk_id amw_risks_all_vl.risk_id%TYPE;
49:
50: CURSOR c_revision_exists (l_risk_id IN NUMBER) IS
51: SELECT count(*)
52: FROM amw_risks_b
53: GROUP BY risk_id
54: HAVING risk_id=l_risk_id;
55:
56: CURSOR c_approval_status (l_risk_id IN NUMBER) IS
55:
56: CURSOR c_approval_status (l_risk_id IN NUMBER) IS
57: SELECT risk_rev_id,
58: approval_status
59: FROM amw_risks_b
60: WHERE risk_id=l_risk_id AND
61: latest_revision_flag='Y';
62: l_approval_status c_approval_status%ROWTYPE;
63:
120: FETCH c_revision_exists INTO l_dummy;
121: CLOSE c_revision_exists;
122:
123: IF l_dummy IS NULL OR l_dummy < 1 THEN
124: -- no corresponding risk_id in AMW_RISKS_B is wrong
125: AMW_UTILITY_PVT.Error_Message(p_message_name => 'AMW_UNEXPECT_ERROR',
126: p_token_name => 'OBJ_TYPE',
127: p_token_value => G_OBJ_TYPE);
128: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
126: p_token_name => 'OBJ_TYPE',
127: p_token_value => G_OBJ_TYPE);
128: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
129: ELSIF l_dummy = 1 THEN
130: -- has only one record for risk_id in AMW_RISKS_B with pass-in name
131: OPEN c_approval_status(l_risk_id);
132: FETCH c_approval_status INTO l_approval_status;
133: CLOSE c_approval_status;
134:
282: l_dummy_risk_rec risk_rec_type;
283:
284: CURSOR c_draft_revision (l_risk_id IN NUMBER) IS
285: SELECT risk_rev_id
286: FROM amw_risks_b
287: WHERE risk_id = l_risk_id AND approval_status='D' AND latest_revision_flag='Y';
288:
289: BEGIN
290: -- Initialize message list if p_init_msg_list is set to TRUE.
541: FROM dual;
542:
543: CURSOR c_rev_id_exists (l_rev_id IN NUMBER) IS
544: SELECT 1
545: FROM AMW_RISKS_B
546: WHERE RISK_REV_ID = l_rev_id;
547:
548: CURSOR c_id IS
549: SELECT AMW_RISK_ID_S.NEXTVAL
550: FROM dual;
551:
552: CURSOR c_id_exists (l_id IN NUMBER) IS
553: SELECT 1
554: FROM AMW_RISKS_B
555: WHERE RISK_ID = l_id;
556:
557: BEGIN
558: -- Standard Start of API savepoint
791: l_dummy_risk_rec risk_rec_type;
792:
793: CURSOR c_target_revision (l_risk_id IN NUMBER) IS
794: SELECT risk_rev_id
795: FROM amw_risks_b
796: WHERE risk_id = l_risk_id AND approval_status='D' AND latest_revision_flag='Y';
797:
798: BEGIN
799: -- Standard Start of API savepoint
1116: CURSOR c_target_revision (l_risk_id IN NUMBER) IS
1117: SELECT risk_rev_id,
1118: risk_rev_num,
1119: object_version_number
1120: FROM amw_risks_b
1121: WHERE risk_id = l_risk_id AND ( approval_status='A' OR approval_status='R') AND latest_revision_flag='Y';
1122: target_revision c_target_revision%ROWTYPE;
1123:
1124: BEGIN
1302: -- risk_rev_id and risk_id have been checked when creating
1303: /*
1304: IF p_operate_mode = G_OP_CREATE THEN
1305: l_valid_flag := AMW_UTILITY_PVT.check_uniqueness(
1306: 'AMW_RISKS_B',
1307: 'RISK_REV_ID = ''' || p_risk_rec.RISK_REV_ID ||''''
1308: );
1309: ELSE
1310: l_valid_flag := AMW_UTILITY_PVT.check_uniqueness(
1307: 'RISK_REV_ID = ''' || p_risk_rec.RISK_REV_ID ||''''
1308: );
1309: ELSE
1310: l_valid_flag := AMW_UTILITY_PVT.check_uniqueness(
1311: 'AMW_RISKS_B',
1312: 'RISK_REV_ID = ''' || p_risk_rec.RISK_REV_ID ||
1313: ''' AND RISK_REV_ID <> ' || p_risk_rec.RISK_REV_ID
1314: );
1315: END IF;
1571: l_return_status VARCHAR2(1);
1572:
1573: CURSOR c_complete IS
1574: SELECT *
1575: FROM amw_risks_b
1576: WHERE risk_rev_id = p_risk_rec.risk_rev_id;
1577: l_risk_rec c_complete%ROWTYPE;
1578:
1579:
2158:
2159: -- c_target_risk is holding the info of target risk which is going to be updated
2160: CURSOR c_target_risk (l_risk_rev_id IN NUMBER) IS
2161: SELECT approval_status
2162: FROM amw_risks_b
2163: WHERE risk_rev_id = l_risk_rev_id;
2164: target_risk c_target_risk%ROWTYPE;
2165:
2166: CURSOR c_name_exists (l_risk_name IN VARCHAR2,l_risk_id IN NUMBER) IS
2257: IS
2258: l_api_name CONSTANT VARCHAR2(30) := 'Validate_Revise_Risk_Rec';
2259: l_dummy NUMBER;
2260:
2261: -- c_target_risk is holding the info of target risk from amw_risks_b which is going to be revised
2262: CURSOR c_target_risk (l_risk_rev_id IN NUMBER) IS
2263: SELECT approval_status
2264: FROM amw_risks_b
2265: WHERE risk_rev_id = l_risk_rev_id;
2260:
2261: -- c_target_risk is holding the info of target risk from amw_risks_b which is going to be revised
2262: CURSOR c_target_risk (l_risk_rev_id IN NUMBER) IS
2263: SELECT approval_status
2264: FROM amw_risks_b
2265: WHERE risk_rev_id = l_risk_rev_id;
2266: target_risk c_target_risk%ROWTYPE;
2267:
2268: CURSOR c_get_name (l_risk_rev_id IN NUMBER) IS
2352: l_dummy NUMBER;
2353:
2354: CURSOR c_risk_exists (l_risk_rev_id IN NUMBER) IS
2355: SELECT 1
2356: FROM amw_risks_b
2357: WHERE risk_rev_id = l_risk_rev_id;
2358:
2359: BEGIN
2360: AMW_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
2440: -- find the target revision (previous latest approved one)
2441: l_target_risk_rev_id NUMBER;
2442: CURSOR c_target_revision (l_risk_rev_id IN NUMBER) IS
2443: SELECT risk_rev_id
2444: FROM amw_risks_b
2445: WHERE risk_id = (
2446: SELECT r.risk_id
2447: FROM amw_risks_b r
2448: WHERE r.risk_rev_id = l_risk_rev_id
2443: SELECT risk_rev_id
2444: FROM amw_risks_b
2445: WHERE risk_id = (
2446: SELECT r.risk_id
2447: FROM amw_risks_b r
2448: WHERE r.risk_rev_id = l_risk_rev_id
2449: )
2450: AND curr_approved_flag='Y';
2451:
2470: CLOSE c_target_revision;
2471:
2472: IF (l_target_risk_rev_id IS NOT NULL) THEN
2473: -- update the previous latest approved revision of specified risk
2474: update amw_risks_b
2475: set curr_approved_flag='N'
2476: ,latest_revision_flag ='N'
2477: ,last_update_date=l_date
2478: ,last_updated_by=G_USER_ID
2481: where risk_rev_id = l_target_risk_rev_id;
2482: END IF; -- end of if: _target_risk_rev_id IS NOT NULL
2483:
2484: -- approve the specified risk by risk_rev_id
2485: update amw_risks_b
2486: set approval_status='A'
2487: ,curr_approved_flag='Y'
2488: ,latest_revision_flag ='Y'
2489: ,approval_date=l_date