force-app/main/default/classes/LexContractAuthorizeController.cls
New file @@ -0,0 +1,454 @@ public with sharing class LexContractAuthorizeController { public LexContractAuthorizeController() { } @AuraEnabled public static Opportunity init(String recordId){ try{ Opportunity item=[select id,Estimation_Decision__c,Contract_DB_complite_day__c,Contract_Authorize__c,Contract_Authorize_Lock__c,If_Need_Authorize__c, Authorized_DB_No__c,SPO_URL__c,Estimation_No__c,Closing_Bid_Date__c,Bid_Date__c, Cnt_Lost_cancel_Draft__c,Cnt_Lost_cancel_report__c,IF_Submit__c,Agency1__c,Trade__c,Sales_Root__c,Is_Corrosion__c from Opportunity where id = :recordId]; return item; }catch(Exception e){ System.debug('LexStockCancelController init error: '+e.getMessage()); } return null; } @AuraEnabled public static UpdateResult updateOppotunity( String recordId ) { UpdateResult result = new UpdateResult(); result.recordId = recordId; try{ Opportunity opp=new Opportunity(id=recordId); opp.Contract_Authorize__c = true; opp.If_Interface_Lock__c=true; opp.IF_Submit__c = true; update opp; result.success = true; result.errors = new List<String>(); return result; }catch(Exception e){ result.success = false; result.errors = new List<String>(); result.errors.add(e.getMessage()); System.debug(LoggingLevel.INFO,'updateOppotunity Error : ' + e); } return result; } @AuraEnabled public static String submitApprovalRequest(String recordId) { try{ Approval.ProcessSubmitRequest req = new Approval.ProcessSubmitRequest(); req.setObjectId(recordId); Approval.ProcessResult result = Approval.process(req); if(result!=null&&result.getErrors()!=null&&result.getErrors().size()>0) return result.getErrors().get(0).getMessage(); }catch(Exception e){ System.debug('LexStockCancelController submitApprovalRequest error: '+e.getMessage()); return e.getMessage(); } return null; } @AuraEnabled public static String getProfileId(){ return UserInfo.getProfileId(); } @AuraEnabled public static Boolean judgeIsAssistantAppliedOutTime(String Quoteid) { List<PromotionSales__c> PromotionSalesList = [select id,IsAssistantAppliedOutTime__c from PromotionSales__c where Quote__r.Quote_No__c =:Quoteid]; for(PromotionSales__c pro : PromotionSalesList){ if(pro.IsAssistantAppliedOutTime__c){ return false; } } return true; } @AuraEnabled public static Opportunity searchOpportunity(String oppid) { try{ Opportunity res=[select Id,Contract_Authorize_Lock__c from Opportunity where Id =:oppid]; return res; }catch(Exception e){ System.debug('LexStockCancelController submitApprovalRequest error: '+e.getMessage()); } return null; } @AuraEnabled // LHJ 阿西赛多检查 Start public static String checkDangerItem(String agency1) { //没有危化品证照的提示信息 String licenseStr = '第一经销商没有有效的危险化学品经营许可证。'; //没有阿西赛多经销商协议的提示信息 String accStr = '第一经销商没有阿西赛多经销商协议。'; //检查是否有证照 List<License_Information__c> licenseList = [SELECT Id FROM License_Information__c WHERE LicenseAndAccount__c = :agency1 AND LicenseType__c = '危险化学品经营许可证' AND Is_Active_Formula__c = true ]; //检查是否有阿西赛多协议 List<Account> accountList = [SELECT Id FROM Account WHERE Parent.id = :agency1 //阿西赛多 增加检索阿西赛多协议 以及 可以做报价(复选框) 精琢技术 wql 2021/01/04 start AND Contract_Quote_Decide_Flag_checkbox__c =true AND Assiesedo_Dealer__c = true //阿西赛多 增加检索阿西赛多协议 以及 可以做报价(复选框) 精琢技术 wql 2021/01/04 end ]; system.debug('licenseList:'+licenseList.size()); system.debug('agency1:'+agency1); //①既没有危化品证也没有阿西赛多协议 if(licenseList.size() == 0 && accountList.size() ==0){ return licenseStr+accStr; } //②没有危化品证 else if(licenseList.size() ==0){ return licenseStr; } //②没有阿西赛多经销商协议 else if(accountList.size() ==0){ return accStr; } //③全都有 else{ return 'OK'; } } @AuraEnabled public static String oppCheck(String oppid, String saveFlg) { Map<Id, String> proMap= new Map<Id, String>(); List<OpportunityLineItem> OppItemList = [select PricebookEntry.Product2Id, PricebookEntry.Product2.Name From OpportunityLineItem Where OpportunityId = :oppid]; if (OppItemList.size() > 0) { for (OpportunityLineItem opl : OppItemList) { proMap.put(opl.PricebookEntry.Product2Id, opl.PricebookEntry.Product2.Name); } } List<Opportunity> oppList = [select Agency1__c from Opportunity where id = :oppid]; String angencyId = oppList[0].Agency1__c; String strRet = ''; if (saveFlg == '1') { strRet = checkProRegisterDecide(proMap, angencyId, oppid); } else { strRet = checkProRegisterDecide(proMap, angencyId, ''); } return strRet; } public static String checkProRegisterDecide(Map<Id, String> proMap, String agency1, String OppId) { String errormessage = ''; Boolean error = false; Map<String, String> CheckMap = new Map<String, String>(); CheckMap = MapCheckProRegisterDecide(proMap, agency1, OppId); if (CheckMap.isEmpty()) { return 'OK'; } else { return '有不可销售产品或超出经销商经营范围,请更新报价单' + CheckMap; } } @AuraEnabled public static String updReg(String oppid) { List<OpportunityLineItem> updList = new List<OpportunityLineItem>(); List<OpportunityLineItem> OppItemList = [select id, Id__c, Register_alleffective__c, PricebookEntry.Product2.RegisterNo_ALL__c From OpportunityLineItem Where OpportunityId = :oppid]; for (OpportunityLineItem ol : OppItemList) { ol.Register_alleffective__c = ol.PricebookEntry.Product2.RegisterNo_ALL__c; updList.add(ol); } if (updList.size() > 0) update updList; return 'OK'; } public static Map<String, String> MapCheckProRegisterDecide(Map<Id, String> proMap, String agency1, String OppId) { Map<String, String> retMap = new Map<String, String>(); String errormessage = ''; Boolean error = false; Map<String,List<String>> proAllBSstrMap; List<String> proNotNeedList = new List<String>(); Map<String,List<String>> old_newMap = new Map<String,List<String>>(); Map<String,List<String>> new_oldMap = new Map<String,List<String>>(); // 取得 经营范围对应产品关系 List<String> midStr = new List<String>(); List<String> midStrO = new List<String>(); // List<Product_Register_contrast__c> rrList = Product_Register_contrast__c.getall().values(); // for (Product_Register_contrast__c rr : rrList) { // midStr = new List<String>(); // midStrO = new List<String>(); // // 经营范围对应产品关系 Map作成 旧-新对照 // if (old_newMap.containsKey(rr.Register_old__c)) { // old_newMap.get(rr.Register_old__c).add(rr.Register_new__c); // } else { // midStrO.add(rr.Register_new__c); // old_newMap.put(rr.Register_old__c, midStrO.clone()); // } // // 经营范围对应产品关系 Map作成 新-旧对照 // if (new_oldMap.containsKey(rr.Register_new__c)) { // new_oldMap.get(rr.Register_new__c).add(rr.Register_old__c); // } else { // midStr.add(rr.Register_old__c); // new_oldMap.put(rr.Register_new__c, midStr.clone()); // } // } // 取得经销商 医疗器械经营许可证 List<License_Information__c> licenseList = [SELECT Id, ScopeKey__c, LicenseType__c FROM License_Information__c WHERE LicenseAndAccount__c = :agency1 AND (LicenseType__c = '医疗器械经营许可证' OR LicenseType__c = '第二类医疗器械经营备案凭证') AND Is_Active_Formula__c = true ]; // 判断 医疗器械经营许可证 是否存在 if (licenseList.size() == 0) { error = true; errormessage = '第一经销商没有有效的医疗器械经营许可证。'; retMap.put('agency', '0'); } else { //经销商经营范围 List<String> agListA = new List<String>(); List<String> agListTemp = new List<String>(); List<String> agList = new List<String>(); //取经销商下 所有医疗器械经营许可证、第二类医疗器械经营备案凭证 for (License_Information__c li : licenseList) { if (li.ScopeKey__c != null) { agListA.addAll(li.ScopeKey__c.split(';')); agListTemp.addAll(li.ScopeKey__c.split(';')); } } for (String a : agListTemp) { if (a.length() >= 6) { agList.add(a.substring(0, a.length() - 1)); } else { agList.add(a.trim()); } } //产品注册证 Map<String,Map<String,String>> proBSMap = new Map<String,Map<String,String>>(); Map<String,String> proMidMap = null; //产品所有有效注册证(可以和经销商匹配) proAllBSstrMap = new Map<String,List<String>>(); set<Id> proIdList = new set<Id>(); for (String qli : proMap.keySet()) { proIdList.add(qli); proBSMap.put(qli, proMidMap); List<String> empList = new List<String>(); proAllBSstrMap.put(qli, empList); } List<Product_Register_Link__c> prls = [ Select Product2__c, Product2__r.Asset_Model_No__c, Product2__r.SFDA_Approbated_Status__c, Product2__r.SFDA_Status_New__c, // 产品的CFDA最终状态 20181225 Product_Register__r.Name, Product_Register__r.BusinessScopeKey__c, Product_Register__r.RegisterNoStatus__c, Product_Register__r.MedPrdClass__c From Product_Register_Link__c where Product2__c in :proIdList ]; // LHJ 20190102 增加跳过逻辑 Start List<Product2> productList = [select ID,SFDA_Status__c from Product2 where id in :proIdList]; for (Product2 pro : productList) { if (pro.SFDA_Status__c == '不要') { proNotNeedList.add(pro.ID); } } // LHJ 20190102 增加跳过逻辑 End for (Product_Register_Link__c prl : prls) { // 设置产品类别MAP if (String.isNotBlank(prl.Product_Register__r.BusinessScopeKey__c)) { system.debug('Product2 +++++++' + prl.Product2__c); if (proBSMap.get(prl.Product2__c) != null) { proBSMap.get(prl.Product2__c).put(prl.Product_Register__r.Name, prl.Product_Register__r.BusinessScopeKey__c); } else { Map<String,String> toooMap = new Map<String,String>(); toooMap.put(prl.Product_Register__r.Name, prl.Product_Register__r.BusinessScopeKey__c); proBSMap.put(prl.Product2__c, toooMap.clone()); } } // 产品的产品注册证是"不要"状态 不需要匹配注册证 20181225 if (prl.Product2__r.SFDA_Approbated_Status__c == '不要' || prl.Product_Register__r.MedPrdClass__c == '1') { proNotNeedList.add(prl.Product2__c); } } system.debug('proBSMap +++++++' + proBSMap); for (String qli : proMap.keySet()) { String proId = qli; String proName = proMap.get(proId); if (proId != null) { Boolean haveBS = false; // 产品属于非医疗,不用判断经营范围 if (proNotNeedList.contains(proId)) { haveBS = true; continue; } if (proBSMap.get(proId) == null) { error = true; errormessage += '产品"' + proName + '"没有有效的产品注册证。\n'; retMap.put(proId, '1'); continue; } if (proBSMap.get(proId) != null) { system.debug('111 +++++++' + proBSMap); Map<String,String> midMap = new Map<String,String>(); midMap = proBSMap.get(proId); for (String str : midMap.keySet()) { // LHJ 20200711 Start String strMidMap = midMap.get(str); List<String> proRegList = new List<String>(); proRegList.addAll(strMidMap.split(';')); // LHJ 20200711 End for(String strReg:proRegList){ // 被定义为"6815A"的产品类别,经营范围中必须有6815或者6815A外才可以匹配。 if (strReg.length() == 6) { for(String strAg:agListA){ if(strAg.length() >= 5 && midMap.get(str.substring(0, str.length() - 1)) == strAg.substring(0,5)){ proAllBSstrMap.get(proId).add(str.substring(0, str.length() - 1)); haveBS = true; break; } } /*if (agListA.contains(midMap.get(str.substring(0, str.length() - 1)))) { proAllBSstrMap.get(proId).add(str.substring(0, str.length() - 1)); haveBS = true; }*/ } else { system.debug('agList +++++++' + agList); system.debug('midMap +++++++' + strReg); if (agList.contains(strReg)) { //产品类别,匹配到经销商类别 proAllBSstrMap.get(proId).add(str); haveBS = true; break; } } } } } if (!haveBS) { error = true; errormessage += '第一经销商的经营范围中不包含产品" ' + proName + '"。\n'; retMap.put(proId, '2'); } } } } if (retMap.isEmpty() == false) { //return errormessage; } else { if (OppId != '') { // 更新所有注册证信息 String strRegister_alleffective; List<Product2> pro2List = new List<Product2>(); Map<String, Product2> pro2Map = new Map<String, Product2>(); List<OpportunityLineItem> updList = new List<OpportunityLineItem>(); List<OpportunityLineItem> OppItemList = [select id, Id__c, Register_alleffective__c,PricebookEntry.Product2Id From OpportunityLineItem Where OpportunityId = :OppId]; // 非医疗或1类产品,取得 if (proNotNeedList != null && proNotNeedList.size() > 0) { pro2List = [select id, SFDA_Approbated_Status__c, RegisterNo_ALL__c from Product2 where Id in :proNotNeedList]; } for (Product2 pro2 : pro2List) { pro2Map.put(pro2.Id, pro2); } for (OpportunityLineItem ol : OppItemList) { if (proAllBSstrMap.containsKey(ol.PricebookEntry.Product2Id)) { ol.Register_alleffective__c = ''; for(String str: proAllBSstrMap.get(ol.PricebookEntry.Product2Id)) { if (String.isNotBlank(ol.Register_alleffective__c)) { ol.Register_alleffective__c += ';' + str; } else { ol.Register_alleffective__c = str; } } // 非医疗或1类产品 if (pro2Map.containskey(ol.PricebookEntry.Product2Id)) { if (pro2Map.get(ol.PricebookEntry.Product2Id).SFDA_Approbated_Status__c == '不要') { ol.Register_alleffective__c = 'FYL'; } else { ol.Register_alleffective__c = pro2Map.get(ol.PricebookEntry.Product2Id).RegisterNo_ALL__c; } } } updList.add(ol); } if (updList.size() > 0) update updList; } } //如果不满足阿西赛多的条件,进入这个变量 20200821 ljh return retMap; } public class UpdateResult { @AuraEnabled public String recordId {get;set;} @AuraEnabled public Boolean success {get;set;} @AuraEnabled public List<String> errors {get;set;} } public class InitData{ } } force-app/main/default/classes/LexContractAuthorizeController.cls-meta.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <ApexClass xmlns="http://soap.sforce.com/2006/04/metadata"> <apiVersion>51.0</apiVersion> <status>Active</status> </ApexClass> force-app/main/default/classes/LexSISearchSetProductController.cls
@@ -4,6 +4,7 @@ public LexSISearchSetProductController(){ } @AuraEnabled public static InitData init(){ InitData data=new InitData(); force-app/main/default/classes/LexStockCancelController.cls
@@ -2,4 +2,64 @@ public LexStockCancelController() { } @AuraEnabled public static Opportunity init(String recordId){ try{ Opportunity item=[select Stock_cancel_reason__c,Whether_Upload_Question_Document__c from Opportunity where id = :recordId]; return item; }catch(Exception e){ System.debug('LexStockCancelController init error: '+e.getMessage()); } return null; } @AuraEnabled public static UpdateResult updateOppotunity( String recordId, String stStatus ) { UpdateResult result = new UpdateResult(); result.recordId = recordId; try{ Opportunity op=new Opportunity(id=recordId); if(stStatus!=null&&stStatus!=''){ op.Stock_apply_status__c= stStatus; } update op; result.success = true; result.errors = new List<String>(); return result; }catch(Exception e){ result.success = false; result.errors = new List<String>(); result.errors.add(e.getMessage()); System.debug(LoggingLevel.INFO,'updateOppotunity Error : ' + e); } return result; } @AuraEnabled public static String submitApprovalRequest(String recordId) { try{ Approval.ProcessSubmitRequest req = new Approval.ProcessSubmitRequest(); req.setObjectId(recordId); Approval.ProcessResult result = Approval.process(req); if(result!=null&&result.getErrors()!=null&&result.getErrors().size()>0) return result.getErrors().get(0).getMessage(); }catch(Exception e){ System.debug('LexStockCancelController submitApprovalRequest error: '+e.getMessage()); return e.getMessage(); } return null; } public class UpdateResult { @AuraEnabled public String recordId {get;set;} @AuraEnabled public Boolean success {get;set;} @AuraEnabled public List<String> errors {get;set;} } public class InitData{ } } force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.css
New file @@ -0,0 +1,11 @@ .Holder{ position: relative; display: inline-block; width: 80px; height: 80px; text-align: center; } .container .uiContainerManager{ display : none !important; } force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.html
New file @@ -0,0 +1,5 @@ <template> <div class="Holder" if:true={IsLoading}> <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner> </div> </template> force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.js
New file @@ -0,0 +1,264 @@ import { LightningElement,api, track, wire } from 'lwc'; import {CurrentPageReference} from 'lightning/navigation'; import { CloseActionScreenEvent } from 'lightning/actions'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import LightningConfirm from 'lightning/confirm'; import customJSFile from '@salesforce/resourceUrl/CommonUtilJs'; import { loadScript } from 'lightning/platformResourceLoader'; import init from '@salesforce/apex/LexContractAuthorizeController.init'; import getProfileId from '@salesforce/apex/LexContractAuthorizeController.getProfileId'; import judgeIsAssistantAppliedOutTime from '@salesforce/apex/LexContractAuthorizeController.judgeIsAssistantAppliedOutTime'; import searchOpportunity from '@salesforce/apex/LexContractAuthorizeController.searchOpportunity'; import checkDangerItem from '@salesforce/apex/LexContractAuthorizeController.checkDangerItem'; import oppCheck from '@salesforce/apex/LexContractAuthorizeController.oppCheck'; import updReg from '@salesforce/apex/LexContractAuthorizeController.updReg'; import updateOppotunity from '@salesforce/apex/LexContractAuthorizeController.updateOppotunity'; export default class lexContractAuthorize extends LightningElement { @api recordId; IsLoading=true; data; @wire(CurrentPageReference) getStateParameters(currentPageReference){ console.log("进入页面"); console.log(currentPageReference); if(currentPageReference){ const urvalue=currentPageReference.state.recordId; if(urvalue){ let str=`${urvalue}`; console.log('str'); console.log(str); this.recordId=str; } } } connectedCallback(){ console.log(this.recordId); init({recordId:this.recordId}).then(result=>{ console.log(result); if(result!=null){ this.data=result; this.cancelSubmit().then(res=>{ this.IsLoading=false; this.dispatchEvent(new CloseActionScreenEvent()); }); } }).catch(err=>{ console.log("error:"); console.log(err.message); }).finally(()=>{ }); } async cancelSubmit(){ let oppid = this.data.Id; let decide_quote = this.data.Estimation_Decision__c; let complete_day = this.data.Contract_DB_complite_day__c; let if_contract_auth = this.data.Contract_Authorize__c; let if_contract_lock = this.data.Contract_Authorize_Lock__c; let If_Need_Authorize = this.data.If_Need_Authorize__c; let Authorized_DB_No =this.data.Authorized_DB_No__c; let profileId = await getProfileId({}); let spoURL = this.data.SPO_URL__c; //SWAG-CG88AG【委托】提出价格申请是在协议有效期内,允许WIN fy start let DecidedQuoteNo = this.data.Estimation_No__c; //SWAG-CG88AG【委托】提出价格申请是在协议有效期内,允许WIN fy end //2022-03-22 yjk SWAG-CCL6R7 let Closing_Bid_Date = this.data.Closing_Bid_Date__c;//13.中标日 let Closing_Bid_Date_Bid = this.data.Closing_Bid_Date_Bid__c; if (profileId != '00e10000000Y3o5' && profileId != '00e10000000Nab7' && profileId != '00e10000000xnpR' && profileId != '00e10000000xyK6' && profileId != '00e10000000xnpW' && profileId != '00e10000000NbCE' && profileId != '00e10000000Nb7i' && profileId != '00e10000000xyK6') { const event = new ShowToastEvent({ title: '提示信息', message:"您没有合同申请的权限。请联系系统管理员。" }); this.dispatchEvent(event); return; } if(!Closing_Bid_Date){ const event = new ShowToastEvent({ title: '提示信息', message:"请填写13.中标日。" }); this.dispatchEvent(event); return; } if (decide_quote != '1') { const event = new ShowToastEvent({ title: '提示信息', message:'请先决定报价。' }); this.dispatchEvent(event); return; } //SWAG-CG88AG【委托】提出价格申请是在协议有效期内,允许WIN fy start if (DecidedQuoteNo !="") { let judg=await judgeIsAssistantAppliedOutTime({Quoteid:DecidedQuoteNo}); // alert('judg得值:'+judg); // return; if(judg == 'false'){ const event = new ShowToastEvent({ title: '提示信息', message:'经销商协议已过期,请重新做报价计算。' }); this.dispatchEvent(event); return; } } //SWAG-CG88AG【委托】提出价格申请是在协议有效期内,允许WIN fy end // 20221009 ljh SWAG-CK29AJ start let ClosingBidDate =this.data.Closing_Bid_Date__c; let BidDate = this.data.Bid_Date__c; if( ClosingBidDate < BidDate){ const event = new ShowToastEvent({ title: '提示信息', message:'13.中标日不能早于12.招标日' }); this.dispatchEvent(event); return; } // 20221009 ljh SWAG-CK29AJ end if(If_Need_Authorize == '1' && (Authorized_DB_No == null || Authorized_DB_No == '')){ const event = new ShowToastEvent({ title: '提示信息', message:'请先做授权申请。' }); this.dispatchEvent(event); return; } if (this.data.Cnt_Lost_cancel_Draft__c > 0) { if(!confirm('询价有草案中的取消/失单报告,是否继续?')){ return ; } } else if (this.data.Cnt_Lost_cancel_report__c - this.data.Cnt_Lost_cancel_Draft__c > 0) { const event = new ShowToastEvent({ title: '提示信息', message:'询价有已提交的取消/失单报告。' }); this.dispatchEvent(event); return; } console.log("11"); // 2022-03-31 新财年价格调整 start let decide_date = this.data.DecideQuoteDate__c; let before = new Date("2022-4-1"); if (decide_date != null && decide_date < before) { const event = new ShowToastEvent({ title: '提示信息', message:'报价变更,请重新做Decide。' }); this.dispatchEvent(event); return; } // 2022-03-31 新财年价格调整 end let sqlResult = await searchOpportunity({oppid:oppid}); let records = sqlResult; console.log(records); if ((complete_day != null && complete_day != '') && records.Contract_Authorize_Lock__c== 'true') { const event = new ShowToastEvent({ title: '提示信息', message:'合同申请已经完成,请不要重复提交。' }); this.dispatchEvent(event); return; } // if ('{!Opportunity.AcecideCntCheck__c}' != '1') { // alert('阿西赛多询价只能包含危化品,或者,普通询价不能包含危化品。'); // return; // } console.log("111"); if ((complete_day == null || complete_day == '') && records.Contract_Authorize_Lock__c== 'true') { const event = new ShowToastEvent({ title: '提示信息', message:'合同正在申请中,请不要重复提交。' }); this.dispatchEvent(event); return; } if (this.data.IF_Submit__c == '1') { const event = new ShowToastEvent({ title: '提示信息', message:'上传失败,请联系系统管理员!' }); this.dispatchEvent(event); return; } console.log("111"); let angency = this.data.Agency1__c; if(this.data.Trade__c == '外貿' || this.data.Sales_Root__c == 'OCM直接販売'){ let rtn = await updReg({oppid:oppid}); } else { if(this.data.Is_Corrosion__c == '1'){ let rtn1 = await checkDangerItem({agency1:angency}); if (rtn1 != 'OK') { const event = new ShowToastEvent({ title: '提示信息', message:rtn1 }); this.dispatchEvent(event); return; } }else{ let rtn = await oppCheck({oppid:oppid, saveFlg:'1'}); if (rtn != 'OK') { const event = new ShowToastEvent({ title: '提示信息', message:rtn }); this.dispatchEvent(event); return; } } } console.log("222"); let flag=false; await updateOppotunity({recordId:this.recordId}).then(res=>{ console.log(res); if(res!=null&&res.success==false){ let messages =""; flag=true; messages=res.errors[0]; const event = new ShowToastEvent({ title: '提示信息', message:"操作失败,提示信息:"+messages, }); this.dispatchEvent(event); return; } }); if(flag)return; console.log("333"); const event = new ShowToastEvent({ title: '提示信息', message:'提交成功!请在SPO系统中完成合同申请。' }); this.dispatchEvent(event); //window.location.reload(); window.open(spoURL); } } force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.js-meta.xml
New file @@ -0,0 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> <LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexContractAuthorize"> <apiVersion>51.0</apiVersion> <isExposed>true</isExposed> <targets> <target>lightning__RecordPage</target> <target>lightning__AppPage</target> <target>lightning__HomePage</target> <target>lightning__RecordAction</target> </targets> </LightningComponentBundle> force-app/main/default/lwc/lexStockCancel/lexStockCancel.html
force-app/main/default/lwc/lexStockCancel/lexStockCancel.js
@@ -1,13 +1,15 @@ import { LightningElement,api, track, wire } from 'lwc'; // {!RequireScript("/resource/CommonUtilJs")} import {CurrentPageReference} from 'lightning/navigation'; import { CloseActionScreenEvent } from 'lightning/actions'; import LightningConfirm from 'lightning/confirm'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import LightningConfirm from 'lightning/confirm'; import init from '@salesforce/apex/LexStockCancelController.init'; import updateOppotunity from '@salesforce/apex/LexStockCancelController.updateOppotunity'; import submitApprovalRequest from '@salesforce/apex/LexStockCancelController.submitApprovalRequest'; export default class lexStockCancel extends LightningElement { @api recordId; IsLoading=true IsLoading=true; data; @wire(CurrentPageReference) getStateParameters(currentPageReference){ console.log("进入页面"); @@ -24,89 +26,134 @@ } async connectedCallback(){ connectedCallback(){ console.log(this.recordId); await init({recordId:this.recordId}).then(result=>{ init({recordId:this.recordId}).then(result=>{ console.log(result); if(result!=null){ this.sumit().then(res=>{ console.log("关闭窗口"); this.data=result; this.cancelSubmit().then(res=>{ this.IsLoading=false; this.dispatchEvent(new CloseActionScreenEvent()); }); } }).catch(err=>{ console.log("error:"); console.log(err.message); }).finally(()=>{ }); } async cancelSubmit(){ let reason = this.data.Stock_cancel_reason__c; if (reason == null || reason == '') { const event = new ShowToastEvent({ title: '提示信息', message:"操作失败,提示信息:"+err.message, message:'必须填写撤销备货理由。' }); this.dispatchEvent(event); //alert("操作失败,提示信息:"+err.message); }); console.log("end"); } }).catch(err=>{ console.log("error:"); console.log(err.message); console.log("报错结束"); }).finally(()=>{ console.log("finally"); }); return; } // CHAN-BCS8T5 LHJ 20190604 Start let stage = this.data.Whether_Upload_Question_Document__c; if (stage == '0') { const event = new ShowToastEvent({ title: "提示信息", message:'请上传质疑函。' }); this.dispatchEvent(event); return; } // CHAN-BCS8T5 LHJ 20190604 End const resul = await LightningConfirm.open({ message: "一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?", variant: 'headerless', label: '提示信息', // setting theme would have no effect }); if (resul==false) { return; } let flag=true; await updateOppotunity({recordId:this.recordId,stStatus:"撤销填写完毕"}).then(res=>{ console.log(res); if(res!=null&&res.success==false){ let messages =""; flag=false; messages=res.errors[0]; const event = new ShowToastEvent({ title: '提示信息', message:"操作失败,提示信息:"+messages }); this.dispatchEvent(event); return; } }) if(flag==false)return; async sumit(){ // var reason = '{!Opportunity.Stock_cancel_reason__c}'; // if (reason == null || reason == '') { // alert('必须填写撤销备货理由。'); // return // } // // CHAN-BCS8T5 LHJ 20190604 Start // var stage = '{!Opportunity.Whether_Upload_Question_Document__c}'; // if (stage == '0') { // alert('请上传质疑函。'); // return; // } // // CHAN-BCS8T5 LHJ 20190604 End // if (!confirm("一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?")) { // return; // } // var rac = new sforce.SObject("Opportunity"); // let rac = new sforce.SObject("Opportunity"); // rac.Id = "{!Opportunity.Id}"; // rac.Stock_apply_status__c = "撤销填写完毕"; // var result = sforce.connection.update([rac]); // var messages = getConnectDMLErrorMessages(result); // let result = sforce.connection.update([rac]); // let messages = getConnectDMLErrorMessages(result); // if (messages.length > 0) { // alert(messages.join("\n")); // return; // } // var request = new sforce.ProcessSubmitRequest(); // request.objectId = "{!Opportunity.Id}"; // var processResults = sforce.connection.process([request]); // if (processResults[0].errors != null) { // var back = new sforce.SObject("Opportunity"); let ress; await submitApprovalRequest({recordId:this.recordId}).then(res=>{ console.log(res); ress=res; }) console.log("777"); if (ress != null) { // let back = new window.sforce.SObject("Opportunity"); // back.Id = "{!Opportunity.Id}"; // back.Stock_apply_status__c = "批准"; // var backResult = sforce.connection.update([back]); // let backResult = sforce.connection.update([back]); // backMessages = getConnectDMLErrorMessages(backResult); // if (backMessages.length > 0) { // alert(backMessages.join("\n")); // showTost("提示信息",backMessages.join("\n")); // return; // } // var errmsg = processResults[0].errors.message.toString(); // alert(errmsg); // return; // } // window.location.reload(); // }; // let errmsg = processResults[0].errors.message.toString(); // showTost("提示信息",errmsg); await updateOppotunity({recordId:this.recordId,stStatus: "批准"}).then(res=>{ console.log(res); if(res!=null&&res.success==false){ let messages =""; flag=false; messages=res.errors[0]; const event = new ShowToastEvent({ title: '提示信息', message:"操作失败,提示信息:"+messages, }); this.dispatchEvent(event); return; } }); if(flag==false)return; const event = new ShowToastEvent({ title: '提示信息', message:ress }); this.dispatchEvent(event); return; } // window.location.reload(); }; showTost(title,message){ } } force-app/main/default/lwc/lexStockCancel/lexStockCancel.js-meta.xml
@@ -3,8 +3,8 @@ <apiVersion>51.0</apiVersion> <isExposed>true</isExposed> <targets> <target>lightning__AppPage</target> <target>lightning__RecordPage</target> <target>lightning__AppPage</target> <target>lightning__HomePage</target> <target>lightning__RecordAction</target> </targets>