涂煌豪
2022-03-18 fbf3ce2885477fd0dfbd8ec6b490636dc0f680dc
force-app/main/default/triggers/Repair.trigger
@@ -18,9 +18,11 @@
    //wangweipeng  20210727   end
    if ((Trigger.isAfter && Trigger.isInsert) || (Trigger.isAfter && Trigger.isUpdate) || (Trigger.isAfter && Trigger.isDelete)) {
        NFM103Controller.NFM103Trigger(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
        NFM603Controller.NFM603Trigger(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
        RepairTrigger.UpdateAssert(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
        if(!(System.isFuture()||System.isBatch())){// Add By Lijun 20220303 to avoid mutiple execute
            NFM103Controller.NFM103Trigger(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
            NFM603Controller.NFM603Trigger(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
            RepairTrigger.UpdateAssert(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
        }
    }
    // ----------------------------------------------------------------------
    // ここより、修理のサービスコントラクト項目を自動的に更新するロジック
@@ -66,8 +68,17 @@
            boolean defaultFlag = true;
            //add     wangweipeng               2021/12/09          end
            // 草案中修理だけ更新
             // GZW 特殊处理 跳过维修中心自动赋值,以手选为准 start
            // 判断条件追加   && repair.Exc_work_location__c == false
            if(repair.Exc_work_location__c){
                defaultFlag = false;
            }
            // GZW 特殊处理 跳过维修中心自动赋值,以手选为准 start
            if ((repair.Status__c == '草案中' || String.isBlank(repair.Status__c)) == false) {
                if (Trigger.isUpdate && repair.SAP_Transfer_time__c == null) {
                // if (Trigger.isUpdate && repair.SAP_Transfer_time__c == null) {
                if (Trigger.isUpdate && repair.SAP_Transfer_time__c == null && repair.Exc_work_location__c == false) {
                    repair = RepairTrigger.updateWorkLocationSelect(repair, null);
                    defaultFlag = false;
                }
@@ -79,7 +90,8 @@
            Boolean needsetnull = true;
            System.debug( '-----:自动带出维修合同11111' + middleTableList);
            if (middleTableList == null) {
            // if (middleTableList == null) {
            if (middleTableList == null  && repair.Exc_work_location__c == false) {
                if ((repair.NewProductGuarante_Txt__c == '2: 多年保修'
                        || repair.NewProductGuarante_Txt__c == '2: 服务多年保修'
                        || repair.NewProductGuarante_Txt__c == '8: 市场多年保修')
@@ -114,7 +126,8 @@
                            repair.repairPlace__c = middleTable.Maintenance_Contract__r.SalesOfficeCode_selection__c;
                            //新增逻辑 HWAG-BKP5FB 精琢科技 2020/03/19 Start
                            //wangweipeng   发生数据到SAP以后,修理的维修中心不能做修改
                            if(repair.SAP_Transfer_time__c == null){
                            // if(repair.SAP_Transfer_time__c == null){
                            if(repair.SAP_Transfer_time__c == null  && repair.Exc_work_location__c == false){
                                repair = RepairTrigger.updateWorkLocationSelect(repair, middleTable);    
                                defaultFlag = false;
                            }
@@ -159,7 +172,8 @@
            // Boolean needsetnull = true;
            System.debug( '-----:自动带出虚拟维修合同');
            System.debug( '-----:自动带出虚拟维修合同' + middleTableVMList);
            if (middleTableVMList == null) {
            // if (middleTableVMList == null) {
            if (middleTableVMList == null  && repair.Exc_work_location__c == false) {
                if ((repair.NewProductGuarante_Txt__c == '2: 多年保修'
                        || repair.NewProductGuarante_Txt__c == '2: 服务多年保修'
                        || repair.NewProductGuarante_Txt__c == '8: 市场多年保修')
@@ -180,7 +194,8 @@
                        repair.VM_Maintenance_Contract__c = middleTable.Maintenance_Contract__c;
                        needsetnull = false;
                        //新增逻辑 SLIU-BMMDWK 精琢科技 2020/03/17 Start
                        if (repair.VM_Maintenance_Contract__c != null) {
                        // if (repair.VM_Maintenance_Contract__c != null) {
                        if (repair.VM_Maintenance_Contract__c != null  && repair.Exc_work_location__c == false) {
                            repair = RepairTrigger.updateWorkLocationSelect(repair, middleTable);
                            defaultFlag = false;
                        }
@@ -258,6 +273,9 @@
                /****************************************************************************************************/
            }
        }
        //先款后修-修理增加先款标识 thh 20220318 start
        RepairTrigger.AdvancePaymentFlagUpsert(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
        //先款后修-修理增加先款标识 thh 20220318 end
    }
    // ----------------------------------------------------------------------
    // ここまで、サービスコントラクト項目を自動的に更新するロジック