| | |
| | | /** |
| | | * 客户同步 在SP、GI主担当变化时更新询价权限 |
| | | */ |
| | | trigger AccountTrigger on Account (after insert, after update, before delete, before insert, before update, after delete ) { |
| | | if (StaticParameter.EscapeAccountTrigger) { |
| | | System.debug('Escape、EscapeAccountTrigger:::::' + StaticParameter.EscapeAccountTrigger); |
| | | return; |
| | | trigger AccountTrigger on Account (before insert, before update, after insert, after update) { |
| | | if (Trigger.isBefore && Trigger.isInsert) { |
| | | //新建之前就给赋值 gwy 2021-06-16 |
| | | for (Account acc : Trigger.new) { |
| | | if(acc.ProductSegment__c == 'IE' && acc.Sub_Use1__c != null){ |
| | | acc.Sub_Use__c = acc.Sub_Use1__c; |
| | | } |
| | | if(acc.ProductSegment__c == 'IE' && acc.Sub_UseA__c != null){ |
| | | acc.Sub_UseD__c = acc.Sub_UseA__c; |
| | | } |
| | | if(acc.ProductSegment__c == 'BS' && acc.IndustryB__c != null){ |
| | | acc.IndustryC__c = acc.IndustryB__c; |
| | | } |
| | | if(acc.ProductSegment__c == 'BS' && acc.IndustryBD__c != null){ |
| | | acc.IndustryCD__c = acc.IndustryBD__c; |
| | | } |
| | | } |
| | | AccountTriggerHandler.setIsNew(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AccountTriggerHandler.setSubUse(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | } |
| | | if ((Trigger.isAfter && Trigger.isInsert) || (Trigger.isAfter && Trigger.isUpdate) || (Trigger.isBefore && Trigger.isDelete)) { |
| | | // 同步到 Account2__c |
| | | AccountTrigger.syncAccount2(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | // // 同步到 MB_Account__c |
| | | //AccountTrigger.syncMBAccount(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | if (Trigger.isAfter && Trigger.isInsert) { |
| | | AccountTriggerHandler.setDealerGroup(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AccountTriggerHandler.updateCampaignRelationship(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap,'1'); |
| | | } |
| | | if ((Trigger.isAfter && Trigger.isInsert) || Trigger.isUpdate || (Trigger.isAfter && Trigger.isDelete)) { |
| | | // 经销商有效协议判断 BY GAO |
| | | AccountEffectiveContract.syncAccountContract(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | if (Trigger.isBefore && Trigger.isUpdate) { |
| | | //更新前就给赋值 gwy 2021-06-16 |
| | | for (Account acc : Trigger.new) { |
| | | if(acc.ProductSegment__c == 'IE' && acc.Sub_Use1__c != null){ |
| | | acc.Sub_Use__c = acc.Sub_Use1__c; |
| | | } |
| | | if(acc.ProductSegment__c == 'IE' && acc.Sub_UseA__c != null){ |
| | | acc.Sub_UseD__c = acc.Sub_UseA__c; |
| | | } |
| | | if(acc.ProductSegment__c == 'BS' && acc.IndustryB__c != null){ |
| | | acc.IndustryC__c = acc.IndustryB__c; |
| | | } |
| | | if(acc.ProductSegment__c == 'BS' && acc.IndustryBD__c != null){ |
| | | acc.IndustryCD__c = acc.IndustryBD__c; |
| | | } |
| | | } |
| | | AccountTriggerHandler.setSubUse(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AccountTriggerHandler.updateForDealer(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AccountTriggerHandler.dealerAccountApproval(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AccountTriggerHandler.CheckAccoutnNameChange(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | } |
| | | |
| | | //CHAN-ADE32V 检查战略科室中的科室名是否重复 by wei |
| | | if (Trigger.isBefore && (Trigger.isInsert || Trigger.isUpdate)) { |
| | | System.debug('=============> checkDepartment start'); |
| | | AccountTrigger.checkDepartment(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | if(Trigger.isUpdate){ |
| | | for(Account acc : Trigger.new){ |
| | | if( acc.Is_Active__c == '無効' && acc.OwnerId == UserInfo.getUserId()){ |
| | | acc.Is_Active__c = '草案中'; |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | if (System.Test.isRunningTest()) { |
| | | if(Trigger.isInsert & Trigger.isAfter){ |
| | | AfterCreateHospitalTrigger.generateDepartmentClass(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | } |
| | | if (Trigger.isAfter && Trigger.isUpdate) { |
| | | AccountTriggerHandler.dealerAccountApproval2(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AccountTriggerHandler.setBusinesslicense(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | } |
| | | if(Trigger.isUpdate && Trigger.isBefore){ |
| | | if ((Trigger.isAfter && Trigger.isInsert) || (Trigger.isBefore && Trigger.isUpdate)) { |
| | | SBG001TriggerHandler.SBG001AccountTrigger(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | } |
| | | |
| | | if(Trigger.isAfter && Trigger.isUpdate){ |
| | | System.debug('+++====+++===+++== OwnerId Start'); |
| | | AccountTrigger.changeOwnerId(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AccountTrigger.setDepartmentOwner(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AfterCreateHospitalTrigger.generateDepartmentClass(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | AccountTrigger.fseChangeToUpdRepair(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); |
| | | /** |
| | | * HWAG-B4PCZ5 2018-09-19 start 如果客户更新SP,GI 主担当, |
| | | * 则删除原来的用户在所对应询价的共享规则,并根据新主担当创建新共享规则 |
| | | */ |
| | | list<Account> updateAcc = new list<Account>(); |
| | | list<ID> RemoveUsers = new list<ID>(); |
| | | list<string> allViceAliasList = new list<string>(); |
| | | for(Account NewAcc : Trigger.new) { |
| | | Account OldAcc = Trigger.oldMap.get(NewAcc.id); |
| | | if(NewAcc.FSE_GI_Main_Leader__c != OldAcc.FSE_GI_Main_Leader__c |
| | | || NewAcc.FSE_SP_Main_Leader__c != OldAcc.FSE_SP_Main_Leader__c |
| | | /* SWAG-B7LADC 2018/12/19 FSE ENG start*/ |
| | | || NewAcc.FSE_ENG_Main_Leader__c != OldAcc.FSE_ENG_Main_Leader__c |
| | | || NewAcc.FSE_ENG_Vice_Leader__c != OldAcc.FSE_ENG_Vice_Leader__c |
| | | || NewAcc.FSE_GI_Vice_Leader__c != OldAcc.FSE_GI_Vice_Leader__c |
| | | || NewAcc.FSE_SP_Vice_Leader__c != OldAcc.FSE_SP_Vice_Leader__c |
| | | /* SWAG-B7LADC 2018/12/19 FSE ENG start*/ |
| | | ) |
| | | { |
| | | updateAcc.add(NewAcc); |
| | | if(OldAcc.FSE_GI_Main_Leader__c !=null && NewAcc.FSE_GI_Main_Leader__c != OldAcc.FSE_GI_Main_Leader__c){ |
| | | RemoveUsers.add(OldAcc.FSE_GI_Main_Leader__c); |
| | | } |
| | | if(OldAcc.FSE_SP_Main_Leader__c !=null && NewAcc.FSE_SP_Main_Leader__c != OldAcc.FSE_SP_Main_Leader__c){ |
| | | RemoveUsers.add(OldAcc.FSE_SP_Main_Leader__c); |
| | | } |
| | | /* SWAG-B7LADC 2018/12/19 FSE ENG start*/ |
| | | if(OldAcc.FSE_ENG_Main_Leader__c !=null && NewAcc.FSE_ENG_Main_Leader__c != OldAcc.FSE_ENG_Main_Leader__c){ |
| | | RemoveUsers.add(OldAcc.FSE_ENG_Main_Leader__c); |
| | | } |
| | | if( OldAcc.FSE_ENG_Vice_Leader__c != null && NewAcc.FSE_ENG_Vice_Leader__c != OldAcc.FSE_ENG_Vice_Leader__c){ |
| | | for(String UsrName : OldAcc.FSE_ENG_Vice_Leader__c.split('[,\\,]')){ |
| | | allViceAliasList.add(UsrName); |
| | | } |
| | | |
| | | } |
| | | if(OldAcc.FSE_GI_Vice_Leader__c != null && NewAcc.FSE_GI_Vice_Leader__c != OldAcc.FSE_GI_Vice_Leader__c){ |
| | | for(String UsrName : OldAcc.FSE_GI_Vice_Leader__c.split('[,\\,]')){ |
| | | allViceAliasList.add(UsrName); |
| | | } |
| | | } |
| | | if(OldAcc.FSE_SP_Vice_Leader__c != null && NewAcc.FSE_SP_Vice_Leader__c != OldAcc.FSE_SP_Vice_Leader__c){ |
| | | for(String UsrName : OldAcc.FSE_SP_Vice_Leader__c.split('[,\\,]')){ |
| | | allViceAliasList.add(UsrName); |
| | | } |
| | | } |
| | | /* SWAG-B7LADC 2018/12/19 FSE ENG start*/ |
| | | } |
| | | |
| | | } |
| | | //throw new ControllerUtil.myException('Anydatatype_msgaaaaaaaa:'+allViceAliasList); |
| | | |
| | | if(updateAcc.size() > 0){ |
| | | if(allViceAliasList.size() > 0){ |
| | | List<User> loopUser = [select id from user where Alias__c in:allViceAliasList]; |
| | | for(User temUser : loopUser){ |
| | | RemoveUsers.add(temUser.id); |
| | | } |
| | | } |
| | | list<Statu_Achievements__c> updateSA = |
| | | [select id,Opportunity__c from Statu_Achievements__c where |
| | | Opportunity__r.Hospital__c in : updateAcc |
| | | and DeliveryDate__c != null |
| | | and ForecastAccuracyObject__c = true |
| | | ]; |
| | | //throw new ControllerUtil.myException('Anydatatype_msgaaaaaaaa:'+updateSA); |
| | | if(updateSA != null || updateSA.size() > 0){ |
| | | list<ID> temOpportunity = new list<ID>(); |
| | | for(Statu_Achievements__c TemSA :updateSA){ |
| | | temOpportunity.add(TemSA.Opportunity__c); |
| | | } |
| | | list<OpportunityShare> deleteOS = |
| | | [select id from OpportunityShare |
| | | where UserOrGroupId in: RemoveUsers |
| | | and OpportunityId in: temOpportunity |
| | | and RowCause = 'Manual' |
| | | ]; |
| | | if(deleteOS != null &&deleteOS.size() > 0){ |
| | | delete deleteOS; |
| | | } |
| | | StaticParameter.EscapeNFM010UpsertStatuAchievementsTrigger = true; |
| | | upsert updateSA; |
| | | } |
| | | } |
| | | //HWAG-B4PCZ5 2018-09-19 end |
| | | //NFM112 2021/11/10 start |
| | | String Idbox; |
| | | for(Account account : Trigger.new){ |
| | | Account old = Trigger.oldMap.get(account.Id); |
| | | if(old.FirstParagraph__c != account.FirstParagraph__c || old.MonthlyPayment__c != account.MonthlyPayment__c){ |
| | | Idbox = account.Id; |
| | | } |
| | | } |
| | | if(Idbox != null){ |
| | | BatchIF_Log__c iflog = new BatchIF_Log__c(); |
| | | iflog.Type__c = 'NFM112'; |
| | | iflog.Log__c = 'callout start\n'; |
| | | insert iflog; |
| | | iflog = [Select Id, Name from BatchIF_Log__c where Id = :iflog.Id]; |
| | | System.debug(Logginglevel.DEBUG, 'NFM112_' + iflog.Name + ' start'); |
| | | NFM112Controller.executeNotFuture(iflog.Id, Idbox); |
| | | } |
| | | //NFM112 2021/11/10 end |
| | | } |
| | | |
| | | //add wangweipeng 2022/02/10 start |
| | | //经销商的性质发生变化,那么需要发邮件,其中一个收件人为大区助理 |
| | | //大区助理:根据此经销商所在的那个大区,来判断到底发给谁,每个大区助理都有一个人,目前是存到自定义源数据里面了 |
| | | if(Trigger.isBefore){ |
| | | //用于存放此经销商是那个大区 |
| | | Set<String> setStaff = new Set<String>(); |
| | | if(Trigger.isUpdate){ |
| | | for (Account acc : Trigger.new) { |
| | | //判断当前修改的客户是否为经销商 |
| | | if(acc.RecordTypeId == '01210000000Qem1'){ |
| | | //如果是修改经销商,那么判断此经销商的先款标识是否发生变化,如果发送变化,那么就更新一下大区 |
| | | if(acc.FirstParagraphEnd__c != Trigger.oldMap.get(acc.Id).FirstParagraphEnd__c){ |
| | | setStaff.add(acc.Salesdepartment_HP__c); |
| | | } |
| | | } |
| | | } |
| | | }else if(Trigger.isInsert){ |
| | | for (Account acc : Trigger.new) { |
| | | //判断当前新增的客户是否为经销商 |
| | | if(acc.RecordTypeId == '01210000000Qem1'){ |
| | | setStaff.add(acc.Salesdepartment_HP__c); |
| | | } |
| | | } |
| | | } |
| | | if(setStaff.size() > 0){ |
| | | //获取对应的自定义元数据 |
| | | List<FSE_Regional_Assistant_Account__mdt> usrList = [select id,MasterLabel,DeveloperName,UserName__c,UserId__c from FSE_Regional_Assistant_Account__mdt where MasterLabel in :setStaff]; |
| | | if(usrList != null && usrList.size() > 0){ |
| | | //获取大区对应的助理人的id |
| | | if(Trigger.isUpdate){ |
| | | for (Account acc : Trigger.new) { |
| | | for(FSE_Regional_Assistant_Account__mdt fraam : usrList){ |
| | | if(acc.FirstParagraphEnd__c != Trigger.oldMap.get(acc.Id).FirstParagraphEnd__c){ |
| | | if(fraam.MasterLabel == acc.Salesdepartment_HP__c){ |
| | | acc.FSE_Regional_Assistant_Account__c = fraam.UserId__c; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }else if(Trigger.isInsert){ |
| | | for (Account acc : Trigger.new) { |
| | | for(FSE_Regional_Assistant_Account__mdt fraam : usrList){ |
| | | if(fraam.MasterLabel == acc.Salesdepartment_HP__c){ |
| | | acc.FSE_Regional_Assistant_Account__c = fraam.UserId__c; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //add wangweipeng 2022/02/10 end |
| | | |
| | | // if(Trigger.isUpdate){ |
| | | // List<String> IdList = new List<String>(); |
| | | // for(Account account : Trigger.new){ |
| | | // Account old = Trigger.oldMap.get(account.Id); |
| | | // if(old.FirstParagraph__c != account.FirstParagraph__c || old.MonthlyPayment__c != account.MonthlyPayment__c){ |
| | | // IdList.add(account.Id); |
| | | // } |
| | | // } |
| | | // if(IdList.size()>0){ |
| | | // UpdateContractAimAmountHandler.sendToSAP(IdList); |
| | | // } |
| | | // } |
| | | } |