/** * @description : * @author : ChangeMeIn@UserSettingsUnder.SFDoc * @group : * @last modified on : 04-21-2022 * @last modified by : ChangeMeIn@UserSettingsUnder.SFDoc **/ public without sharing class loanerAppTriggerHandler { /** * [changeFollowOpp description] 跟进询价改变时修改跟进询价(文本) * Date 2020/8/20 */ public static void changeFollowOpp(List newList, Map newMap, List oldList, Map oldMap){ // List upList = new List(); // newList = [select id,Equipment_Type__c,Follow_Opp__c,Follow_Opp_text__c from loaner_application__c where id = 'a0Q0K00000JO2FfUAL']; List idList = new List(); System.debug('newList'+newList); for(loaner_application__c la : newList){ loaner_application__c oldla = oldMap.get(la.Id); if(la.Equipment_Type__c == 'BS' && la.Follow_Opp__c != oldla.Follow_Opp__c && la.Follow_Opp__c != null){ idList.add(la.Follow_Opp__c); } if(la.Equipment_Type__c == 'BS' && la.Follow_Opp__c != oldla.Follow_Opp__c && la.Follow_Opp__c == null){ la.Follow_Opp_text__c = null; } } if(idList.size() > 0){ List oppList = new List(); oppList = [select id,InquiryNumber__c from Opportunity where id in :idList]; for(loaner_application__c la : newList){ if(idList.contains(la.Follow_Opp__c)){ for(Opportunity opp : oppList){ if(opp.Id == la.Follow_Opp__c){ la.Follow_Opp_text__c = opp.InquiryNumber__c; } } } } } } public static void transferBack(List newList, Map newMap, List oldList, Map oldMap){ System.debug('newList' + newList); System.debug('oldList' + oldList); List idList = new List(); for(loaner_application__c la : newList){ loaner_application__c old = oldMap.get(la.Id); if(old.Status__c == '申请中' && la.Status__c == '草案中' && la.Equipment_Type__c == 'BS' && la.Loaner_LendOrder__c == true){ idList.add(la.Id); } } System.debug(idList); if(idList.size() > 0){ List laIdList = new List(); List pss = new List(); List ps = [select Id,Name,RAESD_Status__c,LOANER__c,LOANER__r.Name, LOANER__r.RecordTypeId,LOANER__r.status, loaner_application__r.Loaner_LendOrder__c From loaner_application_detail__c Where loaner_application__c in: idList]; for(loaner_application_detail__c l2s : ps){ Asset p2s = new Asset(); p2s.Id = l2s.LOANER__c; p2s.Status = '出借'; pss.add(p2s); laIdList.add(l2s.LOANER__c); } if(pss.size() > 0 ) update pss; if(laIdList.size() > 0){ List ladList = [select id from loaner_application_detail__c where LOANER__c in : laIdList and (RAESD_Status__c = '申请者已收货' or RAESD_Status__c = '申请者已装机确认')]; System.debug('^^^^^^^'+ladList); if(ladList.size() > 0){ for (loaner_application_detail__c lad : ladList ) { lad.is_distribution__c = false; } System.debug('^^^^^^^'+ladList); update(ladList); } } } List idList2 = new List(); for(loaner_application__c la : newList){ loaner_application__c old = oldMap.get(la.Id); if( la.Status__c == '申请中' && la.Equipment_Type__c == 'BS' && la.Loaner_LendOrder__c == true){ idList2.add(la.Id); } } System.debug('!@#'+idList2); if(idList2.size() > 0){ List laIdList = new List(); List pss = new List(); List ps = [select Id,Name,RAESD_Status__c,LOANER__c,LOANER__r.Name, LOANER__r.RecordTypeId,LOANER__r.status, loaner_application__r.Loaner_LendOrder__c From loaner_application_detail__c Where loaner_application__c in: idList2]; for(loaner_application_detail__c l2s : ps){ laIdList.add(l2s.LOANER__c); } //if(pss.size() > 0 ) update pss; if(laIdList.size() > 0){ List ladList = [select id from loaner_application_detail__c where LOANER__c in : laIdList and (RAESD_Status__c = '申请者已收货' or RAESD_Status__c = '申请者已装机确认')]; System.debug('^^^^^^^'+ladList); if(ladList.size() > 0){ for (loaner_application_detail__c lad : ladList ) { lad.is_distribution__c = true; } System.debug('^^^^^^^'+ladList); update(ladList); } } } } public static String upsertAssetSubmit(List newList, Map newMap, List oldList, Map oldMap) { List p2ids = new List(); for (loaner_application__c local : newList) { loaner_application__c old = oldMap.get(local.Id); if ((old.Status__c != local.Status__c || (local.Equipment_Type__c == 'IE' && local.Approval_Step__c == 2)) && local.Status__c == '申请中') { p2ids.add(local.id); } } List ps = [select Id,Name,RAESD_Status__c,LOANER__c,LOANER__r.Name, LOANER__r.RecordTypeId,LOANER__r.status, loaner_application__r.Loaner_LendOrder__c From loaner_application_detail__c Where loaner_application__c in: p2ids]; List pss = new List(); for(loaner_application_detail__c l2s : ps){ if (String.valueOf(l2s.LOANER__r.RecordTypeId).subString(0,15) == System.label.Asset_Record_Type1 && l2s.loaner_application__r.Loaner_LendOrder__c == false){ if (l2s.LOANER__r.status != '在库' ) { return '样机 ' + l2s.LOANER__r.Name + ' 目前状态是' + l2s.LOANER__r.status + ',请确认'; } else{ Asset p2s = new Asset(); p2s.Id = l2s.LOANER__c; p2s.Status = '冻结'; pss.add(p2s); } } l2s.RAESD_Status__c = '申请中'; } upsert(pss); upsert(ps); return ''; } public static void upsertAssetApproval(List newList, Map newMap, List oldList, Map oldMap) { List p2ids = new List(); for (loaner_application__c local : newList) { loaner_application__c old = oldMap.get(local.Id); if (old.Status__c != local.Status__c && local.Status__c == '已批准') { p2ids.add(local.id); } } List ps = new List(); if(p2ids.size() > 0){ ps = [select Id,Name,RAESD_Status__c,LOANER__c,LOANER__r.Name, LOANER__r.RecordTypeId,LOANER__r.status, loaner_application__r.Loaner_LendOrder__c From loaner_application_detail__c Where loaner_application__c in: p2ids]; //Map psmap = new Map(); List pss = new List(); for(loaner_application_detail__c l2s : ps){ if (String.valueOf(l2s.LOANER__r.RecordTypeId).subString(0,15) == System.label.Asset_Record_Type1){ if (l2s.LOANER__r.status == '在库' && l2s.loaner_application__r.Loaner_LendOrder__c == false){ Asset p2s = new Asset(); p2s.Id = l2s.LOANER__c; p2s.Status = '冻结'; pss.add(p2s); } } l2s.RAESD_Status__c = '已批准'; } if(pss.size()>0) upsert(pss); if(ps.size() >0) upsert(ps); } } public static void cancelLoanerApplication(List newList, Map newMap, List oldList, Map oldMap) { List p2ids = new List(); for (loaner_application__c local : newList) { loaner_application__c old = oldMap.get(local.Id); if (old.Status__c != local.Status__c && local.Status__c == '取消') { p2ids.add(local.id); } } if(p2ids.size() >0){ List ps = [select Id,Name,RAESD_Status__c,LOANER__c,LOANER__r.Name,Equipment_Type__c, LOANER__r.RecordTypeId,LOANER__r.status,loaner_application__r.Loaner_LendOrder__c From loaner_application_detail__c Where loaner_application__c in: p2ids]; List pss = new List(); List laIdList = new List(); for(loaner_application_detail__c l2s : ps){ if (String.valueOf(l2s.LOANER__r.RecordTypeId).subString(0,15) == System.label.Asset_Record_Type1){ if (l2s.LOANER__r.status != '在库' && l2s.loaner_application__r.Loaner_LendOrder__c == false){ Asset p2s = new Asset(); p2s.Id = l2s.LOANER__c; p2s.Status = '在库'; pss.add(p2s); }else if(l2s.loaner_application__r.Loaner_LendOrder__c == true && l2s.Equipment_Type__c == 'BS'){ Asset p2s = new Asset(); p2s.Id = l2s.LOANER__c; p2s.Status = '出借'; pss.add(p2s); laIdList.add(l2s.LOANER__c); } } l2s.RAESD_Status__c = '取消'; l2s.Cancel_Date__c = Date.today(); System.debug('@@@@@@@@@'+laIdList); if(laIdList.size() > 0){ List ladList = [select id from loaner_application_detail__c where LOANER__c in : laIdList and (RAESD_Status__c = '申请者已收货' or RAESD_Status__c = '申请者已装机确认')]; System.debug('@@@@@@@@@@@'+ladList); if(ladList.size() > 0){ for (loaner_application_detail__c lad : ladList ) { lad.is_distribution__c = false; } System.debug('@@@@@@@@@@@'+ladList); update(ladList); } } } if(pss.size() > 0) upsert(pss); if(ps.size() > 0) upsert(ps); } } public static void upsertAssetCancle(List newList, Map newMap, List oldList, Map oldMap) { List p2ids = new List(); for (loaner_application__c local : newList) { loaner_application__c old = oldMap.get(local.Id); if (old.Status__c != local.Status__c && local.Status__c == '驳回') { p2ids.add(local.id); } } if(p2ids.size() > 0){ List ps = [select Id,Name,RAESD_Status__c,LOANER__c,LOANER__r.Name, LOANER__r.RecordTypeId,LOANER__r.status,Equipment_Type__c, loaner_application__r.Loaner_LendOrder__c From loaner_application_detail__c Where loaner_application__c in: p2ids]; //Map psmap = new Map(); List pss = new List(); List laIdList = new List(); for(loaner_application_detail__c l2s : ps){ if (String.valueOf(l2s.LOANER__r.RecordTypeId).subString(0,15) == System.label.Asset_Record_Type1 && l2s.loaner_application__r.Loaner_LendOrder__c == false){ Asset p2s = new Asset(); p2s.Id = l2s.LOANER__c; p2s.Status = '在库'; pss.add(p2s); }else if(String.valueOf(l2s.LOANER__r.RecordTypeId).subString(0,15) == System.label.Asset_Record_Type1 && l2s.loaner_application__r.Loaner_LendOrder__c == true && l2s.Equipment_Type__c == 'BS'){ Asset p2s = new Asset(); p2s.Id = l2s.LOANER__c; p2s.Status = '出借'; pss.add(p2s); laIdList.add(l2s.LOANER__c); } l2s.RAESD_Status__c = '驳回'; System.debug('#######'+laIdList); if(laIdList.size() > 0){ List ladList = [select id from loaner_application_detail__c where LOANER__c in : laIdList and (RAESD_Status__c = '申请者已收货' or RAESD_Status__c = '申请者已装机确认')]; System.debug('#######'+ladList); if(ladList.size() > 0){ for (loaner_application_detail__c lad : ladList ) { lad.is_distribution__c = false; } System.debug('#######'+ladList); update(ladList); } } } if(pss.size() > 0) upsert(pss); if(ps.size() > 0) upsert(ps); } } public static void upsertAssetcallback(List newList, Map newMap, List oldList, Map oldMap) { List p2ids = new List(); for (loaner_application__c local : newList) { loaner_application__c old = oldMap.get(local.Id); if ((old.Status__c != local.Status__c && old.Status__c == '申请中' && local.Status__c == '草案中') || (old.Status__c == '申请中' && local.Status__c == '销售担当批准' && local.Equipment_Type__c == 'IE')) { p2ids.add(local.id); } } if(p2ids.size() >0 ){ List ps = [select Id,Name,RAESD_Status__c,LOANER__c,LOANER__r.Name,LOANER__r.RecordTypeId, LOANER__r.status,loaner_application__r.Loaner_LendOrder__c From loaner_application_detail__c Where loaner_application__c in: p2ids]; //Map psmap = new Map(); List pss = new List(); for(loaner_application_detail__c l2s : ps){ if (String.valueOf(l2s.LOANER__r.RecordTypeId).subString(0,15) == System.label.Asset_Record_Type1 && l2s.loaner_application__r.Loaner_LendOrder__c == false){ Asset p2s = new Asset(); p2s.Id = l2s.LOANER__c; p2s.Status = '在库'; pss.add(p2s); } l2s.RAESD_Status__c = '已分配'; } if(pss.size() > 0) upsert(pss); if(ps.size() > 0) upsert(ps); } } //RVI样机管理员审批时,判断有没有填写借出开始日和借出结束日 public static void rental_Datejudgment(List newList, Map newMap, List oldList, Map oldMap) { LoanerAppDetailTriggerHandler.runTrigger = false; List p2ids = new List(); List detids = new List(); Map olddetsMap = new Map(); for (loaner_application__c local : newList) { loaner_application__c oldLA = oldMap.get(local.Id); if (local.RVI_Manager_Approval__c != oldLA.RVI_Manager_Approval__c && local.RVI_Manager_Approval__c == true && (local.Rental_Start_Date__c == null || local.Rental_End_Date__c == null)){ local.addError('请输入借出开始日和借出结束日。'); } if(local.Loaner_LendOrder__c == true && local.Detail_count__c == 0 && (local.Status__c == '已批准' || local.Status__c == '销售担当批准')){ local.addError('请先分配样机在审批通过'); } } } public static void serviceApproval(List newList, Map newMap, List oldList, Map oldMap){ LoanerAppDetailTriggerHandler.runTrigger = false; for(loaner_application__c la : newList){ loaner_application__c old = oldMap.get(la.Id); if(la.Service_Approval__c != old.Service_Approval__c && la.Service_Approval__c == true && la.Engineer_FW__c == null){ la.addError('审批前请填写:工程师名称(服务).'); } if(la.Product_Approval__c != old.Product_Approval__c && la.Product_Approval__c == true && la.Engineer_CP__c == null){ la.addError('审批前请填写:工程师名称(产品).'); } } } //转借批准后,状态改为 全部发货 public static void GoToNextStatusHead(List newList, Map newMap, List oldList, Map oldMap) { LoanerAppDetailTriggerHandler.runTrigger = false; List p2ids = new List(); List detids = new List(); Map olddetsMap = new Map(); for (loaner_application__c local : newList) { loaner_application__c oldLA = oldMap.get(local.Id); if (local.Status__c != oldLA.Status__c && local.Status__c == '申请中'){ if((String.isBlank(local.Loaner_receive_staff__c)|| String.isBlank(local.direct_shippment_address__c)|| String.isBlank(local.Loaner_receive_staff_phone__c)|| String.isBlank(local.Post_Code__c)) && local.pickup_time__c == null){ local.addError('收货人信息或者自提时间请填写一项。'); } if((!String.isBlank(local.Loaner_receive_staff__c)||!String.isBlank(local.direct_shippment_address__c)|| !String.isBlank(local.Loaner_receive_staff_phone__c)|| !String.isBlank(local.Post_Code__c)) && local.pickup_time__c != null){ local.addError('收货人信息或者自提时间请填写一项。'); } } } for (loaner_application__c local : newList) { loaner_application__c oldLA = oldMap.get(local.Id); if (local.Status__c != oldLA.Status__c && local.Status__c == '已批准' && (local.Rental_Start_Date__c == null || local.Rental_End_Date__c == null)){ local.addError('请输入借出开始日和借出结束日。'); } } for (loaner_application__c local : newList) { loaner_application__c oldLA = oldMap.get(local.Id); if (local.Status__c != oldLA.Status__c && local.Status__c == '销售担当批准' && local.Detail_count__c == 0 && local.Approval_Step__c == 1 && local.Equipment_Type__c == 'IE'){ local.addError('必须先做样机分配后再审批.'); } } } public static void setSubmitUser(List newList, Map newMap, List oldList, Map oldMap) { for (loaner_application__c local : newList) { loaner_application__c old = oldMap.get(local.Id); Id submitUser = UserInfo.getUserId(); if (old.Status__c != local.Status__c && (local.Status__c == '已提交' || local.Status__c == '申请中') && String.isBlank(local.ApplyPerson__c)) { local.ApplyPerson__c = submitUser; } } } public static void setApprover(List newList, Map newMap, List oldList, Map oldMap) { List ApproverIdList = new List(); List loaner_appList = new List(); List productIDList = new List(); Map loanerapplicationToApprover = new Map(); For (loaner_application__c newloanerapplication: newList) { loaner_application__c oldloanerapplication = oldMap.get(newloanerapplication.Id); // if (oldloanerapplication.Approver__c != newloanerapplication.Approver__c || Trigger.isInsert == true) { loaner_appList.add(newloanerapplication.Id); ApproverIdList.add(newloanerapplication.Approver__c); loanerapplicationToApprover.put(newloanerapplication.Id, newloanerapplication.Approver__c); if(String.isNotBlank(newloanerapplication.ProductNameNum1__c)) productIDList.add(newloanerapplication.ProductNameNum1__c); if(String.isNotBlank(newloanerapplication.ProductNameNum2__c)) productIDList.add(newloanerapplication.ProductNameNum2__c); if(String.isNotBlank(newloanerapplication.ProductNameNum3__c)) productIDList.add(newloanerapplication.ProductNameNum3__c); if(String.isNotBlank(newloanerapplication.ProductNameNum4__c)) productIDList.add(newloanerapplication.ProductNameNum4__c); if(String.isNotBlank(newloanerapplication.ProductNameNum5__c)) productIDList.add(newloanerapplication.ProductNameNum5__c); if(String.isNotBlank(newloanerapplication.ProductNameNum6__c)) productIDList.add(newloanerapplication.ProductNameNum6__c); if(String.isNotBlank(newloanerapplication.ProductNameNum7__c)) productIDList.add(newloanerapplication.ProductNameNum7__c); if(String.isNotBlank(newloanerapplication.ProductNameNum8__c)) productIDList.add(newloanerapplication.ProductNameNum8__c); if(String.isNotBlank(newloanerapplication.ProductNameNum9__c)) productIDList.add(newloanerapplication.ProductNameNum9__c); if(String.isNotBlank(newloanerapplication.ProductNameNum10__c)) productIDList.add(newloanerapplication.ProductNameNum10__c); if(String.isNotBlank(newloanerapplication.ProductNameNum11__c)) productIDList.add(newloanerapplication.ProductNameNum11__c); if(String.isNotBlank(newloanerapplication.ProductNameNum12__c)) productIDList.add(newloanerapplication.ProductNameNum12__c); if(String.isNotBlank(newloanerapplication.ProductNameNum13__c)) productIDList.add(newloanerapplication.ProductNameNum13__c); if(String.isNotBlank(newloanerapplication.ProductNameNum14__c)) productIDList.add(newloanerapplication.ProductNameNum14__c); if(String.isNotBlank(newloanerapplication.ProductNameNum15__c)) productIDList.add(newloanerapplication.ProductNameNum15__c); if(String.isNotBlank(newloanerapplication.ProductNameNum16__c)) productIDList.add(newloanerapplication.ProductNameNum16__c); if(String.isNotBlank(newloanerapplication.ProductNameNum17__c)) productIDList.add(newloanerapplication.ProductNameNum17__c); if(String.isNotBlank(newloanerapplication.ProductNameNum18__c)) productIDList.add(newloanerapplication.ProductNameNum18__c); if(String.isNotBlank(newloanerapplication.ProductNameNum19__c)) productIDList.add(newloanerapplication.ProductNameNum19__c); if(String.isNotBlank(newloanerapplication.ProductNameNum20__c)) productIDList.add(newloanerapplication.ProductNameNum20__c); // } } Map copyProductMap = new Map([ SELECT Id, Product_ECCode__c FROM Product2 WHERE Id IN :productIDList ]); Map copyUserMap = new Map([ SELECT Id, Name, SalesAsistManager__c, BusinessDepOwner_Tax__c,BusinessDepOwner_WithoutTax__c, SalesManager__c, AsistGenManger__c,CRM_Owner__c FROM User WHERE Id IN :ApproverIdList ]); Map loaner_appMap = new Map([ select id,name,CreatorUserType__c,CreatedBy.Contact.AccountId__c,AccountId__c,ProductNameNum1__c, ProductNameNum2__c,ProductNameNum3__c,ProductNameNum4__c,ProductNameNum5__c, ProductNameNum6__c,ProductNameNum7__c,ProductNameNum8__c,ProductNameNum9__c, ProductNameNum10__c,ProductNameNum11__c,ProductNameNum12__c,ProductNameNum13__c, ProductNameNum14__c,ProductNameNum15__c,ProductNameNum16__c,ProductNameNum17__c, ProductNameNum18__c,ProductNameNum19__c,ProductNameNum20__c from loaner_application__c WHERE Id IN :loaner_appList ]); for (loaner_application__c newloanerapplication: newList){ loaner_application__c oldloanerapplication = loaner_appMap.get(newloanerapplication.Id); newloanerapplication.EC_Code_1__c = ''; newloanerapplication.EC_Code_2__c = ''; newloanerapplication.EC_Code_3__c = ''; newloanerapplication.EC_Code_4__c = ''; newloanerapplication.EC_Code_5__c = ''; newloanerapplication.EC_Code_6__c = ''; newloanerapplication.EC_Code_7__c = ''; newloanerapplication.EC_Code_8__c = ''; newloanerapplication.EC_Code_9__c = ''; newloanerapplication.EC_Code_10__c = ''; newloanerapplication.EC_Code_11__c = ''; newloanerapplication.EC_Code_12__c = ''; newloanerapplication.EC_Code_13__c = ''; newloanerapplication.EC_Code_14__c = ''; newloanerapplication.EC_Code_15__c = ''; newloanerapplication.EC_Code_16__c = ''; newloanerapplication.EC_Code_17__c = ''; newloanerapplication.EC_Code_18__c = ''; newloanerapplication.EC_Code_19__c = ''; newloanerapplication.EC_Code_20__c = ''; if(String.isNotBlank(newloanerapplication.ProductNameNum1__c)) newloanerapplication.EC_Code_1__c = copyProductMap.get(newloanerapplication.ProductNameNum1__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum2__c)) newloanerapplication.EC_Code_2__c = copyProductMap.get(newloanerapplication.ProductNameNum2__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum3__c)) newloanerapplication.EC_Code_3__c = copyProductMap.get(newloanerapplication.ProductNameNum3__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum4__c)) newloanerapplication.EC_Code_4__c = copyProductMap.get(newloanerapplication.ProductNameNum4__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum5__c)) newloanerapplication.EC_Code_5__c = copyProductMap.get(newloanerapplication.ProductNameNum5__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum6__c)) newloanerapplication.EC_Code_6__c = copyProductMap.get(newloanerapplication.ProductNameNum6__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum7__c)) newloanerapplication.EC_Code_7__c = copyProductMap.get(newloanerapplication.ProductNameNum7__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum8__c)) newloanerapplication.EC_Code_8__c = copyProductMap.get(newloanerapplication.ProductNameNum8__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum9__c)) newloanerapplication.EC_Code_9__c = copyProductMap.get(newloanerapplication.ProductNameNum9__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum10__c)) newloanerapplication.EC_Code_10__c = copyProductMap.get(newloanerapplication.ProductNameNum10__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum11__c)) newloanerapplication.EC_Code_11__c = copyProductMap.get(newloanerapplication.ProductNameNum11__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum12__c)) newloanerapplication.EC_Code_12__c = copyProductMap.get(newloanerapplication.ProductNameNum12__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum13__c)) newloanerapplication.EC_Code_13__c = copyProductMap.get(newloanerapplication.ProductNameNum13__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum14__c)) newloanerapplication.EC_Code_14__c = copyProductMap.get(newloanerapplication.ProductNameNum14__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum15__c)) newloanerapplication.EC_Code_15__c = copyProductMap.get(newloanerapplication.ProductNameNum15__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum16__c)) newloanerapplication.EC_Code_16__c = copyProductMap.get(newloanerapplication.ProductNameNum16__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum17__c)) newloanerapplication.EC_Code_17__c = copyProductMap.get(newloanerapplication.ProductNameNum17__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum18__c)) newloanerapplication.EC_Code_18__c = copyProductMap.get(newloanerapplication.ProductNameNum18__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum19__c)) newloanerapplication.EC_Code_19__c = copyProductMap.get(newloanerapplication.ProductNameNum19__c).Product_ECCode__c; if(String.isNotBlank(newloanerapplication.ProductNameNum20__c)) newloanerapplication.EC_Code_20__c = copyProductMap.get(newloanerapplication.ProductNameNum20__c).Product_ECCode__c; if (oldloanerapplication.CreatorUserType__c == 'PowerPartner' ) { newloanerapplication.Agent__c = oldloanerapplication.AccountId__c; } } for (loaner_application__c newloanerapplication: newList){ loaner_application__c oldloanerapplication = oldMap.get(newloanerapplication.Id); User u = copyUserMap.get(loanerapplicationToApprover.get(newloanerapplication.Id)); if (u != null && (u.SalesAsistManager__c != null || u.BusinessDepOwner_Tax__c != null || u.BusinessDepOwner_WithoutTax__c != null || u.SalesManager__c != null || u.AsistGenManger__c != null)) { newloanerapplication.DeputyApproveManager__c = u.SalesAsistManager__c == null ? u.Id : u.SalesAsistManager__c; newloanerapplication.ApproveManager__c = u.SalesManager__c == null ? u.Id : u.SalesManager__c; } if(newloanerapplication.Equipment_Type__c == 'IE' && newloanerapplication.loaner_place__c == '上海OSH'){ newloanerapplication.loaner_Manager__c = System.label.IE_SH; } if(newloanerapplication.Equipment_Type__c == 'IE' && newloanerapplication.loaner_place__c == '上海嘉华'){ newloanerapplication.loaner_Manager__c = System.label.IE_SHJH; } if(newloanerapplication.Equipment_Type__c == 'IE' && newloanerapplication.loaner_place__c == '广州办'){ newloanerapplication.loaner_Manager__c = System.label.IE_GZB; } if(newloanerapplication.Equipment_Type__c == 'IE' && newloanerapplication.loaner_place__c == '北京酒仙桥'){ newloanerapplication.loaner_Manager__c = System.label.IE_BJ; } if(newloanerapplication.Equipment_Type__c == 'IE' && newloanerapplication.loaner_place__c == '上海明园'){ newloanerapplication.loaner_Manager__c = System.label.IE_SHMY; } if(newloanerapplication.Equipment_Type__c == 'RVI'){ newloanerapplication.loaner_Manager__c = System.label.RVI_Manager; } if(newloanerapplication.Equipment_Type__c == 'BS' && newloanerapplication.loaner_place__c == '北京酒仙桥'){ newloanerapplication.loaner_Manager__c = System.label.BS_JXQ; } if(newloanerapplication.Equipment_Type__c == 'BS' && newloanerapplication.loaner_place__c == '广州办'){ newloanerapplication.loaner_Manager__c = System.label.BS_GZB; } // } } } public static void BackToPreStatus(List newList, Map newMap, List oldList, Map oldMap) { if(oldMap == null){ return; } for (loaner_application__c newLA : newList) { if(newLA == null){ break; } loaner_application__c oldLA = oldMap.get(newLA.Id); // String profileId = UserInfo.getProfileId(); if (newLA.BackToPreStatus__c != oldLA.BackToPreStatus__c && newLA.BackToPreStatus__c == true){ newLA.Status__c = newLA.BeforeSubmitStatus__c; newLA.BackToPreStatus__c = false; } } Map dateRangeMap = new Map(); for (loaner_application__c local : newList) { loaner_application__c old = oldMap.get(local.Id); if (old.Status__c != local.Status__c && local.Status__c == '申请中') { if(local.Request_shipping_Date__c!= null){ if(!dateRangeMap.containsKey('BigDate')){ dateRangeMap.put('BigDate', local.Request_shipping_Date__c); }else if(local.Request_shipping_Date__c > dateRangeMap.get('BigDate')){ dateRangeMap.put('BigDate', local.Request_shipping_Date__c); } if(!dateRangeMap.containsKey('SmaDate')){ dateRangeMap.put('SmaDate', local.Request_shipping_Date__c); }else if(local.Request_shipping_Date__c < dateRangeMap.get('SmaDate')){ dateRangeMap.put('SmaDate', local.Request_shipping_Date__c); } } } } if(dateRangeMap.size()>0){ Map olyCalendarMap = calendarUtil.getCalendarMap(dateRangeMap.get('SmaDate').addDays(-15),dateRangeMap.get('BigDate').addDays(1)); for (loaner_application__c local : newList) { if(local.Request_shipping_Date__c != null){ local.Remind_Date__c = calendarUtil.getCorrespondingDate(olyCalendarMap,local.Request_shipping_Date__c,-3); } } } } public static void setRemind_Date(List newList, Map newMap, List oldList, Map oldMap) { Map dateRangeMap = new Map(); for (loaner_application__c local : newList) { //if (local.CreatorUserType__c == 'Standard' ) { if(local.Request_shipping_Date__c!= null ){ System.debug('Request_shipping_Date__c:'+local.Request_shipping_Date__c); if(!dateRangeMap.containsKey('BigDate')){ dateRangeMap.put('BigDate', local.Request_shipping_Date__c); }else if(local.Request_shipping_Date__c > dateRangeMap.get('BigDate')){ dateRangeMap.put('BigDate', local.Request_shipping_Date__c); } if(!dateRangeMap.containsKey('SmaDate')){ dateRangeMap.put('SmaDate', local.Request_shipping_Date__c); }else if(local.Request_shipping_Date__c < dateRangeMap.get('SmaDate')){ dateRangeMap.put('SmaDate', local.Request_shipping_Date__c); } } //} System.debug('dateRangeMap:'+dateRangeMap); } if(dateRangeMap.size()>0){ System.debug(dateRangeMap.get('SmaDate')); System.debug(dateRangeMap.get('BigDate')); Map olyCalendarMap = calendarUtil.getCalendarMap(dateRangeMap.get('SmaDate').addDays(-40),dateRangeMap.get('BigDate').addDays(15)); System.debug(olyCalendarMap); for (loaner_application__c local : newList) { if(local.Request_shipping_Date__c != null){ local.Remind_Date__c = calendarUtil.getCorrespondingDate(olyCalendarMap,local.Request_shipping_Date__c,-3); } } } } public static void emailDate(List newList, Map newMap, List oldList, Map oldMap){ List remindId = new List(); for(loaner_application__c la : newList){ loaner_application__c old = oldMap.get(la.id); if(la.Rental_End_Date__c != old.Rental_End_Date__c){ remindId.add(la.id); } } Map oCalendar = calendarUtil.getCalendarMap(Date.today().addDays(-240),Date.today().addDays(240)); List remindList = new List(); if(remindId.size()>0){ remindList = [select id,Rental_End_Date__c,Equipment_Type__c from loaner_application__c where id= :remindId]; for(loaner_application__c remind : remindList){ if(remind.Equipment_Type__c == 'NDT' || remind.Equipment_Type__c == 'ANI'){ remind.Remind_Request_Date__c = calendarUtil.getCorrespondingDate(oCalendar,remind.Rental_End_Date__c,-1); remind.First_timeOut__c = calendarUtil.getCorrespondingDate(oCalendar,remind.Rental_End_Date__c,2); remind.Second_timeOut__c = calendarUtil.getCorrespondingDate(oCalendar,remind.Rental_End_Date__c,4); }else{ remind.Remind_Request_Date__c = calendarUtil.getCorrespondingDate(oCalendar,remind.Rental_End_Date__c,-3); } } } if(remindList.size()>0) update remindList; } /* public static void unlock(List newList, Map newMap, List oldList, Map oldMap){ List laIdList = new List(); for(loaner_application__c la : newList){ loaner_application__c old = oldMap.get(la.Id); if(la.Status__c != old.Status__c && la.Status__c == '全部回收' && (la.Equipment_Type__c == 'NDT' || la.Equipment_Type__c == 'ANI') && la.Is_time_out__c){ laIdList.add(la.Id); } } if(laIdList.size() == 0){ return; } // List userIdList = new List(); List uvList = [SELECT Id,Violations_User__c FROM User_Violations__c WHERE Violations_Loaner__c IN :laIdList]; if(uvList != null && uvList.size() > 0){ for(User_Violations__c uv : uvList){ uv.Is_effective__c = false; uv.Is_locking__c = false; uv.is_Alone__c = true; userIdList.add(uv.Violations_User__c); } } List uv1List = [select id,Violations_User__c,Is_locking__c from User_Violations__c where Is_effective__c = true order by Violations_User__c]; Map userMap = new Map(); Map user_vMap = new Map(); for(User_Violations__c uv : uv1List){ if(userMap.containsKey(uv.Violations_User__c)){ userMap.put(uv.Violations_User__c, userMap.get(uv.Violations_User__c)+1); }else{ userMap.put(uv.Violations_User__c, 1); } if(uv.Is_locking__c = true){ user_vMap.put(uv.Violations_User__c,uv.Id); } } }*/ }