import getStaticResource from "@salesforce/apex/ButtonJsUtility.getStaticResource"; import init from "@salesforce/apex/otherButtonRepairController.init"; import initSelectProfile from '@salesforce/apex/otherButtonRepairController.initSelectProfile'; import initUserName from '@salesforce/apex/otherButtonRepairController.initUserName'; 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"; import LightningConfirm from 'lightning/confirm'; export default class LexSendNFM103 extends LightningElement { @api recordId; 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; userName; profileName; Id; DetailedAddress; surplusCount = 0; url; HPActiveC; @wire(CurrentPageReference) getStateParameters(currentPageReference) { if (currentPageReference) { this.url = currentPageReference.state.backgroundContext; 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.Id = result.Id; this.HPActiveC = result.HPActiveC; this.DetailedAddress = result.detailedAddress; this.dealer = result.DealerC; this.numberofEffectiveContract = result.numberofEffectiveContract; this.newProductGuaranteTxt = result.newProductGuaranteTxt; this.onSiteRepair = result.OnSiteRepairC; this.maintenanceContract = result.maintenanceContract; this.VMMaintenanceContract = result.VMMaintenanceContract; this.FSEState = result.FSEState; this.dateReceiptQuestions = result.DateReceiptQuestionsC; this.delayReportReason = result.DelayReportReasonC; this.repairSource = result.repairSource; this.quickRepairSign = result.quickRepairSign; this.RCCD = result.RCCD; this.returnsProductway = result.ReturnsProductWayC; 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.ifDeadHurtC; 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.SalesOfficeCodeSelectionC; this.profileId = result.profileId; this.userId = result.userID; this.AWSDataId = result.AWSDataId; initUserName({ userId: this.userId }).then(result => { if (result != null) { this.IsLoading = false; this.userName = result[0].Name; } }) initSelectProfile({ profileId: this.profileId }).then(result => { if (result != null) { this.IsLoading = false; this.profileName = result[0].Name; this.foo(); } }) }).catch(error => { console.log(error); }); } foo() { if (this.HPActiveC == '無効') { this.ShowToastEvent("本医院已无效,无法进行申请。", "error"); this.dispatchEvent(new CloseActionScreenEvent()); return; } queryForrecords3({ dealer: this.dealer }).then(result => { if (result.length > 0 && result[0].FirstParagraph__c == true) { this.handleConfirmClick01("该经销商为先款对象,是否继续申请修理?"); } else { this.ll01(); } }); var staticResource; 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) { this.DetailedAddress = data.object.detailedAddress; } this.foo(); }, staticResource.token); }); }) } ll01() { console.log(1); if (this.numberofEffectiveContract == "无" && this.newProductGuaranteTxt != "2: 多年保修" && this.newProductGuaranteTxt != "2: 服务多年保修" && this.newProductGuaranteTxt != "8: 市场多年保修" && this.onSiteRepair == "直送SORC修理") { this.handleConfirmClick02("设备为非维修合同且非多年保修对象品,请确认是否直送SORC修理?"); } else { this.ll02(); } } ll02() { console.log(2); if ((this.maintenanceContract != undefined || this.VMMaintenanceContract != undefined) && this.onSiteRepair == "RC修理" && this.FSEState == "山东省" ) { this.handleConfirmClick03("该设备为维修合同或多年保修对象品,请确认是否送至RC修理?"); } else { this.ll03(); } } ll03() { console.log(3); var today = Date.now(); var dateReceiptQuestions = Date.parse(this.dateReceiptQuestions); var dates = (today - dateReceiptQuestions) / (24 * 60 * 60 * 1000); if (this.profileName != "系统管理员" && this.userName != "胡 玉成" && this.userName != "李 琪清" && this.userName != "郭 洋" && this.delayReportReason == undefined && dates > "1" && this.repairSource != "QIS转修理") { this.ShowToastEvent("申请修理时SAP修理申请日超过问题联络收到日1天,必须填写问超时报告的理由", "error"); 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.西北") { this.handleConfirmClick04("该型号对应为合同或多年保对象品。如确认为大修理故障,需要选择直送SORC修理,请确认是否继续。"); } else if (this.RCCD == "1.华北" || this.RCCD == "6.华南" || this.RCCD == "4.西南") { this.handleConfirmClick04("该型号对应为合同或多年保对象品。如确认为大修理故障,需要选择直送OGZ修理,请确认是否继续。"); } else { if (this.returnsProductway == undefined) { this.handleConfirmClick06("返品方式为空,是否继续申请修理!"); } else { this.ll06(); } } } else { if (this.returnsProductway == undefined) { this.handleConfirmClick06("返品方式为空,是否继续申请修理!"); } else { this.ll06(); } } } ll06() { console.log(6); if (this.assetOwner != "Olympus") { if (this.DetailedAddress != undefined) { this.handleConfirmClick07('当前直返收货地址为:' + this.DetailedAddress + ',您确认不修改了吗?'); } else { this.ShowToastEvent('当前修理没有录入直返收货的详细地址,不能申请修理!', "error"); this.dispatchEvent(new CloseActionScreenEvent()); return; } } else { this.ll07(); } } ll07() { console.log(7); queryForEquipments({ deliveredProductId: this.deliveredProductId, }).then(equipments => { if (equipments != null && equipments.length > 0) { var equipment = equipments[0]; if (equipment.Status == "廃棄") { this.ShowToastEvent("设备废弃,不能提交申请!", "error"); this.dispatchEvent(new CloseActionScreenEvent()); return; } } }); console.log(701); if (this.FSEApplyForRepairTime != undefined) { this.ShowToastEvent("已修理申请,不再修理申请了", "error"); this.dispatchEvent(new CloseActionScreenEvent()); return; } console.log(702); if (this.URFReapir == false) { queryForUrfAsset({ maintenanceContractId: this.maintenanceContractId, deliveredProductId: this.deliveredProductId, }).then(urfAsset => { 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; this.surplusCount = seriesMaxRepairCount - seriesRepairCount; } }); console.log(703); queryForUrfSeriesInfo({ URFLimitSerial: this.URFLimitSerial, }).then(urfSeriesInfo => { var urfSeries = ""; if (urfSeriesInfo != null && urfSeriesInfo.length > 0) { urfSeries = urfSeriesInfo[0].URFLimitSerial__c; } console.log(704); queryForRepairCount({ maintenanceContractId: this.maintenanceContractId, status1: "1.受理完毕", URFLimitSerial: urfSeries, }).then(repairCount => { if (repairCount.length > 0 && this.surplusCount == 1) { this.ShowToastEvent("该设备关联限次合同,目前剩余次数小于送修设备。请等待进行中修理完成后再进行申请", "error"); this.dispatchEvent(new CloseActionScreenEvent()); return; } }); }); } console.log(705); if (this.status != "草案中" && this.status != "1.受理完毕(SAP待发送)" && this.status != "4.修理品返送阶段") { this.ShowToastEvent("不是草案中不能申请", "error"); this.dispatchEvent(new CloseActionScreenEvent()); return; } else { if (this.dealer != undefined) { queryForFindInvalidLicense({ dealerId: this.dealerId, }).then(findInvalidLicense => { console.log(findInvalidLicense); if (findInvalidLicense.length > 0) { this.ShowToastEvent("经销商三证不在有效期,无法送修", "error"); this.dispatchEvent(new CloseActionScreenEvent()); return; } }); } } if (this.ifDeadHurt == "有") { this.handleConfirmClick08("是否确认AE要提交?"); } else { this.ll08(); } } ll08() { console.log(8); if (this.dayLater30 == "是") { this.ShowToastEvent("创建后超过30天,不能申请了", "error"); this.dispatchEvent(new CloseActionScreenEvent()); return; } if (this.URFReapir == true && this.surplusCount == 0) { this.handleConfirmClick09("合同内大修次数已用完,当前修理为合同外的修理,是否继续?"); } else { this.ll09(); } } ll09() { console.log(9); updateForRepair1({ recordId: this.Id }).then(result => { if (result != null && result.length > 0) { var split = result.split(", "); this.ShowToastEvent(split[1], "error"); this.dispatchEvent(new CloseActionScreenEvent()); return; } else { console.log(901); queryForReocrds({ inchargeStaffId: this.inchargeStaffId, }).then(records => { if (records != null && records.length > 0) { var staff = records[0]; console.log(staff); console.log(902); updateRepair2({ recordId: this.Id, staff: staff, DWSign: this.DWSign, statusc: "1.受理完毕", DOJStatus: this.DOJStatus, SAPcondition: this.SAPcondition, }).then(result => { console.log(result); console.log(903); if (result != null && result.length > 0) { var split = result.split(", "); this.ShowToastEvent(split[1], "error"); this.dispatchEvent(new CloseActionScreenEvent()); return; } else { if (this.salesOfficeCodeSelection == "成都RC") { this.ShowToastEvent("现阶段,成都RC仅受理四川(西藏)内镜、西南全域CV/CLV,其余实物请发至广州RC。", "error"); this.dispatchEvent(new CloseActionScreenEvent()); return; } } console.log(904); queryForRds({ recordId: this.Id, }).then(rds => { console.log(rds); if (rds != null && rds.length > 0) { var repairAft = rds[0]; if (repairAft.NewProductGuarante_Formula__c != repairAft.ProductGuarante_Create__c) { this.ShowToastEvent("该设备保修信息已发生变化,请了解", "error"); this.dispatchEvent(new CloseActionScreenEvent()); return; } } }); window.open(this.url, "_self"); }); } else { this.ShowToastEvent("没有找到 修理委托者", "error"); this.dispatchEvent(new CloseActionScreenEvent()); return; } }); } }); } ShowToastEvent(msg, type) { const event = new ShowToastEvent({ title: '', message: msg, variant: type }); this.dispatchEvent(event); } async handleConfirmClick01(msg) { const result = await LightningConfirm.open({ message: msg, variant: 'headerless', label: 'this is the aria-label value' }); if (result) { this.ll01(); } else { this.dispatchEvent(new CloseActionScreenEvent()); } } async handleConfirmClick02(msg) { const result = await LightningConfirm.open({ message: msg, variant: 'headerless', label: 'this is the aria-label value' }); if (result) { this.ll02(); } else { this.dispatchEvent(new CloseActionScreenEvent()); } } async handleConfirmClick03(msg) { const result = await LightningConfirm.open({ message: msg, variant: 'headerless', label: 'this is the aria-label value' }); if (result) { this.ll03(); } else { this.dispatchEvent(new CloseActionScreenEvent()); } } async handleConfirmClick04(msg) { const result = await LightningConfirm.open({ message: msg, variant: 'headerless', label: 'this is the aria-label value' }); if (result) { if (this.returnsProductway == undefined) { this.handleConfirmClick06("返品方式为空,是否继续申请修理!"); } else { this.ll06(); } } else { this.dispatchEvent(new CloseActionScreenEvent()); } } async handleConfirmClick05(msg) { const result = await LightningConfirm.open({ message: msg, variant: 'headerless', label: 'this is the aria-label value' }); if (result) { if (this.returnsProductway == undefined) { this.handleConfirmClick06("返品方式为空,是否继续申请修理!"); } else { this.ll06(); } } else { this.dispatchEvent(new CloseActionScreenEvent()); } } async handleConfirmClick06(msg) { const result = await LightningConfirm.open({ message: msg, variant: 'headerless', label: 'this is the aria-label value' }); if (result) { this.ll06(); } else { this.dispatchEvent(new CloseActionScreenEvent()); } } async handleConfirmClick07(msg) { const result = await LightningConfirm.open({ message: msg, variant: 'headerless', label: 'this is the aria-label value' }); if (result) { this.ll07(); } else { this.dispatchEvent(new CloseActionScreenEvent()); } } async handleConfirmClick08(msg) { const result = await LightningConfirm.open({ message: msg, variant: 'headerless', label: 'this is the aria-label value' }); if (result) { this.ll08(); } else { this.dispatchEvent(new CloseActionScreenEvent()); } } async handleConfirmClick09(msg) { const result = await LightningConfirm.open({ message: msg, variant: 'headerless', label: 'this is the aria-label value' }); if (result) { this.ll09(); } else { this.dispatchEvent(new CloseActionScreenEvent()); } } }