trigger MaintenanceContractTrigger on Maintenance_Contract__c (after insert, before update, before delete) {
|
|
//deloitte-zhj 20231124 本地化导入 start
|
if((!Test.isRunningTest())&&System.Label.ByPassTrigger.contains(UserInfo.getUserId())){
|
return;
|
}
|
//deloitte-zhj 20231124 本地化导入 end
|
|
if (StaticParameter.MaintenanceContractTrigger) {
|
if ((Trigger.isAfter && Trigger.isInsert) || (Trigger.isBefore && Trigger.isUpdate)) {
|
|
NFM106Controller.NFM106Trigger(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
|
}
|
// 新建新服务合同添加 20231019hql start
|
if ((Trigger.isAfter && Trigger.isInsert)) {
|
for(Maintenance_Contract__c mc : Trigger.new){
|
if (mc.CopyFlg__c == true && mc.copyOfMc__c !=null) {
|
List<Maintenance_Contract_Asset__c> oldList = [select Asset__c from Maintenance_Contract_Asset__c where Maintenance_Contract__c = :mc.copyOfMc__c];
|
List<Maintenance_Contract_Asset__c> newList = new List<Maintenance_Contract_Asset__c>();
|
for (Maintenance_Contract_Asset__c mca : oldList) {
|
newList.add(new Maintenance_Contract_Asset__c(
|
Asset__c = mca.Asset__c,
|
Maintenance_Contract__c = mc.id
|
));
|
}
|
|
if (newList.size() > 0) insert newList;
|
}
|
}
|
|
}
|
// 新建新服务合同添加 20231019hql end
|
if (Trigger.isBefore) {
|
if (Trigger.isDelete) {
|
List<String> mcIds = new List<String>();
|
List<SFDelete__c> dlist = new List<SFDelete__c>();
|
for (Maintenance_Contract__c mc : Trigger.old) {
|
mcIds.add(mc.Id);
|
// SFDelete__c にデータを追加
|
dlist.add(new SFDelete__c(
|
delSfId__c = mc.Id,
|
tableName__c = 'Maintenance_Contract__c',
|
dataOwnerId__c = mc.Service_Contract_Staff__c
|
));
|
}
|
|
ControllerUtil.insSFDelete(dlist);
|
// 活動_サビコンを削除
|
ControllerUtil.delEvent3ForTrigger(mcIds);
|
}
|
|
//add wangweipeng 2021/11/29 start
|
//判断认款是否完成
|
if(Trigger.isUpdate){
|
for (Maintenance_Contract__c nmc : Trigger.new) {
|
//判断 上传认款合同时间 是否为空,如果不为空,那么证明此合同需要认款,并且认款金额需要和 第一次计划付款金额 做对比
|
if(nmc.upload_to_RM_time__c != null){
|
if(nmc.All_Amount__c != Trigger.oldMap.get(nmc.Id).All_Amount__c || nmc.Payment_Plan_Sum_First__c != Trigger.oldMap.get(nmc.Id).Payment_Plan_Sum_First__c){
|
if(nmc.Payment_Plan_Sum_First__c != null || nmc.Payment_Plan_Sum_First__c > 0.0 ){
|
nmc.Is_Recognition_Model_True__c = nmc.All_Amount__c >= nmc.Payment_Plan_Sum_First__c ? true : false;
|
}else{
|
if(nmc.All_Amount__c > 0.0 && nmc.All_Amount__c != null){
|
nmc.Is_Recognition_Model_True__c = true;
|
}else{
|
nmc.Is_Recognition_Model_True__c = false;
|
}
|
}
|
}
|
}
|
}
|
}
|
//FSE所在大区助理 赋值 根据主担当人 的本部
|
//华北:洪贺男 东北:刘莹莹 西北:祝琪雪 西南:何学琼 华东:陈明赟 华南:闻静
|
Set<String> setStaff = new Set<String>();
|
if(Trigger.isUpdate){
|
for (Maintenance_Contract__c nmc : Trigger.new) {
|
if(nmc.Service_Contract_Staff__c != Trigger.oldMap.get(nmc.Id).Service_Contract_Staff__c || String.isBlank(nmc.FSE_Regional_Assistant__c)){
|
setStaff.add(nmc.Service_Contract_Staff_Salesdepartment__c);//主担当本部(大区)
|
}
|
}
|
}else if(Trigger.isInsert){
|
for (Maintenance_Contract__c nmc : Trigger.new) {
|
if(String.isNotBlank(nmc.Service_Contract_Staff__c)){
|
setStaff.add(nmc.Service_Contract_Staff_Salesdepartment__c);//主担当本部(大区)
|
}
|
}
|
}
|
if(setStaff.size() > 0){
|
//获取对应的自定义元数据
|
List<FSE_Regional_Assistant__mdt> usrList = [select id,MasterLabel,DeveloperName,UserName__c,UserId__c from FSE_Regional_Assistant__mdt where MasterLabel in :setStaff];
|
if(usrList != null && usrList.size() > 0){
|
for (Maintenance_Contract__c nmc : Trigger.new) {
|
//如果是更新,那么判断主担当人是否有变化或FSE大区助理是否为空,如果满足其中一条,那么更新大区助理
|
if(Trigger.isUpdate){
|
if(!(nmc.Service_Contract_Staff__c != Trigger.oldMap.get(nmc.Id).Service_Contract_Staff__c
|
|| String.isBlank(nmc.FSE_Regional_Assistant__c)))
|
{
|
continue;
|
}
|
}
|
if(String.isNotBlank(nmc.Service_Contract_Staff__c)){
|
for(FSE_Regional_Assistant__mdt fram : usrList){
|
if(String.isNotBlank(fram.MasterLabel) && nmc.Service_Contract_Staff_Salesdepartment__c == fram.MasterLabel){
|
nmc.FSE_Regional_Assistant__c = fram.UserId__c;
|
}
|
}
|
}
|
}
|
}
|
}
|
//add wangweipeng 2021/11/29 end
|
}
|
}
|
}
|