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';
|
//zzm 20231121
|
import getProTradeComplianceStatus from '@salesforce/apex/LexContractAuthorizeController.getProTradeComplianceStatus';//zzm 贸易合规2期 20231218 add
|
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';
|
import queryProfileId from '@salesforce/apex/LexContractAuthorizeController.queryProfileId';
|
import accSendEmail from '@salesforce/apex/LexContractAuthorizeController.accSendEmail';
|
|
import TradeComplianceStatusFlag from '@salesforce/label/c.TradeComplianceStatusFlag';
|
import IFTradeComplianceAlert from '@salesforce/label/c.IFTradeComplianceAlert';
|
import IFTradeComplianceAlert2 from '@salesforce/label/c.IFTradeComplianceAlert2'; //zzm 贸易合规2期 20231124 add
|
import proTradeComplianceSendEmail from '@salesforce/apex/LexContractAuthorizeController.proTradeComplianceSendEmail';//zzm 贸易合规2期 20231218 add
|
|
import lwcCSS from '@salesforce/resourceUrl/lwcCSS';
|
import {loadStyle} from 'lightning/platformResourceLoader';
|
export default class lexContractAuthorize extends LightningElement {
|
|
|
@api recordId;
|
@track
|
TradeComplianceStatusFlag = TradeComplianceStatusFlag;
|
@track
|
IFTradeComplianceAlert = IFTradeComplianceAlert;
|
IsLoading=true;
|
data;
|
IsReload=true;
|
|
//zzm 贸易合规2期 20231120 add start
|
tradeComplianceStatus;
|
proTradeComplianceStatus;
|
//zzm 贸易合规2期 20231120 add end
|
|
@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(){
|
Promise.all([
|
loadStyle(this, lwcCSS)
|
]);
|
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());
|
});
|
}
|
//zzm 贸易合规2期 20231120 add start
|
this.tradeComplianceStatus = this.data.tradeComplianceStatus;
|
getProTradeComplianceStatus({eId:this.data.Estimation_Id__c}).then(getResult=>{
|
if(getResult !=null) {
|
this.proTradeComplianceStatus = getResult;
|
}
|
});
|
//zzm 贸易合规2期 20231120 add end
|
|
}).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;
|
var AccDealerBlacklist = this.data.AccDealerBlacklist2__c;//判断客户/经销商是否为黑名单
|
var angency1 = this.data.Agency1__c;
|
var angency2 = this.data.Agency2__c;
|
var accname = this.data.Hospital__c;
|
var ownerids = this.data.OwnerId;
|
var ddid = this.data.Sales_assistant_name_text__c;
|
let res=await queryProfileId();
|
|
if (!res) {
|
const event = new ShowToastEvent({
|
title: '',
|
message:"您没有合同申请的权限。请联系系统管理员。",
|
variant: 'error',
|
mode: 'sticky'
|
});
|
this.dispatchEvent(event);
|
return;
|
}
|
//贸易合规 you
|
var TradeComplianceStatusFlag = this.TradeComplianceStatusFlag;//贸易合规开关
|
var IFTradeComplianceAlert= this.IFTradeComplianceAlert;//贸易合规提醒
|
if(TradeComplianceStatusFlag=='true'){
|
//拦截+邮件提醒
|
var oppflag=false;
|
//zzm 贸易合规2期 2024011 start
|
// if (AccDealerBlacklist=='123') {
|
// this.showToast('客户,经销商1,经销商2都为黑名单,不能做合同申请,'+IFTradeComplianceAlert,'error');
|
// oppflag=true;
|
// }else if(AccDealerBlacklist=='12'){
|
// this.showToast('客户,经销商1都为黑名单,不能做合同申请,'+IFTradeComplianceAlert,'error');
|
// oppflag=true;
|
// }else if(AccDealerBlacklist=='23'){
|
// this.showToast('经销商1,经销商2都为黑名单,不能做合同申请,'+IFTradeComplianceAlert,'error');
|
// oppflag=true;
|
// }else if(AccDealerBlacklist=='13'){
|
// this.showToast('客户,经销商2都为黑名单,不能做合同申请,'+IFTradeComplianceAlert,'error');
|
// oppflag=true;
|
// }else if(AccDealerBlacklist=='1'){
|
// this.showToast('客户为黑名单,不能做合同申请,'+IFTradeComplianceAlert,'error');
|
// oppflag=true;
|
// }else if(AccDealerBlacklist=='2'){
|
// this.showToast('经销商1为黑名单,不能做合同申请,'+IFTradeComplianceAlert,'error');
|
// oppflag=true;
|
// }else if(AccDealerBlacklist=='3'){
|
// this.showToast('经销商2为黑名单,不能做合同申请,'+IFTradeComplianceAlert,'error');
|
// oppflag=true;
|
// }
|
if (AccDealerBlacklist=='123'
|
|| AccDealerBlacklist=='12'
|
|| AccDealerBlacklist=='23'
|
|| AccDealerBlacklist=='13'
|
|| AccDealerBlacklist=='1'
|
|| AccDealerBlacklist=='2'
|
|| AccDealerBlacklist=='3'
|
|
) {
|
this.showToast('医院或经销商存在贸易合规风险,无法做合同申请,'+IFTradeComplianceAlert,'error');
|
oppflag=true;
|
}
|
if (AccDealerBlacklist=='890'
|
|| AccDealerBlacklist=='89'
|
|| AccDealerBlacklist=='80'
|
|| AccDealerBlacklist=='90'
|
|| AccDealerBlacklist=='8'
|
|| AccDealerBlacklist=='9'
|
|| AccDealerBlacklist=='0'
|
|
) {
|
this.showToast('医院或经销商可能存在贸易合规风险,目前正在评估中(一般需5-10个工作日),暂时无法做合同申请,'+IFTradeComplianceAlert,'error');
|
oppflag=true;
|
}
|
//zzm 贸易合规2期 2024011 end
|
if(oppflag){
|
let res = await accSendEmail({AccDealerBlacklist:AccDealerBlacklist,accname:accname,angency1:angency1,angency2:angency2,ownerids:ownerids,ddid:ddid,oppid:oppid});
|
if (res == true) {
|
return;
|
}
|
}
|
|
//zzm 贸易合规2期 20231124 add start
|
//警示提醒
|
|
// if((AccDealerBlacklist=='567'
|
// || AccDealerBlacklist=='56'
|
// ||AccDealerBlacklist=='67'
|
// ||AccDealerBlacklist=='57'
|
// ||AccDealerBlacklist=='5'
|
// ||AccDealerBlacklist=='6'
|
// ||AccDealerBlacklist=='7')&& this.proTradeComplianceStatus =='0'){
|
// let warmingEmailRes = await proTradeComplianceSendEmail({oppid:this.recordId,btnType:'合同申请'});
|
// if(warmingEmailRes == false || warmingEmailRes =='false') {
|
// return;
|
// }
|
// let result = await LightningConfirm.open({
|
// message: '您所选择的客户/经销商和最新报价里的产品,存在贸易合规警示风险,不建议做合同申请,请您确认是否继续申请,'+IFTradeComplianceAlert2+'(一般需5-10个工作日)。',
|
// variant: 'headerless',
|
// label: '提示信息',
|
// // setting theme would have no effect
|
// });
|
// if (result==false) {
|
// return;
|
// }
|
// }
|
// if (AccDealerBlacklist=='567') {
|
// let result = await LightningConfirm.open({
|
// message: '您所选择的客户,经销商1,经销商2存在贸易合规警示风险,不建议做合同申请,请您确认是否继续申请,'+IFTradeComplianceAlert,
|
// variant: 'headerless',
|
// label: '提示信息',
|
// // setting theme would have no effect
|
// });
|
// if (result==false) {
|
// return;
|
// }
|
// }
|
// else if(AccDealerBlacklist=='56'){
|
// let result = await LightningConfirm.open({
|
// message: '您所选择的客户,经销商1存在贸易合规警示风险,不建议做合同申请,请您确认是否继续申请,'+IFTradeComplianceAlert,
|
// variant: 'headerless',
|
// label: '提示信息',
|
// // setting theme would have no effect
|
// });
|
// if (result==false) {
|
// return;
|
// }
|
// }else if(AccDealerBlacklist=='67'){
|
// let result = await LightningConfirm.open({
|
// message: '您所选择的经销商1,经销商2存在贸易合规警示风险,不建议做合同申请,请您确认是否继续申请,'+IFTradeComplianceAlert,
|
// variant: 'headerless',
|
// label: '提示信息',
|
// // setting theme would have no effect
|
// });
|
// if (result==false) {
|
// return;
|
// }
|
// }else if(AccDealerBlacklist=='57'){
|
// let result = await LightningConfirm.open({
|
// message: '您所选择的客户,经销商2存在贸易合规警示风险,不建议做合同申请,请您确认是否继续申请,'+IFTradeComplianceAlert,
|
// variant: 'headerless',
|
// label: '提示信息',
|
// // setting theme would have no effect
|
// });
|
// if (result==false) {
|
// return;
|
// }
|
// }else if(AccDealerBlacklist=='5'){
|
// let result = await LightningConfirm.open({
|
// message: '您所选择的客户存在贸易合规警示风险,不建议做合同申请,请您确认是否继续申请,'+IFTradeComplianceAlert,
|
// variant: 'headerless',
|
// label: '提示信息',
|
// // setting theme would have no effect
|
// });
|
// if (result==false) {
|
// return;
|
// }
|
// }else if(AccDealerBlacklist=='6'){
|
// let result = await LightningConfirm.open({
|
// message: '您所选择的经销商1存在贸易合规警示风险,不建议做合同申请,请您确认是否继续申请,'+IFTradeComplianceAlert,
|
// variant: 'headerless',
|
// label: '提示信息',
|
// // setting theme would have no effect
|
// });
|
// if (result==false) {
|
// return;
|
// }
|
// }else if(AccDealerBlacklist=='7'){
|
// let result = await LightningConfirm.open({
|
// message: '您所选择的经销商2存在贸易合规警示风险,不建议做合同申请,请您确认是否继续申请,'+IFTradeComplianceAlert,
|
// variant: 'headerless',
|
// label: '提示信息',
|
// // setting theme would have no effect
|
// });
|
// if (result==false) {
|
// return;
|
// }
|
// }
|
|
|
// else if(this.tradeComplianceStatus =='警示名单' && this.proTradeComplianceStatus =='0'){
|
// let result = await LightningConfirm.open({
|
// message: '您所选择的客户/经销商和decide报价里的产品,存在贸易合规警示风险,不建议做合同申请,请您确认是否继续申请,有问题请联系法务部贸易合规窗口恽李娜进一步评估(一般需5-10个工作日)。',
|
// variant: 'headerless',
|
// label: '提示信息',
|
// // setting theme would have no effect
|
// });
|
// if (result==false) {
|
// return;
|
// }
|
// }
|
//zzm 贸易合规2期 20231120 add end
|
|
}
|
//贸易合规 you
|
|
if(!Closing_Bid_Date){
|
const event = new ShowToastEvent({
|
title: '',
|
message:"请填写13.中标日。",
|
variant: 'error',
|
mode: 'sticky'
|
});
|
this.dispatchEvent(event);
|
return;
|
}
|
|
if (decide_quote != '1') {
|
const event = new ShowToastEvent({
|
title: '',
|
message:'请先决定报价。',
|
variant: 'error',
|
mode: 'sticky'
|
});
|
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:'经销商协议已过期,请重新做报价计算。',
|
variant: 'error',
|
mode: 'sticky'
|
});
|
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.招标日',
|
variant: 'error',
|
mode: 'sticky'
|
});
|
this.showToast()
|
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:'请先做授权申请。',
|
variant: 'error',
|
mode: 'sticky'
|
});
|
this.dispatchEvent(event);
|
return;
|
}
|
|
if (this.data.Cnt_Lost_cancel_Draft__c > 0) {
|
//chenjingwu 20231107 Start
|
let result = await LightningConfirm.open({
|
message: '询价有草案中的取消/失单报告,是否继续?',
|
variant: 'headerless',
|
label: '提示信息',
|
// setting theme would have no effect
|
});
|
if (result==false) {
|
return;
|
}
|
//chenjingwu 20231107 End
|
// 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:'询价有已提交的取消/失单报告。',
|
variant: 'error',
|
mode: 'sticky'
|
});
|
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。',
|
variant: 'error',
|
mode: 'sticky'
|
});
|
this.dispatchEvent(event);
|
return;
|
}
|
// 2022-03-31 新财年价格调整 end
|
let sqlResult = await searchOpportunity({oppid:oppid});
|
let records = sqlResult;
|
console.log(records);
|
// chenjingwu 20240118 start
|
// if ((complete_day != null && complete_day != '') && records.Contract_Authorize_Lock__c== 'true') {
|
if ((complete_day != null && complete_day != '') && records.Contract_Authorize_Lock__c== true) {
|
// chenjingwu 20240118 end
|
const event = new ShowToastEvent({
|
title: '',
|
message:'合同申请已经完成,请不要重复提交。',
|
variant: 'error',
|
mode: 'sticky'
|
});
|
this.dispatchEvent(event);
|
return;
|
}
|
// if ('{!Opportunity.AcecideCntCheck__c}' != '1') {
|
// alert('阿西赛多询价只能包含危化品,或者,普通询价不能包含危化品。');
|
// return;
|
// }
|
console.log("111");
|
// chenjingwu 20240118 start
|
// if ((complete_day == null || complete_day == '') && records.Contract_Authorize_Lock__c== 'true') {
|
if ((complete_day == null || complete_day == '') && records.Contract_Authorize_Lock__c== true) {
|
// chenjingwu 20240118 end
|
const event = new ShowToastEvent({
|
title: '',
|
message:'合同正在申请中,请不要重复提交。',
|
variant: 'error',
|
mode: 'sticky'
|
});
|
this.dispatchEvent(event);
|
return;
|
}
|
|
if (this.data.IF_Submit__c == '1') {
|
// const event = new ShowToastEvent({
|
// title: '提示信息',
|
// message:'上传失败,请联系系统管理员!'
|
// });
|
// this.dispatchEvent(event);
|
this.showToast('上传失败,请联系系统管理员!','error');
|
return;
|
}
|
//zzm 贸易合规2期 20231220 add start
|
//警示提醒
|
|
if(TradeComplianceStatusFlag=='true' && (AccDealerBlacklist=='567'
|
|| AccDealerBlacklist=='56'
|
||AccDealerBlacklist=='67'
|
||AccDealerBlacklist=='57'
|
||AccDealerBlacklist=='5'
|
||AccDealerBlacklist=='6'
|
||AccDealerBlacklist=='7')&& this.proTradeComplianceStatus =='0'){
|
let warmingEmailRes = await proTradeComplianceSendEmail({oppid:this.recordId,btnType:'合同申请'});
|
if(warmingEmailRes == false || warmingEmailRes =='false') {
|
return;
|
}
|
let result = await LightningConfirm.open({
|
message: '您所选择的客户/经销商和最新报价里的产品,存在贸易合规警示风险,不建议做合同申请,请您确认是否继续申请,'+IFTradeComplianceAlert2+'(一般需5-10个工作日)。',
|
variant: 'headerless',
|
label: '提示信息',
|
// setting theme would have no effect
|
});
|
if (result==false) {
|
return;
|
}
|
}
|
//zzm 贸易合规2期 20231220 add end
|
|
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,
|
variant: 'error',
|
mode: 'sticky'
|
});
|
this.dispatchEvent(event);
|
return;
|
}
|
}else{
|
let rtn = await oppCheck({oppid:oppid, saveFlg:'1'});
|
if (rtn != 'OK') {
|
const event = new ShowToastEvent({
|
title: '',
|
message:rtn,
|
variant: 'error',
|
mode: 'sticky'
|
});
|
this.dispatchEvent(event);
|
return;
|
}
|
}
|
}
|
|
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,
|
variant: 'error',
|
mode: 'sticky'
|
});
|
this.dispatchEvent(event);
|
return;
|
}
|
});
|
if(flag)return;
|
const event = new ShowToastEvent({
|
title: '',
|
message:'提交成功!请在SPO系统中完成合同申请。',
|
variant: 'success'
|
});
|
this.dispatchEvent(event);
|
//window.location.reload();
|
window.open(spoURL);
|
}
|
|
|
showToast(msg,type) {
|
if(type == 'success'){
|
const event = new ShowToastEvent({
|
message: msg,
|
variant: type
|
});
|
this.dispatchEvent(event);
|
}else{
|
const event = new ShowToastEvent({
|
message: msg,
|
variant: type,
|
mode: 'sticky'
|
});
|
this.IsReload=false;
|
this.dispatchEvent(event);
|
}
|
// this.dispatchEvent(new CloseActionScreenEvent());
|
}
|
}
|