[Home] [Help]
1: Package BODY Csd_Repairs_Util AS
2: /* $Header: csdxutlb.pls 120.14.12010000.5 2008/12/19 02:00:27 swai ship $ */
3: --
4: -- Package name : CSD_REPAIRS_UTIL
5: -- Purpose : This package contains utility programs for the Depot
1: Package BODY Csd_Repairs_Util AS
2: /* $Header: csdxutlb.pls 120.14.12010000.5 2008/12/19 02:00:27 swai ship $ */
3: --
4: -- Package name : CSD_REPAIRS_UTIL
5: -- Purpose : This package contains utility programs for the Depot
6: -- Repair module. Access is restricted to Oracle Depot
7: -- Repair Internal Development.
8: -- History :
19: -- 120.2 07/13/05 vparvath Added utility proc for webservice
20: --
21: -- NOTE :
22: --
23: G_PKG_NAME CONSTANT VARCHAR2(30) := 'CSD_REPAIRS_UTIL';
24: G_FILE_NAME CONSTANT VARCHAR2(12) := 'csdxutlb.pls';
25: g_debug NUMBER := Csd_Gen_Utility_Pvt.g_debug_level;
26:
27: procedure debug( l_msg in varchar2)
99:
100: FUNCTION Is_DescFlex_Valid
101: ( p_api_name IN VARCHAR2,
102: p_desc_flex_name IN VARCHAR2,
103: p_attr_values IN OUT NOCOPY CSD_REPAIRS_UTIL.DEF_Rec_Type,
104: -- bug#7151536, subhat.
105: p_validate_only IN VARCHAR2 := FND_API.G_TRUE
106: ) RETURN BOOLEAN IS
107: --
175: end if;
176: l_return_status := FALSE;
177: -- bug#7043215, subhat
178: -- added else to populate the derived/validated value to the global collection
179: -- Note: In case any new columns are added to CSD_REPAIRS DFF, they need to be added here too.
180: else
181: -- populate the out rec only if its in create mode.
182: if l_values_or_ids = 'V' then
183: l_segment_count := fnd_flex_descval.segment_count;
337: p_RO_PRIORITY_CODE IN VARCHAR2 := Fnd_Api.G_MISS_CHAR, -- swai: R12
338: p_RESOLVE_BY_DATE IN DATE := Fnd_Api.G_MISS_DATE, -- rfieldma: 5355051
339: p_BULLETIN_CHECK_DATE IN DATE := Fnd_Api.G_MISS_DATE,
340: p_ESCALATION_CODE IN VARCHAR2 := Fnd_Api.G_MISS_CHAR,
341: x_Repln_Rec OUT NOCOPY Csd_Repairs_Pub.Repln_Rec_Type
342: ) IS
343: --
344: BEGIN
345:
460: p_attribute27 IN VARCHAR2 := FND_API.G_MISS_CHAR,
461: p_attribute28 IN VARCHAR2 := FND_API.G_MISS_CHAR,
462: p_attribute29 IN VARCHAR2 := FND_API.G_MISS_CHAR,
463: p_attribute30 IN VARCHAR2 := FND_API.G_MISS_CHAR,
464: x_DEF_Rec OUT NOCOPY Csd_Repairs_Util.DEF_Rec_Type
465: ) IS
466: --
467: BEGIN
468: --
758: AND wip_entity_id IS NULL;
759:
760: -- Cursor to get the repair mode
761: CURSOR repair_details_cur IS
762: SELECT repair_mode FROM csd_repairs
763: WHERE repair_line_id = p_repair_line_id;
764:
765:
766:
770: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
771: l_debug_level := Fnd_Log.G_CURRENT_RUNTIME_LEVEL;
772:
773: IF (Fnd_Log.LEVEL_PROCEDURE >= l_debug_level) THEN
774: Fnd_Log.STRING (Fnd_Log.LEVEL_PROCEDURE, 'csd.plsql.csd_repairs_util.check_task_n_wipjob.begin',
775: '-------------Entered check_task_n_wipjob----------------');
776: END IF;
777:
778:
792: ****/
793: IF( p_repair_status = C_CLOSED_STATUS) THEN
794:
795: IF (Fnd_Log.LEVEL_EVENT >= l_debug_level) THEN
796: Fnd_Log.STRING (Fnd_Log.LEVEL_EVENT, 'csd.plsql.csd_repairs_util.check_task_n_wipjob',
797: '-------------status is being changed to close,ro['||p_repair_line_id||']-----');
798: END IF;
799:
800: IF (l_repair_mode = C_WIP_MODE) THEN
799:
800: IF (l_repair_mode = C_WIP_MODE) THEN
801:
802: IF (Fnd_Log.LEVEL_STATEMENT >= l_debug_level) THEN
803: Fnd_Log.STRING (Fnd_Log.LEVEL_STATEMENT, 'csd.plsql.csd_repairs_util.check_task_n_wipjob',
804: '-------------checking for open jobs---------------');
805: END IF;
806:
807: OPEN wipjob_cur;
808: FETCH wipjob_cur INTO l_tmp_char;
809: IF(wipjob_cur%NOTFOUND) THEN
810: CLOSE wipjob_cur;
811: IF (Fnd_Log.LEVEL_STATEMENT >= l_debug_level) THEN
812: Fnd_Log.STRING (Fnd_Log.LEVEL_STATEMENT, 'csd.plsql.csd_repairs_util.check_task_n_wipjob',
813: '-------------there are open jobs---------------');
814: END IF;
815: Fnd_Message.set_name('CSD', 'CSD_API_OPEN_WIP_JOBS');
816: Fnd_Msg_Pub.ADD;
819: CLOSE wipjob_cur;
820: ELSIF (l_repair_mode = C_TASK_MODE) THEN
821:
822: IF (Fnd_Log.LEVEL_STATEMENT >= l_debug_level) THEN
823: Fnd_Log.STRING (Fnd_Log.LEVEL_STATEMENT, 'csd.plsql.csd_repairs_util.check_task_n_wipjob',
824: '-------------checking for open tasks---------------');
825: END IF;
826:
827: OPEN task_cur;
828: FETCH task_cur INTO l_tmp_char;
829: IF(task_cur%NOTFOUND) THEN
830: CLOSE task_cur;
831: IF (Fnd_Log.LEVEL_STATEMENT >= l_debug_level) THEN
832: Fnd_Log.STRING (Fnd_Log.LEVEL_STATEMENT, 'csd.plsql.csd_repairs_util.check_task_n_wipjob',
833: '-------------there are open tasks---------------');
834: END IF;
835: Fnd_Message.set_name('CSD', 'CSD_API_OPEN_TASKS');
836: Fnd_Msg_Pub.ADD;
840: END IF;
841: END IF;
842:
843: IF (Fnd_Log.level_procedure >= l_debug_level) THEN
844: Fnd_Log.STRING (Fnd_Log.level_procedure, 'csd.plsql.csd_repairs_util.check_task_n_wipjob.end',
845: '-------------Leaving check_task_n_wipjob----------------');
846: END IF;
847:
848: EXCEPTION
850: x_return_status := Fnd_Api.G_RET_STS_ERROR ;
851: Fnd_Msg_Pub.Count_And_Get (p_count => x_msg_count, p_data => x_msg_data);
852: IF ( Fnd_Log.LEVEL_ERROR >= Fnd_Log.G_CURRENT_RUNTIME_LEVEL ) THEN
853: Fnd_Log.STRING(Fnd_Log.LEVEL_ERROR,
854: 'csd.plsql.csd_repairs_util.check_task_n_wipjob',
855: 'EXC_ERROR ['||x_msg_data||']');
856: END IF;
857:
858: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
859: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR ;
860: Fnd_Msg_Pub.Count_And_Get (p_count => x_msg_count, p_data => x_msg_data );
861: IF ( Fnd_Log.LEVEL_EXCEPTION >= Fnd_Log.G_CURRENT_RUNTIME_LEVEL ) THEN
862: Fnd_Log.STRING(Fnd_Log.LEVEL_EXCEPTION,
863: 'csd.plsql.csd_repairs_util.check_task_n_wipjob',
864: 'EXC_UNEXPECTED_ERROR ['||x_msg_data||']');
865: END IF;
866:
867: WHEN OTHERS THEN
873: Fnd_Msg_Pub.Count_And_Get (p_count => x_msg_count, p_data => x_msg_data );
874:
875: IF ( Fnd_Log.LEVEL_EXCEPTION >= Fnd_Log.G_CURRENT_RUNTIME_LEVEL ) THEN
876: Fnd_Log.STRING(Fnd_Log.LEVEL_EXCEPTION,
877: 'csd.plsql.csd_repairs_util.check_task_n_wipjob',
878: 'SQL Message ['||SQLERRM||']');
879: END IF;
880:
881:
887: -- Type : Private
888: -- Pre-Req : None
889: -- Parameters:
890: -- IN
891: -- p_status_rec IN CSD_REPAIRS_PUB.REPAIR_STATUS_REC_TYPE ,
892: -- OUT
893: -- x_status_rec OUT CSD_REPAIRS_PUB.REPAIR_STATUS_REC_TYPE ,
894: -- x_return_status
895: --
889: -- Parameters:
890: -- IN
891: -- p_status_rec IN CSD_REPAIRS_PUB.REPAIR_STATUS_REC_TYPE ,
892: -- OUT
893: -- x_status_rec OUT CSD_REPAIRS_PUB.REPAIR_STATUS_REC_TYPE ,
894: -- x_return_status
895: --
896: -- Version : Current version 1.0
897: -- Initial Version 1.0
899: -- Description : Converts value to Ids in the input repair status record.
900: --
901: -- ***********************************************************
902:
903: PROCEDURE Convert_status_Val_to_Id(p_repair_status_rec IN Csd_Repairs_Pub.REPAIR_STATUS_REC_TYPE,
904: x_repair_status_rec OUT NOCOPY Csd_Repairs_Pub.REPAIR_STATUS_REC_TYPE,
905: x_return_status OUT NOCOPY VARCHAR2)
906: IS
907: l_debug_level NUMBER;
900: --
901: -- ***********************************************************
902:
903: PROCEDURE Convert_status_Val_to_Id(p_repair_status_rec IN Csd_Repairs_Pub.REPAIR_STATUS_REC_TYPE,
904: x_repair_status_rec OUT NOCOPY Csd_Repairs_Pub.REPAIR_STATUS_REC_TYPE,
905: x_return_status OUT NOCOPY VARCHAR2)
906: IS
907: l_debug_level NUMBER;
908:
908:
909: --Value to id conversion cursor
910: CURSOR repair_id_conv_cur(p_repair_number VARCHAR2) IS
911: SELECT REPAIR_LINE_ID
912: FROM CSD_REPAIRS
913: WHERE repair_number = p_repair_number;
914:
915: -- Get status_id from status_Code
916: CURSOR flow_stat_cur(p_repair_status VARCHAR2) IS
926: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
927: l_debug_level := Fnd_Log.G_CURRENT_RUNTIME_LEVEL;
928:
929: IF (Fnd_Log.LEVEL_PROCEDURE >= l_debug_level) THEN
930: Fnd_Log.STRING (Fnd_Log.LEVEL_PROCEDURE, 'csd.plsql.csd_repairs_util.Convert_Status_val_to_Id.begin',
931: '-------------Entered Convert_Status_val_to_Id----------------');
932: END IF;
933:
934:
1000:
1001:
1002:
1003: IF (Fnd_Log.level_procedure >= l_debug_level) THEN
1004: Fnd_Log.STRING (Fnd_Log.level_procedure, 'csd.plsql.csd_repairs_util.Convert_Status_Val_to_Id.end',
1005: '-------------Leaving Convert_Status_Val_to_Id----------------');
1006: END IF;
1007:
1008: END Convert_status_Val_to_Id;
1084: ELSE
1085: IF(l_predicate IS NOT NULL AND l_predicate <> '(1=1)') THEN
1086:
1087: debug('forming sql str');
1088: l_sql_str := 'Select ''x'' from csd_repairs ro '
1089: || ' Where ro.repair_line_id = :1 and '
1090: || l_predicate ;
1091:
1092: debug('l_sql before['||l_sql_str||']');
1130: p_table_alias => l_table_alias );
1131:
1132: IF(l_predicate IS NULL OR l_predicate <> '(1=1)') THEN
1133:
1134: l_sql_str := ' Select ''x'' from csd_repairs_v ro, csd_product_txns_v prd, '
1135: + ' cs_estimate_details csd Where ro.repair_line_id = :1'
1136: + ' And prd.repair_line_id = ro.repair_line_id '
1137: + ' And prd.action_code = :2 '
1138: + ' And prd.action_type = :3 '
1174: p_table_alias => l_table_alias );
1175:
1176: IF(l_predicate IS NULL OR l_predicate <> '(1=1)') THEN
1177:
1178: l_sql_str := ' Select ''x'' from csd_repairs_v ro, csd_product_txns_v prd, '
1179: + ' cs_estimate_details csd Where ro.repair_line_id = :1'
1180: + ' And prd.repair_line_id = ro.repair_line_id '
1181: + ' And prd.action_code = :2 '
1182: + ' And prd.action_type = :3 '
1304: savepoint CHANGE_ITEM_IB_OWNER;
1305:
1306: if (fnd_log.level_procedure >= fnd_log.g_current_runtime_level) then
1307: fnd_log.STRING (fnd_log.level_procedure,
1308: 'CSD.PLSQL.CSD_REPAIRS_UTIL.CHANGE_ITEM_IB_OWNER.BEGIN',
1309: 'Enter - Change Item IB Owner');
1310: end if;
1311:
1312: -- Initialize API return status to success
1451: COMMIT WORK;
1452:
1453: If (fnd_log.level_procedure >= fnd_log.g_current_runtime_level) then
1454: fnd_log.STRING (fnd_log.level_procedure,
1455: 'CSD.PLSQL.CSD_REPAIRS_UTIL.CHANGE_ITEM_IB_OWNER.END',
1456: 'Exit - Change Item IB Owner');
1457: End if;
1458:
1459: EXCEPTION
1553: x_msg_data OUT NOCOPY VARCHAR2,
1554: x_resolve_by_date OUT NOCOPY DATE
1555: ) IS
1556: -- define constants
1557: lc_api_name CONSTANT VARCHAR2(50) := 'csd_repairs_util.get_contract_resolve_by_date';
1558:
1559: -- define variables
1560: l_server_timezone_id NUMBER;
1561:
1732: l_repair_type_id number;
1733: l_object_version_number number;
1734: lc_log_level number := fnd_log.g_current_runtime_level;
1735: lc_procedure_level number := fnd_log.level_procedure;
1736: lc_mod_name varchar2(100) := 'csd.plsql.csd_repairs_util.auto_update_ro_status';
1737: lc_api_version_number number := 1.0;
1738: lc_api_name varchar2(60) := 'auto_update_ro_status';
1739: l_un_rcvd_lines_exists varchar2(3);
1740:
1823: cr.object_version_number
1824: into l_from_flow_status_id,
1825: l_repair_type_id,
1826: l_object_version_number
1827: from csd_repairs cr
1828: where cr.repair_line_id = p_repair_line_id;
1829: exception
1830: when no_data_found then
1831: -- should never get in here.
1845: end if;
1846: end if;
1847: -- call the update flow status API to update the RO status.
1848: if lc_log_level >= lc_procedure_level then
1849: fnd_log.string(lc_log_level,lc_mod_name,'calling csd_repairs_pvt.update_flow_status API');
1850: end if;
1851:
1852: csd_repairs_pvt.update_flow_status(p_api_version => 1,
1853: p_commit => fnd_api.g_false,
1848: if lc_log_level >= lc_procedure_level then
1849: fnd_log.string(lc_log_level,lc_mod_name,'calling csd_repairs_pvt.update_flow_status API');
1850: end if;
1851:
1852: csd_repairs_pvt.update_flow_status(p_api_version => 1,
1853: p_commit => fnd_api.g_false,
1854: p_init_msg_list => fnd_api.g_false,
1855: p_validation_level => fnd_api.g_valid_level_full,
1856: x_return_status => x_return_status,
1866: p_object_version_number => l_object_version_number,
1867: x_object_version_number => x_object_version_number );
1868: if x_return_status <> fnd_api.g_ret_sts_success then
1869: if lc_log_level >= lc_procedure_level then
1870: fnd_log.string(lc_log_level,lc_mod_name,'Error in csd_repairs_pvt.update_flow_status
1871: ['||x_msg_data||']');
1872: end if;
1873:
1874: if p_validation_level = fnd_api.g_valid_level_full then
1902: -- Type : Private
1903: -- Pre-Req : None
1904: -- Parameters:
1905: -- IN OUT required?
1906: -- px_repln_rec in out nocopy CSD_REPAIRS_PUB.REPLN_REC_TYPE Y
1907: --
1908: -- Version : Current version 1.0
1909: -- Initial Version 1.0
1910: --
1928: PROCEDURE DEFAULT_RO_ATTRS_FROM_RULE (
1929: p_api_version in number,
1930: p_commit in varchar2,
1931: p_init_msg_list in varchar2,
1932: px_repln_rec in out nocopy csd_repairs_pub.repln_rec_type,
1933: x_return_status out nocopy varchar2,
1934: x_msg_count out nocopy number,
1935: x_msg_data out nocopy varchar2)
1936: IS
1964: l_repair_mode VARCHAR2(30) := ''; -- repair mode display name
1965: l_auto_process_rma VARCHAR2(30) := '';
1966: lc_log_level number := fnd_log.g_current_runtime_level;
1967: lc_procedure_level number := fnd_log.level_procedure;
1968: lc_mod_name varchar2(100) := 'csd.plsql.csd_repairs_util.default_ro_attrs_from_rule';
1969: lc_api_version_number number := 1.0;
1970: lc_api_name varchar2(60) := 'default_ro_attrs_from_rule';
1971:
1972: BEGIN
2211: (p_count => x_msg_count,
2212: p_data => x_msg_data );
2213: END DEFAULT_RO_ATTRS_FROM_RULE;
2214:
2215: END Csd_Repairs_Util;