/**
|
* 客户同步 在SP、GI主担当变化时更新询价权限
|
*/
|
trigger AccountTrigger on Account (after insert, after update, before delete, before insert, before update, after delete ) {
|
|
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) || Trigger.isUpdate || (Trigger.isAfter && Trigger.isDelete)) {
|
// 经销商有效协议判断 BY GAO
|
AccountEffectiveContract.syncAccountContract(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);
|
/**20221013 you LLIU-CK53S4
|
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.isUpdate && Trigger.isBefore){
|
}
|
|
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
|
if (StaticParameter.EscapeAccountTrigger) {
|
System.debug('Escape、EscapeAccountTrigger:::::' + StaticParameter.EscapeAccountTrigger);
|
return;
|
}
|
//NFM112 2021/11/10 start
|
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){
|
for(String Id : IdList){
|
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, Id);
|
}
|
}
|
//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);
|
// }
|
// }
|
}
|