public without sharing class OrderTriggerHandler {
|
/**
|
* [liApprove description]
|
* 李部长审批控制
|
*/
|
public static void liApprove(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
Order ord = newList[0];
|
if (ord.LiApprove__c == true && ord.If_Supervise__c == true) {
|
ord.addError('批准需要取消\'临床标识\'的勾选。');
|
}
|
}
|
/**
|
* [addressCopy description]
|
* 收货地址拷文本
|
*/
|
public static void addressCopy(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
List<String> IDList = new List<String>();
|
for (Order ord : newList) {
|
Order old = oldMap.get(ord.Id);
|
if (old.SpecialDeliveryContact2_D__c != ord.SpecialDeliveryContact2_D__c) {
|
ord.Shipping_Address_TextD__c = old.Shipping_Address_D__c;
|
}
|
if (old.SpecialDeliveryContact2__c != ord.SpecialDeliveryContact2__c) {
|
//因在合同审批前 SpecialDeliveryContact2__c 为空 ,因此 old.Shipping_Address__c 为空
|
|
// ord.Shipping_Address_Text__c = old.Shipping_Address__c;
|
//因在合同审批后 在更新前 SpecialDeliveryContact2__c 为空 ord.Shipping_Address__c 为空
|
// ord.Shipping_Address_Text__c = ord.Shipping_Address__c;
|
// 因此,直接获取SpecialDeliveryContact2_D__c的地址,给 送货地址(文本) 赋值
|
// 20200918-XHL,合同审批后 送货地址(文本) 字段原名 收货地址(文本) 没有赋值成功,做出如下修改,上边为解释
|
ord.Shipping_Address_Text__c = ord.Shipping_Address_D__c;
|
//送达方公司(公式) ==> 送达方公司(文本)
|
// 20200918-XHL WLIG-BTGAPE Start
|
ord.SpecialDeliveryAccountText__c = ord.SpecialDeliveryAccountFormula__c;
|
//送达方联系人(公式) ==> 送达方联系人(文本)
|
ord.SpecialDeliveryContactText__c = ord.SpecialDeliveryContactFormula__c;
|
// 20200918-XHL WLIG-BTGAPE End
|
}
|
}
|
}
|
/**
|
* [checkAdderss description]
|
* 收货地址控制
|
*/
|
public static void checkAdderss(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
|
for (Order ord : newList) {
|
Order old = oldMap.get(ord.Id);
|
if (ord.Is_Already_Splited__c == true && ord.ProductSegment__c == 'BS' && ord.Opportunity != null && ord.ApproveStatus__c == 'OrderPass' && (ord.Shipping_Address__c != old.Shipping_Address__c || ord.Shipping_Address_D__c != old.Shipping_Address_D__c || ord.SpecialDeliveryAccount_D__c != old.SpecialDeliveryAccount_D__c || ord.SpecialDeliveryAccount__c != old.SpecialDeliveryAccount__c || ord.SpecialDeliveryContact2_D__c != old.SpecialDeliveryContact2_D__c || ord.SpecialDeliveryContact2__c != old.SpecialDeliveryContact2__c)) {
|
Opportunity oppor = [select id, AccountId, Dealer__r.DummyDealer__c, Dealer__r.ParentID, Account.MarketVerticals__c, Trade_Type_D__c from Opportunity where id = :ord.OpportunityId];
|
|
if (oppor.Account.MarketVerticals__c == 'Clinical' && oppor.Trade_Type_D__c == 'Taxation' ) {
|
ord.addError('内贸医疗订单批准后拆分,不能修收货地址');
|
}
|
}
|
}
|
}
|
/**
|
* [check description]
|
* LS内贸医疗合同证照检查,OSSA辐射产品检查,产品首营状态检查
|
*/
|
public static void check(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
String oppId = newList[0].OpportunityId;
|
Date endDate = Date.valueOf('2019-12-28');
|
String stri = '';
|
if (newList[0].ProductSegment__c == 'BS' && (newList[0].ApproveStatus__c == 'Draft' || newList[0].ApproveStatus__c == 'Reject' || newList[0].ApproveStatus__c == 'OrderDraft' || newList[0].ApproveStatus__c == 'OrderReject' )) {
|
Opportunity oppor = [select id, AccountId, Dealer__r.DummyDealer__c, Dealer__r.ParentID, Account.MarketVerticals__c, Trade_Type_D__c from Opportunity where id = :oppId];
|
if (oppor.Account.MarketVerticals__c == 'Clinical' && oppor.Trade_Type_D__c == 'Taxation' && (newList[0].date_P__c > endDate || newList[0].date_P__c == null)) {
|
newList[0].If_Supervise__c = true;
|
if (oppor.Dealer__r.DummyDealer__c == true) {
|
newList[0].check__c = LicenseCheckUtil.LicenseCheck(oppor.AccountId);
|
} else {
|
newList[0].check__c = LicenseCheckUtil.LicenseCheck(oppor.Dealer__r.ParentID);
|
//newList[0].addCheck__c = LicenseCheckUtil.AddressCheck(oppor.Dealer__r.ParentID,newList[0].Shipping_Address_D__c) == true ? '1' : '0';
|
}
|
} else {
|
system.debug('*()*');
|
}
|
|
}
|
if (newList[0].ProductSegment__c == 'ANI' || newList[0].ProductSegment__c == 'NDT') {
|
List<OpportunityLineItem> oliList = [select id, Product2.If_Exempt_Product__c, Product2.If_Radiation_Product__c, Opportunity.DealerId__c from OpportunityLineItem where opportunityId = :oppId];
|
Boolean hasA = false;
|
for (OpportunityLineItem oli : oliList) {
|
if (oli.Product2.If_Exempt_Product__c == false && oli.Product2.If_Radiation_Product__c == true) {
|
hasA = true;
|
}
|
}
|
if (hasA == true) {
|
stri = LicenseCheckUtil.LicenseCheck1(oliList[0].Opportunity.DealerId__c);
|
system.debug(stri);
|
newList[0].check__c = (stri == '0' ? '1':stri);
|
}
|
if(Trigger.isInsert){
|
String result = '';
|
String olympusAccountId = System.label.Olympus_Id;
|
Map<String, Integer> getModelQuantityMap = RadiationUtil.GetOpportunityLineMap(oppId);
|
|
|
|
if (newList[0].ProductSegment__c == 'ANI' && newList[0].TradeType__c == '内贸' ) {
|
String errorStr = RadiationUtil.GetCertificationDetail(oliList[0].Opportunity.DealerId__c,getModelQuantityMap);
|
if(errorStr != ''){
|
newList[0].addError(errorStr +'不能创建合同');
|
}
|
//stri = LicenseCheckUtil.LicenseCheck1(oliList[0].Opportunity.DealerId__c);
|
|
system.debug('2222222'+getModelQuantityMap);
|
String accountDealerErrorMessage = RadiationUtil.updateCertificationDetails(oliList[0].Opportunity.DealerId__c, null, getModelQuantityMap, false);
|
String olympusDealerErrorMessage = RadiationUtil.updateCertificationDetails(olympusAccountId, null, getModelQuantityMap, false) == '' ? '' : '仪景通可销售数量不足';
|
//result = accountDealerErrorMessage + (olympusDealerErrorMessage == '' ? '' : '仪景通可销售数量不足') ;
|
Boolean temp = accountDealerErrorMessage.startsWith('你不能');
|
String strOly = LicenseCheckUtil.LicenseCheckOly();
|
if(temp){
|
newList[0].addError('产品中包含不能销售的辐射产品系列' +'不能创建合同');
|
}else{
|
if(olympusDealerErrorMessage == '-1'){
|
newList[0].addError('产品中包含不能销售的辐射产品系列' +'不能创建合同');
|
}else if(olympusDealerErrorMessage != ''){
|
newList[0].addError(olympusDealerErrorMessage +'不能创建合同');
|
}
|
|
if(stri == '1'){
|
if(accountDealerErrorMessage != '' && strOly == '1'){
|
newList[0].addError(accountDealerErrorMessage +'不能创建合同');
|
}else if(accountDealerErrorMessage != '' && strOly == '0'){
|
newList[0].check__c = accountDealerErrorMessage;
|
}
|
}
|
}
|
|
}
|
}
|
|
}
|
if (Trigger.isInsert) {
|
|
|
|
List<OpportunityLineItem> qliList = [select id, Product2.NMPAStatus__c, Product2.ProductCode ,oppLiVerifyProductValid__c from OpportunityLineItem where opportunityId = :oppId];
|
String str = '';
|
Boolean isok = true;
|
for (OpportunityLineItem qli : qliList) {
|
// WLIG-BTA8C2 XHL 20200925 -Start
|
// 合同变更 并且 询价产品的 验证产品有效性 为 false 时跳过验证
|
if (newList[0].OrderIsChange__c && qli.oppLiVerifyProductValid__c == false) {
|
// WLIG-BTA8C2 XHL 20200925 -End
|
} else {
|
if (qli.Product2.NMPAStatus__c == '首营状态变更' || qli.Product2.NMPAStatus__c == '首营不通过') {
|
str += (' ' + qli.Product2.ProductCode);
|
isok = false;
|
}
|
}
|
|
}
|
if (isok == false) {
|
newList[0].addError(str + '首营未通过');
|
}
|
}
|
}
|
public static void setIsNew(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
List<String> oppidList = new List<String>();
|
for (Order newOrd : newList) {
|
/* if(newOrd.SubDealer__c == '无'){
|
newOrd.SubDealer__c = '';
|
}*/
|
oppIdList.add(newOrd.OpportunityId);
|
/*if (String.isNotBlank(newOrd.org_order__c)) {
|
newOrd.SharedFlag__c = false;
|
}*/
|
}
|
|
List<AggregateResult> orderCnt = [select Count(Id) ocnt, OpportunityId from Order where OpportunityId = :oppIdList and Status__c = 'Active' group by OpportunityId];
|
Map<String, Integer> orderCntMap = new Map<String, Integer>();
|
for (AggregateResult temp : orderCnt) {
|
orderCntMap.put((String) temp.get('OpportunityId'), (Integer) temp.get('ocnt'));
|
}
|
// String profileId = UserInfo.getProfileId().substring(0, 15);
|
|
//新的获取简档ID calendarUtil.getMemberProfileID 这里用到的人员ID 和获取到的简档ID都是15位的
|
//String new_profileId = calendarUtil.getMemberProfileID(UserInfo.getUserId().subString(0,15));
|
String new_profileId = calendarUtil.getMemberProfileID(UserInfo.getUserId().subString(0,15));
|
|
for (Order newOrd : newList) {
|
if (new_profileId <> System.Label.SystemAdmin && new_profileId <> System.Label.SystemAdmin2
|
&& orderCntMap.containsKey(newOrd.OpportunityId) == true && orderCntMap.get(newOrd.OpportunityId) > 0) {
|
newOrd.addError('存在有效合同,不能创建创新合同!');
|
}
|
}
|
//王鹏伟 新建和同时,和询价对比客户、最终用户
|
//戴宇,添加合同关联逻辑
|
List<Opportunity> oppList = [select id,Association_Opportunity__c,CrossCooperativeProject__c,HeadOfCooperationArea__c,CrossCooperativeDealer__r.ManagementCode_F__c,CrossCooperativeDealer__r.Name,SyncedQuoteId, SyncedQuote.PaymentTerms__c, TradeType__c, Quote_PaymentTerms__c,AccountId,customerType__c,useing__c,compo_opp__c from Opportunity where id = :oppidList];
|
Map<String, String> syncedQuoteIdMap = new Map<String, String>();
|
Map<String, String> paymentTermsMap = new Map<String, String>();
|
Map<String, String> tradeTypeMap = new Map<String, String>();
|
Map<String,String> oppAccountMap = new Map<String,String>();
|
Map<String,Opportunity> oppMap = new Map<String,Opportunity>();
|
|
|
|
for (Opportunity opp : oppList) {
|
syncedQuoteIdMap.put(opp.id, opp.SyncedQuoteId);
|
//paymentTermsMap.put(opp.id, opp.SyncedQuote.PaymentTerms__c);
|
paymentTermsMap.put(opp.Id, opp.Quote_PaymentTerms__c);
|
system.debug('paymentTermsMap:' + paymentTermsMap);
|
tradeTypeMap.put(opp.id, opp.TradeType__c);
|
oppAccountMap.put(opp.Id,opp.AccountId);
|
oppMap.put(opp.Id,opp);
|
}
|
|
for (Order newOrd : newList) {
|
if(newOrd.ProductSegment__c == 'IE' && newOrd.IE_SP8_D__c != oppMap.get(newOrd.OpportunityId).compo_opp__c){
|
newOrd.addError('不能修改特殊条件COMPO');
|
}
|
/*if(newOrd.ProductSegment__c == 'BS'){
|
String temp = oppMap.get(newOrd.OpportunityId).useing__c;
|
if(newOrd.SP_61D__c != (temp == ''?false:true)){
|
newOrd.addError('不能修改特殊条件 OEM 采购');
|
}
|
}*/
|
if (OrderDivisionController.OrderDivision == true) {
|
/* if (newOrd.ApproveStatus__c == 'Submit') {
|
newOrd.ApproveStatus__c = 'Draft';
|
} else if (newOrd.ApproveStatus__c == 'OrderSubmit') {
|
newOrd.ApproveStatus__c = 'OrderDraft';
|
} else {
|
// 保持状态
|
}*/
|
// 保持状态
|
} else if (newOrd.IsCopy__c == true) {
|
// 保持状态
|
} else if (newOrd.Order_IsSpecial__c == true || newOrd.Order_IsSpecial_Service__c == true) {
|
newOrd.ApproveStatus__c = 'Draft';
|
newOrd.date_P__c = null;
|
} else {
|
newOrd.ApproveStatus__c = 'OrderDraft';
|
newOrd.date_P__c = null;
|
}
|
newOrd.CrossCooperativeProject__c = oppMap.get(newOrd.OpportunityId) == null ? false :oppMap.get(newOrd.OpportunityId).CrossCooperativeProject__c;
|
newOrd.SP_901D__c = oppMap.get(newOrd.OpportunityId) == null ? false :oppMap.get(newOrd.OpportunityId).CrossCooperativeProject__c;
|
newOrd.CrossCooperativeDealerCode__c = oppMap.get(newOrd.OpportunityId) == null ? '' :oppMap.get(newOrd.OpportunityId).CrossCooperativeDealer__r.ManagementCode_F__c;
|
newOrd.HeadOfCooperationArea__c = oppMap.get(newOrd.OpportunityId) == null ? null :oppMap.get(newOrd.OpportunityId).HeadOfCooperationArea__c;
|
newOrd.CrossCooperativeDealerText__c = oppMap.get(newOrd.OpportunityId) == null ? null :oppMap.get(newOrd.OpportunityId).CrossCooperativeDealer__r.Name;
|
|
|
//王鹏伟新加,合同中带入 询价 贸易管理客户分类 开始
|
newOrd.TradeMagCategory__c = oppMap.get(newOrd.OpportunityId) == null ? '' :oppMap.get(newOrd.OpportunityId).customerType__c;
|
//王鹏伟新加,合同中带入 询价 贸易管理客户分类 结束
|
newOrd.IsNew__c = true;
|
newOrd.QuoteId = syncedQuoteIdMap.get(newOrd.OpportunityId);
|
newOrd.PaymentTerms__c = paymentTermsMap.get(newOrd.OpportunityId);
|
newOrd.Status__c = 'Active';
|
|
//IE,只有compo被选中,则不需要审批 gwy 2021-06-02
|
if(newOrd.ProductSegment__c=='IE' && newOrd.Status__c == 'Active' && newOrd.OrderDraft__c == false
|
&& newOrd.IE_SP5_D__c == false && newOrd.IE_SP6_D__c == false && newOrd.IE_SP7_D__c == false && newOrd.IE_SP8_D__c == true){
|
newOrd.ApproveStatus__c = 'Pass';
|
newOrd.IsSpPassed__c = true;
|
newOrd.IE_SP8__c = true;
|
}
|
//IE,只有compo被选中,则不需要审批 gwy 2021-06-02
|
|
boolean individualCase = newOrd.RecordTypeId == System.Label.RT_Contract_IndividualCase_ANI ||
|
newOrd.RecordTypeId == System.Label.RT_Contract_IndividualCase_BS ||
|
newOrd.RecordTypeId == System.Label.RT_Contract_IndividualCase_IE ||
|
newOrd.RecordTypeId == System.Label.RT_Contract_IndividualCase_NDT ||
|
newOrd.RecordTypeId == System.Label.RT_Contract_IndividualCase_RVI;
|
|
if (UserInfo.getUserType() == 'PowerPartner' || newOrd.RecordTypeId == System.Label.RT_ServiceContract
|
|| newOrd.RecordTypeId == System.Label.RT_ServiceContractIE || newOrd.RecordTypeId == System.Label.RT_ServiceContractRVI || individualCase) {
|
// 外贸送达方默认为外贸公司
|
if (tradeTypeMap.get(newOrd.OpportunityId) == System.Label.Trade_Type) {
|
newOrd.SpecialDeliveryAccount_D__c = newOrd.ForeignTradeCompany_D__c;
|
}
|
} else {
|
newOrd.SP_11D__c = newOrd.SP_11__c;
|
newOrd.SP_901D__c = newOrd.SP_901__c;
|
newOrd.SP_101D__c = newOrd.SP_101__c;
|
newOrd.SP_102D__c = newOrd.SP_102__c;
|
newOrd.SP_103D__c = newOrd.SP_103__c;
|
newOrd.SP_106D__c = newOrd.SP_106__c;
|
newOrd.SP_107D__c = newOrd.SP_107__c;
|
newOrd.Theoinp_D__c = newOrd.Theoinp__c;
|
newOrd.SP_745D__c = newOrd.SP_745__c;
|
newOrd.SP_111D__c = newOrd.SP_111__c;
|
newOrd.SP_121D__c = newOrd.SP_121__c;
|
newOrd.SP_131D__c = newOrd.SP_131__c;
|
newOrd.SP_141D__c = newOrd.SP_141__c;
|
newOrd.SP_151D__c = newOrd.SP_151__c;
|
newOrd.SP_161D__c = newOrd.SP_161__c;
|
newOrd.SP_171D__c = newOrd.SP_171__c;
|
newOrd.SP_181D__c = newOrd.SP_181__c;
|
newOrd.SP_191D__c = newOrd.SP_191__c;
|
newOrd.SP_201D__c = newOrd.SP_201__c;
|
newOrd.SP_202D__c = newOrd.SP_202__c;
|
newOrd.SP_21D__c = newOrd.SP_21__c;
|
newOrd.SP_22D__c = newOrd.SP_22__c;
|
newOrd.SP_31D__c = newOrd.SP_31__c;
|
newOrd.SP_32D__c = newOrd.SP_32__c;
|
newOrd.SP_33D__c = newOrd.SP_33__c;
|
newOrd.SP_41D__c = newOrd.SP_41__c;
|
newOrd.SP_51D__c = newOrd.SP_51__c;
|
newOrd.SP_52D__c = newOrd.SP_52__c;
|
newOrd.SP_61D__c = newOrd.SP_61__c;
|
newOrd.SP_62D__c = newOrd.SP_62__c;
|
newOrd.SP_71D__c = newOrd.SP_71__c;
|
newOrd.SP_81D__c = newOrd.SP_81__c;
|
newOrd.SP_91D__c = newOrd.SP_91__c;
|
//newOrd.ConditionContract_D__c = newOrd.ConditionContract__c;
|
newOrd.Contract_StatusD__c = newOrd.Contract_Status__c;
|
newOrd.CustomerContractPriceD__c = newOrd.CustomerContractPrice__c;
|
//newOrd.EffectiveDateD__c = newOrd.EffectiveDate;
|
newOrd.OlympusContractPricesD__c = newOrd.OlympusContractPrices__c;
|
newOrd.EndUserD__c = newOrd.EndUser__c;
|
|
newOrd.IE_SP1_D__c = newOrd.IE_SP1__c;
|
newOrd.IE_SP2_D__c = newOrd.IE_SP2__c;
|
newOrd.IE_SP3_D__c = newOrd.IE_SP3__c;
|
newOrd.IE_SP4_D__c = newOrd.IE_SP4__c;
|
newOrd.IE_SP5_D__c = newOrd.IE_SP5__c;
|
newOrd.IE_SP6_D__c = newOrd.IE_SP6__c;
|
newOrd.IE_SP7_D__c = newOrd.IE_SP7__c;
|
newOrd.IE_SP8_D__c = newOrd.IE_SP8__c;
|
|
newOrd.RVI_SP1_D__c = newOrd.RVI_SP1__c;
|
newOrd.RVI_SP2_D__c = newOrd.RVI_SP2__c;
|
newOrd.RVI_SP3_D__c = newOrd.RVI_SP3__c;
|
newOrd.RVI_SP4_D__c = newOrd.RVI_SP4__c;
|
newOrd.RVI_SP5_D__c = newOrd.RVI_SP5__c;
|
newOrd.RVI_SP6_D__c = newOrd.RVI_SP6__c;
|
|
newOrd.NDT_SP1_D__c = newOrd.NDT_SP1__c;
|
newOrd.NDT_SP2_D__c = newOrd.NDT_SP2__c;
|
newOrd.NDT_SP3_D__c = newOrd.NDT_SP3__c;
|
newOrd.NDT_SP4_D__c = newOrd.NDT_SP4__c;
|
newOrd.NDT_SP5_D__c = newOrd.NDT_SP5__c;
|
newOrd.NDT_SP6_D__c = newOrd.NDT_SP6__c;
|
newOrd.NDT_SP7_D__c = newOrd.NDT_SP7__c;
|
newOrd.NDT_SP8_D__c = newOrd.NDT_SP8__c;
|
newOrd.NDT_SP9_D__c = newOrd.NDT_SP9__c;
|
newOrd.NDT_SP10_D__c = newOrd.NDT_SP10__c;
|
newOrd.NDT_SP11_D__c = newOrd.NDT_SP11__c;
|
|
newOrd.ANI_SP1_D__c = newOrd.ANI_SP1__c;
|
newOrd.ANI_SP2_D__c = newOrd.ANI_SP2__c;
|
newOrd.ANI_SP3_D__c = newOrd.ANI_SP3__c;
|
newOrd.ANI_SP4_D__c = newOrd.ANI_SP4__c;
|
newOrd.ANI_SP5_D__c = newOrd.ANI_SP5__c;
|
newOrd.ANI_SP6_D__c = newOrd.ANI_SP6__c;
|
|
newOrd.NormalDis_SerContractCondition_D__c = newOrd.NormalDis_SerContractCondition__c;
|
newOrd.HighDis_SerContractCondition_D__c = newOrd.HighDis_SerContractCondition__c;
|
newOrd.SpecialDis_SerContractCondition_D__c = newOrd.SpecialDis_SerContractCondition__c;
|
newOrd.Warranty_SerContractCondition_D__c = newOrd.Warranty_SerContractCondition__c;
|
|
newOrd.Discount_D__c = newOrd.Discount__c;
|
newOrd.Olympus_Price_BeforeDiscount_D__c = newOrd.Olympus_Price_BeforeDiscount__c;
|
newOrd.PaymentCondition_D__c = newOrd.PaymentCondition__c;
|
newOrd.SpecialDelivery_D__c = newOrd.SpecialDelivery__c;
|
newOrd.SpecialDeliveryContact_D__c = newOrd.SpecialDeliveryContact__c;
|
newOrd.SpecialDeliveryPhone_D__c = newOrd.SpecialDeliveryPhone__c;
|
newOrd.SpecialDeliveryAddress_D__c = newOrd.SpecialDeliveryAddress__c;
|
// PIPL Update 20220420 By Chen Yanan Start
|
newOrd.SpecialDeliveryContact_D_Encrypted__c = newOrd.SpecialDeliveryContact_Encrypted__c;
|
newOrd.SpecialDeliveryPhone_D_Encrypted__c = newOrd.SpecialDeliveryPhone_Encrypted__c;
|
newOrd.SpecialDeliveryAddress_D_Encrypted__c = newOrd.SpecialDeliveryAddress_Encrypted__c;
|
// PIPL Update 20220420 By Chen Yanan End
|
newOrd.SpecialParkage_D__c = newOrd.SpecialParkage__c;
|
newOrd.SpecialWarranty_D__c = newOrd.SpecialWarranty__c;
|
newOrd.DealerProfit_D__c = newOrd.DealerProfit__c;
|
newOrd.SpecialDelDate_D__c = newOrd.SpecialDelDate__c;
|
newOrd.OtherApply_D__c = newOrd.OtherApply__c;
|
|
newOrd.Andor_D__c = newOrd.Andor__c;
|
newOrd.Bitplane_D__c = newOrd.Bitplane__c;
|
newOrd.CoolLED_D__c = newOrd.CoolLED__c;
|
newOrd.Lumen_D__c = newOrd.Lumen__c;
|
newOrd.Lumenera_D__c = newOrd.Lumenera__c;
|
newOrd.Media_Cybernetics_D__c = newOrd.Media_Cybernetics__c;
|
newOrd.Narishige_D__c = newOrd.Narishige__c;
|
newOrd.Newport_D__c = newOrd.Newport__c;
|
newOrd.OSIS_Germany_D__c = newOrd.OSIS_Germany__c;
|
newOrd.OSIS_Singapore_D__c = newOrd.OSIS_Singapore__c;
|
newOrd.Photometrics_D__c = newOrd.Photometrics__c;
|
newOrd.Prior_Scientific_D__c = newOrd.Prior_Scientific__c;
|
newOrd.Q_Imaging_D__c = newOrd.Q_Imaging__c;
|
newOrd.Tokai_Hit_D__c = newOrd.Tokai_Hit__c;
|
newOrd.Other_Third_D__c = newOrd.Other_Third__c;
|
newOrd.ServiceFee_D__c = newOrd.ServiceFee__c;
|
newOrd.AlongProduct_D__c = newOrd.AlongProduct__c;
|
newOrd.Cost_D__c = newOrd.Cost__c;
|
newOrd.Cost_D__c = newOrd.Cost__c;
|
newOrd.Sub_DealerC_D__c = newOrd.Sub_DealerC__c;
|
|
|
|
newOrd.ForeignTradeCompany_D__c = newOrd.ForeignTradeCompany__c;
|
// 外贸送达方默认为外贸公司
|
if (tradeTypeMap.get(newOrd.OpportunityId) == System.Label.Trade_Type) {
|
newOrd.SpecialDeliveryAccount__c = newOrd.ForeignTradeCompany__c;
|
}
|
newOrd.SpecialDeliveryAccount_D__c = newOrd.SpecialDeliveryAccount__c;
|
newOrd.SpecialDeliveryContact2_D__c = newOrd.SpecialDeliveryContact2__c;
|
|
newOrd.Shipment_Term_D__c = newOrd.Shipment_Term__c;
|
newOrd.Shipment_Term2_D__c = newOrd.Shipment_Term2__c;
|
}
|
}
|
//王鹏伟 新建和同时,和询价对比客户、最终用户
|
//添加 开始
|
/*
|
List<OpportunityContactRole> role_list = new List<OpportunityContactRole>();
|
role_list = [select Id,Role,IsPrimary,OpportunityId,ContactId from OpportunityContactRole where OpportunityId = :oppidList and Role = 'End user' and IsPrimary = true];
|
Map<String,String> roleMap = new Map<String,String>();
|
for(OpportunityContactRole oppor:role_list){
|
roleMap.put(oppor.OpportunityId,oppor.ContactId);
|
}
|
for(Order orOne:newList){
|
System.debug(oppAccountMap.get(orOne.OpportunityId)+'---'+orOne.AccountId);
|
System.debug(roleMap.get(orOne.OpportunityId)+'---'+orOne.EndUserD__c);
|
if (oppAccountMap.containsKey(orOne.OpportunityId)) {
|
if(oppAccountMap.get(orOne.OpportunityId) != orOne.AccountId || !roleMap.containsKey(orOne.OpportunityId) || orOne.EndUserD__c != roleMap.get(orOne.OpportunityId)){
|
orOne.addError('客户名或最终用户与询价不一致!');
|
}
|
}
|
}
|
*/
|
//王鹏伟添加 结束
|
|
}
|
|
public static void setPriceBook(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
|
List<String> oppidList = new List<String>();
|
for (Order o : newList) {
|
oppidList.add(o.OpportunityId);
|
}
|
List<Opportunity> oppList = [select Id, Pricebook2Id from Opportunity where Id = :oppidList];
|
Map<String, String> pricebookMap = new Map<String, String>();
|
for (Opportunity opp : oppList) {
|
pricebookMap.put(opp.Id, opp.Pricebook2Id);
|
}
|
for (Order o : newList) {
|
o.Pricebook2Id = pricebookMap.get(o.OpportunityId);
|
}
|
}
|
|
public static void addItem(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
List<String> oppidList = new List<String>();
|
// Map<String, String> order2oppMap = new Map<String, String>();
|
Boolean hasBS = false;
|
for (Order o : newList) {
|
oppidList.add(o.OpportunityId);
|
// order2oppMap.put(o.Id, o.OpportunityId);
|
}
|
// XHL20210830
|
List<OpportunityTeamMember> oppTM = new List<OpportunityTeamMember>();
|
// 查找询价下询价团队,用户必须有效
|
oppTM = [select userId,opportunityId,user.IsActive,opportunity.OwnerId from OpportunityTeamMember where user.IsActive = true AND opportunityId In :oppidList];
|
if(oppTM.size() >0){
|
Map<Id,Map<Id,OrderShare>> orderShareMap = new Map<Id,Map<Id,OrderShare>>();
|
for (Order newOrd : newList) {
|
for (OpportunityTeamMember otm : oppTM) {
|
// 排除 客户团队用户 是 合同所有人
|
// 排除 客户团队用户 是 询价所有人
|
if(otm.OpportunityId == newOrd.OpportunityId && otm.userId != newOrd.OwnerId){
|
|
Map<Id,OrderShare> shareMap = new Map<Id,OrderShare>();
|
if (orderShareMap.containsKey(newOrd.Id)) {
|
shareMap = orderShareMap.get(newOrd.Id);
|
}
|
|
shareMap.put(otm.UserId,DataAssembly(newOrd.Id,otm.UserId));
|
//排除 合同所有人 与 询价所有人 相同
|
if (newOrd.OwnerId != otm.opportunity.OwnerId) {
|
|
shareMap.put(otm.opportunity.OwnerId,DataAssembly(newOrd.Id,otm.opportunity.OwnerId));
|
|
}
|
orderShareMap.put(newOrd.Id,shareMap);
|
|
|
}
|
}
|
}
|
if (orderShareMap.size() > 0 ) {
|
List<OrderShare> shareList = new List<OrderShare>();
|
for (Id orderId :orderShareMap.keySet()) {
|
Map<Id,OrderShare> shareMap = orderShareMap.get(orderId);
|
for (Id userId: shareMap.keySet()) {
|
shareList.add(shareMap.get(userId));
|
}
|
}
|
|
if (shareList.size() > 0) {
|
insert shareList;
|
}
|
}
|
}
|
|
/* List<OpportunityTeamMember> oppTM = new List<OpportunityTeamMember>();
|
oppTM = [select userId,opportunityId,user.IsActive from OpportunityTeamMember where opportunityId = :oppidList];
|
if(oppTM.size() >0){
|
List<OrderShare> shareList = new List<OrderShare>();
|
for (Order newOrd : newList) {
|
for (OpportunityTeamMember otm : oppTM) {
|
if(otm.OpportunityId == newOrd.OpportunityId && otm.User.IsActive == true){
|
system.debug(newOrd.Id);
|
System.debug(otm.UserId);
|
OrderShare aos = new OrderShare(
|
RowCause = 'Manual',
|
orderId = newOrd.Id,
|
UserOrGroupId = otm.UserId,
|
OrderAccessLevel = 'Edit');
|
shareList.add(aos);
|
}
|
}
|
}
|
System.debug(shareList);
|
insert shareList;
|
}*/
|
|
|
List<String> quoidList = new List<String>();
|
Map<String, String> opp2quoMap = new Map<String, String>();
|
List<Opportunity> oppList = [select Id, SyncedQuoteId,Association_Opportunity__c from Opportunity where Id = :oppidList];
|
|
/* List<DecideQuoteProductSet__c> dqpList = new List<DecideQuoteProductSet__c>();
|
dqpList = [select id from DecideQuoteProductSet__c where DecideOpportunity__c in :oppIdList];
|
*/
|
|
Map<String,String> associationMap = new Map<String,String>();
|
for (Opportunity opp : oppList) {
|
if (opp.SyncedQuoteId != null) {
|
quoidList.add(opp.SyncedQuoteId);
|
opp2quoMap.put(opp.Id, opp.SyncedQuoteId);
|
}
|
if(opp.Association_Opportunity__c != null){
|
associationMap.put(opp.Id,opp.Association_Opportunity__c);
|
}
|
}
|
|
List<Order> updateOrderList = new List<Order>();
|
if(associationMap.size() > 0){
|
List<Order> ordList = new List<Order>();
|
ordList = [select id,Association_Order__c,OpportunityId from Order where OpportunityId in : associationMap.values() and Status__c = 'Active'];
|
if(ordList.size() > 0){
|
for(Order neword : newList){
|
if(associationMap.containsKey(neword.OpportunityId)){
|
for(Order o : ordList){
|
if(o.OpportunityId == associationMap.get(neword.OpportunityId)){
|
Order neworder = new Order();
|
neworder.Id = neword.Id;
|
neworder.Association_Order__c = o.Id;
|
//neword.Association_Order__c = o.Id;
|
Order order = new Order();
|
order.Id = o.Id;
|
order.Association_Order__c = neword.Id;
|
updateOrderList.add(order);
|
updateOrderList.add(neworder);
|
}
|
}
|
}
|
}
|
}
|
}
|
|
List<OpportunityLineItem> oliList = [select Id, OpportunityId, Description, Quantity, ProductSegment__c, PricebookEntryId, PricebookEntry.CostPrice__c, UnitPrice from OpportunityLineItem where OpportunityId = :oppidList order by OpportunityId,Id];
|
Map<String, List<OpportunityLineItem>> oliMap = new Map<String, List<OpportunityLineItem>>();
|
String pre_oppid = '';
|
List<OpportunityLineItem> tmpList = null;
|
for (OpportunityLineItem oli : oliList) {
|
if (oli.ProductSegment__c == 'BS') {
|
hasBS = true;
|
}
|
if (pre_oppid == '' || oli.OpportunityId != pre_oppid) {
|
//syetem.debug('=====new list : key = ' + oli.OpportunityId);52200
|
tmpList = new List<OpportunityLineItem>();
|
oliMap.put(oli.OpportunityId, tmpList);
|
tmpList.add(oli);
|
pre_oppid = oli.OpportunityId;
|
} else {
|
tmpList.add(oli);
|
//syetem.debug('=====list : ' + tmpList);
|
}
|
|
// tmpList = new List<OpportunityLineItem>();
|
// if (oliMap.containsKey(oli.OpportunityId)) {
|
// oliMap.get(oli.OpportunityId).add(oli);
|
// } else {
|
// oliMap.put(oli.OpportunityId, tmpList);
|
// oliMap.get(oli.OpportunityId).add(oli);
|
// }
|
|
|
|
}
|
//syetem.debug('=====oliMap : ' + oliMap);
|
Map<String, List<QuoteLineItem>> qliMap = new Map<String, List<QuoteLineItem>>();
|
String pre_quoid = '';
|
List<QuoteLineItem> tmpList2 = null;
|
Map<String, List<DecideQuoteProductSet__c>> dqpMap = new Map<String, List<DecideQuoteProductSet__c>>();
|
|
if (hasBS) {
|
List<QuoteLineItem> qliList = [select Id, QuoteId, Description, Quantity, PricebookEntryId, PricebookEntry.CostPrice__c, UnitPrice from QuoteLineItem where QuoteId = :quoidList order by QuoteId,Id];
|
|
for (QuoteLineItem qli : qliList) {
|
if (pre_quoid == '' || qli.QuoteId != pre_quoid) {
|
//syetem.debug('=====new list : key = ' + qli.QuoteId);
|
tmpList2 = new List<QuoteLineItem>();
|
qliMap.put(qli.QuoteId, tmpList2);
|
tmpList2.add(qli);
|
pre_quoid = qli.QuoteId;
|
} else {
|
tmpList2.add(qli);
|
//syetem.debug('=====list : ' + tmpList2);
|
}
|
}
|
//syetem.debug('=====qliMap : ' + qliMap);
|
List<DecideQuoteProductSet__c> dqpList = new List<DecideQuoteProductSet__c>();
|
dqpList = [select id, DecideOpportunity__c from DecideQuoteProductSet__c where DecideOpportunity__c in :oppIdList];
|
for (DecideQuoteProductSet__c dqp : dqpList) {
|
if (dqpMap.containsKey(dqp.DecideOpportunity__c)) {
|
dqpMap.get(dqp.DecideOpportunity__c).add(dqp);
|
} else {
|
dqpMap.put(dqp.DecideOpportunity__c, new List<DecideQuoteProductSet__c>());
|
dqpMap.get(dqp.DecideOpportunity__c).add(dqp);
|
}
|
}
|
}
|
|
|
|
/*if(hasBS){
|
List<DecideQuoteProductSet__c> dqpList = new List<DecideQuoteProductSet__c>();
|
dqpList = [select id,DecideOpportunity__c from DecideQuoteProductSet__c where DecideOpportunity__c in :oppIdList];
|
for(DecideQuoteProductSet__c dqp : dqpList){
|
dqpMap.put(dqp.DecideOpportunity__c, dqp);
|
}
|
|
}*/
|
|
|
|
List<OrderItem> insList = new List<OrderItem>();
|
List<DecideQuoteProductSet__c> updateList = new List<DecideQuoteProductSet__c>();
|
|
for (Order o : newList) {
|
if (qliMap.containsKey(opp2quoMap.get(o.OpportunityId)) == true) {
|
for (QuoteLineItem qli : qliMap.get(opp2quoMap.get(o.OpportunityId))) {
|
OrderItem oi = new OrderItem();
|
oi.Description = qli.Description;
|
oi.Quantity = qli.Quantity;
|
oi.PricebookEntryId = qli.PricebookEntryId;
|
oi.UnitPrice = qli.UnitPrice;
|
oi.OrderId = o.Id;
|
oi.QuoteLineItemId = qli.Id;
|
oi.TotalCostPrice_Text__c = qli.PricebookEntry.CostPrice__c * qli.Quantity;
|
insList.add(oi);
|
}
|
} else {
|
if (oliMap.get(o.OpportunityId) != null) {
|
for (OpportunityLineItem oli : oliMap.get(o.OpportunityId)) {
|
OrderItem oi = new OrderItem();
|
oi.Description = oli.Description;
|
oi.Quantity = oli.Quantity;
|
oi.PricebookEntryId = oli.PricebookEntryId;
|
oi.UnitPrice = oli.UnitPrice;
|
oi.OrderId = o.Id;
|
oi.TotalCostPrice_Text__c = oli.PricebookEntry.CostPrice__c * oli.Quantity;
|
insList.add(oi);
|
}
|
}
|
}
|
|
if (dqpMap.size() > 0 && dqpMap.containsKey(o.OpportunityId)) {
|
// DecideQuoteProductSet__c temp = dqpMap.get(o.OpportunityId);
|
for (DecideQuoteProductSet__c temp : dqpMap.get(o.OpportunityId)) {
|
temp.DecideOrder__c = o.id;
|
}
|
updateList.addAll(dqpMap.get(o.OpportunityId));
|
}
|
|
}
|
if (insList.size() > 0) insert insList;
|
if (updateList.size() > 0) update updateList;
|
if (updateOrderList.size() > 0) update updateOrderList;
|
}
|
|
public static void updateForDealer(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
//for循环里有用到获取简档信息,新的获取简档有SQOL 放到for循环外面
|
//新的获取简档ID calendarUtil.getMemberProfileID 这里用到的人员ID 和获取到的简档ID都是15位的
|
//String new_profileId = calendarUtil.getMemberProfileID(UserInfo.getUserId().subString(0,15));
|
String new_profileId = calendarUtil.getMemberProfileID(UserInfo.getUserId().subString(0,15));
|
for (Order newOrd : newList) {
|
Order oldOrd = oldMap.get(newOrd.Id);
|
/* if(newOrd.SubDealer__c == '无'){
|
newOrd.SubDealer__c = '';
|
}*/
|
// if (oldOrd.ShippedDate__c != null && oldOrd.ShippedDate__c != newOrd.ShippedDate__c) {
|
// newOrd.addError('出货日期填写后不能修改。');
|
// }
|
system.debug('=====' + newOrd.SP_11D__c + '|' + oldOrd.SP_11D__c);
|
system.debug('=====' + newOrd.SP_101D__c + '|' + oldOrd.SP_101D__c);
|
system.debug('=====' + newOrd.SP_102D__c + '|' + oldOrd.SP_102D__c);
|
system.debug('=====' + newOrd.SP_103D__c + '|' + oldOrd.SP_103D__c);
|
system.debug('=====' + newOrd.SP_106D__c + '|' + oldOrd.SP_106D__c);
|
system.debug('=====' + newOrd.SP_107D__c + '|' + oldOrd.SP_107D__c);
|
system.debug('=====' + newOrd.Theoinp_D__c + '|' + oldOrd.Theoinp_D__c);
|
system.debug('=====' + newOrd.SP_745D__c + '|' + oldOrd.SP_745D__c);
|
system.debug('=====' + newOrd.SP_111D__c + '|' + oldOrd.SP_111D__c);
|
system.debug('=====' + newOrd.SP_121D__c + '|' + oldOrd.SP_121D__c);
|
system.debug('=====' + newOrd.SP_131D__c + '|' + oldOrd.SP_131D__c);
|
system.debug('=====' + newOrd.SP_141D__c + '|' + oldOrd.SP_141D__c);
|
system.debug('=====' + newOrd.SP_151D__c + '|' + oldOrd.SP_151D__c);
|
system.debug('=====' + newOrd.SP_161D__c + '|' + oldOrd.SP_161D__c);
|
system.debug('=====' + newOrd.SP_171D__c + '|' + oldOrd.SP_171D__c);
|
system.debug('=====' + newOrd.SP_181D__c + '|' + oldOrd.SP_181D__c);
|
system.debug('=====' + newOrd.SP_191D__c + '|' + oldOrd.SP_191D__c);
|
system.debug('=====' + newOrd.SP_201D__c + '|' + oldOrd.SP_201D__c);
|
system.debug('=====' + newOrd.SP_202D__c + '|' + oldOrd.SP_202D__c);
|
system.debug('=====' + newOrd.SP_21D__c + '|' + oldOrd.SP_21D__c);
|
system.debug('=====' + newOrd.SP_22D__c + '|' + oldOrd.SP_22D__c);
|
system.debug('=====' + newOrd.SP_31D__c + '|' + oldOrd.SP_31D__c);
|
system.debug('=====' + newOrd.SP_32D__c + '|' + oldOrd.SP_32D__c);
|
system.debug('=====' + newOrd.SP_33D__c + '|' + oldOrd.SP_33D__c);
|
system.debug('=====' + newOrd.SP_41D__c + '|' + oldOrd.SP_41D__c);
|
system.debug('=====' + newOrd.SP_51D__c + '|' + oldOrd.SP_51D__c);
|
system.debug('=====' + newOrd.SP_52D__c + '|' + oldOrd.SP_52D__c);
|
system.debug('=====' + newOrd.SP_61D__c + '|' + oldOrd.SP_61D__c);
|
system.debug('=====' + newOrd.SP_62D__c + '|' + oldOrd.SP_62D__c);
|
system.debug('=====' + newOrd.SP_71D__c + '|' + oldOrd.SP_71D__c);
|
system.debug('=====' + newOrd.SP_81D__c + '|' + oldOrd.SP_81D__c);
|
system.debug('=====' + newOrd.SP_91D__c + '|' + oldOrd.SP_91D__c);
|
system.debug('=====' + newOrd.IE_SP1_D__c + '|' + oldOrd.IE_SP1_D__c);
|
system.debug('=====' + newOrd.IE_SP2_D__c + '|' + oldOrd.IE_SP2_D__c);
|
system.debug('=====' + newOrd.IE_SP3_D__c + '|' + oldOrd.IE_SP3_D__c);
|
system.debug('=====' + newOrd.IE_SP4_D__c + '|' + oldOrd.IE_SP4_D__c);
|
system.debug('=====' + newOrd.IE_SP5_D__c + '|' + oldOrd.IE_SP5_D__c);
|
system.debug('=====' + newOrd.IE_SP6_D__c + '|' + oldOrd.IE_SP6_D__c);
|
system.debug('=====' + newOrd.IE_SP7_D__c + '|' + oldOrd.IE_SP7_D__c);
|
system.debug('=====' + newOrd.IE_SP8_D__c + '|' + oldOrd.IE_SP8_D__c);
|
system.debug('=====' + newOrd.RVI_SP1_D__c + '|' + oldOrd.RVI_SP1_D__c);
|
system.debug('=====' + newOrd.RVI_SP2_D__c + '|' + oldOrd.RVI_SP2_D__c);
|
system.debug('=====' + newOrd.RVI_SP3_D__c + '|' + oldOrd.RVI_SP3_D__c);
|
system.debug('=====' + newOrd.RVI_SP4_D__c + '|' + oldOrd.RVI_SP4_D__c);
|
system.debug('=====' + newOrd.RVI_SP5_D__c + '|' + oldOrd.RVI_SP5_D__c);
|
system.debug('=====' + newOrd.RVI_SP6_D__c + '|' + oldOrd.RVI_SP6_D__c);
|
system.debug('=====' + newOrd.NDT_SP1_D__c + '|' + oldOrd.NDT_SP1_D__c);
|
system.debug('=====' + newOrd.NDT_SP2_D__c + '|' + oldOrd.NDT_SP2_D__c);
|
system.debug('=====' + newOrd.NDT_SP3_D__c + '|' + oldOrd.NDT_SP3_D__c);
|
system.debug('=====' + newOrd.NDT_SP4_D__c + '|' + oldOrd.NDT_SP4_D__c);
|
system.debug('=====' + newOrd.NDT_SP5_D__c + '|' + oldOrd.NDT_SP5_D__c);
|
system.debug('=====' + newOrd.NDT_SP6_D__c + '|' + oldOrd.NDT_SP6_D__c);
|
system.debug('=====' + newOrd.NDT_SP7_D__c + '|' + oldOrd.NDT_SP7_D__c);
|
system.debug('=====' + newOrd.NDT_SP8_D__c + '|' + oldOrd.NDT_SP8_D__c);
|
system.debug('=====' + newOrd.NDT_SP9_D__c + '|' + oldOrd.NDT_SP9_D__c);
|
system.debug('=====' + newOrd.NDT_SP10_D__c + '|' + oldOrd.NDT_SP10_D__c);
|
system.debug('=====' + newOrd.NDT_SP11_D__c + '|' + oldOrd.NDT_SP11_D__c);
|
system.debug('=====' + newOrd.ANI_SP1_D__c + '|' + oldOrd.ANI_SP1_D__c);
|
system.debug('=====' + newOrd.ANI_SP2_D__c + '|' + oldOrd.ANI_SP2_D__c);
|
system.debug('=====' + newOrd.ANI_SP3_D__c + '|' + oldOrd.ANI_SP3_D__c);
|
system.debug('=====' + newOrd.ANI_SP4_D__c + '|' + oldOrd.ANI_SP4_D__c);
|
system.debug('=====' + newOrd.ANI_SP5_D__c + '|' + oldOrd.ANI_SP5_D__c);
|
system.debug('=====' + newOrd.ANI_SP6_D__c + '|' + oldOrd.ANI_SP6_D__c);
|
system.debug('=====' + newOrd.Discount_D__c + '|' + oldOrd.Discount_D__c);
|
system.debug('=====' + newOrd.Olympus_Price_BeforeDiscount_D__c + '|' + oldOrd.Olympus_Price_BeforeDiscount_D__c);
|
system.debug('=====' + newOrd.PaymentCondition_D__c + '|' + oldOrd.PaymentCondition_D__c);
|
system.debug('=====' + newOrd.SpecialDelivery_D__c + '|' + oldOrd.SpecialDelivery_D__c);
|
system.debug('=====' + newOrd.SpecialDeliveryContact_D__c + '|' + oldOrd.SpecialDeliveryContact_D__c);
|
system.debug('=====' + newOrd.SpecialDeliveryPhone_D__c + '|' + oldOrd.SpecialDeliveryPhone_D__c);
|
system.debug('=====' + newOrd.SpecialDeliveryAddress_D__c + '|' + oldOrd.SpecialDeliveryAddress_D__c);
|
system.debug('=====' + newOrd.SpecialParkage_D__c + '|' + oldOrd.SpecialParkage_D__c);
|
system.debug('=====' + newOrd.SpecialWarranty_D__c + '|' + oldOrd.SpecialWarranty_D__c);
|
system.debug('=====' + newOrd.DealerProfit_D__c + '|' + oldOrd.DealerProfit_D__c);
|
system.debug('=====' + newOrd.SpecialDelDate_D__c + '|' + oldOrd.SpecialDelDate_D__c);
|
system.debug('=====' + newOrd.OtherApply_D__c + '|' + oldOrd.OtherApply_D__c);
|
system.debug('=====' + newOrd.NormalDis_SerContractCondition_D__c + '|' + oldOrd.NormalDis_SerContractCondition_D__c);
|
system.debug('=====' + newOrd.HighDis_SerContractCondition_D__c + '|' + oldOrd.HighDis_SerContractCondition_D__c);
|
system.debug('=====' + newOrd.SpecialDis_SerContractCondition_D__c + '|' + oldOrd.SpecialDis_SerContractCondition_D__c);
|
system.debug('=====' + newOrd.Warranty_SerContractCondition_D__c + '|' + oldOrd.Warranty_SerContractCondition_D__c);
|
boolean sp_change =
|
newOrd.SP_11D__c != oldOrd.SP_11D__c ||
|
newOrd.SP_901D__c != oldOrd.SP_901D__c ||
|
newOrd.SP_101D__c != oldOrd.SP_101D__c ||
|
newOrd.SP_102D__c != oldOrd.SP_102D__c ||
|
newOrd.SP_103D__c != oldOrd.SP_103D__c ||
|
newOrd.SP_106D__c != oldOrd.SP_106D__c ||
|
newOrd.SP_107D__c != oldOrd.SP_107D__c ||
|
newOrd.SP_745D__c != oldOrd.SP_745D__c ||
|
newOrd.SP_111D__c != oldOrd.SP_111D__c ||
|
newOrd.SP_121D__c != oldOrd.SP_121D__c ||
|
newOrd.SP_131D__c != oldOrd.SP_131D__c ||
|
newOrd.SP_141D__c != oldOrd.SP_141D__c ||
|
newOrd.SP_151D__c != oldOrd.SP_151D__c ||
|
newOrd.SP_161D__c != oldOrd.SP_161D__c ||
|
newOrd.SP_171D__c != oldOrd.SP_171D__c ||
|
newOrd.SP_181D__c != oldOrd.SP_181D__c ||
|
newOrd.SP_191D__c != oldOrd.SP_191D__c ||
|
newOrd.SP_201D__c != oldOrd.SP_201D__c ||
|
newOrd.SP_202D__c != oldOrd.SP_202D__c ||
|
newOrd.SP_21D__c != oldOrd.SP_21D__c ||
|
newOrd.SP_22D__c != oldOrd.SP_22D__c ||
|
newOrd.SP_31D__c != oldOrd.SP_31D__c ||
|
newOrd.SP_32D__c != oldOrd.SP_32D__c ||
|
newOrd.SP_33D__c != oldOrd.SP_33D__c ||
|
newOrd.SP_41D__c != oldOrd.SP_41D__c ||
|
newOrd.SP_51D__c != oldOrd.SP_51D__c ||
|
newOrd.SP_52D__c != oldOrd.SP_52D__c ||
|
newOrd.SP_61D__c != oldOrd.SP_61D__c ||
|
newOrd.SP_62D__c != oldOrd.SP_62D__c ||
|
newOrd.SP_71D__c != oldOrd.SP_71D__c ||
|
newOrd.SP_81D__c != oldOrd.SP_81D__c ||
|
newOrd.SP_91D__c != oldOrd.SP_91D__c ||
|
newOrd.Theoinp_D__c != oldOrd.Theoinp_D__c ||
|
newOrd.IE_SP1_D__c != oldOrd.IE_SP1_D__c ||
|
newOrd.IE_SP2_D__c != oldOrd.IE_SP2_D__c ||
|
newOrd.IE_SP3_D__c != oldOrd.IE_SP3_D__c ||
|
newOrd.IE_SP4_D__c != oldOrd.IE_SP4_D__c ||
|
newOrd.IE_SP5_D__c != oldOrd.IE_SP5_D__c ||
|
newOrd.IE_SP6_D__c != oldOrd.IE_SP6_D__c ||
|
newOrd.IE_SP7_D__c != oldOrd.IE_SP7_D__c ||
|
newOrd.IE_SP8_D__c != oldOrd.IE_SP8_D__c ||
|
newOrd.RVI_SP1_D__c != oldOrd.RVI_SP1_D__c ||
|
newOrd.RVI_SP2_D__c != oldOrd.RVI_SP2_D__c ||
|
newOrd.RVI_SP3_D__c != oldOrd.RVI_SP3_D__c ||
|
newOrd.RVI_SP4_D__c != oldOrd.RVI_SP4_D__c ||
|
newOrd.RVI_SP5_D__c != oldOrd.RVI_SP5_D__c ||
|
newOrd.RVI_SP6_D__c != oldOrd.RVI_SP6_D__c ||
|
newOrd.NDT_SP1_D__c != oldOrd.NDT_SP1_D__c ||
|
newOrd.NDT_SP2_D__c != oldOrd.NDT_SP2_D__c ||
|
newOrd.NDT_SP3_D__c != oldOrd.NDT_SP3_D__c ||
|
newOrd.NDT_SP4_D__c != oldOrd.NDT_SP4_D__c ||
|
newOrd.NDT_SP5_D__c != oldOrd.NDT_SP5_D__c ||
|
newOrd.NDT_SP6_D__c != oldOrd.NDT_SP6_D__c ||
|
newOrd.NDT_SP7_D__c != oldOrd.NDT_SP7_D__c ||
|
newOrd.NDT_SP8_D__c != oldOrd.NDT_SP8_D__c ||
|
newOrd.NDT_SP9_D__c != oldOrd.NDT_SP9_D__c ||
|
newOrd.NDT_SP10_D__c != oldOrd.NDT_SP10_D__c ||
|
newOrd.NDT_SP11_D__c != oldOrd.NDT_SP11_D__c ||
|
newOrd.ANI_SP1_D__c != oldOrd.ANI_SP1_D__c ||
|
newOrd.ANI_SP2_D__c != oldOrd.ANI_SP2_D__c ||
|
newOrd.ANI_SP3_D__c != oldOrd.ANI_SP3_D__c ||
|
newOrd.ANI_SP4_D__c != oldOrd.ANI_SP4_D__c ||
|
newOrd.ANI_SP5_D__c != oldOrd.ANI_SP5_D__c ||
|
newOrd.ANI_SP6_D__c != oldOrd.ANI_SP6_D__c ||
|
(newOrd.Discount_D__c == null ? 0 : Decimal.valueOf(String.valueOf(newOrd.Discount_D__c)).setScale(2).setScale(0)) != (oldOrd.Discount_D__c == null ? 0 : Decimal.valueOf(String.valueOf(oldOrd.Discount_D__c)).setScale(2).setScale(0)) ||
|
(newOrd.Olympus_Price_BeforeDiscount_D__c == null ? 0 : Decimal.valueOf(String.valueOf(newOrd.Olympus_Price_BeforeDiscount_D__c)).setScale(2).setScale(0)) != (oldOrd.Olympus_Price_BeforeDiscount_D__c == null ? 0 : Decimal.valueOf(String.valueOf(oldOrd.Olympus_Price_BeforeDiscount_D__c)).setScale(2).setScale(0)) ||
|
newOrd.PaymentCondition_D__c != oldOrd.PaymentCondition_D__c ||
|
newOrd.SpecialDelivery_D__c != oldOrd.SpecialDelivery_D__c ||
|
newOrd.SpecialDeliveryContact_D__c != oldOrd.SpecialDeliveryContact_D__c ||
|
newOrd.SpecialDeliveryPhone_D__c != oldOrd.SpecialDeliveryPhone_D__c ||
|
newOrd.SpecialDeliveryAddress_D__c != oldOrd.SpecialDeliveryAddress_D__c ||
|
newOrd.SpecialParkage_D__c != oldOrd.SpecialParkage_D__c ||
|
newOrd.SpecialWarranty_D__c != oldOrd.SpecialWarranty_D__c ||
|
newOrd.DealerProfit_D__c != oldOrd.DealerProfit_D__c ||
|
newOrd.SpecialDelDate_D__c != oldOrd.SpecialDelDate_D__c ||
|
newOrd.OtherApply_D__c != oldOrd.OtherApply_D__c ||
|
newOrd.NormalDis_SerContractCondition_D__c != oldOrd.NormalDis_SerContractCondition_D__c ||
|
newOrd.HighDis_SerContractCondition_D__c != oldOrd.HighDis_SerContractCondition_D__c ||
|
newOrd.SpecialDis_SerContractCondition_D__c != oldOrd.SpecialDis_SerContractCondition_D__c ||
|
newOrd.Warranty_SerContractCondition_D__c != oldOrd.Warranty_SerContractCondition_D__c;
|
|
system.debug('=====' + newOrd.CustomerContractPriceD__c + '|' + oldOrd.CustomerContractPriceD__c);
|
system.debug('=====' + newOrd.OlympusContractPricesD__c + '|' + oldOrd.OlympusContractPricesD__c);
|
system.debug('=====' + newOrd.EndUserD__c + '|' + oldOrd.EndUserD__c);
|
system.debug('=====' + newOrd.IsUpload__c + '|' + oldOrd.IsUpload__c);
|
system.debug('=====' + newOrd.Andor_D__c + '|' + oldOrd.Andor_D__c);
|
system.debug('=====' + newOrd.Bitplane_D__c + '|' + oldOrd.Bitplane_D__c);
|
system.debug('=====' + newOrd.CoolLED_D__c + '|' + oldOrd.CoolLED_D__c);
|
system.debug('=====' + newOrd.Lumen_D__c + '|' + oldOrd.Lumen_D__c);
|
system.debug('=====' + newOrd.Lumenera_D__c + '|' + oldOrd.Lumenera_D__c);
|
system.debug('=====' + newOrd.Media_Cybernetics_D__c + '|' + oldOrd.Media_Cybernetics_D__c);
|
system.debug('=====' + newOrd.Narishige_D__c + '|' + oldOrd.Narishige_D__c);
|
system.debug('=====' + newOrd.Newport_D__c + '|' + oldOrd.Newport_D__c);
|
system.debug('=====' + newOrd.OSIS_Germany_D__c + '|' + oldOrd.OSIS_Germany_D__c);
|
system.debug('=====' + newOrd.OSIS_Singapore_D__c + '|' + oldOrd.OSIS_Singapore_D__c);
|
system.debug('=====' + newOrd.Photometrics_D__c + '|' + oldOrd.Photometrics_D__c);
|
system.debug('=====' + newOrd.Prior_Scientific_D__c + '|' + oldOrd.Prior_Scientific_D__c);
|
system.debug('=====' + newOrd.Q_Imaging_D__c + '|' + oldOrd.Q_Imaging_D__c);
|
system.debug('=====' + newOrd.Tokai_Hit_D__c + '|' + oldOrd.Tokai_Hit_D__c);
|
system.debug('=====' + newOrd.Other_Third_D__c + '|' + oldOrd.Other_Third_D__c);
|
system.debug('=====' + newOrd.ServiceFee_D__c + '|' + oldOrd.ServiceFee_D__c);
|
system.debug('=====' + newOrd.AlongProduct_D__c + '|' + oldOrd.AlongProduct_D__c);
|
system.debug('=====' + newOrd.Cost_D__c + '|' + oldOrd.Cost_D__c);
|
system.debug('=====' + newOrd.ForeignTradeCompany_D__c + '|' + oldOrd.ForeignTradeCompany_D__c);
|
system.debug('=====' + newOrd.SpecialDeliveryAccount_D__c + '|' + oldOrd.SpecialDeliveryAccount_D__c);
|
system.debug('=====' + newOrd.SpecialDeliveryContact2_D__c + '|' + oldOrd.SpecialDeliveryContact2_D__c);
|
system.debug('=====' + newOrd.Shipment_Term_D__c + '|' + oldOrd.Shipment_Term_D__c);
|
system.debug('=====' + newOrd.Shipment_Term2_D__c + '|' + oldOrd.Shipment_Term2_D__c);
|
system.debug('*************' + newOrd.IsUpload__c + '****' + oldOrd.IsUpload__c + '****' + newOrd.Is_Already_Splited__c + '****' + newOrd.ApproveStatus__c);
|
system.debug('*************' + (newOrd.IsUpload__c != oldOrd.IsUpload__c && ((newOrd.Is_Already_Splited__c == true && newOrd.ApproveStatus__c != 'OrderPass') || newOrd.Is_Already_Splited__c != true)));
|
boolean contract_change =
|
(newOrd.CustomerContractPriceD__c == null ? 0 : Decimal.valueOf(String.valueOf(newOrd.CustomerContractPriceD__c)).setScale(2).setScale(0)) != (oldOrd.CustomerContractPriceD__c == null ? 0 : Decimal.valueOf(String.valueOf(oldOrd.CustomerContractPriceD__c)).setScale(2).setScale(0)) ||
|
(newOrd.OlympusContractPricesD__c == null ? 0 : Decimal.valueOf(String.valueOf(newOrd.OlympusContractPricesD__c)).setScale(2).setScale(0)) != (oldOrd.OlympusContractPricesD__c == null ? 0 : Decimal.valueOf(String.valueOf(oldOrd.OlympusContractPricesD__c)).setScale(2).setScale(0)) ||
|
newOrd.EndUserD__c != oldOrd.EndUserD__c ||
|
(newOrd.IsUpload__c != oldOrd.IsUpload__c && ((newOrd.Is_Already_Splited__c == true && newOrd.ApproveStatus__c != 'OrderPass') || newOrd.Is_Already_Splited__c != true)) ||
|
|
newOrd.Andor_D__c != oldOrd.Andor_D__c ||
|
newOrd.Bitplane_D__c != oldOrd.Bitplane_D__c ||
|
newOrd.CoolLED_D__c != oldOrd.CoolLED_D__c ||
|
newOrd.Lumen_D__c != oldOrd.Lumen_D__c ||
|
newOrd.Lumenera_D__c != oldOrd.Lumenera_D__c ||
|
newOrd.Media_Cybernetics_D__c != oldOrd.Media_Cybernetics_D__c ||
|
newOrd.Narishige_D__c != oldOrd.Narishige_D__c ||
|
newOrd.Newport_D__c != oldOrd.Newport_D__c ||
|
newOrd.OSIS_Germany_D__c != oldOrd.OSIS_Germany_D__c ||
|
newOrd.OSIS_Singapore_D__c != oldOrd.OSIS_Singapore_D__c ||
|
newOrd.Photometrics_D__c != oldOrd.Photometrics_D__c ||
|
newOrd.Prior_Scientific_D__c != oldOrd.Prior_Scientific_D__c ||
|
newOrd.Q_Imaging_D__c != oldOrd.Q_Imaging_D__c ||
|
newOrd.Tokai_Hit_D__c != oldOrd.Tokai_Hit_D__c ||
|
newOrd.Other_Third_D__c != oldOrd.Other_Third_D__c ||
|
newOrd.ServiceFee_D__c != oldOrd.ServiceFee_D__c ||
|
newOrd.AlongProduct_D__c != oldOrd.AlongProduct_D__c ||
|
newOrd.Cost_D__c != oldOrd.Cost_D__c ||
|
|
newOrd.ForeignTradeCompany_D__c != oldOrd.ForeignTradeCompany_D__c ||
|
newOrd.Shipment_Term_D__c != oldOrd.Shipment_Term_D__c ||
|
newOrd.Shipment_Term2_D__c != oldOrd.Shipment_Term2_D__c ||
|
(newOrd.SpecialDeliveryAccount_D__c != oldOrd.SpecialDeliveryAccount_D__c && ((newOrd.Is_Already_Splited__c == true && newOrd.ApproveStatus__c != 'OrderPass') || newOrd.Is_Already_Splited__c != true)) ||
|
(newOrd.SpecialDeliveryContact2_D__c != oldOrd.SpecialDeliveryContact2_D__c && ((newOrd.Is_Already_Splited__c == true && newOrd.ApproveStatus__c != 'OrderPass') || newOrd.Is_Already_Splited__c != true));
|
|
system.debug('=====' + newOrd.CustomerContractPriceD__c + '|' + oldOrd.CustomerContractPriceD__c);
|
system.debug('=====' + newOrd.OlympusContractPricesD__c + '|' + oldOrd.OlympusContractPricesD__c);
|
system.debug('=====' + newOrd.EndUserD__c + '|' + oldOrd.EndUserD__c);
|
system.debug('=====' + newOrd.AlongProduct_D__c + '|' + oldOrd.AlongProduct_D__c);
|
system.debug('=====' + newOrd.ServiceFee_D__c + '|' + oldOrd.ServiceFee_D__c);
|
boolean contractInfo_change =
|
(newOrd.CustomerContractPriceD__c == null ? 0 : Decimal.valueOf(String.valueOf(newOrd.CustomerContractPriceD__c)).setScale(2).setScale(0)) != (oldOrd.CustomerContractPriceD__c == null ? 0 : Decimal.valueOf(String.valueOf(oldOrd.CustomerContractPriceD__c)).setScale(2).setScale(0)) ||
|
(newOrd.OlympusContractPricesD__c == null ? 0 : Decimal.valueOf(String.valueOf(newOrd.OlympusContractPricesD__c)).setScale(2).setScale(0)) != (oldOrd.OlympusContractPricesD__c == null ? 0 : Decimal.valueOf(String.valueOf(oldOrd.OlympusContractPricesD__c)).setScale(2).setScale(0)) ||
|
newOrd.EndUserD__c != oldOrd.EndUserD__c ||
|
newOrd.AlongProduct_D__c != oldOrd.AlongProduct_D__c ||
|
newOrd.ServiceFee_D__c != oldOrd.ServiceFee_D__c;
|
|
boolean pdf_change = newOrd.IsUpload__c != oldOrd.IsUpload__c;
|
|
//产品配置
|
// boolean product_change = newOrd.ProductConfig_D__c != oldOrd.ProductConfig_D__c && oldOrd.Pr;
|
|
if (newOrd.Contract_StatusD__c != oldOrd.Contract_StatusD__c && newOrd.Contract_StatusD__c == 'Cancel') {
|
if (sp_change == false && contract_change == false) {
|
newOrd.ApproveStatus__c = 'OrderDraft';
|
newOrd.date_P__c = null;
|
} else {
|
newOrd.addError('取消合同时,不能改变其他项目。');
|
}
|
}
|
|
// String profileId = UserInfo.getProfileId().substring(0, 15);
|
|
boolean is_admin = new_profileId == System.Label.SystemAdmin || new_profileId == System.Label.SystemAdmin2 || new_profileId == System.Label.SystemAdmin_GPI;
|
if (newOrd.IsSpPassed__c == true && (sp_change == true || contractInfo_change == true) && OrderDivisionController.OrderDivision == false && is_admin == false) {
|
newOrd.addError('特殊条件批准后,不能更改。');
|
}
|
|
system.debug('***************' + newOrd.IsOrderPassed__c + '***' + sp_change + '***' + contract_change + '***' + OrderDivisionController.OrderDivision + '***' + is_admin + '');
|
if (newOrd.IsOrderPassed__c == true && (sp_change == true || contract_change == true) && OrderDivisionController.OrderDivision == false && is_admin == false) {
|
newOrd.addError('合同批准后,不能更改。');
|
}
|
|
|
if (OrderDivisionController.OrderDivision == true) {
|
/* if (newOrd.ApproveStatus__c == 'Submit') {
|
newOrd.ApproveStatus__c = 'Draft';
|
} else if (newOrd.ApproveStatus__c == 'OrderSubmit') {
|
newOrd.ApproveStatus__c = 'OrderDraft';
|
} else {
|
// 保持状态
|
}*/
|
// 保持状态
|
} else if (sp_change && (newOrd.Order_IsSpecial__c == true || newOrd.Order_IsSpecial_Service__c == true)) {
|
system.debug('=====Draft 1=====');
|
newOrd.ApproveStatus__c = 'Draft';
|
newOrd.date_P__c = null;
|
} else if (contract_change && (newOrd.Order_IsSpecial__c == true || newOrd.Order_IsSpecial_Service__c == true) && newOrd.IsSpPassed__c == false) {
|
system.debug('=====Draft 2=====');
|
newOrd.ApproveStatus__c = 'Draft';
|
newOrd.date_P__c = null;
|
} else if (contract_change ||
|
(newOrd.Order_IsSpecial__c != oldOrd.Order_IsSpecial__c && newOrd.Order_IsSpecial__c == false) ||
|
(newOrd.Order_IsSpecial_Service__c != oldOrd.Order_IsSpecial_Service__c && newOrd.Order_IsSpecial_Service__c == false)) {
|
system.debug('=====OrderDraft 1=====');
|
newOrd.ApproveStatus__c = 'OrderDraft';
|
neword.date_P__c = null;
|
} /*else if(product_change && newOrd.Is_Already_Splited__c == false && oldOrd.ProductConfig_D__c != null){ //
|
system.debug('=====Draft 3=====');
|
newOrd.ApproveStatus__c = 'Draft';
|
newOrd.ProductConfig_IsChanged__c = true;
|
}*/
|
|
boolean sp_change2 = newOrd.SpecialField_IsChanged_ANI__c ||
|
newOrd.SpecialField_IsChanged_BS__c ||
|
newOrd.SpecialField_IsChanged_BS_1__c ||
|
newOrd.SpecialField_IsChanged_Common__c ||
|
newOrd.SpecialField_IsChanged_IE__c ||
|
newOrd.SpecialField_IsChanged_NDT__c ||
|
newOrd.SpecialField_IsChanged_RVI__c;
|
|
boolean contract_change2 =
|
(newOrd.CustomerContractPrice__c == null ? 0 : Decimal.valueOf(String.valueOf(newOrd.CustomerContractPrice__c)).setScale(2).setScale(0)) != (newOrd.CustomerContractPriceD__c == null ? 0 : Decimal.valueOf(String.valueOf(newOrd.CustomerContractPriceD__c)).setScale(2).setScale(0)) ||
|
(newOrd.OlympusContractPrices__c == null ? 0 : Decimal.valueOf(String.valueOf(newOrd.OlympusContractPrices__c)).setScale(2).setScale(0)) != (newOrd.OlympusContractPricesD__c == null ? 0 : Decimal.valueOf(String.valueOf(newOrd.OlympusContractPricesD__c)).setScale(2).setScale(0)) ||
|
newOrd.EndUser__c != newOrd.EndUserD__c ||
|
|
newOrd.Andor__c != newOrd.Andor_D__c ||
|
newOrd.Bitplane__c != newOrd.Bitplane_D__c ||
|
newOrd.CoolLED__c != newOrd.CoolLED_D__c ||
|
newOrd.Lumen__c != newOrd.Lumen_D__c ||
|
newOrd.Lumenera__c != newOrd.Lumenera_D__c ||
|
newOrd.Media_Cybernetics__c != newOrd.Media_Cybernetics_D__c ||
|
newOrd.Narishige__c != newOrd.Narishige_D__c ||
|
newOrd.Newport__c != newOrd.Newport_D__c ||
|
newOrd.OSIS_Germany__c != newOrd.OSIS_Germany_D__c ||
|
newOrd.OSIS_Singapore__c != newOrd.OSIS_Singapore_D__c ||
|
newOrd.Photometrics__c != newOrd.Photometrics_D__c ||
|
newOrd.Prior_Scientific__c != newOrd.Prior_Scientific_D__c ||
|
newOrd.Q_Imaging__c != newOrd.Q_Imaging_D__c ||
|
newOrd.Tokai_Hit__c != newOrd.Tokai_Hit_D__c ||
|
newOrd.Other_Third__c != newOrd.Other_Third_D__c ||
|
newOrd.ServiceFee__c != newOrd.ServiceFee_D__c ||
|
newOrd.AlongProduct__c != newOrd.AlongProduct_D__c ||
|
newOrd.Cost__c != newOrd.Cost_D__c ||
|
newOrd.Sub_DealerC__c != newOrd.Sub_DealerC_D__c ||
|
(newOrd.IsUpload__c != oldOrd.IsUpload__c && ((newOrd.Is_Already_Splited__c == true && newOrd.ApproveStatus__c != 'OrderPass') || newOrd.Is_Already_Splited__c != true)) ||
|
//附件是否修改
|
newOrd.Upload_IsChanged__c ||
|
newOrd.ForeignTradeCompany__c != newOrd.ForeignTradeCompany_D__c ||
|
newOrd.Shipment_Term__c != newOrd.Shipment_Term_D__c ||
|
newOrd.Shipment_Term2__c != newOrd.Shipment_Term2_D__c ||
|
(newOrd.SpecialDeliveryAccount__c != newOrd.SpecialDeliveryAccount_D__c && ((newOrd.Is_Already_Splited__c == true && newOrd.ApproveStatus__c != 'OrderPass') || newOrd.Is_Already_Splited__c != true)) ||
|
(newOrd.SpecialDeliveryContact2__c != newOrd.SpecialDeliveryContact2_D__c && ((newOrd.Is_Already_Splited__c == true && newOrd.ApproveStatus__c != 'OrderPass') || newOrd.Is_Already_Splited__c != true));
|
|
if (newOrd.IsCopy__c && (newOrd.ApproveStatus__c != 'Completed2' && newOrd.ApproveStatus__c != 'OrderSubmit')&& sp_change2 == false && contract_change2) {
|
system.debug('=====OrderDraft 2=====');
|
//system.debug(newOrd.CustomerContractPrice__c == null ? 0 : Decimal.valueOf(String.valueOf(newOrd.CustomerContractPrice__c)).setScale(2).setScale(0)) != (newOrd.CustomerContractPriceD__c == null ? 0 : Decimal.valueOf(String.valueOf(newOrd.CustomerContractPriceD__c)).setScale(2).setScale(0));
|
//system.debug(newOrd.OlympusContractPrices__c == null ? 0 : Decimal.valueOf(String.valueOf(newOrd.OlympusContractPrices__c)).setScale(2).setScale(0)) != (newOrd.OlympusContractPricesD__c == null ? 0 : Decimal.valueOf(String.valueOf(newOrd.OlympusContractPricesD__c)).setScale(2).setScale(0));
|
system.debug(newOrd.EndUser__c != newOrd.EndUserD__c);
|
system.debug(newOrd.Andor__c != newOrd.Andor_D__c);
|
system.debug(newOrd.Bitplane__c != newOrd.Bitplane_D__c);
|
system.debug(newOrd.CoolLED__c != newOrd.CoolLED_D__c);
|
system.debug(newOrd.Lumen__c != newOrd.Lumen_D__c);
|
system.debug(newOrd.Lumenera__c != newOrd.Lumenera_D__c);
|
system.debug(newOrd.Media_Cybernetics__c != newOrd.Media_Cybernetics_D__c);
|
system.debug(newOrd.Narishige__c != newOrd.Narishige_D__c);
|
system.debug(newOrd.Newport__c != newOrd.Newport_D__c);
|
system.debug(newOrd.OSIS_Germany__c != newOrd.OSIS_Germany_D__c);
|
system.debug(newOrd.OSIS_Singapore__c != newOrd.OSIS_Singapore_D__c);
|
system.debug(newOrd.Photometrics__c != newOrd.Photometrics_D__c);
|
system.debug(newOrd.Prior_Scientific__c != newOrd.Prior_Scientific_D__c);
|
system.debug(newOrd.Q_Imaging__c != newOrd.Q_Imaging_D__c);
|
system.debug(newOrd.Tokai_Hit__c != newOrd.Tokai_Hit_D__c);
|
system.debug(newOrd.Other_Third__c != newOrd.Other_Third_D__c);
|
system.debug(newOrd.ServiceFee__c != newOrd.ServiceFee_D__c);
|
system.debug(newOrd.AlongProduct__c != newOrd.AlongProduct_D__c);
|
system.debug(newOrd.Cost__c != newOrd.Cost_D__c);
|
system.debug(newOrd.Sub_DealerC__c != newOrd.Sub_DealerC_D__c);
|
system.debug(newOrd.IsUpload__c != oldOrd.IsUpload__c && ((newOrd.Is_Already_Splited__c == true && newOrd.ApproveStatus__c != 'OrderPass') || newOrd.Is_Already_Splited__c != true));
|
system.debug(newOrd.Upload_IsChanged__c);
|
system.debug(newOrd.ForeignTradeCompany__c != newOrd.ForeignTradeCompany_D__c);
|
system.debug(newOrd.Shipment_Term__c != newOrd.Shipment_Term_D__c);
|
system.debug(newOrd.Shipment_Term2__c != newOrd.Shipment_Term2_D__c);
|
system.debug(newOrd.SpecialDeliveryAccount__c != newOrd.SpecialDeliveryAccount_D__c && ((newOrd.Is_Already_Splited__c == true && newOrd.ApproveStatus__c != 'OrderPass') || newOrd.Is_Already_Splited__c != true));
|
system.debug(newOrd.SpecialDeliveryContact2__c != newOrd.SpecialDeliveryContact2_D__c && ((newOrd.Is_Already_Splited__c == true && newOrd.ApproveStatus__c != 'OrderPass') || newOrd.Is_Already_Splited__c != true));
|
system.debug(newOrd.SpecialDeliveryAccount__c+'!'+newOrd.SpecialDeliveryAccount_D__c);
|
system.debug(newOrd.SpecialDeliveryContact2__c+'!'+newOrd.SpecialDeliveryContact2_D__c);
|
system.debug(newOrd.Is_Already_Splited__c+'!'+newOrd.ApproveStatus__c);
|
|
|
|
|
newOrd.ApproveStatus__c = 'OrderDraft';
|
neword.date_P__c = null;
|
} else if (newOrd.IsCopy__c && newOrd.ApproveStatus__c != 'Completed2' && sp_change2 == false && contract_change2 == false) {
|
system.debug('=====CopyStatus=====');
|
newOrd.ApproveStatus__c = newOrd.CopyStatus__c;
|
}
|
|
if (newOrd.SP_11__c != oldOrd.SP_11__c) {
|
newOrd.SP_11D__c = newOrd.SP_11__c;
|
}
|
if (newOrd.SP_901__c != oldOrd.SP_901__c) {
|
newOrd.SP_901D__c = newOrd.SP_901__c;
|
}
|
if (newOrd.SP_101__c != oldOrd.SP_101__c) {
|
newOrd.SP_101D__c = newOrd.SP_101__c;
|
}
|
if (newOrd.SP_102__c != oldOrd.SP_102__c) {
|
newOrd.SP_102D__c = newOrd.SP_102__c;
|
}
|
if (newOrd.SP_103__c != oldOrd.SP_103__c) {
|
newOrd.SP_103D__c = newOrd.SP_103__c;
|
}
|
if (newOrd.SP_106__c != oldOrd.SP_106__c) {
|
newOrd.SP_106D__c = newOrd.SP_106__c;
|
}
|
if (newOrd.SP_107__c != oldOrd.SP_107__c) {
|
newOrd.SP_107D__c = newOrd.SP_107__c;
|
}
|
if (newOrd.Theoinp__c != oldOrd.Theoinp__c) {
|
newOrd.Theoinp_D__c = newOrd.Theoinp__c;
|
}
|
if (newOrd.SP_745__c != oldOrd.SP_745__c) {
|
newOrd.SP_745D__c = newOrd.SP_745__c;
|
}
|
if (newOrd.SP_111__c != oldOrd.SP_111__c) {
|
newOrd.SP_111D__c = newOrd.SP_111__c;
|
}
|
if (newOrd.SP_121__c != oldOrd.SP_121__c) {
|
newOrd.SP_121D__c = newOrd.SP_121__c;
|
}
|
if (newOrd.SP_131__c != oldOrd.SP_131__c) {
|
newOrd.SP_131D__c = newOrd.SP_131__c;
|
}
|
if (newOrd.SP_141__c != oldOrd.SP_141__c) {
|
newOrd.SP_141D__c = newOrd.SP_141__c;
|
}
|
if (newOrd.SP_151__c != oldOrd.SP_151__c) {
|
newOrd.SP_151D__c = newOrd.SP_151__c;
|
}
|
if (newOrd.SP_161__c != oldOrd.SP_161__c) {
|
newOrd.SP_161D__c = newOrd.SP_161__c;
|
}
|
if (newOrd.SP_171__c != oldOrd.SP_171__c) {
|
newOrd.SP_171D__c = newOrd.SP_171__c;
|
}
|
if (newOrd.SP_181__c != oldOrd.SP_181__c) {
|
newOrd.SP_181D__c = newOrd.SP_181__c;
|
}
|
if (newOrd.SP_191__c != oldOrd.SP_191__c) {
|
newOrd.SP_191D__c = newOrd.SP_191__c;
|
}
|
if (newOrd.SP_201__c != oldOrd.SP_201__c) {
|
newOrd.SP_201D__c = newOrd.SP_201__c;
|
}
|
if (newOrd.SP_202__c != oldOrd.SP_202__c) {
|
newOrd.SP_202D__c = newOrd.SP_202__c;
|
}
|
|
|
if (newOrd.SP_21__c != oldOrd.SP_21__c) {
|
newOrd.SP_21D__c = newOrd.SP_21__c;
|
}
|
if (newOrd.SP_22__c != oldOrd.SP_22__c) {
|
newOrd.SP_22D__c = newOrd.SP_22__c;
|
}
|
if (newOrd.SP_31__c != oldOrd.SP_31__c) {
|
newOrd.SP_31D__c = newOrd.SP_31__c;
|
}
|
if (newOrd.SP_32__c != oldOrd.SP_32__c) {
|
newOrd.SP_32D__c = newOrd.SP_32__c;
|
}
|
if (newOrd.SP_33__c != oldOrd.SP_33__c) {
|
newOrd.SP_33D__c = newOrd.SP_33__c;
|
}
|
if (newOrd.SP_41__c != oldOrd.SP_41__c) {
|
newOrd.SP_41D__c = newOrd.SP_41__c;
|
}
|
if (newOrd.SP_51__c != oldOrd.SP_51__c) {
|
newOrd.SP_51D__c = newOrd.SP_51__c;
|
}
|
if (newOrd.SP_52__c != oldOrd.SP_52__c) {
|
newOrd.SP_52D__c = newOrd.SP_52__c;
|
}
|
if (newOrd.SP_61__c != oldOrd.SP_61__c) {
|
newOrd.SP_61D__c = newOrd.SP_61__c;
|
}
|
if (newOrd.SP_62__c != oldOrd.SP_62__c) {
|
newOrd.SP_62D__c = newOrd.SP_62__c;
|
}
|
if (newOrd.SP_71__c != oldOrd.SP_71__c) {
|
newOrd.SP_71D__c = newOrd.SP_71__c;
|
}
|
if (newOrd.SP_81__c != oldOrd.SP_81__c) {
|
newOrd.SP_81D__c = newOrd.SP_81__c;
|
}
|
if (newOrd.SP_91__c != oldOrd.SP_91__c) {
|
newOrd.SP_91D__c = newOrd.SP_91__c;
|
}
|
//if (newOrd.ConditionContract__c != oldOrd.ConditionContract__c) {
|
// newOrd.ConditionContract_D__c = newOrd.ConditionContract__c;
|
//}
|
if (newOrd.Contract_Status__c != oldOrd.Contract_Status__c) {
|
newOrd.Contract_StatusD__c = newOrd.Contract_Status__c;
|
}
|
if (newOrd.CustomerContractPrice__c != oldOrd.CustomerContractPrice__c) {
|
newOrd.CustomerContractPriceD__c = newOrd.CustomerContractPrice__c;
|
}
|
//if (newOrd.EffectiveDate != oldOrd.EffectiveDate) {
|
// newOrd.EffectiveDateD__c = newOrd.EffectiveDate;
|
//}
|
if (newOrd.EndUser__c != oldOrd.EndUser__c) {
|
newOrd.EndUserD__c = newOrd.EndUser__c;
|
}
|
if (newOrd.OlympusContractPrices__c != oldOrd.OlympusContractPrices__c) {
|
newOrd.OlympusContractPricesD__c = newOrd.OlympusContractPrices__c;
|
}
|
|
if (newOrd.IE_SP1__c != oldOrd.IE_SP1__c) {
|
newOrd.IE_SP1_D__c = newOrd.IE_SP1__c;
|
}
|
if (newOrd.IE_SP2__c != oldOrd.IE_SP2__c) {
|
newOrd.IE_SP2_D__c = newOrd.IE_SP2__c;
|
}
|
if (newOrd.IE_SP3__c != oldOrd.IE_SP3__c) {
|
newOrd.IE_SP3_D__c = newOrd.IE_SP3__c;
|
}
|
if (newOrd.IE_SP4__c != oldOrd.IE_SP4__c) {
|
newOrd.IE_SP4_D__c = newOrd.IE_SP4__c;
|
}
|
if (newOrd.IE_SP5__c != oldOrd.IE_SP5__c) {
|
newOrd.IE_SP5_D__c = newOrd.IE_SP5__c;
|
}
|
if (newOrd.IE_SP6__c != oldOrd.IE_SP6__c) {
|
newOrd.IE_SP6_D__c = newOrd.IE_SP6__c;
|
}
|
if (newOrd.IE_SP7__c != oldOrd.IE_SP7__c) {
|
newOrd.IE_SP7_D__c = newOrd.IE_SP7__c;
|
}
|
if (newOrd.IE_SP8__c != oldOrd.IE_SP8__c) {
|
newOrd.IE_SP8_D__c = newOrd.IE_SP8__c;
|
}
|
|
|
if (newOrd.RVI_SP1__c != oldOrd.RVI_SP1__c) {
|
newOrd.RVI_SP1_D__c = newOrd.RVI_SP1__c;
|
}
|
if (newOrd.RVI_SP2__c != oldOrd.RVI_SP2__c) {
|
newOrd.RVI_SP2_D__c = newOrd.RVI_SP2__c;
|
}
|
if (newOrd.RVI_SP3__c != oldOrd.RVI_SP3__c) {
|
newOrd.RVI_SP3_D__c = newOrd.RVI_SP3__c;
|
}
|
if (newOrd.RVI_SP4__c != oldOrd.RVI_SP4__c) {
|
newOrd.RVI_SP4_D__c = newOrd.RVI_SP4__c;
|
}
|
if (newOrd.RVI_SP5__c != oldOrd.RVI_SP5__c) {
|
newOrd.RVI_SP5_D__c = newOrd.RVI_SP5__c;
|
}
|
if (newOrd.RVI_SP6__c != oldOrd.RVI_SP6__c) {
|
newOrd.RVI_SP6_D__c = newOrd.RVI_SP6__c;
|
}
|
|
if (newOrd.NDT_SP1__c != oldOrd.NDT_SP1__c) {
|
newOrd.NDT_SP1_D__c = newOrd.NDT_SP1__c;
|
}
|
if (newOrd.NDT_SP2__c != oldOrd.NDT_SP2__c) {
|
newOrd.NDT_SP2_D__c = newOrd.NDT_SP2__c;
|
}
|
if (newOrd.NDT_SP3__c != oldOrd.NDT_SP3__c) {
|
newOrd.NDT_SP3_D__c = newOrd.NDT_SP3__c;
|
}
|
if (newOrd.NDT_SP4__c != oldOrd.NDT_SP4__c) {
|
newOrd.NDT_SP4_D__c = newOrd.NDT_SP4__c;
|
}
|
if (newOrd.NDT_SP5__c != oldOrd.NDT_SP5__c) {
|
newOrd.NDT_SP5_D__c = newOrd.NDT_SP5__c;
|
}
|
if (newOrd.NDT_SP6__c != oldOrd.NDT_SP6__c) {
|
newOrd.NDT_SP6_D__c = newOrd.NDT_SP6__c;
|
}
|
if (newOrd.NDT_SP7__c != oldOrd.NDT_SP7__c) {
|
newOrd.NDT_SP7_D__c = newOrd.NDT_SP7__c;
|
}
|
if (newOrd.NDT_SP8__c != oldOrd.NDT_SP8__c) {
|
newOrd.NDT_SP8_D__c = newOrd.NDT_SP8__c;
|
}
|
if (newOrd.NDT_SP9__c != oldOrd.NDT_SP9__c) {
|
newOrd.NDT_SP9_D__c = newOrd.NDT_SP9__c;
|
}
|
if (newOrd.NDT_SP10__c != oldOrd.NDT_SP10__c) {
|
newOrd.NDT_SP10_D__c = newOrd.NDT_SP10__c;
|
}
|
if (newOrd.NDT_SP11__c != oldOrd.NDT_SP11__c) {
|
newOrd.NDT_SP11_D__c = newOrd.NDT_SP11__c;
|
}
|
|
if (newOrd.ANI_SP1__c != oldOrd.ANI_SP1__c) {
|
newOrd.ANI_SP1_D__c = newOrd.ANI_SP1__c;
|
}
|
if (newOrd.ANI_SP2__c != oldOrd.ANI_SP2__c) {
|
newOrd.ANI_SP2_D__c = newOrd.ANI_SP2__c;
|
}
|
if (newOrd.ANI_SP3__c != oldOrd.ANI_SP3__c) {
|
newOrd.ANI_SP3_D__c = newOrd.ANI_SP3__c;
|
}
|
if (newOrd.ANI_SP4__c != oldOrd.ANI_SP4__c) {
|
newOrd.ANI_SP4_D__c = newOrd.ANI_SP4__c;
|
}
|
if (newOrd.ANI_SP5__c != oldOrd.ANI_SP5__c) {
|
newOrd.ANI_SP5_D__c = newOrd.ANI_SP5__c;
|
}
|
if (newOrd.ANI_SP6__c != oldOrd.ANI_SP6__c) {
|
newOrd.ANI_SP6_D__c = newOrd.ANI_SP6__c;
|
}
|
|
if (newOrd.NormalDis_SerContractCondition__c != oldOrd.NormalDis_SerContractCondition__c) {
|
newOrd.NormalDis_SerContractCondition_D__c = newOrd.NormalDis_SerContractCondition__c;
|
}
|
if (newOrd.HighDis_SerContractCondition__c != oldOrd.HighDis_SerContractCondition__c) {
|
newOrd.HighDis_SerContractCondition_D__c = newOrd.HighDis_SerContractCondition__c;
|
}
|
if (newOrd.SpecialDis_SerContractCondition__c != oldOrd.SpecialDis_SerContractCondition__c) {
|
newOrd.SpecialDis_SerContractCondition_D__c = newOrd.SpecialDis_SerContractCondition__c;
|
}
|
if (newOrd.Warranty_SerContractCondition__c != oldOrd.Warranty_SerContractCondition__c) {
|
newOrd.Warranty_SerContractCondition_D__c = newOrd.Warranty_SerContractCondition__c;
|
}
|
|
|
if (newOrd.Discount__c != oldOrd.Discount__c) {
|
newOrd.Discount_D__c = newOrd.Discount__c;
|
}
|
if (newOrd.Olympus_Price_BeforeDiscount__c != oldOrd.Olympus_Price_BeforeDiscount__c) {
|
newOrd.Olympus_Price_BeforeDiscount_D__c = newOrd.Olympus_Price_BeforeDiscount__c;
|
}
|
if (newOrd.PaymentCondition__c != oldOrd.PaymentCondition__c) {
|
newOrd.PaymentCondition_D__c = newOrd.PaymentCondition__c;
|
}
|
if (newOrd.SpecialDelivery__c != oldOrd.SpecialDelivery__c) {
|
newOrd.SpecialDelivery_D__c = newOrd.SpecialDelivery__c;
|
}
|
if (newOrd.SpecialDeliveryContact__c != oldOrd.SpecialDeliveryContact__c) {
|
newOrd.SpecialDeliveryContact_D__c = newOrd.SpecialDeliveryContact__c;
|
// PIPL Update 20220420 By Chen Yanan Start
|
newOrd.SpecialDeliveryContact_D_Encrypted__c = newOrd.SpecialDeliveryContact_Encrypted__c;
|
// PIPL Update 20220420 By Chen Yanan End
|
}
|
if (newOrd.SpecialDeliveryPhone__c != oldOrd.SpecialDeliveryPhone__c) {
|
newOrd.SpecialDeliveryPhone_D__c = newOrd.SpecialDeliveryPhone__c;
|
// PIPL Update 20220420 By Chen Yanan Start
|
newOrd.SpecialDeliveryPhone_D_Encrypted__c = newOrd.SpecialDeliveryPhone_Encrypted__c;
|
// PIPL Update 20220420 By Chen Yanan End
|
}
|
if (newOrd.SpecialDeliveryAddress__c != oldOrd.SpecialDeliveryAddress__c) {
|
newOrd.SpecialDeliveryAddress_D__c = newOrd.SpecialDeliveryAddress__c;
|
// PIPL Update 20220420 By Chen Yanan Start
|
newOrd.SpecialDeliveryAddress_D_Encrypted__c = newOrd.SpecialDeliveryAddress_Encrypted__c;
|
// PIPL Update 20220420 By Chen Yanan End
|
}
|
if (newOrd.SpecialParkage__c != oldOrd.SpecialParkage__c) {
|
newOrd.SpecialParkage_D__c = newOrd.SpecialParkage__c;
|
}
|
if (newOrd.SpecialWarranty__c != oldOrd.SpecialWarranty__c) {
|
newOrd.SpecialWarranty_D__c = newOrd.SpecialWarranty__c;
|
}
|
if (newOrd.DealerProfit__c != oldOrd.DealerProfit__c) {
|
newOrd.DealerProfit_D__c = newOrd.DealerProfit__c;
|
}
|
if (newOrd.SpecialDelDate__c != oldOrd.SpecialDelDate__c) {
|
newOrd.SpecialDelDate_D__c = newOrd.SpecialDelDate__c;
|
}
|
if (newOrd.OtherApply__c != oldOrd.OtherApply__c) {
|
newOrd.OtherApply_D__c = newOrd.OtherApply__c;
|
}
|
|
|
if (newOrd.Andor__c != oldOrd.Andor__c) {
|
newOrd.Andor_D__c = newOrd.Andor__c;
|
}
|
if (newOrd.Bitplane__c != oldOrd.Bitplane__c) {
|
newOrd.Bitplane_D__c = newOrd.Bitplane__c;
|
}
|
if (newOrd.CoolLED__c != oldOrd.CoolLED__c) {
|
newOrd.CoolLED_D__c = newOrd.CoolLED__c;
|
}
|
if (newOrd.Lumen__c != oldOrd.Lumen__c) {
|
newOrd.Lumen_D__c = newOrd.Lumen__c;
|
}
|
if (newOrd.Lumenera__c != oldOrd.Lumenera__c) {
|
newOrd.Lumenera_D__c = newOrd.Lumenera__c;
|
}
|
if (newOrd.Media_Cybernetics__c != oldOrd.Media_Cybernetics__c) {
|
newOrd.Media_Cybernetics_D__c = newOrd.Media_Cybernetics__c;
|
}
|
if (newOrd.Narishige__c != oldOrd.Narishige__c) {
|
newOrd.Narishige_D__c = newOrd.Narishige__c;
|
}
|
if (newOrd.Newport__c != oldOrd.Newport__c) {
|
newOrd.Newport_D__c = newOrd.Newport__c;
|
}
|
if (newOrd.OSIS_Germany__c != oldOrd.OSIS_Germany__c) {
|
newOrd.OSIS_Germany_D__c = newOrd.OSIS_Germany__c;
|
}
|
if (newOrd.OSIS_Singapore__c != oldOrd.OSIS_Singapore__c) {
|
newOrd.OSIS_Singapore_D__c = newOrd.OSIS_Singapore__c;
|
}
|
if (newOrd.Photometrics__c != oldOrd.Photometrics__c) {
|
newOrd.Photometrics_D__c = newOrd.Photometrics__c;
|
}
|
if (newOrd.Prior_Scientific__c != oldOrd.Prior_Scientific__c) {
|
newOrd.Prior_Scientific_D__c = newOrd.Prior_Scientific__c;
|
}
|
if (newOrd.Q_Imaging__c != oldOrd.Q_Imaging__c) {
|
newOrd.Q_Imaging_D__c = newOrd.Q_Imaging__c;
|
}
|
if (newOrd.Tokai_Hit__c != oldOrd.Tokai_Hit__c) {
|
newOrd.Tokai_Hit_D__c = newOrd.Tokai_Hit__c;
|
}
|
if (newOrd.Other_Third__c != oldOrd.Other_Third__c) {
|
newOrd.Other_Third_D__c = newOrd.Other_Third__c;
|
}
|
if (newOrd.ServiceFee__c != oldOrd.ServiceFee__c) {
|
newOrd.ServiceFee_D__c = newOrd.ServiceFee__c;
|
}
|
if (newOrd.AlongProduct__c != oldOrd.AlongProduct__c) {
|
newOrd.AlongProduct_D__c = newOrd.AlongProduct__c;
|
}
|
if (newOrd.Cost__c != oldOrd.Cost__c) {
|
newOrd.Cost_D__c = newOrd.Cost__c;
|
}
|
if (newOrd.Sub_DealerC__c != oldOrd.Sub_DealerC__c) {
|
newOrd.Sub_DealerC_D__c = newOrd.Sub_DealerC__c;
|
}
|
|
if (newOrd.SpecialDeliveryAccount__c != oldOrd.SpecialDeliveryAccount__c) {
|
newOrd.SpecialDeliveryAccount_D__c = newOrd.SpecialDeliveryAccount__c;
|
}
|
if (newOrd.ForeignTradeCompany__c != oldOrd.ForeignTradeCompany__c) {
|
newOrd.ForeignTradeCompany_D__c = newOrd.ForeignTradeCompany__c;
|
// 外贸送达方默认为外贸公司
|
if (newOrd.TradeType__c == System.Label.Trade_Type) {
|
newOrd.SpecialDeliveryAccount__c = newOrd.ForeignTradeCompany__c;
|
newOrd.SpecialDeliveryAccount_D__c = newOrd.ForeignTradeCompany__c;
|
}
|
}
|
if (newOrd.SpecialDeliveryContact2__c != oldOrd.SpecialDeliveryContact2__c) {
|
newOrd.SpecialDeliveryContact2_D__c = newOrd.SpecialDeliveryContact2__c;
|
}
|
if (newOrd.TradeType__c == System.Label.Trade_Type) {
|
if (newOrd.ForeignTradeCompany_D__c != newOrd.SpecialDeliveryAccount_D__c) {
|
newOrd.SpecialDeliveryAccount_D__c = newOrd.ForeignTradeCompany_D__c;
|
system.debug('=====set SpecialDeliveryAccount');
|
}
|
}
|
|
if (newOrd.Shipment_Term__c != oldOrd.Shipment_Term__c) {
|
newOrd.Shipment_Term_D__c = newOrd.Shipment_Term__c;
|
}
|
if (newOrd.Shipment_Term2__c != oldOrd.Shipment_Term2__c) {
|
newOrd.Shipment_Term2_D__c = newOrd.Shipment_Term2__c;
|
}
|
if (newOrd.ProductConfig__c != oldOrd.ProductConfig__c) {
|
newOrd.ProductConfig_D__c = newOrd.ProductConfig__c;
|
}
|
|
if (newOrd.ProductConfig_D__c != oldOrd.ProductConfig_D__c && oldOrd.ProductConfig_D__c != null) {
|
newOrd.ProductConfig_IsChanged__c = true;
|
}
|
|
//IE,只有compo被选中,则不需要审批 gwy 2021-06-02
|
if(newOrd.ProductSegment__c=='IE' && newOrd.Status__c == 'Active' && newOrd.OrderDraft__c == false
|
&& newOrd.IE_SP5_D__c == false && newOrd.IE_SP6_D__c == false && newOrd.IE_SP7_D__c == false && newOrd.IE_SP8_D__c == true){
|
newOrd.ApproveStatus__c = 'Pass';
|
newOrd.IsSpPassed__c = true;
|
newOrd.IE_SP8__c = true;
|
}
|
//IE,只有compo被选中,则不需要审批 gwy 2021-06-02
|
|
}
|
}
|
|
/**
|
* XHL20210830
|
* SSBD合同共享数据的拼接
|
* @param orderId [SSBD合同Id]
|
* @param userId [待共享的用户Id]
|
* @return [description]
|
*/
|
public static OrderShare DataAssembly(String orderId,String userId){
|
OrderShare aos = new OrderShare(
|
RowCause = 'Manual',
|
orderId = orderId,
|
UserOrGroupId = userId,
|
OrderAccessLevel = 'Edit');
|
|
return aos;
|
|
}
|
/**
|
* 合同权限共享 XHL20210830
|
* @param newList [description]
|
* @param newMap [description]
|
* @param oldList [description]
|
* @param oldMap [description]
|
*/
|
public static void setOrderShare (List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
List<OrderShare> insertOrderShareList = new List<OrderShare>();
|
/*BatchIF_Log__c iflog = new BatchIF_Log__c();
|
iflog.Type__c = 'OrderShare';
|
String datetimeStr = String.valueOf(Datetime.now()).replace('-','').replace(' ','').replace(':','');
|
iflog.MessageGroupNumber__c = datetimeStr;
|
iflog.Log__c = '';
|
Boolean errrorFlag = false;*/
|
|
for (Order newOrd : newList) {
|
Order oldOrd = oldMap == null ? new Order() : oldMap.get(newOrd.Id);
|
//共享权限设置标识 变更 为 真 并且 所有人变更,将合同共享给 原所有人
|
System.debug('newOrd.SharedFlag__c--->'+newOrd.SharedFlag__c);
|
System.debug('oldOrd.SharedFlag__c--->'+oldOrd.SharedFlag__c);
|
System.debug('newOrd.SharedFlag__c--->'+newOrd.SharedFlag__c);
|
System.debug('newOrd.OwnerId--->'+newOrd.OwnerId);
|
System.debug('oldOrd.OwnerId--->'+oldOrd.OwnerId);
|
|
|
if (newOrd.SharedFlag__c != oldOrd.SharedFlag__c && newOrd.SharedFlag__c && newOrd.OwnerId != oldOrd.OwnerId) {
|
String userId = oldOrd.OwnerId;
|
insertOrderShareList.add(DataAssembly(newOrd.Id,userId));
|
} /*else {
|
|
if (newOrd.SharedFlag__c != oldOrd.SharedFlag__c && newOrd.SharedFlag__c) {
|
iflog.Log__c += 'Order Id --->'+ newOrd.Id + '\n';
|
iflog.Log__c += 'newOrd.OwnerId--->'+newOrd.OwnerId + '\n';
|
iflog.Log__c += 'oldOrd.OwnerId--->'+oldOrd.OwnerId + '\n';
|
errrorFlag = true;
|
}
|
}*/
|
|
}
|
if (insertOrderShareList.size() > 0) {
|
system.debug('insertOrderShareList--->'+insertOrderShareList);
|
insert insertOrderShareList;
|
}
|
|
/*if (errrorFlag) {
|
insert iflog;
|
}*/
|
|
|
}
|
|
public static void dealerOrderApproval(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
// List<OrderShare> insertOrderShareList = new List<OrderShare>();
|
for (Order newOrd : newList) {
|
Order oldOrd = oldMap.get(newOrd.Id);
|
// if (newOrd.OwnerId <> newOrd.OpportunityOwnerId__c && newOrd.OpportunityOwnerId__c <> null && newOrd.OpportunityOwnerId__c <> '') {
|
// newOrd.OwnerId = newOrd.OpportunityOwnerId__c;
|
// newOrd.SharedFlag__c = true;
|
// }
|
// XHL20210830
|
if (newOrd.SharedFlag__c != oldOrd.SharedFlag__c && newOrd.SharedFlag__c && newOrd.OwnerId != newOrd.OpportunityOwnerId__c && newOrd.OpportunityOwnerId__c <> null && newOrd.OpportunityOwnerId__c <> '') {
|
newOrd.OwnerId = newOrd.OpportunityOwnerId__c;
|
}
|
if (newOrd.ApproveStatus__c != oldOrd.ApproveStatus__c) {
|
if (newOrd.ApproveStatus__c == 'Pass' && newOrd.IsCopy__c == false) {
|
newOrd.IsSpPassed__c = true;
|
}
|
//gwy 2021-06-03 修改IE成为特殊审批通过,后悔选了compo,修改合同不触发错误。
|
//这段不用了
|
/*if (newOrd.ApproveStatus__c == 'Pass' && newOrd.IsCopy__c == false) {
|
if(newOrd.ProductSegment__c=='IE' && newOrd.Status__c == 'Active'
|
&& newOrd.IE_SP5_D__c == false && newOrd.IE_SP6_D__c == false && newOrd.IE_SP7_D__c == false && newOrd.IE_SP8_D__c == true){
|
newOrd.IsSpPassed__c = true;
|
}else{
|
newOrd.IsSpPassed__c = true;
|
}
|
}*/
|
//if (newOrd.ApproveStatus__c == 'Pass' || newOrd.ApproveStatus__c == 'OrderPass') {
|
if (newOrd.ApproveStatus__c == 'OrderPass' && newOrd.IsCopy__c == false) {
|
// 合同创建时,嵌入画面更新owner
|
//newOrd.OwnerId = newOrd.OpportunityOwnerId__c;
|
newOrd.Contract_Status__c = newOrd.Contract_StatusD__c;
|
|
if (newOrd.IsNew__c == true) {
|
newOrd.IsNew__c = false;
|
}
|
if (newOrd.Upload_IsChanged__c == true) {
|
newOrd.Upload_IsChanged__c = false;
|
}
|
|
//if (newOrd.ApproveStatus__c == 'Pass') {
|
newOrd.SP_11__c = newOrd.SP_11D__c;
|
newOrd.SP_901__c = newOrd.SP_901D__c;
|
newOrd.SP_101__c = newOrd.SP_101D__c;
|
newOrd.SP_102__c = newOrd.SP_102D__c;
|
newOrd.SP_103__c = newOrd.SP_103D__c;
|
newOrd.SP_106__c = newOrd.SP_106D__c;
|
newOrd.SP_107__c = newOrd.SP_107D__c;
|
newOrd.Theoinp__c = newOrd.Theoinp_D__c;
|
newOrd.SP_745__c = newOrd.SP_745D__c;
|
newOrd.SP_111__c = newOrd.SP_111D__c;
|
newOrd.SP_121__c = newOrd.SP_121D__c;
|
newOrd.SP_131__c = newOrd.SP_131D__c;
|
newOrd.SP_141__c = newOrd.SP_141D__c;
|
newOrd.SP_151__c = newOrd.SP_151D__c;
|
newOrd.SP_161__c = newOrd.SP_161D__c;
|
newOrd.SP_171__c = newOrd.SP_171D__c;
|
newOrd.SP_181__c = newOrd.SP_181D__c;
|
newOrd.SP_191__c = newOrd.SP_191D__c;
|
newOrd.SP_201__c = newOrd.SP_201D__c;
|
newOrd.SP_202__c = newOrd.SP_202D__c;
|
newOrd.SP_21__c = newOrd.SP_21D__c;
|
newOrd.SP_22__c = newOrd.SP_22D__c;
|
newOrd.SP_31__c = newOrd.SP_31D__c;
|
newOrd.SP_32__c = newOrd.SP_32D__c;
|
newOrd.SP_33__c = newOrd.SP_33D__c;
|
newOrd.SP_41__c = newOrd.SP_41D__c;
|
newOrd.SP_51__c = newOrd.SP_51D__c;
|
newOrd.SP_52__c = newOrd.SP_52D__c;
|
newOrd.SP_61__c = newOrd.SP_61D__c;
|
newOrd.SP_62__c = newOrd.SP_62D__c;
|
newOrd.SP_71__c = newOrd.SP_71D__c;
|
newOrd.SP_81__c = newOrd.SP_81D__c;
|
newOrd.SP_91__c = newOrd.SP_91D__c;
|
|
newOrd.IE_SP1__c = newOrd.IE_SP1_D__c;
|
newOrd.IE_SP2__c = newOrd.IE_SP2_D__c;
|
newOrd.IE_SP3__c = newOrd.IE_SP3_D__c;
|
newOrd.IE_SP4__c = newOrd.IE_SP4_D__c;
|
newOrd.IE_SP5__c = newOrd.IE_SP5_D__c;
|
newOrd.IE_SP6__c = newOrd.IE_SP6_D__c;
|
newOrd.IE_SP7__c = newOrd.IE_SP7_D__c;
|
newOrd.IE_SP8__c = newOrd.IE_SP8_D__c;
|
|
newOrd.RVI_SP1__c = newOrd.RVI_SP1_D__c;
|
newOrd.RVI_SP2__c = newOrd.RVI_SP2_D__c;
|
newOrd.RVI_SP3__c = newOrd.RVI_SP3_D__c;
|
newOrd.RVI_SP4__c = newOrd.RVI_SP4_D__c;
|
newOrd.RVI_SP5__c = newOrd.RVI_SP5_D__c;
|
newOrd.RVI_SP6__c = newOrd.RVI_SP6_D__c;
|
|
newOrd.NDT_SP1__c = newOrd.NDT_SP1_D__c;
|
newOrd.NDT_SP2__c = newOrd.NDT_SP2_D__c;
|
newOrd.NDT_SP3__c = newOrd.NDT_SP3_D__c;
|
newOrd.NDT_SP4__c = newOrd.NDT_SP4_D__c;
|
newOrd.NDT_SP5__c = newOrd.NDT_SP5_D__c;
|
newOrd.NDT_SP6__c = newOrd.NDT_SP6_D__c;
|
newOrd.NDT_SP7__c = newOrd.NDT_SP7_D__c;
|
newOrd.NDT_SP8__c = newOrd.NDT_SP8_D__c;
|
newOrd.NDT_SP9__c = newOrd.NDT_SP9_D__c;
|
newOrd.NDT_SP10__c = newOrd.NDT_SP10_D__c;
|
newOrd.NDT_SP11__c = newOrd.NDT_SP11_D__c;
|
|
newOrd.ANI_SP1__c = newOrd.ANI_SP1_D__c;
|
newOrd.ANI_SP2__c = newOrd.ANI_SP2_D__c;
|
newOrd.ANI_SP3__c = newOrd.ANI_SP3_D__c;
|
newOrd.ANI_SP4__c = newOrd.ANI_SP4_D__c;
|
newOrd.ANI_SP5__c = newOrd.ANI_SP5_D__c;
|
newOrd.ANI_SP6__c = newOrd.ANI_SP6_D__c;
|
|
newOrd.NormalDis_SerContractCondition__c = newOrd.NormalDis_SerContractCondition_D__c;
|
newOrd.HighDis_SerContractCondition__c = newOrd.HighDis_SerContractCondition_D__c;
|
newOrd.SpecialDis_SerContractCondition__c = newOrd.SpecialDis_SerContractCondition_D__c;
|
newOrd.Warranty_SerContractCondition__c = newOrd.Warranty_SerContractCondition_D__c;
|
|
//}
|
|
newOrd.Discount__c = newOrd.Discount_D__c;
|
newOrd.Olympus_Price_BeforeDiscount__c = newOrd.Olympus_Price_BeforeDiscount_D__c;
|
newOrd.PaymentCondition__c = newOrd.PaymentCondition_D__c;
|
newOrd.SpecialDelivery__c = newOrd.SpecialDelivery_D__c;
|
newOrd.SpecialDeliveryContact__c = newOrd.SpecialDeliveryContact_D__c;
|
newOrd.SpecialDeliveryPhone__c = newOrd.SpecialDeliveryPhone_D__c;
|
newOrd.SpecialDeliveryAddress__c = newOrd.SpecialDeliveryAddress_D__c;
|
// PIPL Update 20220420 By Chen Yanan Start
|
newOrd.SpecialDeliveryContact_Encrypted__c = newOrd.SpecialDeliveryContact_D_Encrypted__c;
|
newOrd.SpecialDeliveryPhone_Encrypted__c = newOrd.SpecialDeliveryPhone_D_Encrypted__c;
|
newOrd.SpecialDeliveryAddress_Encrypted__c = newOrd.SpecialDeliveryAddress_D_Encrypted__c;
|
// PIPL Update 20220420 By Chen Yanan End
|
newOrd.SpecialParkage__c = newOrd.SpecialParkage_D__c;
|
newOrd.SpecialWarranty__c = newOrd.SpecialWarranty_D__c;
|
newOrd.DealerProfit__c = newOrd.DealerProfit_D__c;
|
newOrd.SpecialDelDate__c = newOrd.SpecialDelDate_D__c;
|
newOrd.OtherApply__c = newOrd.OtherApply_D__c;
|
|
//if (newOrd.ApproveStatus__c == 'OrderPass') {
|
newOrd.IsOrderPassed__c = true;
|
|
newOrd.CustomerContractPrice__c = newOrd.CustomerContractPriceD__c;
|
newOrd.OlympusContractPrices__c = newOrd.OlympusContractPricesD__c;
|
newOrd.EndUser__c = newOrd.EndUserD__c;
|
|
newOrd.Andor__c = newOrd.Andor_D__c;
|
newOrd.Bitplane__c = newOrd.Bitplane_D__c;
|
newOrd.CoolLED__c = newOrd.CoolLED_D__c;
|
newOrd.Lumen__c = newOrd.Lumen_D__c;
|
newOrd.Lumenera__c = newOrd.Lumenera_D__c;
|
newOrd.Media_Cybernetics__c = newOrd.Media_Cybernetics_D__c;
|
newOrd.Narishige__c = newOrd.Narishige_D__c;
|
newOrd.Newport__c = newOrd.Newport_D__c;
|
newOrd.OSIS_Germany__c = newOrd.OSIS_Germany_D__c;
|
newOrd.OSIS_Singapore__c = newOrd.OSIS_Singapore_D__c;
|
newOrd.Photometrics__c = newOrd.Photometrics_D__c;
|
newOrd.Prior_Scientific__c = newOrd.Prior_Scientific_D__c;
|
newOrd.Q_Imaging__c = newOrd.Q_Imaging_D__c;
|
newOrd.Tokai_Hit__c = newOrd.Tokai_Hit_D__c;
|
newOrd.Other_Third__c = newOrd.Other_Third_D__c;
|
newOrd.ServiceFee__c = newOrd.ServiceFee_D__c;
|
newOrd.AlongProduct__c = newOrd.AlongProduct_D__c;
|
newOrd.Cost__c = newOrd.Cost_D__c;
|
newOrd.Sub_DealerC__c = newOrd.Sub_DealerC_D__c;
|
//}
|
|
newOrd.ForeignTradeCompany__c = newOrd.ForeignTradeCompany_D__c;
|
newOrd.SpecialDeliveryAccount__c = newOrd.SpecialDeliveryAccount_D__c;
|
newOrd.SpecialDeliveryContact2__c = newOrd.SpecialDeliveryContact2_D__c;
|
|
newOrd.Shipment_Term__c = newOrd.Shipment_Term_D__c;
|
newOrd.Shipment_Term2__c = newOrd.Shipment_Term2_D__c;
|
newOrd.ProductConfig__c = newOrd.ProductConfig_D__c;
|
}
|
|
if ((newOrd.ApproveStatus__c == 'Reject' || newOrd.ApproveStatus__c == 'OrderReject') && newOrd.IsNew__c == false) {
|
//if (newOrd.ApproveStatus__c == 'Reject') {
|
newOrd.SP_11D__c = newOrd.SP_11__c;
|
newOrd.SP_101D__c = newOrd.SP_101__c;
|
newOrd.SP_901D__c = newOrd.SP_901__c;
|
newOrd.SP_102D__c = newOrd.SP_102__c;
|
newOrd.SP_103D__c = newOrd.SP_103__c;
|
newOrd.SP_106D__c = newOrd.SP_106__c;
|
newOrd.SP_107D__c = newOrd.SP_107__c;
|
newOrd.Theoinp__c = newOrd.Theoinp_D__c;
|
newOrd.SP_745D__c = newOrd.SP_745__c;
|
newOrd.SP_111D__c = newOrd.SP_111__c;
|
newOrd.SP_121D__c = newOrd.SP_121__c;
|
newOrd.SP_131D__c = newOrd.SP_131__c;
|
newOrd.SP_141D__c = newOrd.SP_141__c;
|
newOrd.SP_151D__c = newOrd.SP_151__c;
|
newOrd.SP_161D__c = newOrd.SP_161__c;
|
newOrd.SP_171D__c = newOrd.SP_171__c;
|
newOrd.SP_181D__c = newOrd.SP_181__c;
|
newOrd.SP_191D__c = newOrd.SP_191__c;
|
newOrd.SP_201D__c = newOrd.SP_201__c;
|
newOrd.SP_202D__c = newOrd.SP_202__c;
|
newOrd.SP_21D__c = newOrd.SP_21__c;
|
newOrd.SP_22D__c = newOrd.SP_22__c;
|
newOrd.SP_31D__c = newOrd.SP_31__c;
|
newOrd.SP_32D__c = newOrd.SP_32__c;
|
newOrd.SP_33D__c = newOrd.SP_33__c;
|
newOrd.SP_41D__c = newOrd.SP_41__c;
|
newOrd.SP_51D__c = newOrd.SP_51__c;
|
newOrd.SP_52D__c = newOrd.SP_52__c;
|
newOrd.SP_61D__c = newOrd.SP_61__c;
|
newOrd.SP_62D__c = newOrd.SP_62__c;
|
newOrd.SP_71D__c = newOrd.SP_71__c;
|
newOrd.SP_81D__c = newOrd.SP_81__c;
|
newOrd.SP_91D__c = newOrd.SP_91__c;
|
|
newOrd.IE_SP1_D__c = newOrd.IE_SP1__c;
|
newOrd.IE_SP2_D__c = newOrd.IE_SP2__c;
|
newOrd.IE_SP3_D__c = newOrd.IE_SP3__c;
|
newOrd.IE_SP4_D__c = newOrd.IE_SP4__c;
|
newOrd.IE_SP5_D__c = newOrd.IE_SP5__c;
|
newOrd.IE_SP6_D__c = newOrd.IE_SP6__c;
|
newOrd.IE_SP7_D__c = newOrd.IE_SP7__c;
|
newOrd.IE_SP8_D__c = newOrd.IE_SP8__c;
|
|
newOrd.RVI_SP1_D__c = newOrd.RVI_SP1__c;
|
newOrd.RVI_SP2_D__c = newOrd.RVI_SP2__c;
|
newOrd.RVI_SP3_D__c = newOrd.RVI_SP3__c;
|
newOrd.RVI_SP4_D__c = newOrd.RVI_SP4__c;
|
newOrd.RVI_SP5_D__c = newOrd.RVI_SP5__c;
|
newOrd.RVI_SP6_D__c = newOrd.RVI_SP6__c;
|
|
newOrd.NDT_SP1_D__c = newOrd.NDT_SP1__c;
|
newOrd.NDT_SP2_D__c = newOrd.NDT_SP2__c;
|
newOrd.NDT_SP3_D__c = newOrd.NDT_SP3__c;
|
newOrd.NDT_SP4_D__c = newOrd.NDT_SP4__c;
|
newOrd.NDT_SP5_D__c = newOrd.NDT_SP5__c;
|
newOrd.NDT_SP6_D__c = newOrd.NDT_SP6__c;
|
newOrd.NDT_SP7_D__c = newOrd.NDT_SP7__c;
|
newOrd.NDT_SP8_D__c = newOrd.NDT_SP8__c;
|
newOrd.NDT_SP9_D__c = newOrd.NDT_SP9__c;
|
newOrd.NDT_SP10_D__c = newOrd.NDT_SP10__c;
|
newOrd.NDT_SP11_D__c = newOrd.NDT_SP11__c;
|
|
newOrd.ANI_SP1_D__c = newOrd.ANI_SP1__c;
|
newOrd.ANI_SP2_D__c = newOrd.ANI_SP2__c;
|
newOrd.ANI_SP3_D__c = newOrd.ANI_SP3__c;
|
newOrd.ANI_SP4_D__c = newOrd.ANI_SP4__c;
|
newOrd.ANI_SP5_D__c = newOrd.ANI_SP5__c;
|
newOrd.ANI_SP6_D__c = newOrd.ANI_SP6__c;
|
|
newOrd.NormalDis_SerContractCondition_D__c = newOrd.NormalDis_SerContractCondition__c;
|
newOrd.HighDis_SerContractCondition_D__c = newOrd.HighDis_SerContractCondition__c;
|
newOrd.SpecialDis_SerContractCondition_D__c = newOrd.SpecialDis_SerContractCondition__c;
|
newOrd.Warranty_SerContractCondition_D__c = newOrd.Warranty_SerContractCondition__c;
|
|
//}
|
|
newOrd.Discount_D__c = newOrd.Discount__c;
|
newOrd.Olympus_Price_BeforeDiscount_D__c = newOrd.Olympus_Price_BeforeDiscount__c;
|
newOrd.PaymentCondition_D__c = newOrd.PaymentCondition__c;
|
newOrd.SpecialDelivery_D__c = newOrd.SpecialDelivery__c;
|
newOrd.SpecialDeliveryContact_D__c = newOrd.SpecialDeliveryContact__c;
|
newOrd.SpecialDeliveryPhone_D__c = newOrd.SpecialDeliveryPhone__c;
|
newOrd.SpecialDeliveryAddress_D__c = newOrd.SpecialDeliveryAddress__c;
|
// PIPL Update 20220420 By Chen Yanan Start
|
newOrd.SpecialDeliveryContact_D_Encrypted__c = newOrd.SpecialDeliveryContact_Encrypted__c;
|
newOrd.SpecialDeliveryPhone_D_Encrypted__c = newOrd.SpecialDeliveryPhone_Encrypted__c;
|
newOrd.SpecialDeliveryAddress_D_Encrypted__c = newOrd.SpecialDeliveryAddress_Encrypted__c;
|
// PIPL Update 20220420 By Chen Yanan End
|
newOrd.SpecialParkage_D__c = newOrd.SpecialParkage__c;
|
newOrd.SpecialWarranty_D__c = newOrd.SpecialWarranty__c;
|
newOrd.DealerProfit_D__c = newOrd.DealerProfit__c;
|
newOrd.SpecialDelDate_D__c = newOrd.SpecialDelDate__c;
|
newOrd.OtherApply_D__c = newOrd.OtherApply__c;
|
|
if (newOrd.ApproveStatus__c == 'OrderReject') {
|
newOrd.CustomerContractPriceD__c = newOrd.CustomerContractPrice__c;
|
newOrd.OlympusContractPricesD__c = newOrd.OlympusContractPrices__c;
|
newOrd.EndUserD__c = newOrd.EndUser__c;
|
|
newOrd.Andor_D__c = newOrd.Andor__c;
|
newOrd.Bitplane_D__c = newOrd.Bitplane__c;
|
newOrd.CoolLED_D__c = newOrd.CoolLED__c;
|
newOrd.Lumen_D__c = newOrd.Lumen__c;
|
newOrd.Lumenera_D__c = newOrd.Lumenera__c;
|
newOrd.Media_Cybernetics_D__c = newOrd.Media_Cybernetics__c;
|
newOrd.Narishige_D__c = newOrd.Narishige__c;
|
newOrd.Newport_D__c = newOrd.Newport__c;
|
newOrd.OSIS_Germany_D__c = newOrd.OSIS_Germany__c;
|
newOrd.OSIS_Singapore_D__c = newOrd.OSIS_Singapore__c;
|
newOrd.Photometrics_D__c = newOrd.Photometrics__c;
|
newOrd.Prior_Scientific_D__c = newOrd.Prior_Scientific__c;
|
newOrd.Q_Imaging_D__c = newOrd.Q_Imaging__c;
|
newOrd.Tokai_Hit_D__c = newOrd.Tokai_Hit__c;
|
newOrd.Other_Third_D__c = newOrd.Other_Third__c;
|
newOrd.ServiceFee_D__c = newOrd.ServiceFee__c;
|
newOrd.AlongProduct_D__c = newOrd.AlongProduct__c;
|
newOrd.Cost_D__c = newOrd.Cost__c;
|
newOrd.Sub_DealerC_D__c = newOrd.Sub_DealerC__c;
|
|
newOrd.ForeignTradeCompany_D__c = newOrd.ForeignTradeCompany__c;
|
newOrd.SpecialDeliveryAccount_D__c = newOrd.SpecialDeliveryAccount__c;
|
newOrd.SpecialDeliveryContact2_D__c = newOrd.SpecialDeliveryContact2__c;
|
|
newOrd.Shipment_Term_D__c = newOrd.Shipment_Term__c;
|
newOrd.Shipment_Term2_D__c = newOrd.Shipment_Term2__c;
|
}
|
|
newOrd.Contract_StatusD__c = newOrd.Contract_Status__c;
|
newOrd.ProductConfig_D__c = newOrd.ProductConfig__c;
|
// PIPL Update 20220420 By Chen Yanan Start
|
newOrd.SpecialDeliveryPhone_Encrypted__c = newOrd.SpecialDeliveryPhone_D_Encrypted__c;
|
// PIPL Update 20220420 By Chen Yanan End
|
|
if (newOrd.Upload_IsChanged__c == true) {
|
newOrd.Upload_IsChanged__c = false;
|
}
|
|
}
|
}
|
}
|
|
// if (insertOrderShareList.size()>0) {
|
// system.debug('insertOrderShareList--->'+insertOrderShareList);
|
// insert insertOrderShareList;
|
// }
|
}
|
|
public static void setApprover(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
List<String> ownerIdList = new List<String>();
|
Map<String, String> orderToOwner = new Map<String, String>();
|
|
Map<String, SObjectField> sObjectFieldMaps = Schema.getGlobalDescribe().get('Order').getDescribe().fields.getMap();
|
|
Map<String, List<String>> orderMap = new Map<String, List<String>>();
|
|
//存放订单行项目对应的订单的ID
|
/*List<String> otmIdList = new List<String>();*/
|
|
//存放订单行项目有产品的订单ID
|
List<String> ordIdList = new List<String>();
|
//显微镜降级,定义一个map用于接收最下面的levelcheck方法传来的MAP。
|
Map<Id,String> levelMap = new Map<Id,String>();
|
For (Order newOrder: newList) {
|
|
if (newOrder.UpdateWithAG__c && newOrder.CrossCooperativeProject__c && (newOrder.SplitRatio__c == null || newOrder.SplitRatio__c == '')) {
|
newOrder.addError('请填写业绩拆分比例。');
|
}
|
|
Order oldOrder = oldMap.get(newOrder.Id);
|
//显微镜降级
|
if (newOrder.ProductSegment__c == 'BS') {
|
ordIdList.add(newOrder.Id);
|
}
|
|
|
if (oldOrder.ApproveStatus__c != newOrder.ApproveStatus__c && (newOrder.ApproveStatus__c == 'Completed' || newOrder.ApproveStatus__c == 'Completed2' || newOrder.ApproveStatus__c == 'CompletedC' || newOrder.ApproveStatus__c == 'CompletedS' )) {
|
ownerIdList.add(newOrder.OpportunityOwnerId__c);
|
orderToOwner.put(newOrder.Id, newOrder.OpportunityOwnerId__c);
|
}
|
|
if (newOrder.Description != null && newOrder.Description.length() > 0) {
|
newOrder.Description += ' \r\n ';
|
} if (newOrder.Description == null) {
|
newOrder.Description = '';
|
}
|
if (newOrder.SP_151__c == true && oldOrder.SP_151__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_151__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_161__c == true && oldOrder.SP_161__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_161__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_171__c == true && oldOrder.SP_171__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_171__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_191__c == true && oldOrder.SP_191__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_191__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_201__c == true && oldOrder.SP_201__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_201__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_202__c == true && oldOrder.SP_202__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_202__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_21__c == true && oldOrder.SP_21__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_21__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_22__c == true && oldOrder.SP_22__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_22__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_41__c == true && oldOrder.SP_41__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_41__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_61__c == true && oldOrder.SP_61__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_61__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_81__c == true && oldOrder.SP_81__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_81__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_181__c == true && oldOrder.SP_181__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_181__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_33__c == true && oldOrder.SP_33__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_33__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_32__c == true && oldOrder.SP_32__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_32__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_31__c == true && oldOrder.SP_31__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_31__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_11__c == true && oldOrder.SP_11__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_11__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_901__c == true && oldOrder.SP_901__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_901__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_111__c == true && oldOrder.SP_111__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_111__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_101__c == true && oldOrder.SP_101__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_101__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_106__c == true && oldOrder.SP_106__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_106__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_107__c == true && oldOrder.SP_107__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_107__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.Theoinp__c == true && oldOrder.Theoinp__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('Theoinp__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
if (newOrder.SP_745__c == true && oldOrder.SP_745__c == false) {
|
newOrder.Description += sObjectFieldMaps.get('SP_745__c').getDescribe().getLabel() + ' \r\n ';
|
}
|
|
if (newOrder.SP_151__c == false && oldOrder.SP_151__c == true) {
|
newOrder.Description = newOrder.Description.replace(sObjectFieldMaps.get('SP_151__c').getDescribe().getLabel() + ' \r\n ', '');
|
}
|
if (newOrder.SP_161__c == false && oldOrder.SP_161__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_161__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_171__c == false && oldOrder.SP_171__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_171__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_191__c == false && oldOrder.SP_191__c == true) {
|
newOrder.Description = newOrder.Description.replace(sObjectFieldMaps.get('SP_191__c').getDescribe().getLabel() + ' \r\n ', '');
|
}
|
if (newOrder.SP_201__c == false && oldOrder.SP_201__c == true) {
|
newOrder.Description = newOrder.Description.replace(sObjectFieldMaps.get('SP_201__c').getDescribe().getLabel() + ' \r\n ', '');
|
}
|
|
if (newOrder.SP_202__c == false && oldOrder.SP_202__c == true) {
|
newOrder.Description = newOrder.Description.replace(sObjectFieldMaps.get('SP_202__c').getDescribe().getLabel() + ' \r\n ', '');
|
}
|
|
if (newOrder.SP_21__c == false && oldOrder.SP_21__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_21__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_22__c == false && oldOrder.SP_22__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_22__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_41__c == false && oldOrder.SP_41__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_41__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_61__c == false && oldOrder.SP_61__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_61__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_81__c == false && oldOrder.SP_81__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_81__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_181__c == false && oldOrder.SP_181__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_181__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_33__c == false && oldOrder.SP_33__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_33__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_32__c == false && oldOrder.SP_32__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_32__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_31__c == false && oldOrder.SP_31__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_31__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_11__c == false && oldOrder.SP_11__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_11__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_901__c == false && oldOrder.SP_901__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_901__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_111__c == false && oldOrder.SP_111__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_111__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_101__c == false && oldOrder.SP_101__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_101__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_106__c == false && oldOrder.SP_106__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_106__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_107__c == false && oldOrder.SP_107__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_107__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.Theoinp__c == false && oldOrder.Theoinp__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('Theoinp__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
if (newOrder.SP_745__c == false && oldOrder.SP_745__c == true) {
|
newOrder.Description = newOrder.Description.remove(sObjectFieldMaps.get('SP_745__c').getDescribe().getLabel() + ' \r\n ');
|
}
|
}
|
|
//显微镜降级
|
if(OrderDivisionController.OrderDivision == false){
|
levelMap = levelCheck(ordIdList);
|
}
|
//for()
|
|
Map<Id, User> copyUserMap = new Map<Id, User>([
|
SELECT Id, Name, SalesAsistManager__c, BusinessDepOwner_Tax__c, BusinessDepOwner_WithoutTax__c, SalesManager__c, AsistGenManger__c, CRM_Owner__c,
|
BS_AsistGenManger__c,BS_AsistBGenManger__c,BS_BDepartment__c,BS_GeneralManager__c,BS_INDepartment__c,BS_Department__c,BS_Manager__c
|
FROM User WHERE Id IN :ownerIdList
|
]);
|
|
for (Order newOrder : newList) {
|
Order oldOrder = oldMap.get(newOrder.Id);
|
if (oldOrder.ApproveStatus__c != newOrder.ApproveStatus__c && (newOrder.ApproveStatus__c == 'Completed' || newOrder.ApproveStatus__c == 'Completed2' || newOrder.ApproveStatus__c == 'CompletedC' || newOrder.ApproveStatus__c == 'CompletedS' )) {
|
|
// WLIG-C253VM NDT与ANI的合同,发送给 营业管理部担当 START
|
if ('NDT'.equals(newOrder.ProductSegment__c) || 'ANI'.equals(newOrder.ProductSegment__c)) {
|
String HaiXingYue = System.Label.NDT_ANI_Addressee_HaiXingYue;
|
String WangJingQi = System.Label.NDT_ANI_Addressee_WangJingQi;
|
String ZhenJiaLi = System.Label.NDT_ANI_Addressee_ZhenJiaLi;
|
String ShangYun = System.Label.NDT_ANI_Addressee_ShangYun;
|
if (String.isNotBlank(HaiXingYue) && HaiXingYue.indexOf(newOrder.DealerId__c) >= 0) {
|
newOrder.NDT_ANI_Addressee__c = HaiXingYue.indexOf(';') >= 0 ?HaiXingYue.split(';')[1]:null;
|
} else if (String.isNotBlank(WangJingQi) && WangJingQi.indexOf(newOrder.DealerId__c) >= 0 ) {
|
newOrder.NDT_ANI_Addressee__c = WangJingQi.indexOf(';') >= 0 ?WangJingQi.split(';')[1]:null;
|
} else if (String.isNotBlank(ZhenJiaLi) && ZhenJiaLi.indexOf(newOrder.DealerId__c) >= 0 ) {
|
newOrder.NDT_ANI_Addressee__c = ZhenJiaLi.indexOf(';') >= 0 ?ZhenJiaLi.split(';')[1]:null;
|
} else if (String.isNotBlank(ShangYun) && ShangYun.indexOf(newOrder.DealerId__c) >= 0 ) {
|
newOrder.NDT_ANI_Addressee__c = ShangYun.indexOf(';') >= 0 ?ShangYun.split(';')[1]:null;
|
}
|
}
|
|
// WLIG-C253VM NDT与ANI的合同,发送给 营业管理部担当 END
|
|
|
|
User u = copyUserMap.get(orderToOwner.get(newOrder.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)) {
|
newOrder.SalesOwner_BS__c = newOrder.OpportunityOwnerId__c;
|
newOrder.SalesAsistManager_BS__c = u.SalesAsistManager__c == null ? u.Id : u.SalesAsistManager__c;
|
// 当黄平江的IE完税合同,以下省份业务部审批人为郑轶盈 2018/11/30
|
if (newOrder.ProductSegment__c == 'IE' && u.Id == '00528000000YVFs' && (newOrder.Province__c == '河南' || newOrder.Province__c == '山东'
|
|| newOrder.Province__c == '广东' || newOrder.Province__c == '福建' || newOrder.Province__c == '重庆' || newOrder.Province__c == '湖南'
|
|| newOrder.Province__c == '湖北')) { //2018/1/31 IE华南,南方,北方 郑->阙
|
newOrder.BusinessDepOwnerTax_BS__c = '0050K000009Qbjg';
|
} else {
|
newOrder.BusinessDepOwnerTax_BS__c = u.BusinessDepOwner_Tax__c == null ? u.Id : u.BusinessDepOwner_Tax__c;
|
//newOrder.BusinessDepOwnerTax_BS__c = '0050K000009Qbjg';
|
}
|
|
// 当黄平江的IE完税合同其他省份,业务部审批人为阙文洁 2018/11/30
|
// RVI完税合同业务部审批人修改 2017/5/4
|
// if (newOrder.ProductSegment__c == 'RVI' && (newOrder.Area_RVI_Approve__c == '华东' || newOrder.Area_RVI_Approve__c == '西南'
|
// )){
|
// newOrder.BusinessDepOwnerTax_BS__c = '00528000000YSW5';
|
// }
|
// RVI完税合同业务部审批人修改 2017/5/4
|
// else {newOrder.BusinessDepOwnerTax_BS__c = u.BusinessDepOwner_Tax__c == null ? u.Id : u.BusinessDepOwner_Tax__c;}
|
newOrder.BusinessDepOwnerWithoutTax_BS__c = u.BusinessDepOwner_WithoutTax__c == null ? u.Id : u.BusinessDepOwner_WithoutTax__c;
|
newOrder.BS_Manager_BS__c = u.BS_Manager__c == null ? u.Id : u.BS_Manager__c;
|
newOrder.SalesManager_BS__c = u.SalesManager__c == null ? u.Id : u.SalesManager__c;
|
newOrder.AsistGenManger_BS__c = u.AsistGenManger__c == null ? u.Id : u.AsistGenManger__c;
|
newOrder.CRM_Owner__c = u.CRM_Owner__c == null ? u.Id : u.CRM_Owner__c;
|
if (newOrder.ProductSegment__c == 'BS') {
|
newOrder.BS_Manager_BS__c = u.BS_Manager__c == null ? u.Id : u.BS_Manager__c;
|
newOrder.BS_Department_BS__c = u.BS_Department__c == null ? u.Id : u.BS_Department__c;
|
newOrder.BS_INDepartment_BS__c = u.BS_INDepartment__c == null ? u.Id : u.BS_INDepartment__c;
|
newOrder.BS_GeneralManager_BS__c = u.BS_GeneralManager__c == null ? u.Id : u.BS_GeneralManager__c;
|
newOrder.BS_BDepartment_BS__c = u.BS_BDepartment__c == null ? u.Id : u.BS_BDepartment__c;
|
newOrder.BS_AsistBGenManger_BS__c = u.BS_AsistBGenManger__c == null ? u.Id : u.BS_AsistBGenManger__c;
|
newOrder.BS_AsistGenManger_BS__c = u.BS_AsistGenManger__c == null ? u.Id : u.BS_AsistGenManger__c;
|
|
newOrder.BS_MandAGM__c = u.BS_Manager__c == u.BS_AsistBGenManger__c ? true : false;
|
//newOrder.BS_MandAGM__c = u.BS_Manager__c == u.BS_AsistGenManger__c ? true : false;
|
//newOrder.BS_AGMandD__c = u.BS_AsistGenManger__c == u.BS_Department__c ? true : false;
|
//newOrder.BS_DandAB__c = u.BS_Department__c == u.BS_AsistBGenManger__c ? true : false;
|
newOrder.BS_ABGandBD__c = u.BS_AsistBGenManger__c == u.BS_BDepartment__c ? true : false;
|
newOrder.BS_BDandIND__c = u.BS_BDepartment__c == u.BS_INDepartment__c ? true : false;
|
newOrder.BS_INDandGM__c = u.BS_INDepartment__c == u.BS_GeneralManager__c ? true : false;
|
}
|
}
|
|
if (newOrder.ProductSegment__c != 'BS') {
|
newOrder.SalesOwner_BS__c = newOrder.OpportunityOwnerId__c;
|
}
|
}
|
//王鹏伟新加,非OT_IT用户更新合同时记录最后更新时间和更新用户
|
if (UserInfo.getUserId().substring(0,15) != '00528000004ooQW') {
|
newOrder.OrderUpdateDateTime__c = Datetime.now();
|
newOrder.OrderUpdateUser__c = UserInfo.getUserId();
|
}
|
//if (newOrder.RecordTypeId == '01228000000NJt8') {
|
if ((newOrder.ProductSegment__c == 'BS' && newOrder.Is_TAX__c == true && newOrder.AccoutMatketD__c == 'Clinical') &&
|
(newOrder.confirm__c == false || (newOrder.confirm__c && String.isNotBlank(newOrder.original_order__c) && !'OrderPass'.equals(newOrder.ApproveStatus__c)))) {
|
//显微镜降级
|
if(OrderDivisionController.OrderDivision == false){
|
newOrder.Level_Category__c = levelMap.get(newOrder.id);
|
}
|
}
|
//}
|
}
|
|
for (Order newOrder : newList) {
|
if (newOrder.ProductSegment__c == 'BS') {
|
newOrder.BS_AGMandD__c = newOrder.BS_Manager_BS__c == newOrder.SalesOwner_BS__c ? true : false;
|
newOrder.BS_DandAB__c = newOrder.BS_Department_BS__c == newOrder.SalesOwner_BS__c ? true : false;
|
}
|
}
|
|
}
|
|
|
// Added by hanchao for profitcaculation check
|
public static void ProfitApproveCheck(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
|
//新的获取简档ID calendarUtil.getMemberProfileID 这里用到的人员ID 和获取到的简档ID都是15位的
|
//String new_profileId = calendarUtil.getMemberProfileID(UserInfo.getUserId().subString(0,15));
|
String new_profileId = calendarUtil.getMemberProfileID(UserInfo.getUserId().subString(0,15));
|
for (Order newOrder : newList) {
|
Order oldOrder = oldMap.get(newOrder.Id);
|
// String profileId = UserInfo.getProfileId().subString(0,15);
|
// if (profileId.subString(0,15) == System.label.Business_department && newOrder.Discount_D__c != null && newOrder.BusinessOwner_IsApproved__c == true &&
|
// newOrder.BusinessOwner_IsApproved__c != oldOrder.BusinessOwner_IsApproved__c && (newOrder.Ben_2__c == null || newOrder.Ben_3__c == null
|
// || newOrder.Ben_4__c == null || newOrder.Ben_5__c == null || newOrder.Ben_6__c == null || newOrder.Ben_7__c == null)) {
|
// newOrder.addError('有折扣时,业务部人员需要填写利益计算值。');
|
// }
|
|
if ( new_profileId.subString(0, 15) == System.label.Business_department
|
&& newOrder.ApproveStatus__c == 'OrderPass' &&
|
newOrder.ApproveStatus__c != oldOrder.ApproveStatus__c && (newOrder.OrderDate__c == null || newOrder.SAP_Contract__c == null)) {
|
newOrder.addError('批准订单时,业务部人员必须填写SAP订单编号和订单日。');
|
}
|
}
|
}
|
|
// Added by hanchao for trade management category check 171016
|
public static void TradeMagCategoryCheck(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
|
//新的获取简档ID calendarUtil.getMemberProfileID 这里用到的人员ID 和获取到的简档ID都是15位的
|
String new_profileId = calendarUtil.getMemberProfileID(UserInfo.getUserId().subString(0,15));
|
for (Order newOrder : newList) {
|
Order oldOrder = oldMap.get(newOrder.Id);
|
// String profileId = UserInfo.getProfileId().subString(0,15);
|
|
if (new_profileId.subString(0, 15) == System.label.BusinessMagDep
|
&& (newOrder.ApproveStatus__c == 'OrderSubmit' ||
|
newOrder.ApproveStatus__c == 'OrderDraft') && newOrder.BusMagApp__c == true && newOrder.BusMagApp__c != oldOrder.BusMagApp__c ) {
|
if (newOrder.TradeMagCategory__c == null) {
|
newOrder.addError('批准订单时,业务管理部人员必须选择贸易管理客户分类。');
|
} else if ((newOrder.TradeMagCategory__c == 'B' || newOrder.TradeMagCategory__c == 'C' || newOrder.TradeMagCategory__c == 'C-') && newOrder.TradeMagNo__c == null) {
|
newOrder.addError('贸易管理客户分类为B,C或C-时,必须输入贸易管理编号。');
|
}
|
}
|
}
|
}
|
|
// add by hanchao 2017/02/09
|
public static void BackToPreStatus(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
|
//新的获取简档ID calendarUtil.getMemberProfileID 这里用到的人员ID 和获取到的简档ID都是15位的
|
String new_profileId = calendarUtil.getMemberProfileID(UserInfo.getUserId().subString(0,15));
|
for (Order newOrder : newList) {
|
Order oldOrder = oldMap.get(newOrder.Id);
|
// String profileId = UserInfo.getProfileId();
|
if (newOrder.BackToPreStatus__c != oldOrder.BackToPreStatus__c && newOrder.BackToPreStatus__c == true) {
|
newOrder.ApproveStatus__c = newOrder.BeforeSubmitStatus__c;
|
newOrder.RecordTypeId = newOrder.BeforeSubmitRecordType__c;
|
newOrder.BackToPreStatus__c = false;
|
}
|
if ((newOrder.SpecialDeliveryAccount_D__c != oldOrder.SpecialDeliveryAccount_D__c || newOrder.SpecialDeliveryContact2_D__c != oldOrder.SpecialDeliveryContact2_D__c) && newOrder.ApproveStatus__c == 'OrderPass') {
|
newOrder.SpecialDeliveryAccount__c = newOrder.SpecialDeliveryAccount_D__c;
|
newOrder.SpecialDeliveryContact2__c = newOrder.SpecialDeliveryContact2_D__c;
|
}
|
|
}
|
}
|
|
public static void setOpportunity(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
/*if(StaticParameter.OrderTriggerIsUpdate){
|
//StaticParameter.OrderTriggerIsUpdate = false;
|
return;
|
}*/
|
system.debug('@#@#@#@#'+StaticParameter.OrderTriggerIsUpdate);
|
List<Opportunity> updList = new List<Opportunity>();
|
Map<String,Opportunity> oppMap = new Map<String,Opportunity>();
|
for (Order newOrder : newList) {
|
Order oldOrder = oldMap.get(newOrder.Id);
|
System.debug(newOrder.Name);
|
System.debug(oldOrder.Name);
|
if( StaticParameter.temp == false){
|
Opportunity opp = new Opportunity();
|
opp.Id = newOrder.OpportunityId;
|
if (newOrder.OrderDate__c != oldOrder.OrderDate__c) {
|
opp.Order_Date__c = newOrder.OrderDate__c;
|
}
|
if (newOrder.DeliveryTime__c != oldOrder.DeliveryTime__c) {
|
opp.DeliveryDate__c = newOrder.DeliveryTime__c;
|
}
|
|
System.debug(newOrder.Name);
|
System.debug(oldOrder.Name);
|
if (newOrder.Name != oldOrder.Name) {
|
opp.InquiryResult__c = newOrder.Name;
|
}
|
if(newOrder.ProductSegment__c == 'BS' && newOrder.SubDealer__c != oldOrder.SubDealer__c){
|
opp.SubDealer__c = newOrder.SubDealer__c;
|
}
|
opp.CanChangeOpp__c = (newOrder.ApproveStatus__c== 'OrderSubmit' || newOrder.ApproveStatus__c == 'OrderPass') ? false : true;
|
opp.OrderId__c = newOrder.Id;
|
// oppMap.put(newOrder.OpportunityId,opp);
|
String oppId = newOrder.OpportunityId;
|
// 因订单数据中包含有 没有询价的历史数据 特此处理 XHL 20210705 Start
|
if(String.isNotBlank(oppId)){
|
oppMap.put(newOrder.OpportunityId,opp);
|
}
|
// 因订单数据中包含有 没有询价的历史数据 特此处理 XHL 20210705 End
|
// oppMap.put(newOrder.OpportunityId,opp);
|
system.debug('@@@@@@@@@@@@@@@@@!!!!'+opp);
|
//updList.add(opp);
|
}
|
|
//王鹏伟新加开始 贸易管理客户分类,询价合同保持一致,合同修改更新询价
|
if(oldOrder.TradeMagCategory__c != newOrder.TradeMagCategory__c){
|
//更新询价跳过询价更新后的trigger
|
StaticParameter.OpportunityTriggerIsUpdate = true;
|
if(oppMap.containsKey(newOrder.OpportunityId)){
|
oppMap.get(newOrder.OpportunityId).customerType__c = newOrder.TradeMagCategory__c;
|
}else{
|
// Opportunity opp = new Opportunity();
|
// opp.Id = newOrder.OpportunityId;
|
// opp.customerType__c = newOrder.TradeMagCategory__c;
|
// oppMap.put(newOrder.OpportunityId,opp);
|
// 因订单数据中包含有 没有询价的历史数据 特此处理 XHL 20210705 Start
|
String oppId = newOrder.OpportunityId;
|
if(String.isNotBlank(oppId)){
|
Opportunity opp = new Opportunity();
|
opp.Id = newOrder.OpportunityId;
|
opp.customerType__c = newOrder.TradeMagCategory__c;
|
oppMap.put(newOrder.OpportunityId,opp);
|
}
|
// 因订单数据中包含有 没有询价的历史数据 特此处理 XHL 20210705 End
|
}
|
}
|
//王鹏伟新加结束 贸易管理客户分类,询价合同保持一致,合同修改更新询价
|
|
// 王鹏伟 合同是IE,3.COMPO勾选,更新对应询价condition__c字段
|
// 开始
|
if(newOrder.ProductSegment__c=='IE' && newOrder.IE_SP8_D__c != oldOrder.IE_SP8_D__c && String.valueOf(newOrder.Status__c) == 'Active'){
|
System.debug('修改合同更新询价 COMPO');
|
if(oppMap.containsKey(newOrder.OpportunityId)){
|
if(newOrder.IE_SP8_D__c){
|
oppMap.get(newOrder.OpportunityId).condition__c = 'Y';
|
}else{
|
oppMap.get(newOrder.OpportunityId).condition__c = '';
|
}
|
}else{
|
// Opportunity opp1 = new Opportunity();
|
// opp1.Id = newOrder.OpportunityId;
|
// if(newOrder.IE_SP8_D__c){
|
// opp1.condition__c = 'Y';
|
// }else{
|
// opp1.condition__c = '';
|
// }
|
// updList.add(opp1);
|
String opp1Id = newOrder.OpportunityId;
|
// 因订单数据中包含有 没有询价的历史数据 特此处理 XHL 20210705 Start
|
if (String.isNotBlank(opp1Id)) {
|
Opportunity opp1 = new Opportunity();
|
opp1.Id = opp1Id;
|
if(newOrder.IE_SP8_D__c){
|
opp1.condition__c = 'Y';
|
}else{
|
opp1.condition__c = '';
|
}
|
updList.add(opp1);
|
}
|
// 因订单数据中包含有 没有询价的历史数据 特此处理 XHL 20210705 End
|
}
|
}
|
//王鹏伟 结束
|
|
//王鹏伟 开始
|
//询价关联的合同审批完成,有SAP合同编号和订单日 询价停止发送邮件(不再对询价更新进行检查跟踪)
|
if((newOrder.ApproveStatus__c == 'OrderPass' && newOrder.ApproveStatus__c != oldOrder.ApproveStatus__c) || (newOrder.OrderDate__c !=null && newOrder.SAP_Contract__c!=null ) &&(newOrder.OrderDate__c != oldOrder.OrderDate__c || newOrder.SAP_Contract__c != oldOrder.SAP_Contract__c ) && StaticParameter.OpportunityTriggerIsUpdate == false){
|
System.debug('Order StaticParameter.OpportunityTriggerIsUpdate:'+StaticParameter.OpportunityTriggerIsUpdate);
|
StaticParameter.OpportunityTriggerIsUpdate = true;
|
if(oppMap.containsKey(newOrder.OpportunityId)){
|
oppMap.get(newOrder.OpportunityId).IsSendEmail__c = false;
|
}else{
|
// Opportunity opp1 = new Opportunity();
|
// opp1.Id = newOrder.OpportunityId;
|
// opp1.IsSendEmail__c = false;
|
// updList.add(opp1);
|
String opp1Id = newOrder.OpportunityId;
|
// 因订单数据中包含有 没有询价的历史数据 特此处理 XHL 20210705 Start
|
if (String.isNotBlank(opp1Id)) {
|
Opportunity opp1 = new Opportunity();
|
opp1.Id = newOrder.OpportunityId;
|
opp1.IsSendEmail__c = false;
|
updList.add(opp1);
|
}
|
// 因订单数据中包含有 没有询价的历史数据 特此处理 XHL 20210705 End
|
}
|
}
|
//询价关联的合同审批完成,有SAP合同编号和订单日 询价停止发送邮件(不再对询价更新进行检查跟踪)
|
//王鹏伟 结束
|
}
|
updList.addAll(oppMap.values());
|
|
if (updList.size() > 0){
|
/* StaticParameter.OppChangeopp = true;
|
StaticParameter.OppCanChangeOpp = true;
|
StaticParameter.temp = true;*/
|
for(Opportunity o : updList){
|
System.debug(o);
|
}
|
update updList;
|
}
|
}
|
|
public static void setQuote(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
/*if(StaticParameter.OrderTriggerIsUpdate){
|
//StaticParameter.OrderTriggerIsUpdate = false;
|
return;
|
}*/
|
List<Quote> updList = new List<Quote>();
|
List<Opportunity> updList2 = new List<Opportunity>();
|
for (Order newOrder : newList) {
|
Order oldOrder = oldMap.get(newOrder.Id);
|
if (newOrder.QuoteId != null &&
|
(newOrder.ApproveStatus__c != oldOrder.ApproveStatus__c && newOrder.ApproveStatus__c == 'Reject' ||
|
newOrder.ProductListApproveStatus__c != oldOrder.ProductListApproveStatus__c && newOrder.ProductListApproveStatus__c == 'Reject'
|
)
|
) {
|
Quote quo = new Quote(Id = newOrder.QuoteId, Is_Decided__c = false);
|
updList.add(quo);
|
Opportunity opp = new Opportunity(Id = newOrder.OpportunityId, Is_Decided__c = false);
|
updList2.add(opp);
|
}
|
}
|
|
if (updList.size() > 0) update updList;
|
if (updList2.size() > 0) update updList2;
|
}
|
|
public static void setTransferValue(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
List<String> oppidList = new List<String>();
|
List<String> quoidList = new List<String>();
|
Boolean updateOrderAccount = false;
|
Boolean hasBS = false;
|
Boolean sharedFlag = false;
|
for (Order target : newList) {
|
oppIdList.add(target.OpportunityId);
|
quoidList.add(target.QuoteId);
|
if(Trigger.isUpdate ){
|
Order old = oldMap.get(target.Id);
|
// 合同客户或最终用户变更进行数据验证
|
if (old.AccountId != target.AccountId || old.EndUserD__c != target.EndUserD__c) {
|
updateOrderAccount = true;
|
}
|
if (target.SharedFlag__c && !old.SharedFlag__c) {
|
sharedFlag = true;
|
}
|
} else if (Trigger.isInsert) {
|
updateOrderAccount = true;
|
}
|
}
|
|
|
|
Map<String,String> oppAccountMap = new Map<String,String>();
|
Map<String, Opportunity> oppMap = new Map<String, Opportunity>();
|
List<Opportunity> oppList = [select id, Amount, Quote_Discount__c, Quote_Subtotal__c, Quote_PaymentTerms_Text__c, Quote_Warranty__c, ProductSegment__c,
|
Quote_CustomPrice__c, Quote_ShipmentTerm__c, Quote_ShipmentTerm2__c, Quote_TotalPrice__c, IE_local_cost__c,AccountId,
|
Account.MarketingStrategyCreated__c,Account.Province__c ,Account.Sub_Use__c ,Account.AreaForIEApproveText__c ,
|
Account.serviceCreate__c ,Account.ProvinceStr__c
|
from Opportunity where id = :oppidList];
|
for (Opportunity opp : oppList) {
|
oppMap.put(opp.id, opp);
|
oppAccountMap.put(opp.Id,opp.AccountId);
|
if (opp.ProductSegment__c == 'BS') {
|
hasBS = true;
|
}
|
}
|
if (updateOrderAccount && OrderDivisionController.OrderDivision == false) {
|
// WLIG-C3M68P XHL 20210607 Start
|
// 新建与变更合同客户、最终用户时,和询价对比客户、最终用户,若不相同直接报错提醒
|
CustomerConsistency(oppidList,oppAccountMap,newList);
|
// WLIG-C3M68P XHL 20210607 End
|
}
|
Map<String, Quote> quoMap = new Map<String, Quote>();
|
if (hasBS) {
|
List<Quote> quoList = [select id, Discount, Subtotal, Warranty__c, Custom_Price_Total_Text__c, Shipment_Term__c, Shipment_Term2__c, TotalPrice from Quote where id = :quoidList];
|
for (Quote quo : quoList) {
|
quoMap.put(quo.id, quo);
|
}
|
}
|
for (Order target : newList) {
|
Opportunity opp = oppMap.get(target.OpportunityId);
|
Quote quo = quoMap.get(target.QuoteId);
|
if (opp != null) {
|
target.MarketingStrategyCreated__c = opp.Account.MarketingStrategyCreated__c ;//市场战略部创建(客户)
|
target.Province_acc__c = opp.Account.Province__c ;//省(客户)
|
target.Sub_Use__c = opp.Account.Sub_Use__c ;//Sub Use(客户)
|
target.AreaForIEApproveText__c = opp.Account.AreaForIEApproveText__c ;//地区(IE审批文本)
|
target.serviceCreate__c = opp.Account.serviceCreate__c ;//是否服务部创建(客户)
|
target.ProvinceStr__c = opp.Account.ProvinceStr__c ;//省份文本(客户)
|
}
|
|
if (target.Status__c != 'Active') {
|
continue;
|
}
|
|
if (quo != null) {
|
target.Discount_D__c = quo.Discount;
|
//target.Olympus_Price_BeforeDiscount_D__c = quo.Subtotal;
|
target.Olympus_Price_BeforeDiscount_D__c = opp.Quote_Subtotal__c;
|
target.PaymentCondition_D__c = opp.Quote_PaymentTerms_Text__c;
|
Decimal warranty = quo.Warranty__c;
|
target.SpecialWarranty_D__c = warranty == null ? '' : warranty.format();
|
target.CustomerContractPriceD__c = opp.Quote_CustomPrice__c == null ? 0 : opp.Quote_CustomPrice__c;
|
target.Shipment_Term_D__c = quo.Shipment_Term__c;
|
target.Shipment_Term2_D__c = quo.Shipment_Term2__c;
|
//Decimal totalPrice = opp.Amount;
|
Decimal totalPrice = opp.Quote_TotalPrice__c;
|
if (target.ProductSegment__c == 'BS' && target.TradeType__c == System.Label.Trade_Type) {
|
target.OlympusContractPricesD__c = totalPrice.setScale(2, System.RoundingMode.HALF_UP);
|
} else {
|
target.OlympusContractPricesD__c = totalPrice.setScale(0, System.RoundingMode.HALF_UP);
|
}
|
//target.OlympusContractPrices__c = target.OlympusContractPricesD__c;
|
} else if (target.ProductSegment__c == 'IE' || target.ProductSegment__c == 'RVI' || target.ProductSegment__c == 'NDT' || target.ProductSegment__c == 'ANI') {
|
target.Discount_D__c = opp.Quote_Discount__c;
|
target.Olympus_Price_BeforeDiscount_D__c = opp.Quote_Subtotal__c;
|
target.PaymentCondition_D__c = opp.Quote_PaymentTerms_Text__c;
|
Decimal warranty = opp.Quote_Warranty__c;
|
target.SpecialWarranty_D__c = warranty == null ? '' : warranty.format();
|
target.CustomerContractPriceD__c = opp.Quote_CustomPrice__c == null ? 0 : opp.Quote_CustomPrice__c;
|
target.Shipment_Term_D__c = opp.Quote_ShipmentTerm__c;
|
target.Shipment_Term2_D__c = opp.Quote_ShipmentTerm2__c;
|
Decimal totalPrice = opp.Quote_TotalPrice__c;
|
if (target.ProductSegment__c != 'NDT' && target.ProductSegment__c != 'ANI') {
|
target.OlympusContractPricesD__c = totalPrice.setScale(0, System.RoundingMode.HALF_UP);
|
} else {
|
target.OlympusContractPricesD__c = totalPrice;
|
}
|
//target.OlympusContractPrices__c = target.OlympusContractPricesD__c;
|
target.Cost_D__c = opp.IE_local_cost__c;
|
} else if (target.ProductSegment__c == 'BS' && target.TradeType__c == System.Label.Trade_Type) {
|
Decimal totalPrice = opp.Quote_TotalPrice__c;
|
target.OlympusContractPricesD__c = totalPrice.setScale(2, System.RoundingMode.HALF_UP);
|
}
|
}
|
}
|
|
// Add by hanchao 201708101 for opportunity cancel lost control
|
public static void Cancellostcontrol(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
/*if(StaticParameter.OrderTriggerIsUpdate){
|
//StaticParameter.OrderTriggerIsUpdate = false;
|
return;
|
}*/
|
List<Opportunity> updList = new List<Opportunity>();
|
Map<String, Opportunity> updMap = new Map<String, Opportunity>();
|
for (Order newOrd : newList) {
|
Order oldOrd = oldMap == null ? new Order() : oldMap.get(newOrd.Id);
|
if (newOrd.Status__c != oldOrd.Status__c) {
|
if (updMap.containsKey(newOrd.OpportunityId) == false) {
|
updMap.put(newOrd.OpportunityId, new Opportunity(Id = newOrd.OpportunityId, ActiveContract__c = false));
|
}
|
Opportunity opp = updMap.get(newOrd.OpportunityId);
|
if (newOrd.Status__c == 'Active') {
|
opp.ActiveContract__c = true;
|
}
|
}
|
}
|
|
updList = updMap.values();
|
if (updList.size() > 0) update updList;
|
}
|
|
// Add by hanchao 201708102 for opportunity automatically close
|
public static void OppAutoClose(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
/*if(StaticParameter.OrderTriggerIsUpdate){
|
//StaticParameter.OrderTriggerIsUpdate = false;
|
return;
|
}*/
|
List<Opportunity> updList = new List<Opportunity>();
|
Map<String, String> updMap = new Map<String, String>();
|
for (Order newOrd : newList) {
|
Order oldOrd = oldMap == null ? new Order() : oldMap.get(newOrd.Id);
|
if (newOrd.AllDelivery__c >= 1 && newOrd.AllDelivery__c != oldOrd.AllDelivery__c && updMap.containsKey(newOrd.OpportunityId) == false) {
|
updMap.put(newOrd.OpportunityId, newOrd.OpportunityId);
|
Opportunity opp = new Opportunity();
|
opp.Id = newOrd.OpportunityId;
|
opp.StageName = 'Closed Won';
|
updList.add(opp);
|
}
|
}
|
if (updList.size() > 0) update updList;
|
}
|
|
// Add by hanchao 20181210 for productconfigchange
|
/*public static void Productconfigchange(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
List<Order> updList = new List<Order>();
|
Map<String, String> updMap = new Map<String, String>();
|
for (Order newOrd : newList){
|
Order oldOrd = oldMap == null ? new Order() : oldMap.get(newOrd.Id);
|
if (newOrd.ProductConfig_D__c != oldOrd.ProductConfig_D__c && oldOrd.ProductConfig_D__c != null) {
|
Order ord1 = new Order();
|
ord1.Id = newOrd.Id;
|
ord1.ProductConfig_IsChanged__c = true;
|
updList.add(ord1);
|
}
|
}
|
if (updList.size() > 0) update updList;
|
}*/
|
|
|
public static void setRecordTypeHidden(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
system.debug('set hidden type');
|
List<String> odrIds = new List<String>();
|
for (Order odr : newList) {
|
Order oldOrd = oldMap == null ? new Order() : oldMap.get(odr.Id);
|
if (odr.RecordTypeId != oldOrd.RecordTypeId &&
|
(odr.RecordTypeId == System.Label.RT_Contract_BS_Tax ||
|
odr.RecordTypeId == System.Label.RT_Contract_BS_Tax_Approval ||
|
odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax ||
|
odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax_Approval)) {
|
odrIds.add(odr.Id);
|
}
|
}
|
if (odrIds.size() == 0) return;
|
|
Map<String, boolean> hiddenFlagMap = new Map<String, boolean>();
|
List<OrderItem> oiList = [select id, OrderId, PricebookEntry.Hidden_flag__c from OrderItem where OrderId = :odrIds order by OrderId];
|
for (OrderItem oi : oiList) {
|
if (hiddenFlagMap.containsKey(oi.OrderId) == false) {
|
hiddenFlagMap.put(oi.OrderId, false);
|
}
|
if (oi.PricebookEntry.Hidden_flag__c == true) {
|
hiddenFlagMap.put(oi.OrderId, true);
|
}
|
}
|
for(Order o : newList){
|
if(StaticParameter.specialDealerMap.containsKey(o.DealerId__c.subString(0,15))){
|
hiddenFlagMap.put(o.Id, true);
|
}
|
}
|
|
system.debug('hiddenFlagMap'+hiddenFlagMap);
|
for (Order odr : newList) {
|
Order oldOrd = oldMap == null ? new Order() : oldMap.get(odr.Id);
|
if (odr.RecordTypeId != oldOrd.RecordTypeId &&
|
(odr.RecordTypeId == System.Label.RT_Contract_BS_Tax ||
|
odr.RecordTypeId == System.Label.RT_Contract_BS_Tax_Approval ||
|
odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax ||
|
odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax_Approval)) {
|
if (hiddenFlagMap.get(odr.Id) == true) {
|
if (odr.RecordTypeId == System.Label.RT_Contract_BS_Tax) {
|
odr.RecordTypeId = System.Label.RT_Contract_BS_Tax_hidden;
|
} else if (odr.RecordTypeId == System.Label.RT_Contract_BS_Tax_Approval) {
|
odr.RecordTypeId = System.Label.RT_Contract_BS_Tax_Approval_hidden;
|
} else if (odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax) {
|
odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax_hidden;
|
} else if (odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax_Approval) {
|
odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax_hidden_Approval;
|
}
|
} else if (hiddenFlagMap.get(odr.Id) == false) {
|
if (odr.RecordTypeId == System.Label.RT_Contract_BS_Tax_hidden) {
|
odr.RecordTypeId = System.Label.RT_Contract_BS_Tax;
|
} else if (odr.RecordTypeId == System.Label.RT_Contract_BS_Tax_Approval_hidden) {
|
odr.RecordTypeId = System.Label.RT_Contract_BS_Tax_Approval;
|
} else if (odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax_hidden) {
|
odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax;
|
} else if (odr.RecordTypeId == System.Label.RT_Contract_BS_WithoutTax_hidden_Approval) {
|
odr.RecordTypeId = System.Label.RT_Contract_BS_WithoutTax_hidden;
|
}
|
}
|
}
|
}
|
}
|
|
public static void setfile(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap) {
|
if (newList[0].ProductSegment__c == 'BS') {
|
|
String targetlist4 = newList[0].QuoteId;
|
String ordId = newList[0].Id;
|
|
Map<String, List<DecideQuoteProductSet__c>> dqpMap = new Map<String, List<DecideQuoteProductSet__c>>();
|
List<DecideQuoteProductSet__c> dqpList = new List<DecideQuoteProductSet__c>();
|
dqpList = [select id, DecideOpportunity__c, DecideQuote__c from DecideQuoteProductSet__c where DecideQuote__c = :targetlist4];
|
system.debug('090909' + dqpList);
|
for (DecideQuoteProductSet__c dqp : dqpList) {
|
if (dqpMap.containsKey(dqp.DecideQuote__c)) {
|
dqpMap.get(dqp.DecideQuote__c).add(dqp);
|
} else {
|
dqpMap.put(dqp.DecideQuote__c, new List<DecideQuoteProductSet__c>());
|
dqpMap.get(dqp.DecideQuote__c).add(dqp);
|
}
|
}
|
system.debug('123123000' + dqpMap);
|
List<DecideQuoteProductSet__c> updateList = new List<DecideQuoteProductSet__c>();
|
if (dqpMap.size() > 0 && dqpMap.containsKey(targetlist4)) {
|
// DecideQuoteProductSet__c temp = dqpMap.get(o.OpportunityId);
|
for (DecideQuoteProductSet__c temp : dqpMap.get(targetlist4)) {
|
temp.DecideOrder__c = ordId;
|
}
|
updateList.addAll(dqpMap.get(targetlist4));
|
}
|
if (updateList.size() > 0) update updateList;
|
|
List<order_Single_product__c> ospList = [select id from order_Single_product__c where Order__c = :ordId and OrderProduct__c = null];
|
if (ospList.size() > 0 ) {
|
delete ospList;
|
}
|
}
|
|
|
}
|
/**
|
* [radiation description]产品辐射
|
* @param newList [description]
|
* @param newMap [description]
|
* @param oldList [description]
|
* @param oldMap [description]
|
* @param updateFlag [description]
|
*/
|
public static void radiation(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap, Boolean updateFlag) {
|
for (Order newOrd : newList) {
|
|
if ( newOrd.ProductSegment__c == 'ANI' && newOrd.TradeType__c == '内贸' && newOrd.BusMagDepRev_F__c) {
|
|
String orderFounder = newOrd.CreatedById;
|
if ( updateFlag) {
|
// 合同变更
|
Order oldOrd = oldMap.get(newOrd.Id);
|
// 审批状态
|
Boolean approveStatus = newOrd.ApproveStatus__c != oldOrd.ApproveStatus__c;
|
if (newOrd.ApproveStatus__c == 'OrderPass') {
|
|
// 状态
|
Boolean status = newOrd.Status__c != oldOrd.Status__c && newOrd.Status__c == 'Inactive';
|
|
// 合同-变更申请-原合同无效或者手动修改导致合同无效
|
if (!approveStatus && status) {
|
/*if(newOrd.oldOrder__c){
|
RadiationUtil.oldOrder = true;
|
if (updateFlag) {
|
newOrd.oldOrder__c = false;
|
}
|
|
}*/
|
RadiationUtil.updateRadiationTypeQuantity(newOrd.Id,orderFounder , newOrd.DealerId__c, true,'无效或变更无效',newOrd.LastModifiedById );
|
}
|
|
if (oldOrd.ApproveStatus__c == 'OrderDraft') {
|
// WLIG-C3LA29 XHL Start
|
//合同-变更申请-新增合同修改内容→订单草案→订单批准
|
RadiationUtil.updateRadiationTypeQuantity(newOrd.Id,orderFounder , newOrd.DealerId__c, false,'合同草案中变批准',newOrd.LastModifiedById );
|
// WLIG-C3LA29 XHL End
|
}
|
|
} else if ( oldOrd.ApproveStatus__c == 'OrderPass') {
|
// 合同-变更申请-新增合同修改内容→订单批准→订单草案
|
if (newOrd.ApproveStatus__c == 'OrderDraft' && newOrd.Status__c == 'Active') {
|
|
if (RadiationUtil.EscapeOrderTriggerHandler) {
|
RadiationUtil.EscapeOrderTriggerHandler = false;
|
/*if(newOrd.oldOrder__c){
|
RadiationUtil.oldOrder = true;
|
if (updateFlag) {
|
newOrd.oldOrder__c = false;
|
}
|
}*/
|
RadiationUtil.updateRadiationTypeQuantity(newOrd.Id,orderFounder , newOrd.DealerId__c, true,'合同变更草案中',newOrd.LastModifiedById );
|
|
}
|
}
|
} else if (newOrd.ApproveStatus__c == 'OrderSubmit' && newOrd.Status__c == 'Active') {
|
// 合同提交
|
if ( approveStatus ) {
|
RadiationUtil.updateRadiationTypeQuantity(newOrd.Id,orderFounder , newOrd.DealerId__c, false,'合同提交',newOrd.LastModifiedById );
|
}
|
} else if (newOrd.ApproveStatus__c == 'OrderSubmit' ) {
|
Boolean status = newOrd.Status__c != oldOrd.Status__c && newOrd.Status__c == 'Inactive';
|
// 合同提交状态变成无效
|
if ( status ) {
|
/*if(newOrd.oldOrder__c){
|
RadiationUtil.oldOrder = true;
|
if (updateFlag) {
|
newOrd.oldOrder__c = false;
|
}
|
}*/
|
RadiationUtil.updateRadiationTypeQuantity(newOrd.Id,orderFounder , newOrd.DealerId__c, true,'合同提交变无效',newOrd.LastModifiedById );
|
}
|
} else if (newOrd.ApproveStatus__c == 'CancelPass' && newOrd.Status__c == 'Active') {
|
// 合同-合同批准→→→合同取消
|
if ( approveStatus && newOrd.BeforeSubmitStatus__c == 'OrderPass') {
|
/*if(newOrd.oldOrder__c){
|
RadiationUtil.oldOrder = true;
|
if (updateFlag) {
|
newOrd.oldOrder__c = false;
|
}
|
}*/
|
RadiationUtil.updateRadiationTypeQuantity(newOrd.Id,orderFounder , newOrd.DealerId__c, true,'合同取消',newOrd.LastModifiedById );
|
}
|
|
} else if (oldOrd.ApproveStatus__c == 'OrderSubmit' && newOrd.ApproveStatus__c == 'OrderReject' && newOrd.Status__c == 'Active') {
|
// 合同提交→→→合同驳回
|
/*if(newOrd.oldOrder__c){
|
RadiationUtil.oldOrder = true;
|
if (updateFlag) {
|
newOrd.oldOrder__c = false;
|
}
|
}*/
|
RadiationUtil.updateRadiationTypeQuantity(newOrd.Id,orderFounder , newOrd.DealerId__c, true,'合同驳回',newOrd.LastModifiedById );
|
} else if (oldOrd.ApproveStatus__c == 'OrderSubmit' && newOrd.ApproveStatus__c == 'OrderDraft' && newOrd.Status__c == 'Active') {
|
// 合同提交→→→合同调回
|
/*if(newOrd.oldOrder__c){
|
RadiationUtil.oldOrder = true;
|
if (updateFlag) {
|
newOrd.oldOrder__c = false;
|
}
|
}*/
|
RadiationUtil.updateRadiationTypeQuantity(newOrd.Id,orderFounder , newOrd.DealerId__c, true,'合同调回',newOrd.LastModifiedById );
|
}
|
|
} else {
|
// 合同新增-原合同变更申请审批后克隆出来的合同
|
if (newOrd.ApproveStatus__c == 'OrderPass' &&
|
newOrd.Status__c == 'Active' &&
|
!newOrd.Is_Already_Splited__c) {
|
RadiationUtil.updateRadiationTypeQuantity(newOrd.Id,orderFounder , newOrd.DealerId__c, false,'合同变更新增',newOrd.LastModifiedById );
|
}
|
}
|
|
}
|
|
}
|
}
|
|
//王鹏伟新建方法 合同是IE,3.COMPO勾选,更新对应询价condition__c字段 containsKey
|
public static void setOpportunityCOMPO(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap , Boolean temp){
|
// ProductSegment__c
|
/* List<String> oppId = new List<String>();
|
for(Order o:newList){
|
oppId.add(o.OpportunityId);
|
}*/
|
System.debug('新建合同更新询价 COMPO');
|
List<Opportunity> oppList = new List<Opportunity>();
|
//List<Opportunity> oppNewList = new List<Opportunity>();
|
//oppList = [select Id,condition__c from Opportunity where Id=:oppId];
|
for(Order o:newList){
|
Order old = new Order();
|
if(!temp){
|
old = oldMap.get(o.Id);
|
}
|
if (o.ProductSegment__c == 'BS' && temp) {
|
Opportunity opp1 = new Opportunity();
|
opp1.Id = o.OpportunityId;
|
opp1.SubDealer__c = o.SubDealer__c;
|
oppList.add(opp1);
|
}
|
if(o.ProductSegment__c=='IE' && o.Status__c == 'Active' && ( temp || ( !temp && o.IE_SP8_D__c != old.IE_SP8_D__c ))){
|
Opportunity opp = new Opportunity();
|
opp.Id = o.OpportunityId;
|
if(o.IE_SP8_D__c){
|
opp.condition__c = 'Y';
|
}else{
|
opp.condition__c = '';
|
}
|
oppList.add(opp);
|
/*for(Opportunity opp : oppList){
|
if (o.OpportunityId == opp.Id) {
|
opp.condition__c = '3.COMPO';
|
oppNewList.add(opp);
|
break;
|
}
|
}*/
|
}
|
}
|
StaticParameter.OpportunityTriggerIsUpdate = true;
|
if(oppList.size()>0) update oppList;
|
}
|
|
public static void updateOpportunity(List<Order> newList, Map<Id, Order> newMap, List<Order> oldList, Map<Id, Order> oldMap, Boolean updateFlag){
|
Map<String,Opportunity> updateOpportunityMap = new Map<String,Opportunity>();
|
for (Order newOrd : newList) {
|
|
String opportunityId = newOrd.OpportunityId;
|
Opportunity updateOpportunity = new Opportunity();
|
updateOpportunity.Id = opportunityId;
|
if (updateOpportunityMap.containsKey(opportunityId)) {
|
updateOpportunity = updateOpportunityMap.get(opportunityId);
|
}
|
|
if (updateFlag) {// 合同更新
|
// 获取原合同
|
Order oldOrd = oldMap.get(newOrd.Id);
|
// 合同 无效--->有效
|
if (oldOrd.Status__c != newOrd.Status__c && 'Active'.equals(newOrd.Status__c)) {
|
// 更新有效合同
|
updateOpportunity.ActiveOrder__c = newOrd.Id;
|
updateOpportunityMap.put(opportunityId,updateOpportunity);
|
}
|
// 合同 有效--->无效
|
if (String.isNotBlank(oldOrd.Status__c) && oldOrd.Status__c != newOrd.Status__c && 'Inactive'.equals(newOrd.Status__c)) {
|
// 判断 有效合同字段 是否有值 有值不更新
|
if (updateOpportunity.ActiveOrder__c == null) {
|
updateOpportunity.ActiveOrder__c = null;
|
updateOpportunityMap.put(opportunityId,updateOpportunity);
|
}
|
|
}
|
|
} else {//合同新增
|
|
if ('Active'.equals(newOrd.Status__c)) {// 合同有效
|
updateOpportunity.ActiveOrder__c = newOrd.Id;
|
updateOpportunityMap.put(opportunityId,updateOpportunity);
|
}
|
}
|
}
|
// test(null,null,newList,oldMap);
|
if (updateOpportunityMap != null && updateOpportunityMap.size() > 0) {
|
StaticParameter.OpportunityTriggerIsUpdate = true;
|
StaticParameter.StageProgressBarUpdate = true;
|
update updateOpportunityMap.values();
|
}
|
|
}
|
|
|
public static void CustomerConsistency(List<String> oppidList,Map<String,String> oppAccountMap,List<Order> newList){
|
// 获取询价的最终用户
|
List<OpportunityContactRole> role_list = new List<OpportunityContactRole>();
|
role_list = [select Id,Role,IsPrimary,OpportunityId,ContactId from OpportunityContactRole where OpportunityId = :oppidList and Role = 'End user' and IsPrimary = true];
|
Map<String,String> roleMap = new Map<String,String>();
|
for(OpportunityContactRole oppor:role_list){
|
roleMap.put(oppor.OpportunityId,oppor.ContactId);
|
}
|
System.debug('oppidList: ' + oppidList);//Nancy 2022-04-25
|
System.debug('role_list: ' + role_list);//Nancy 2022-04-25
|
// 获取系统管理员Id
|
String getUserId = System.label.SystemAdmin1_2_GPI;
|
String errMessage = '客户名或最终用户与询价不一致!';
|
for(Order orOne:newList){
|
if (oppAccountMap.containsKey(orOne.OpportunityId)) {
|
System.debug(oppAccountMap.get(orOne.OpportunityId) != orOne.AccountId);
|
System.debug( !roleMap.containsKey(orOne.OpportunityId));
|
System.debug(orOne.EndUserD__c + '++'+ roleMap.get(orOne.OpportunityId));
|
//zhj 2022-04-22 start
|
System.debug('oppAccountMap.get(orOne.OpportunityId) = ' + oppAccountMap.get(orOne.OpportunityId));
|
System.debug('orOne.AccountId = ' + orOne.AccountId);
|
System.debug('roleMap.containsKey(orOne.OpportunityId) = ' + roleMap.containsKey(orOne.OpportunityId));
|
System.debug('orOne.EndUserD__c = ' + orOne.EndUserD__c);
|
System.debug('roleMap.get(orOne.OpportunityId) = ' + roleMap.get(orOne.OpportunityId));
|
//zhj 2022-04-22 end
|
if(oppAccountMap.get(orOne.OpportunityId) != orOne.AccountId || !roleMap.containsKey(orOne.OpportunityId) || orOne.EndUserD__c != roleMap.get(orOne.OpportunityId)){
|
// 获取用户Id
|
String userId = UserInfo.getUserId().subString(0,15);
|
if (String.isNotBlank(getUserId)) {
|
if (getUserId.contains(userId)) {
|
if (String.isNotBlank(orOne.Id)) {
|
throw new ControllerUtil.myException('合同Id:'+orOne.Id+'_'+errMessage);
|
} else {
|
//订单ID没有取到
|
orOne.addError(errMessage+'1'+orOne.Id);
|
}
|
} else {
|
//自定义标签里面没有当前用户的ID
|
orOne.addError(errMessage + '2');
|
}
|
|
} else {
|
//自定义标签没有内容
|
orOne.addError(errMessage + '3');
|
}
|
|
|
}
|
}
|
}
|
}
|
|
//检查合同上的等级类别是二类,一类,非监管(等级由高到底),单独一条记录里面的所有产品,放到一个list里面。
|
//根据订单上的行产品的对应的产品表里的等级类别字段,给订单上的等级类别字段赋值,newList为需要判断的传来的合同的Id。
|
//产品里的等级类别字段,赋值给订单行项目的 产品的等级类别字段。
|
public static Map<Id,String> levelCheck(List<String> newList){
|
//定义个List,存放soql文
|
List<OrderItem> orditemList = new List<OrderItem>();
|
orditemList = [select OrderId,Pro_Level__c from OrderItem where Pro_Level__c <> null and OrderId in : newList];
|
|
//定义map,存放订单ID,和上面的提到的List
|
Map<Id,List<String>> orditemMap = new Map<id,List<String>>();
|
|
//这个Map存放(Id,等级类别的值)
|
Map<Id,String> orderXMap = new Map<Id,String>();
|
|
//给Map里面放入订单ID,以订单ID,存放订单下面的所有产品的等级类别的字段的值
|
if (orditemList.size()>0) {
|
for (OrderItem orditem: orditemList) {
|
if (orditemMap.containsKey(orditem.OrderId)) {
|
orditemMap.get(orditem.OrderId).add(orditem.Pro_Level__c);
|
}else{
|
orditemMap.put(orditem.OrderId, new List<String>());
|
orditemMap.get(orditem.OrderId).add(orditem.Pro_Level__c);
|
}
|
}
|
}
|
|
//开始逻辑判断,订单产品对应的产品的等级类别只要有二类,订单上的等级类别赋值二类(二类>一类>非监管,依此类推)
|
for (String oe : newList) {
|
if (orditemMap.containsKey(oe)) {
|
if (orditemMap.get(oe).contains('二类')) {
|
orderXMap.put(oe, '二类');
|
}else if (orditemMap.get(oe).contains('一类')) {
|
orderXMap.put(oe, '一类');
|
}else{
|
orderXMap.put(oe, '非监管');
|
}
|
}else{
|
orderXMap.put(oe, '非监管');
|
}
|
}
|
//最后返回一个Map方便别的方法调用
|
return orderXMap;
|
}
|
|
|
/**
|
* [判断合同是一类、二类还是非监管]
|
* @param idList [需要判断的合同的ID]
|
* @return [合同ID和对应的分类]
|
*/
|
|
/*
|
public static Map<String,String> CheckProductType (List<String> idList){
|
//返回参数使用的数据
|
Map<String,String> returnMap = new Map<String,String>();
|
//参数非空判断
|
if(idList != null && idList.size() > 0){
|
//检索合同对应的产品
|
List<OrderItem> oiList = new List<OrderItem>();
|
oiList = [SELECT id,OrderId,PricebookEntry.Product2.Product_ECCode__c FROM OrderItem WHERE OrderId in: idList];
|
//合同ID和对应合同产品的Map
|
Map<String,List<String>> orderMap = new Map<String,List<String>>();
|
for (OrderItem oi : oiList) {
|
//将合同产品于对用的合同ID关联
|
if (orderMap.containsKey(oi.OrderId)) {
|
orderMap.get(oi.OrderId).add(oi.PricebookEntry.Product2.Product_ECCode__c);
|
} else {
|
orderMap.put(oi.OrderId, new List<String>());
|
orderMap.get(oi.OrderId).add(oi.PricebookEntry.Product2.Product_ECCode__c);
|
}
|
}
|
|
//判断合同是一类、二类还是非监管
|
//对多个合同分别进行处理
|
for (String id : orderMap.keySet()) {
|
List<String> tempList = orderMap.get(id);
|
|
if(tempList.contains('二类')){
|
//如果包含二类,直接标记为二类并返回;
|
returnMap.put(id, '二类');
|
}else if(tempList.contains('一类')){
|
//如果包含一类,将标记设置为一类
|
returnMap.put(id, '一类');
|
}else{
|
returnMap.put(id, '非监管');
|
}
|
}
|
}
|
return returnMap;
|
}
|
*/
|
|
public static void asd() {
|
Integer i = 1;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
}
|
|
}
|