import getStaticResource from "@salesforce/apex/ButtonJsUtility.getStaticResource"; import init from "@salesforce/apex/otherButtonRepairController.init"; import queryForEquipments from "@salesforce/apex/otherButtonRepairController.queryForEquipments"; import queryForFindInvalidLicense from "@salesforce/apex/otherButtonRepairController.queryForFindInvalidLicense"; import queryForRds from "@salesforce/apex/otherButtonRepairController.queryForRds"; import queryForReocrds from "@salesforce/apex/otherButtonRepairController.queryForReocrds"; import queryForRepairCount from "@salesforce/apex/otherButtonRepairController.queryForRepairCount"; import queryForUrfAsset from "@salesforce/apex/otherButtonRepairController.queryForUrfAsset"; import queryForUrfSeriesInfo from "@salesforce/apex/otherButtonRepairController.queryForUrfSeriesInfo"; import queryForrecords3 from "@salesforce/apex/otherButtonRepairController.queryForrecords3"; import updateForRepair1 from "@salesforce/apex/otherButtonRepairController.updateForRepair1"; import updateRepair2 from "@salesforce/apex/otherButtonRepairController.updateRepair2"; import AWSService from "@salesforce/resourceUrl/AWSService"; import common from "@salesforce/resourceUrl/CommonUtilJs"; import apex from "@salesforce/resourceUrl/apex20"; import con from "@salesforce/resourceUrl/connection20"; import jqueryurl from "@salesforce/resourceUrl/jquery183minjs"; import jq from "@salesforce/resourceUrl/jquery_jqplot"; import { CloseActionScreenEvent } from "lightning/actions"; import { CurrentPageReference } from "lightning/navigation"; import { loadScript } from "lightning/platformResourceLoader"; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import { updateRecord } from "lightning/uiRecordApi"; import { LightningElement, api, wire } from "lwc"; export default class LexSendNFM103 extends LightningElement { @api recordId; detailedAddress; dealer; numberofEffectiveContract; newProductGuaranteTxt; onSiteRepair; maintenanceContract; VMMaintenanceContract; FSEState; dateReceiptQuestions; delayReportReason; repairSource; quickRepairSign; RCCD; returnsProductway; salesDeptHP; isAohuiProduct; stateHospital; assetOwner; deliveredProductId; FSEApplyForRepairTime; maintenanceContractId; URFLimitSerial; status; dealerId; ifDeadHurt; dayLater30; recallCorrespondence; URFReapir; inchargeStaffId; DWSign; DOJStatus; SAPcondition; salesOfficeCodeSelection; profileId; userId; AWSDataId; @wire(CurrentPageReference) getStateParameters(currentPageReference) { if (currentPageReference) { const urlValue = currentPageReference.state.recordId; if (urlValue) { let str = `${urlValue}`; this.recordId = str; } } } connectedCallback() { init({ recordId: this.recordId }).then(result => { console.log(result); var btns = document.getElementsByName("send_nfm103"); for (var i = 0; i < btns.length; i++) { btns[i].disabled = true; btns[i].className = 'btnDisabled'; } this.detailedAddress = result.detailedAddress; this.dealer = result.dealer; this.numberofEffectiveContract = result.numberofEffectiveContract; this.newProductGuaranteTxt = result.newProductGuaranteTxt; this.onSiteRepair = result.onSiteRepair; this.maintenanceContract = result.maintenanceContract; this.VMMaintenanceContract = result.VMMaintenanceContract; this.FSEState = result.FSEState; this.dateReceiptQuestions = result.dateReceiptQuestions; this.delayReportReason = result.delayReportReason; this.repairSource = result.repairSource; this.quickRepairSign = result.quickRepairSign; this.RCCD = result.RCCD; this.returnsProductway = result.returnsProductway; this.salesDeptHP = result.salesDeptHP; this.isAohuiProduct = result.isAohuiProduct; this.stateHospital = result.stateHospital; this.assetOwner = result.assetOwner; this.deliveredProductId = result.deliveredProductId; this.FSEApplyForRepairTime = result.FSEApplyForRepairTime; this.maintenanceContractId = result.maintenanceContractId; this.URFLimitSerial = result.URFLimitSerial; this.status = result.status; this.dealerId = result.dealerId; this.ifDeadHurt = result.ifDeadHurt; this.dayLater30 = result.dayLater30; this.recallCorrespondence = result.recallCorrespondence; this.URFReapir = result.URFReapir; this.inchargeStaffId = result.inchargeStaffId; this.DWSign = result.DWSign; this.DOJStatus = result.DOJStatus; this.SAPcondition = result.SAPcondition; this.salesOfficeCodeSelection = result.salesOfficeCodeSelection; this.profileId = result.profileId; this.userId = result.userId; this.AWSDataId = result.AWSDataId; this.logicalJudgmentA(); }).catch(error => { console.log("error"); console.log(error); }); } showToast(msg, type) { const event = new ShowToastEvent({ title: '', message: msg, variant: type }); this.dispatchEvent(event); } updateRecordView(recordId) { updateRecord({ fields: { Id: recordId } }); } logicalJudgmentA() { try { if ( this.numberofEffectiveContract == "无" && this.newProductGuaranteTxt != "2: 多年保修" && this.newProductGuaranteTxt != "2: 服务多年保修" && this.newProductGuaranteTxt != "8: 市场多年保修" && this.onSiteRepair == "直送SORC修理" ) { if ( !confirm("设备为非维修合同且非多年保修对象品,请确认是否直送SORC修理?") ) { this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } } console.log("11"); if ( (this.maintenanceContract != undefined || this.VMMaintenanceContract != undefined) && this.onSiteRepair == "RC修理" && this.FSEState == "山东省" ) { if ( !confirm("该设备为维修合同或多年保修对象品,请确认是否送至RC修理?") ) { this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } } var today = Date.now(); var dateReceiptQuestions = Date.parse(this.dateReceiptQuestions); var dates = (today - dateReceiptQuestions) / (24 * 60 * 60 * 1000); if ( this.profileId != "00e10000000Y3o5" && this.userId != "0051000000AKgzv" && this.userId != "0051000000AKh05" && this.userId != "00510000004q1ed" && this.delayReportReason == "" && dates > "1" && this.repairSource != "QIS转修理" ) { this.showToast("申请修理时SAP修理申请日超过问题联络收到日1天,必须填写问超时报告的理由", "error"); this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } if ( this.quickRepairSign == true && (this.numberofEffectiveContract == "有" || this.newProductGuaranteTxt == "2: 多年保修" || this.newProductGuaranteTxt == "2: 服务多年保修" || this.newProductGuaranteTxt == "8: 市场多年保修") && (this.onSiteRepair == "RC修理" || this.onSiteRepair == "办事处修理" || this.onSiteRepair == "现场修理") ) { if (this.RCCD == "2.东北" || this.RCCD == "3.西北") { if ( !confirm( "该型号对应为合同或多年保对象品。如确认为大修理故障,需要选择直送SORC修理,请确认是否继续。" ) ) { this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } } else if ( this.RCCD == "1.华北" || this.RCCD == "6.华南" || this.RCCD == "4.西南" ) { if ( !confirm( "该型号对应为合同或多年保对象品。如确认为大修理故障,需要选择直送OGZ修理,请确认是否继续。" ) ) { this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } } } var returnsProductWay = this.returnsProductway; var falg = true; if (returnsProductWay == undefined) { if (!confirm("返品方式为空,是否继续申请修理!")) { this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } } if (this.assetOwner == "Olympus") {} else { console.log(this.detailedAddress); if (this.detailedAddress != undefined) { var prompt = "当前直返收货地址为:" + this.detailedAddress + ",您确认不修改了吗?"; if (!confirm(prompt)) { this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } } else { this.showToast("当前修理没有录入直返收货的详细地址,不能申请修理!", "error"); this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } } queryForEquipments({ deliveredProductId: this.deliveredProductId, }).then((result) => { var equipments = result; if (equipments != null && equipments.length > 0) { var equipment = equipments[0]; if (equipment.Status == "廃棄") { this.showToast("设备废弃,不能提交申请!", "error"); this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } } }); if (this.FSEApplyForRepairTime != undefined) { this.showToast("已修理申请,不再修理申请了", "error"); this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } var surplusCount = 0; if (this.URFReapir == true) { var urfAsset = null; queryForUrfAsset({ maintenanceContractId: this.maintenanceContractId, deliveredProductId: this.deliveredProductId, }).then((result) => { urfAsset = result; var seriesMaxRepairCount = 0; var seriesRepairCount = 0; if (urfAsset != null && urfAsset.length > 0) { seriesMaxRepairCount = urfAsset[0].Series_MaxRepairCount_F__c; seriesRepairCount = urfAsset[0].Series_RepairCount_F__c; surplusCount = seriesMaxRepairCount - seriesRepairCount; } }); var urfSeriesInfo = null; queryForUrfSeriesInfo({ URFLimitSerial: this.URFLimitSerial, }).then((result) => { urfSeriesInfo = result; var urfSeries = ""; if (urfSeriesInfo != null && urfSeriesInfo.length > 0) { urfSeries = urfSeriesInfo[0].URFLimitSerial__c; } var repairCount = null; queryForRepairCount({ maintenanceContractId: this.maintenanceContractId, status1: "1.受理完毕", URFLimitSerial: urfSeries, }).then((result) => { repairCount = result; }); if (repairCount.length > 0 && surplusCount == 1) { this.showToast("该设备关联限次合同,目前剩余次数小于送修设备。请等待进行中修理完成后再进行申请", "error"); this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } }); } if ( this.status != "草案中" && this.status != "1.受理完毕(SAP待发送)" && this.status != "4.修理品返送阶段" ) { this.showToast("不是草案中不能申请", "error"); this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); } else { if (this.dealer != undefined) { var findInvalidLicense = null; queryForFindInvalidLicense({ isValidity: false, dealerId: this.dealerId, }).then((result) => { findInvalidLicense = result; if (findInvalidLicense.size > 0) { this.showToast("经销商三证不在有效期,无法送修", "error"); this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } }); } if (this.ifDeadHurt == "有") { if (!confirm("是否确认AE要提交?")) { this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } } if (this.dayLater30 == "是") { this.showToast("创建后超过30天,不能申请了", "error"); this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } var prompt11 = "合同内大修次数已用完,当前修理为合同外的修理,是否继续?"; if (this.URFReapir == true && surplusCount == 0) { var resultTmp = null; if (!confirm(prompt11)) { this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } updateForRepair1({ recordId: this.recordId, }).then((result) => { resultTmp = result; console.log("1111"); var messagesTmp = ""; if (resultTmp) { messagesTmp = this.getConnectDMLErrorMessages(resultTmp); } if (messagesTmp.length > 0) { this.showToast(messagesTmp.join("\n"), "error"); this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } }); } var records = null; queryForReocrds({ inchargeStaffId: this.inchargeStaffId, }).then((result) => { records = result; console.log(result); this.logicalJudgmentB(records); }); } } catch (error) { console(error); } var staticResource = null; getStaticResource({ sobj: "Repair__c" }).then(result => { console.log(result); staticResource = JSON.parse(result); Promise.all([ loadScript(this, AWSService + '/AWSService.js'), loadScript(this, jqueryurl), loadScript(this, jq + "/dist/jquery.js"), loadScript(this, con), loadScript(this, apex), loadScript(this, common) ]).then(() => { window.AWSService.query(staticResource.queryUrl, this.AWSDataId, function (data) { console.log(data); if (data && data.object) { var DetailedAddress = data.object.detailedAddress; } this.foo(); }, staticResource.token).then(result => { this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); }); }).catch(error => { console.log('Failed to load the JQuery : ' + error); }); }).catch(error => { console.log('Failed to load the JQuery : ' + error); }); console.log('load correctly'); } foo() { console.log("end"); var records3 = null; queryForrecords3({ recordId: this.recordId, }).then((result) => { records3 = result; }); var FirstParagraph__c = ""; if (records3.length >= 1) { FirstParagraph__c = records3[0].FirstParagraph__c; } if (FirstParagraph__c == "true") { if (!confirm("该经销商为先款对象,是否继续申请修理?")) { this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); return; } } console.log("endend"); } logicalJudgmentB(records) { if (records != null && records.length > 0) { var staff = records[0]; var res = null; updateRepair2({ recordId: this.recordId, staff: staff, DWSign: this.DWSign, statusc: "1.受理完毕", DOJStatus: this.DOJStatus, SAPcondition: this.SAPcondition, }).then((result) => { console.log(result + "result"); res = result; console.log("start3"); var messages = ""; if (res) { messages = this.getConnectDMLErrorMessages(res); } if (messages.length > 0) { this.showToast(messages.join("\n"), "error"); this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); } else { if (this.salesOfficeCodeSelection == "成都RC") { this.showToast("现阶段,成都RC仅受理四川(西藏)内镜、西南全域CV/CLV,其余实物请发至广州RC。", "error"); this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); } } var rds = null; queryForRds({ recordId: this.recordId, }).then((result) => { rds = result; if (rds != null && rds.length > 0) { var repairAft = rds[0]; if ( repairAft.NewProductGuarante_Formula__c != repairAft.ProductGuarante_Create__c ) { this.showToast("该设备保修信息已发生变化,请了解", "error"); } } }); }); } else { this.showToast("没有找到 修理委托者", "error"); this.updateRecordView(this.recordId); this.dispatchEvent(new CloseActionScreenEvent()); } } getConnectDMLErrorMessages(results) { console.log(results); var messages = [], i = 0, len = results.length, r; console.log("sos"); for (; i < len; i++) { r = results[i]; if (!r.getBoolean("success")) { messages = messages.concat(getConnectDMLMessagesOfAResult(r)); } } return messages; } getConnectDMLMessagesOfAResult(res) { var messages = [], errors = res.getArray("errors"), i = 0, len = errors.length, e; for (; i < len; i++) { e = errors[i]; messages.push(e.message + " " + getConnectDMLErrorFields(e)); } return messages; } getConnectDMLErrorFields(error) { var fields = error.getArray("fields"); if (fields.length > 0) { return "[" + fields.join(",") + "]"; } else { return ""; } } }