From fb04e7c01d119c60632b4298d18fd93f3ccb3d79 Mon Sep 17 00:00:00 2001 From: Li Jun <buli@deloitte.com.cn> Date: 星期三, 06 四月 2022 10:32:05 +0800 Subject: [PATCH] 20220405DeployProduction --- force-app/main/default/triggers/Repair.trigger | 1301 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 976 insertions(+), 325 deletions(-) diff --git a/force-app/main/default/triggers/Repair.trigger b/force-app/main/default/triggers/Repair.trigger index cc50c6d..af40fcd 100644 --- a/force-app/main/default/triggers/Repair.trigger +++ b/force-app/main/default/triggers/Repair.trigger @@ -1,358 +1,1009 @@ trigger Repair on Repair__c (before insert, after insert, before update, after update, after delete, before delete) { - RepairHandler handler = new RepairHandler(); - handler.run(); - System.debug( '-----: trigger start'); - if ( Trigger.isBefore && Trigger.isUpdate) { - RepairTrigger.CheckUpdate(Trigger.old, Trigger.newMap); - } - - // ---------------------------------------------------------------------- - // wangweipeng 20210727 start - // 鏂板淇悊鏃讹紝濡傛灉鐩磋繑鏀惰揣鍦板潃鐨勪俊鎭兘涓虹┖锛岄偅涔堝氨鏍规嵁鍖婚櫌鐨� OCSM绠$悊鐪�(鏂囨湰) 瀛楁鏉ュ尮閰嶅湴鍧�琛ㄩ噷 鐪佸拰甯傚瓧娈� - // 濡傛灉鑳藉尮閰嶅埌閭d箞榛樿鏄繖鏉℃柊澧炵殑淇悊鏀惰揣鍦板潃 - // ---------------------------------------------------------------------- - if ( Trigger.isBefore && Trigger.isInsert) { - RepairBeforeInsertHandler ribt = new RepairBeforeInsertHandler(); - ribt.beforeInsertValue(Trigger.new,Trigger.old); - } - //wangweipeng 20210727 end - - if ((Trigger.isAfter && Trigger.isInsert) || (Trigger.isAfter && Trigger.isUpdate) || (Trigger.isAfter && Trigger.isDelete)) { - // 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); - // } - } - // ---------------------------------------------------------------------- - // 銇撱亾銈堛倞銆佷慨鐞嗐伄銈点兗銉撱偣銈炽兂銉堛儵銈儓闋呯洰銈掕嚜鍕曠殑銇洿鏂般仚銈嬨儹銈搞儍銈� - // ---------------------------------------------------------------------- - if ( Trigger.isBefore && (Trigger.isInsert || Trigger.isUpdate)) { - //鍏堟鍚庝慨-淇悊澧炲姞鍏堟鏍囪瘑 thh 20220322 start - RepairTrigger.AdvancePaymentFlagUpsert(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); - //鍏堟鍚庝慨-淇悊澧炲姞鍏堟鏍囪瘑 thh 20220322 end - - // 绱嶅叆姗熷櫒ID銈掍竴鎰忋伀鏍肩磵銇欍倠 Set銇с仚銆� - Set<ID> assetIds = new Set<Id>(); - - // 绱嶅叆姗熷櫒銇竴鎰忋伄ID銈掑緱銈� - for ( Repair__c repair : Trigger.New) { - if (String.isBlank(repair.Delivered_Product__c) == false) assetIds.add( repair.Delivered_Product__c); + if(Test.isRunningTest()||UserInfo.getUserId()!=System.Label.ByPassTrigger){ + RepairHandler handler = new RepairHandler(); + handler.run(); + System.debug( '-----: trigger start'); + test(); + if ( Trigger.isBefore && Trigger.isUpdate) { + RepairTrigger.CheckUpdate(Trigger.old, Trigger.newMap); } - // 鏈夊姽銇偟銉笺儞銈瑰绱勩伄 Map銈掑緱銈� - // arg1銇磵鍏ユ鍣ㄣ伄ID, arg2銇磵鍏ユ鍣ㄣ伄ID銇偟銉笺儞銈瑰绱勪竴瑕� - // 鍖哄垎铏氭嫙缁翠慨鍚堝悓鍜屾甯哥淮淇悎鍚� - // 姝e父缁翠慨鍚堝悓淇濇湁璁惧闆嗗悎 - Map<Id, List<Maintenance_Contract_Asset__c>> effectiveContracts = new Map<Id, List<Maintenance_Contract_Asset__c>>(); - // 铏氭嫙缁翠慨鍚堝悓淇濇湁璁惧闆嗗悎 - Map<Id, List<Maintenance_Contract_Asset__c>> effectiveContractsVM = new Map<Id, List<Maintenance_Contract_Asset__c>>(); - List<Maintenance_Contract_Asset__c> contracts = OncallFinalStatusManager.selectMaintenance_Contract_Asset_List(assetIds); - for (Maintenance_Contract_Asset__c local : contracts) { - if (local.Maintenance_Contract__r.RecordType.DeveloperName == 'VM_Contract') { - List<Maintenance_Contract_Asset__c> middleTableVMList = effectiveContractsVM.get(local.Asset__c); - if (middleTableVMList == null) { - middleTableVMList = new List<Maintenance_Contract_Asset__c>(); - effectiveContractsVM.put(local.Asset__c, middleTableVMList); - } - middleTableVMList.add(local); - } else { - List<Maintenance_Contract_Asset__c> middleTableList = effectiveContracts.get(local.Asset__c); - if (middleTableList == null) { - middleTableList = new List<Maintenance_Contract_Asset__c>(); - effectiveContracts.put(local.Asset__c, middleTableList); - } - middleTableList.add(local); - } + // ---------------------------------------------------------------------- + // wangweipeng 20210727 start + // 鏂板淇悊鏃讹紝濡傛灉鐩磋繑鏀惰揣鍦板潃鐨勪俊鎭兘涓虹┖锛岄偅涔堝氨鏍规嵁鍖婚櫌鐨� OCSM绠$悊鐪�(鏂囨湰) 瀛楁鏉ュ尮閰嶅湴鍧�琛ㄩ噷 鐪佸拰甯傚瓧娈� + // 濡傛灉鑳藉尮閰嶅埌閭d箞榛樿鏄繖鏉℃柊澧炵殑淇悊鏀惰揣鍦板潃 + // ---------------------------------------------------------------------- + if ( Trigger.isBefore && Trigger.isInsert) { + RepairBeforeInsertHandler ribt = new RepairBeforeInsertHandler(); + ribt.beforeInsertValue(Trigger.new,Trigger.old); } - System.debug( '-----: 缁翠慨鍚堝悓寮�濮�'); - // 鏈銇儹銈搞儍銈� - for ( Repair__c repair : Trigger.New) { - //add wangweipeng 2021/12/09 start - 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; + //wangweipeng 20210727 end + + if ((Trigger.isAfter && Trigger.isInsert) || (Trigger.isAfter && Trigger.isUpdate) || (Trigger.isAfter && Trigger.isDelete)) { + // 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); + // } + } + // ---------------------------------------------------------------------- + // 銇撱亾銈堛倞銆佷慨鐞嗐伄銈点兗銉撱偣銈炽兂銉堛儵銈儓闋呯洰銈掕嚜鍕曠殑銇洿鏂般仚銈嬨儹銈搞儍銈� + // ---------------------------------------------------------------------- + if ( Trigger.isBefore && (Trigger.isInsert || Trigger.isUpdate)) { + //鍏堟鍚庝慨-淇悊澧炲姞鍏堟鏍囪瘑 thh 20220322 start + RepairTrigger.AdvancePaymentFlagUpsert(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); + //鍏堟鍚庝慨-淇悊澧炲姞鍏堟鏍囪瘑 thh 20220322 end + + // 绱嶅叆姗熷櫒ID銈掍竴鎰忋伀鏍肩磵銇欍倠 Set銇с仚銆� + Set<ID> assetIds = new Set<Id>(); + + // 绱嶅叆姗熷櫒銇竴鎰忋伄ID銈掑緱銈� + for ( Repair__c repair : Trigger.New) { + if (String.isBlank(repair.Delivered_Product__c) == false) assetIds.add( repair.Delivered_Product__c); } - // 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 && repair.Exc_work_location__c == false) { - - repair = RepairTrigger.updateWorkLocationSelect(repair, null); - defaultFlag = false; - } - continue; - } - System.debug( '-----:鑷姩甯﹀嚭缁翠慨鍚堝悓'); - // 淇悊銇�屾晠闅滅櫤鐢熸棩銆嶃亴銆併偟銉笺儞銈瑰绱勩伄銆屽绱勯枊濮嬫棩銆嶃�溿�屽绱勭祩浜嗘棩銆嶃伀鍚伨銈屻倠銇嬶紵 - List<Maintenance_Contract_Asset__c> middleTableList = effectiveContracts.get(repair.Delivered_Product__c); - - Boolean needsetnull = true; - System.debug( '-----:鑷姩甯﹀嚭缁翠慨鍚堝悓11111' + middleTableList); - // 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: 甯傚満澶氬勾淇濅慨') - && (repair.Sales_Branch__c != repair.Finance_of_Branch__c) && repair.SAP_Transfer_time__c == null) { - repair = RepairTrigger.updateWorkLocationSelect(repair, null); - defaultFlag = false; + // 鏈夊姽銇偟銉笺儞銈瑰绱勩伄 Map銈掑緱銈� + // arg1銇磵鍏ユ鍣ㄣ伄ID, arg2銇磵鍏ユ鍣ㄣ伄ID銇偟銉笺儞銈瑰绱勪竴瑕� + // 鍖哄垎铏氭嫙缁翠慨鍚堝悓鍜屾甯哥淮淇悎鍚� + // 姝e父缁翠慨鍚堝悓淇濇湁璁惧闆嗗悎 + Map<Id, List<Maintenance_Contract_Asset__c>> effectiveContracts = new Map<Id, List<Maintenance_Contract_Asset__c>>(); + // 铏氭嫙缁翠慨鍚堝悓淇濇湁璁惧闆嗗悎 + Map<Id, List<Maintenance_Contract_Asset__c>> effectiveContractsVM = new Map<Id, List<Maintenance_Contract_Asset__c>>(); + List<Maintenance_Contract_Asset__c> contracts = OncallFinalStatusManager.selectMaintenance_Contract_Asset_List(assetIds); + for (Maintenance_Contract_Asset__c local : contracts) { + if (local.Maintenance_Contract__r.RecordType.DeveloperName == 'VM_Contract') { + List<Maintenance_Contract_Asset__c> middleTableVMList = effectiveContractsVM.get(local.Asset__c); + if (middleTableVMList == null) { + middleTableVMList = new List<Maintenance_Contract_Asset__c>(); + effectiveContractsVM.put(local.Asset__c, middleTableVMList); + } + middleTableVMList.add(local); + } else { + List<Maintenance_Contract_Asset__c> middleTableList = effectiveContracts.get(local.Asset__c); + if (middleTableList == null) { + middleTableList = new List<Maintenance_Contract_Asset__c>(); + effectiveContracts.put(local.Asset__c, middleTableList); + } + middleTableList.add(local); } } - if (middleTableList != null) for (Maintenance_Contract_Asset__c middleTable : middleTableList) { - if (repair.SERVICE_CONTRACT_JUDEGE_DAY__C != null - && repair.SERVICE_CONTRACT_JUDEGE_DAY__C >= middleTable.Maintenance_Contract__r.Contract_Start_Date__c - && repair.SERVICE_CONTRACT_JUDEGE_DAY__C <= middleTable.Maintenance_Contract__r.Contract_End_Date__c - && middleTable != null - && middleTable.Maintenance_Contract__r.Status__c == '濂戠磩' - && middleTable.Maintenance_Contract__r.Contract_Start_Date__c != null - && middleTable.Maintenance_Contract__r.Contract_End_Date__c != null - ) { - //闄愭鍚堝悓浜у搧淇℃伅缁存姢鐩稿叧 FXK 2021/03/05 Start - //1.濡傛灉璁板綍绫诲瀷鏄淮淇悎鍚� 鎴栬�� 璁板綍绫诲瀷鏄湇鍔′换鍔′絾涓嶆槸URF闄愭鍚堝悓锛屼繚鎸佺幇鐘� - //濡傛灉鏈�澶уぇ淇鏁板ぇ浜�0锛屽苟涓斿凡缁忓ぇ淇鏁� 灏忎簬 鏈�澶уぇ淇鏁帮紝閭d箞淇濇寔鐜扮姸 - if (middleTable.Maintenance_Contract__r.RecordType.DeveloperName == 'Maintenance_Contract' - || (middleTable.Maintenance_Contract__r.RecordType.DeveloperName == 'NewMaintenance_Contract' - && (middleTable.Maintenance_Contract__r.URF_Contract__c != true - || (middleTable.Maintenance_Contract__r.URF_Contract__c == true - && (middleTable.Series_MaxRepairCount_F__c > 0 - && middleTable.Series_RepairCount_F__c < middleTable.Series_MaxRepairCount_F__c))))) { - repair.Maintenance_Contract__c = middleTable.Maintenance_Contract__c; - // repair.Contract_Principal_Office__c = middleTable.Maintenance_Contract__r.SalesOfficeCode_selection__c; - // system.debug('555555:' + middleTable.Maintenance_Contract__r.SalesOfficeCode_selection__c); - // system.debug('mmmmmmmm:' + Trigger.isInsert); - // system.debug('nnnnnnn:' + Trigger.isUpdate); - repair.repairPlace__c = middleTable.Maintenance_Contract__r.SalesOfficeCode_selection__c; - //鏂板閫昏緫 HWAG-BKP5FB 绮剧悽绉戞妧 2020/03/19 Start - //wangweipeng 鍙戠敓鏁版嵁鍒癝AP浠ュ悗锛屼慨鐞嗙殑缁翠慨涓績涓嶈兘鍋氫慨鏀� - // 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); + System.debug( '-----: 缁翠慨鍚堝悓寮�濮�'); + // 鏈銇儹銈搞儍銈� + for ( Repair__c repair : Trigger.New) { + //add wangweipeng 2021/12/09 start + 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 && repair.Exc_work_location__c == false) { + + repair = RepairTrigger.updateWorkLocationSelect(repair, null); + defaultFlag = false; + } + continue; + } + System.debug( '-----:鑷姩甯﹀嚭缁翠慨鍚堝悓'); + // 淇悊銇�屾晠闅滅櫤鐢熸棩銆嶃亴銆併偟銉笺儞銈瑰绱勩伄銆屽绱勯枊濮嬫棩銆嶃�溿�屽绱勭祩浜嗘棩銆嶃伀鍚伨銈屻倠銇嬶紵 + List<Maintenance_Contract_Asset__c> middleTableList = effectiveContracts.get(repair.Delivered_Product__c); + + Boolean needsetnull = true; + System.debug( '-----:鑷姩甯﹀嚭缁翠慨鍚堝悓11111' + middleTableList); + // 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: 甯傚満澶氬勾淇濅慨') + && (repair.Sales_Branch__c != repair.Finance_of_Branch__c) && repair.SAP_Transfer_time__c == null) { + repair = RepairTrigger.updateWorkLocationSelect(repair, null); + defaultFlag = false; + } + } + if (middleTableList != null) for (Maintenance_Contract_Asset__c middleTable : middleTableList) { + if (repair.SERVICE_CONTRACT_JUDEGE_DAY__C != null + && repair.SERVICE_CONTRACT_JUDEGE_DAY__C >= middleTable.Maintenance_Contract__r.Contract_Start_Date__c + && repair.SERVICE_CONTRACT_JUDEGE_DAY__C <= middleTable.Maintenance_Contract__r.Contract_End_Date__c + && middleTable != null + && middleTable.Maintenance_Contract__r.Status__c == '濂戠磩' + && middleTable.Maintenance_Contract__r.Contract_Start_Date__c != null + && middleTable.Maintenance_Contract__r.Contract_End_Date__c != null + ) { + //闄愭鍚堝悓浜у搧淇℃伅缁存姢鐩稿叧 FXK 2021/03/05 Start + //1.濡傛灉璁板綍绫诲瀷鏄淮淇悎鍚� 鎴栬�� 璁板綍绫诲瀷鏄湇鍔′换鍔′絾涓嶆槸URF闄愭鍚堝悓锛屼繚鎸佺幇鐘� + //濡傛灉鏈�澶уぇ淇鏁板ぇ浜�0锛屽苟涓斿凡缁忓ぇ淇鏁� 灏忎簬 鏈�澶уぇ淇鏁帮紝閭d箞淇濇寔鐜扮姸 + if (middleTable.Maintenance_Contract__r.RecordType.DeveloperName == 'Maintenance_Contract' + || (middleTable.Maintenance_Contract__r.RecordType.DeveloperName == 'NewMaintenance_Contract' + && (middleTable.Maintenance_Contract__r.URF_Contract__c != true + || (middleTable.Maintenance_Contract__r.URF_Contract__c == true + && (middleTable.Series_MaxRepairCount_F__c > 0 + && middleTable.Series_RepairCount_F__c < middleTable.Series_MaxRepairCount_F__c))))) { + repair.Maintenance_Contract__c = middleTable.Maintenance_Contract__c; + // repair.Contract_Principal_Office__c = middleTable.Maintenance_Contract__r.SalesOfficeCode_selection__c; + // system.debug('555555:' + middleTable.Maintenance_Contract__r.SalesOfficeCode_selection__c); + // system.debug('mmmmmmmm:' + Trigger.isInsert); + // system.debug('nnnnnnn:' + Trigger.isUpdate); + repair.repairPlace__c = middleTable.Maintenance_Contract__r.SalesOfficeCode_selection__c; + //鏂板閫昏緫 HWAG-BKP5FB 绮剧悽绉戞妧 2020/03/19 Start + //wangweipeng 鍙戠敓鏁版嵁鍒癝AP浠ュ悗锛屼慨鐞嗙殑缁翠慨涓績涓嶈兘鍋氫慨鏀� + // 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; + } + // 鏂板閫昏緫 HWAG-BKP5FB 绮剧悽绉戞妧 2020/03/19 End + // HWAG-BJABEY LHJ 2019/12/04 Start + repair.MaintenanceContractType__c = middleTable.Maintenance_Contract__r.RecordType.Name; + // HWAG-BJABEY LHJ 2019/12/04 End + } + //2.濡傛灉璁板綍绫诲瀷鏄湇鍔′换鍔″苟涓旀槸URF闄愭鍚堝悓锛屽鏋滄渶澶уぇ淇鏁颁负0鎴栬�呯┖锛岄偅涔堢洿鎺dd Error鎶ラ敊 璁╄仈绯绘湇鍔$鐞嗛儴锛� + if (middleTable.Maintenance_Contract__r.RecordType.DeveloperName == 'NewMaintenance_Contract' + && middleTable.Maintenance_Contract__r.URF_Contract__c == true) { + if (middleTable.Series_MaxRepairCount_F__c == 0 || middleTable.Series_MaxRepairCount_F__c == null) { + //鐩存帴add Error鎶ラ敊 璁╄仈绯绘湇鍔$鐞嗛儴 + repair.addError('淇悊璁惧涓嶆槸闄愭璁惧锛岃鑱旂郴鏈嶅姟绠$悊閮�'); + } + //濡傛灉鏈�澶уぇ淇鏁板ぇ浜�0锛屽苟涓斿凡缁忓ぇ淇鏁� 澶т簬鎴栫瓑浜� 鏈�澶уぇ淇鏁帮紝閭d箞涓嶄粎涓嶈祴鍊肩淮淇悎鍚屼俊鎭紝鑰屼笖娓呯┖褰撳墠淇℃伅 + if (middleTable.Series_MaxRepairCount_F__c > 0 && middleTable.Series_RepairCount_F__c >= middleTable.Series_MaxRepairCount_F__c) { + //涓嶈祴鍊肩淮淇悎鍚屼俊鎭紝鑰屼笖娓呯┖褰撳墠淇℃伅 + repair.Maintenance_Contract__c = null; + repair.MaintenanceContractType__c = null; + } + } + //闄愭鍚堝悓浜у搧淇℃伅缁存姢鐩稿叧 FXK 2021/03/05 END + needsetnull = false; + System.debug( '-----:鑷姩甯﹀嚭缁翠慨鍚堝悓22222');//鎶婁繚鏈夎澶囦笂鐨勭淮淇悎鍚屽瓨鍒颁慨鐞嗕笂 + break; + } + } + //MaintenanceContractType__c:缁翠慨鍚堝悓璁板綍绫诲瀷 + /*濡傛灉涓嶅湪鍚堝悓涓紝鍒欏皢1.鈥樹慨鐞嗏�欎腑鐨勨�樼淮淇悎鍚屸�欏拰鈥樹慨鐞嗏�欎腑鐨勨�樼淮淇悎鍚岃褰曠被鍨嬧�欐竻绌�*/ + if (needsetnull) { + System.debug( '-----:null銇仜銈�'); + repair.Maintenance_Contract__c = null; + repair.MaintenanceContractType__c = null; + } + + System.debug( '-----: repair=' + repair); + System.debug( '-----: repair.Maintenance_Contract__c=' + repair.Maintenance_Contract__c); + System.debug( '-----: repair.SERVICE_CONTRACT_JUDEGE_DAY__C=' + repair.SERVICE_CONTRACT_JUDEGE_DAY__C); + // 璁惧淇悊鏃讹紝鑷姩甯﹀嚭铏氭嫙缁翠慨鍚堝悓 + List<Maintenance_Contract_Asset__c> middleTableVMList = effectiveContractsVM.get(repair.Delivered_Product__c); + // Boolean needsetnull = true; + System.debug( '-----:鑷姩甯﹀嚭铏氭嫙缁翠慨鍚堝悓'); + System.debug( '-----:鑷姩甯﹀嚭铏氭嫙缁翠慨鍚堝悓' + middleTableVMList); + // 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: 甯傚満澶氬勾淇濅慨') + && (repair.Sales_Branch__c != repair.Finance_of_Branch__c)) { + repair = RepairTrigger.updateWorkLocationSelect(repair, null); + defaultFlag = false; + } + } + if (middleTableVMList != null) for (Maintenance_Contract_Asset__c middleTable : middleTableVMList) { + if (repair.SERVICE_CONTRACT_JUDEGE_DAY__C != null + && repair.SERVICE_CONTRACT_JUDEGE_DAY__C >= middleTable.startDateGurantee_Text__c + && repair.SERVICE_CONTRACT_JUDEGE_DAY__C <= middleTable.endDateGurantee_Text__c + && middleTable != null + && middleTable.Maintenance_Contract__r.Status__c == '濂戠磩' + && middleTable.startDateGurantee_Text__c != null + && middleTable.endDateGurantee_Text__c != null + ) { + 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 && repair.Exc_work_location__c == false) { + repair = RepairTrigger.updateWorkLocationSelect(repair, middleTable); defaultFlag = false; } - // 鏂板閫昏緫 HWAG-BKP5FB 绮剧悽绉戞妧 2020/03/19 End - // HWAG-BJABEY LHJ 2019/12/04 Start - repair.MaintenanceContractType__c = middleTable.Maintenance_Contract__r.RecordType.Name; - // HWAG-BJABEY LHJ 2019/12/04 End + // 鏂板閫昏緫 SLIU-BMMDWK 绮剧悽绉戞妧 2020/03/17 End + break; } - //2.濡傛灉璁板綍绫诲瀷鏄湇鍔′换鍔″苟涓旀槸URF闄愭鍚堝悓锛屽鏋滄渶澶уぇ淇鏁颁负0鎴栬�呯┖锛岄偅涔堢洿鎺dd Error鎶ラ敊 璁╄仈绯绘湇鍔$鐞嗛儴锛� - if (middleTable.Maintenance_Contract__r.RecordType.DeveloperName == 'NewMaintenance_Contract' - && middleTable.Maintenance_Contract__r.URF_Contract__c == true) { - if (middleTable.Series_MaxRepairCount_F__c == 0 || middleTable.Series_MaxRepairCount_F__c == null) { - //鐩存帴add Error鎶ラ敊 璁╄仈绯绘湇鍔$鐞嗛儴 - repair.addError('淇悊璁惧涓嶆槸闄愭璁惧锛岃鑱旂郴鏈嶅姟绠$悊閮�'); - } - //濡傛灉鏈�澶уぇ淇鏁板ぇ浜�0锛屽苟涓斿凡缁忓ぇ淇鏁� 澶т簬鎴栫瓑浜� 鏈�澶уぇ淇鏁帮紝閭d箞涓嶄粎涓嶈祴鍊肩淮淇悎鍚屼俊鎭紝鑰屼笖娓呯┖褰撳墠淇℃伅 - if (middleTable.Series_MaxRepairCount_F__c > 0 && middleTable.Series_RepairCount_F__c >= middleTable.Series_MaxRepairCount_F__c) { - //涓嶈祴鍊肩淮淇悎鍚屼俊鎭紝鑰屼笖娓呯┖褰撳墠淇℃伅 - repair.Maintenance_Contract__c = null; - repair.MaintenanceContractType__c = null; - } + } + if (needsetnull) { + System.debug( '-----:null銇仜銈�'); + repair.VM_Maintenance_Contract__c = null; + } + + //add wangweipeng 2021/12/10 start + if(defaultFlag){ + //涓�鑸慨鐞嗗搧鐨勭淮淇腑蹇冭祴鍊奸�昏緫 + //SAP涓婁紶淇悊鏃堕棿 + if(repair.SAP_Transfer_time__c == null){ + if(repair.On_site_repair__c == 'RC淇悊'||repair.On_site_repair__c== '鐩撮�丼ORC淇悊'||repair.On_site_repair__c== '鐩撮�丱GZ淇悊' ){ + System.debug('-----------------11------'); + repair = RepairTrigger.generalUpdateWorkLocationSelect(repair); } - //闄愭鍚堝悓浜у搧淇℃伅缁存姢鐩稿叧 FXK 2021/03/05 END - needsetnull = false; - System.debug( '-----:鑷姩甯﹀嚭缁翠慨鍚堝悓22222');//鎶婁繚鏈夎澶囦笂鐨勭淮淇悎鍚屽瓨鍒颁慨鐞嗕笂 - break; } } - //MaintenanceContractType__c:缁翠慨鍚堝悓璁板綍绫诲瀷 - /*濡傛灉涓嶅湪鍚堝悓涓紝鍒欏皢1.鈥樹慨鐞嗏�欎腑鐨勨�樼淮淇悎鍚屸�欏拰鈥樹慨鐞嗏�欎腑鐨勨�樼淮淇悎鍚岃褰曠被鍨嬧�欐竻绌�*/ - if (needsetnull) { - System.debug( '-----:null銇仜銈�'); - repair.Maintenance_Contract__c = null; - repair.MaintenanceContractType__c = null; + //add wangweipeng 2021/12/10 end } - System.debug( '-----: repair=' + repair); - System.debug( '-----: repair.Maintenance_Contract__c=' + repair.Maintenance_Contract__c); - System.debug( '-----: repair.SERVICE_CONTRACT_JUDEGE_DAY__C=' + repair.SERVICE_CONTRACT_JUDEGE_DAY__C); - // 璁惧淇悊鏃讹紝鑷姩甯﹀嚭铏氭嫙缁翠慨鍚堝悓 - List<Maintenance_Contract_Asset__c> middleTableVMList = effectiveContractsVM.get(repair.Delivered_Product__c); - // Boolean needsetnull = true; - System.debug( '-----:鑷姩甯﹀嚭铏氭嫙缁翠慨鍚堝悓'); - System.debug( '-----:鑷姩甯﹀嚭铏氭嫙缁翠慨鍚堝悓' + middleTableVMList); - // 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: 甯傚満澶氬勾淇濅慨') - && (repair.Sales_Branch__c != repair.Finance_of_Branch__c)) { - repair = RepairTrigger.updateWorkLocationSelect(repair, null); - defaultFlag = false; - } - } - if (middleTableVMList != null) for (Maintenance_Contract_Asset__c middleTable : middleTableVMList) { - if (repair.SERVICE_CONTRACT_JUDEGE_DAY__C != null - && repair.SERVICE_CONTRACT_JUDEGE_DAY__C >= middleTable.startDateGurantee_Text__c - && repair.SERVICE_CONTRACT_JUDEGE_DAY__C <= middleTable.endDateGurantee_Text__c - && middleTable != null - && middleTable.Maintenance_Contract__r.Status__c == '濂戠磩' - && middleTable.startDateGurantee_Text__c != null - && middleTable.endDateGurantee_Text__c != null - ) { - 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 && repair.Exc_work_location__c == false) { - repair = RepairTrigger.updateWorkLocationSelect(repair, middleTable); - defaultFlag = false; - } - // 鏂板閫昏緫 SLIU-BMMDWK 绮剧悽绉戞妧 2020/03/17 End - break; - } - } - if (needsetnull) { - System.debug( '-----:null銇仜銈�'); - repair.VM_Maintenance_Contract__c = null; - } + System.debug( '-----: 缁翠慨鍚堝悓缁撴潫'); - //add wangweipeng 2021/12/10 start - if(defaultFlag){ - //涓�鑸慨鐞嗗搧鐨勭淮淇腑蹇冭祴鍊奸�昏緫 - //SAP涓婁紶淇悊鏃堕棿 - if(repair.SAP_Transfer_time__c == null){ - if(repair.On_site_repair__c == 'RC淇悊'||repair.On_site_repair__c== '鐩撮�丼ORC淇悊'||repair.On_site_repair__c== '鐩撮�丱GZ淇悊' ){ - System.debug('-----------------11------'); - repair = RepairTrigger.generalUpdateWorkLocationSelect(repair); - } - } - } - //add wangweipeng 2021/12/10 end - } - - System.debug( '-----: 缁翠慨鍚堝悓缁撴潫'); - - // 20160727 add 璁$畻淇悊宸ヤ綔鏃� - RepairTrigger.setRepairWorkday(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); - // - if (Trigger.isUpdate) { - /****************************************************************************************************/ - //杩佺Щ杩涚▼鐢熸垚鍣ㄤ腑repair Alltime鍔熻兘 Start - /****************************************************************************************************/ - for (Repair__c a : Trigger.new) { - String StatusStr = ''; - if (a.Delete_Flag__c == true) { - StatusStr = '0.鍒犻櫎'; - } else if (a.RepairOrderStatusCode__c == 'A99' && a.IncorrectDataComment__c != null) { - StatusStr = '0.鍒犻櫎'; - } else if ((a.RepairOrderStatusCode__c == 'A95' || a.RepairOrderStatusCode__c == 'A96') - && a.Return_Without_Repair_IF__c == true) { - StatusStr = '0.鍙栨秷'; - } else if (a.Finish_Check__c == 1) { - StatusStr = '5.瀹屾瘯'; - } else if (a.Facility_Return_Receipt_Collection_Date__c != null - || a.Repair_Returned_To_HP_Date__c != null - || a.Repair_Shipped_Date__c != null) { - StatusStr = '4.淇悊鍝佽繑閫侀樁娈�'; - } else if (a.Repair_Final_Inspection_Date__c != null - || a.Repair_Completed_Date__c != null - || a.Repair_Start_Date__c != null) { - StatusStr = '3.缁翠慨闃舵'; - } else if (a.Agreed_Date__c != null - || a.Repair_Discount_Date__c != null - || a.Repair_Estimated_Date__c != null - || a.Repair_Inspection_Date__c != null) { - StatusStr = '2.缁翠慨鎶ヤ环闃舵'; - } else { - StatusStr = a.Status__c; - } - - a.Status__c = a.Status1__c; - // DOJ2.1 gzw AwareDate鍏紡鑰冩枃鏈� start - if (a.AwareDate__c != a.Aware_date__c && - (a.Aware_date__c >= Date.newInstance(2021, 9, 1) || - a.AwareDate__c >= Date.newInstance(2021, 9, 1) )) { - a.Aware_date__c = a.AwareDate__c; - } - // DOJ2.1 gzw AwareDate鍏紡鑰冩枃鏈� end - + // 20160727 add 璁$畻淇悊宸ヤ綔鏃� + RepairTrigger.setRepairWorkday(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); + // + if (Trigger.isUpdate) { /****************************************************************************************************/ - //杩佺Щ杩涚▼鐢熸垚鍣ㄤ腑repair Alltime鍔熻兘 End + //杩佺Щ杩涚▼鐢熸垚鍣ㄤ腑repair Alltime鍔熻兘 Start /****************************************************************************************************/ + for (Repair__c a : Trigger.new) { + String StatusStr = ''; + if (a.Delete_Flag__c == true) { + StatusStr = '0.鍒犻櫎'; + } else if (a.RepairOrderStatusCode__c == 'A99' && a.IncorrectDataComment__c != null) { + StatusStr = '0.鍒犻櫎'; + } else if ((a.RepairOrderStatusCode__c == 'A95' || a.RepairOrderStatusCode__c == 'A96') + && a.Return_Without_Repair_IF__c == true) { + StatusStr = '0.鍙栨秷'; + } else if (a.Finish_Check__c == 1) { + StatusStr = '5.瀹屾瘯'; + } else if (a.Facility_Return_Receipt_Collection_Date__c != null + || a.Repair_Returned_To_HP_Date__c != null + || a.Repair_Shipped_Date__c != null) { + StatusStr = '4.淇悊鍝佽繑閫侀樁娈�'; + } else if (a.Repair_Final_Inspection_Date__c != null + || a.Repair_Completed_Date__c != null + || a.Repair_Start_Date__c != null) { + StatusStr = '3.缁翠慨闃舵'; + } else if (a.Agreed_Date__c != null + || a.Repair_Discount_Date__c != null + || a.Repair_Estimated_Date__c != null + || a.Repair_Inspection_Date__c != null) { + StatusStr = '2.缁翠慨鎶ヤ环闃舵'; + } else { + StatusStr = a.Status__c; + } + + a.Status__c = a.Status1__c; + // DOJ2.1 gzw AwareDate鍏紡鑰冩枃鏈� start + if (a.AwareDate__c != a.Aware_date__c && + (a.Aware_date__c >= Date.newInstance(2021, 9, 1) || + a.AwareDate__c >= Date.newInstance(2021, 9, 1) )) { + a.Aware_date__c = a.AwareDate__c; + } + // DOJ2.1 gzw AwareDate鍏紡鑰冩枃鏈� end + + /****************************************************************************************************/ + //杩佺Щ杩涚▼鐢熸垚鍣ㄤ腑repair Alltime鍔熻兘 End + /****************************************************************************************************/ + } } } - } - // ---------------------------------------------------------------------- - // 銇撱亾銇俱仹銆併偟銉笺儞銈广偝銉炽儓銉┿偗銉堥爡鐩倰鑷嫊鐨勩伀鏇存柊銇欍倠銉偢銉冦偗 - // ---------------------------------------------------------------------- + // ---------------------------------------------------------------------- + // 銇撱亾銇俱仹銆併偟銉笺儞銈广偝銉炽儓銉┿偗銉堥爡鐩倰鑷嫊鐨勩伀鏇存柊銇欍倠銉偢銉冦偗 + // ---------------------------------------------------------------------- - // ---------------------------------------------------------------------- - // 銇撱倢銈堛倞銆丱n-Call銇�孫n-Call璺熻繘缁撴灉銆嶃倰鏇存柊銇欍倠銉偢銉冦偗 - // ---------------------------------------------------------------------- + // ---------------------------------------------------------------------- + // 銇撱倢銈堛倞銆丱n-Call銇�孫n-Call璺熻繘缁撴灉銆嶃倰鏇存柊銇欍倠銉偢銉冦偗 + // ---------------------------------------------------------------------- - if ( ( Trigger.isBefore && ( Trigger.isInsert || Trigger.isUpdate)) || ( Trigger.isAfter && Trigger.isDelete)) { + if ( ( Trigger.isBefore && ( Trigger.isInsert || Trigger.isUpdate)) || ( Trigger.isAfter && Trigger.isDelete)) { - // 鍑︾悊瀵捐薄銇ㄣ仾銈嬩慨鐞嗐倰鍏ㄩ儴纰轰繚 - List<Repair__c> repairs = ( Trigger.isBefore ? Trigger.New : new List<Repair__c>()); - Set<Id> cncallIds = new Set<Id>(); - for ( Repair__c repair : ( Trigger.isBefore ? Trigger.New : Trigger.Old)) { - if (String.isBlank(repair.On_Call_ID__c) == false) { - cncallIds.add( repair.On_Call_ID__c); + // 鍑︾悊瀵捐薄銇ㄣ仾銈嬩慨鐞嗐倰鍏ㄩ儴纰轰繚 + List<Repair__c> repairs = ( Trigger.isBefore ? Trigger.New : new List<Repair__c>()); + Set<Id> cncallIds = new Set<Id>(); + for ( Repair__c repair : ( Trigger.isBefore ? Trigger.New : Trigger.Old)) { + if (String.isBlank(repair.On_Call_ID__c) == false) { + cncallIds.add( repair.On_Call_ID__c); + } + } + + // 鍑︾悊瀵捐薄銇ㄣ仾銈嬨偑銉炽偝銉笺儷銈掑叏閮ㄧ⒑淇� + + // 20210622 SQL浼樺寲 Start + // List<On_Call__c> oncalls = OncallFinalStatusManager.getOncallList(cncallIds); + List<On_Call__c> oncalls = new List<On_Call__c>(); + if (cncallIds.size() > 0 ) { + oncalls = OncallFinalStatusManager.getOncallList(cncallIds); + } + // 20210622 SQL浼樺寲 End + + if (oncalls.size() > 0) { + // 鍑︾悊瀵捐薄銇ㄣ仾銈婹IS銈掑叏閮ㄧ⒑淇� + List<QIS_Report__c> qiss = OncallFinalStatusManager.getQisListFronOncalls(oncalls); + + // FinalStatus鏇存柊鍑︾悊 + OncallFinalStatusManager.setFinalStatus( oncalls, repairs, qiss); + + OncallFinalStatusManager.updOncalls(oncalls); } } - // 鍑︾悊瀵捐薄銇ㄣ仾銈嬨偑銉炽偝銉笺儷銈掑叏閮ㄧ⒑淇� + // ---------------------------------------------------------------------- + // 銇撱亾銇俱仹銆丱n-Call銇�孫n-Call璺熻繘缁撴灉銆嶃倰鏇存柊銇欍倠銉偢銉冦偗 + // ---------------------------------------------------------------------- - // 20210622 SQL浼樺寲 Start - // List<On_Call__c> oncalls = OncallFinalStatusManager.getOncallList(cncallIds); - List<On_Call__c> oncalls = new List<On_Call__c>(); - if (cncallIds.size() > 0 ) { - oncalls = OncallFinalStatusManager.getOncallList(cncallIds); - } - // 20210622 SQL浼樺寲 End - - if (oncalls.size() > 0) { - // 鍑︾悊瀵捐薄銇ㄣ仾銈婹IS銈掑叏閮ㄧ⒑淇� - List<QIS_Report__c> qiss = OncallFinalStatusManager.getQisListFronOncalls(oncalls); - - // FinalStatus鏇存柊鍑︾悊 - OncallFinalStatusManager.setFinalStatus( oncalls, repairs, qiss); - - OncallFinalStatusManager.updOncalls(oncalls); - } - } - - // ---------------------------------------------------------------------- - // 銇撱亾銇俱仹銆丱n-Call銇�孫n-Call璺熻繘缁撴灉銆嶃倰鏇存柊銇欍倠銉偢銉冦偗 - // ---------------------------------------------------------------------- - - // ---------------------------------------------------------------------- - // 銇撱倢銈堛倞銆佸鍝佸�熷嚭鐢宠銇�屼慨鐞嗘渶缁堟娴嬫棩銆嶃倰鏇存柊銇欍倠銉偢銉冦偗锛堟洿鏂板悗瑙﹀彂WorkFlow锛� - // ---------------------------------------------------------------------- - if (Trigger.isAfter && Trigger.isUpdate) { - Map<String, Date> repairDateMap = new Map<String, Date>(); - List<String> targetRepairList = new List<String>(); - for (Repair__c repair : Trigger.New) { - Repair__c oldRepair = Trigger.OldMap.get(repair.Id); - if (oldRepair.Repair_Final_Inspection_Date__c != repair.Repair_Final_Inspection_Date__c) { - repairDateMap.put(repair.Id, repair.Repair_Final_Inspection_Date__c); - targetRepairList.add(repair.Id); + // ---------------------------------------------------------------------- + // 銇撱倢銈堛倞銆佸鍝佸�熷嚭鐢宠銇�屼慨鐞嗘渶缁堟娴嬫棩銆嶃倰鏇存柊銇欍倠銉偢銉冦偗锛堟洿鏂板悗瑙﹀彂WorkFlow锛� + // ---------------------------------------------------------------------- + if (Trigger.isAfter && Trigger.isUpdate) { + Map<String, Date> repairDateMap = new Map<String, Date>(); + List<String> targetRepairList = new List<String>(); + for (Repair__c repair : Trigger.New) { + Repair__c oldRepair = Trigger.OldMap.get(repair.Id); + if (oldRepair.Repair_Final_Inspection_Date__c != repair.Repair_Final_Inspection_Date__c) { + repairDateMap.put(repair.Id, repair.Repair_Final_Inspection_Date__c); + targetRepairList.add(repair.Id); + } + } + // 20210622 SQL浼樺寲 Start + //List<Rental_Apply__c> raList = [select Id, Repair__c from Rental_Apply__c where Repair__c = :targetRepairList]; + List<Rental_Apply__c> raList = new List<Rental_Apply__c>(); + if (targetRepairList.size() > 0) { + raList = [select Id, Repair__c from Rental_Apply__c where Repair__c = :targetRepairList]; + } + // 20210622 SQL浼樺寲 End + for (Rental_Apply__c ra : raList) { + ra.Repair_Final_Inspection_Date__c = repairDateMap.get(ra.Repair__c); + } + if (raList.size() > 0) { + update raList; } } - // 20210622 SQL浼樺寲 Start - //List<Rental_Apply__c> raList = [select Id, Repair__c from Rental_Apply__c where Repair__c = :targetRepairList]; - List<Rental_Apply__c> raList = new List<Rental_Apply__c>(); - if (targetRepairList.size() > 0) { - raList = [select Id, Repair__c from Rental_Apply__c where Repair__c = :targetRepairList]; - } - // 20210622 SQL浼樺寲 End - for (Rental_Apply__c ra : raList) { - ra.Repair_Final_Inspection_Date__c = repairDateMap.get(ra.Repair__c); - } - if (raList.size() > 0) { - update raList; - } - } - // ---------------------------------------------------------------------- - // 銇撱亾銇俱仹銆佸鍝佸�熷嚭鐢宠銇�屼慨鐞嗘渶缁堟娴嬫棩銆嶃倰鏇存柊銇欍倠銉偢銉冦偗 - // ---------------------------------------------------------------------- + // ---------------------------------------------------------------------- + // 銇撱亾銇俱仹銆佸鍝佸�熷嚭鐢宠銇�屼慨鐞嗘渶缁堟娴嬫棩銆嶃倰鏇存柊銇欍倠銉偢銉冦偗 + // ---------------------------------------------------------------------- - System.debug( '-----: trigger end'); + System.debug( '-----: trigger end'); + } + public void test(){ + Integer i =0; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + i++; + + } } \ No newline at end of file -- Gitblit v1.9.1