| | |
| | | trigger ConsumableOrderTrigger on Consumable_order__c (before insert, before update) { |
| | | if (StaticParameter.EscapeConsumableOrderDetail2Trigger) { |
| | | return ; |
| | | } |
| | | Set<String> contactIdSet = new Set<String>(); |
| | | Map<String, String> rprIdList = new Map<String, String>(); |
| | | Map<String, String> contactIdMap = new Map<String, String>(); |
| | | List<Statu_Achievements__c> sAlist = new List<Statu_Achievements__c>(); |
| | | if (Trigger.isBefore) { |
| | | Account contactdet = null; |
| | | List<Account> contactList = new List<Account>(); |
| | | Consumable_order__c old = null; |
| | | for (Consumable_order__c local : Trigger.New) { |
| | | if(String.isNotBlank(local.Order_effective_contact__c)){ |
| | | contactIdSet.add(local.Order_effective_contact__c); |
| | | } |
| | | } |
| | | // contactList = [SELECT Id, Name, Business_Assistant__c FROM Account WHERE Id in :contactIdSet]; |
| | | // for(Account acc :contactList){ |
| | | // if(String.isNotBlank(acc.Business_Assistant__c)){ |
| | | // contactIdMap.put(acc.Id, acc.Business_Assistant__c); |
| | | // } |
| | | // } |
| | | // CHAN-CBYBBF 【委托】经销商ET账号显示界面维护-广东汇晨 start |
| | | // 注释跳过 发货时要计算 SAP合同号 |
| | | // if (StaticParameter.EscapeConsumableOrderDetail2Trigger) { |
| | | // return; |
| | | // } |
| | | // CHAN-CBYBBF 【委托】经销商ET账号显示界面维护-广东汇晨 end |
| | | //add by rentx 20210618 start |
| | | if (StaticParameter.ConsumableOrderTrigger) { |
| | | return; |
| | | } |
| | | //ad by rentx 20210618 end |
| | | Set<String> contactIdSet = new Set<String>(); |
| | | Map<String, String> rprIdList = new Map<String, String>(); |
| | | Map<String, String> contactIdMap = new Map<String, String>(); |
| | | List<Statu_Achievements__c> sAlist = new List<Statu_Achievements__c>(); |
| | | if (Trigger.isBefore) { |
| | | Account contactdet = null; |
| | | List<Account> contactList = new List<Account>(); |
| | | Consumable_order__c old = null; |
| | | for (Consumable_order__c local : Trigger.New) { |
| | | if(String.isNotBlank(local.Order_effective_contact__c)) { |
| | | contactIdSet.add(local.Order_effective_contact__c); |
| | | } |
| | | } |
| | | // contactList = [SELECT Id, Name, Business_Assistant__c FROM Account WHERE Id in :contactIdSet]; |
| | | // for(Account acc :contactList){ |
| | | // if(String.isNotBlank(acc.Business_Assistant__c)){ |
| | | // contactIdMap.put(acc.Id, acc.Business_Assistant__c); |
| | | // } |
| | | // } |
| | | |
| | | Map<String,List<Statu_Achievements__c>> sAmap = new Map<String,List<Statu_Achievements__c>>(); |
| | | Map<String,String> zMaps = new Map<String,String>(); |
| | | Map<String,List<Statu_Achievements__c> > sAmap = new Map<String,List<Statu_Achievements__c> >(); |
| | | Map<String,String> zMaps = new Map<String,String>(); |
| | | |
| | | for (Consumable_order__c local : Trigger.New) { |
| | | if(String.isNotBlank(local.Opportunity__c) && String.isNotBlank(local.name)){ |
| | | zMaps.put(local.Opportunity__c,local.name); |
| | | } |
| | | } |
| | | for (Consumable_order__c local : Trigger.New) { |
| | | if(String.isNotBlank(local.Opportunity__c) && String.isNotBlank(local.name)) { |
| | | zMaps.put(local.Opportunity__c,local.name); |
| | | } |
| | | } |
| | | |
| | | |
| | | sAlist = [SELECT ContractNO__c,Opportunity__c FROM Statu_Achievements__c WHERE Opportunity__c = :zMaps.keySet()]; |
| | | |
| | | for(Statu_Achievements__c sa : sAlist){ |
| | | List<Statu_Achievements__c> ssList = sAmap.get(zMaps.get(sa.Opportunity__c)); |
| | | if(ssList == null){ |
| | | ssList = new List<Statu_Achievements__c>(); |
| | | } |
| | | ssList.add(sa); |
| | | sAmap.put(zMaps.get(sa.Opportunity__c),ssList); |
| | | } |
| | | |
| | | // sAlist = [SELECT ContractNO__c FROM Statu_Achievements__c WHERE Opportunity__c = :opps]; |
| | | // sAmap.put(name,sAlist); |
| | | sAlist = [SELECT ContractNO__c,Opportunity__c FROM Statu_Achievements__c WHERE Opportunity__c = :zMaps.keySet()]; |
| | | |
| | | for (Consumable_order__c local : Trigger.New) { |
| | | if (Trigger.isInsert) { |
| | | rprIdList.put(local.Id, local.Id); |
| | | } |
| | | if (Trigger.isUpdate) { |
| | | old = Trigger.oldMap.get(local.Id); |
| | | } |
| | | // 「消耗品订单」になったとき、ログインユーザーからプロセス用の上司を設定 |
| | | if ((Trigger.isInsert |
| | | || old.Order_status__c != local.Order_status__c) |
| | | && local.Order_status__c == '附件上传完成' |
| | | ) { |
| | | //if (contactdet == null) { |
| | | // contactdet = [SELECT Id, Name, Business_Assistant__c FROM Account WHERE Id = :local.Order_effective_contact__c]; |
| | | //} |
| | | if(local.Business_Assistant__c == null){ |
| | | local.addError('合同没有有效的营业助理。'); |
| | | continue; |
| | | }else{ |
| | | local.SalesManager__c = local.Business_Assistant__c; |
| | | } |
| | | // 項目の新規追加したくない、API名も変更したくない、ラベル名を変更、User.服务→修理.服务 |
| | | //local.SalesManager__c = contactdet.SalesManager__c == null ? contactdet.Id : contactdet.SalesManager__c; |
| | | //local.BuchangApprovalManagerSales__c = loginUser.BuchangApprovalManager__c == null ? loginUser.Id : loginUser.BuchangApprovalManager__c; |
| | | //local.ZongjianApprovalManager__c = loginUser.ZongjianApprovalManager__c == null ? loginUser.Id : loginUser.ZongjianApprovalManager__c; |
| | | //local.TongkuoZongjian__c = loginUser.TongkuoZongjian__c == null ? loginUser.Id : loginUser.TongkuoZongjian__c; |
| | | } |
| | | for(Statu_Achievements__c sa : sAlist) { |
| | | List<Statu_Achievements__c> ssList = sAmap.get(zMaps.get(sa.Opportunity__c)); |
| | | if(ssList == null) { |
| | | ssList = new List<Statu_Achievements__c>(); |
| | | } |
| | | ssList.add(sa); |
| | | sAmap.put(zMaps.get(sa.Opportunity__c),ssList); |
| | | } |
| | | |
| | | //更新or插入 前 |
| | | if(Trigger.isInsert || Trigger.isUpdate ){ |
| | | List<String> cNList = new List<String>(); |
| | | List<Statu_Achievements__c> sas = sAmap.get(local.name); |
| | | // sAlist = [SELECT ContractNO__c FROM Statu_Achievements__c WHERE Opportunity__c = :opps]; |
| | | // sAmap.put(name,sAlist); |
| | | |
| | | if(sas != null){ |
| | | for (Statu_Achievements__c sa : sas) { |
| | | //保存合同编号 |
| | | cNList.add(sa.ContractNO__c); |
| | | } |
| | | |
| | | //拼接合同编号 |
| | | String cNs = String.join(cNList,','); |
| | | local.ContractNo__c = cNs; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | for (Consumable_order__c local : Trigger.New) { |
| | | if (Trigger.isInsert) { |
| | | rprIdList.put(local.Id, local.Id); |
| | | } |
| | | if (Trigger.isUpdate) { |
| | | old = Trigger.oldMap.get(local.Id); |
| | | } |
| | | // 「消耗品订单」になったとき、ログインユーザーからプロセス用の上司を設定 |
| | | if ((Trigger.isInsert |
| | | || old.Order_status__c != local.Order_status__c) |
| | | && local.Order_status__c == '附件上传完成' |
| | | ) { |
| | | //if (contactdet == null) { |
| | | // contactdet = [SELECT Id, Name, Business_Assistant__c FROM Account WHERE Id = :local.Order_effective_contact__c]; |
| | | //} |
| | | if(local.Business_Assistant__c == null) { |
| | | local.addError('合同没有有效的营业助理。'); |
| | | continue; |
| | | }else{ |
| | | local.SalesManager__c = local.Business_Assistant__c; |
| | | } |
| | | // 項目の新規追加したくない、API名も変更したくない、ラベル名を変更、User.服务→修理.服务 |
| | | //local.SalesManager__c = contactdet.SalesManager__c == null ? contactdet.Id : contactdet.SalesManager__c; |
| | | //local.BuchangApprovalManagerSales__c = loginUser.BuchangApprovalManager__c == null ? loginUser.Id : loginUser.BuchangApprovalManager__c; |
| | | //local.ZongjianApprovalManager__c = loginUser.ZongjianApprovalManager__c == null ? loginUser.Id : loginUser.ZongjianApprovalManager__c; |
| | | //local.TongkuoZongjian__c = loginUser.TongkuoZongjian__c == null ? loginUser.Id : loginUser.TongkuoZongjian__c; |
| | | } |
| | | |
| | | //更新or插入 前 |
| | | if(Trigger.isInsert || Trigger.isUpdate ) { |
| | | List<String> cNList = new List<String>(); |
| | | List<Statu_Achievements__c> sas = sAmap.get(local.name); |
| | | |
| | | if(sas != null) { |
| | | for (Statu_Achievements__c sa : sas) { |
| | | //保存合同编号 |
| | | cNList.add(sa.ContractNO__c); |
| | | } |
| | | |
| | | //拼接合同编号 |
| | | String cNs = String.join(cNList,','); |
| | | local.ContractNo__c = cNs; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |