/**
|
* 客户同步 在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;
|
}
|
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);
|
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
|
}
|
}
|