import { LightningElement, wire, api, track } from "lwc"; import { NavigationMixin } from "lightning/navigation"; import init from "@salesforce/apex/LexSaleAndDeliveryController.init"; //cleanUp import cleanUp from "@salesforce/apex/LexSaleAndDeliveryController.cleanUp"; import { ShowToastEvent } from "lightning/platformShowToastEvent"; import searchOrderInstatus from "@salesforce/apex/LexSaleAndDeliveryController.searchOrderInstatus"; import searchConsumableorderdetails from "@salesforce/apex/LexSaleAndDeliveryController.searchConsumableorderdetails"; import searchConsumableorFinish from "@salesforce/apex/LexSaleAndDeliveryController.searchConsumableorFinish"; //table css import { loadStyle } from "lightning/platformResourceLoader"; import WrappedHeaderTable from "@salesforce/resourceUrl/lexdatatable"; const columns = [ { label: "出库日", fieldName: "Outbound_Date__c", type: "date", hideDefaultActions: true, sortable: true, initialWidth: 180, wrapText: true }, { label: "出库单号", fieldName: "url", type: "url", typeAttributes: { label: { fieldName: "Name" }, target: "_blank" }, hideDefaultActions: true, sortable: true, wrapText: true }, { label: "客户名", fieldName: "ShipmentAccount__c", hideDefaultActions: true, wrapText: true, sortable: true }, { label: "科室", fieldName: "Order_ForCustomerText__c", hideDefaultActions: true, initialWidth: 100, wrapText: true }, { label: "出库单状态", fieldName: "SummonsStatus_c__c", hideDefaultActions: true, initialWidth: 100, sortable: true, wrapText: true }, { label: "开票状态", fieldName: "Billed_Status__c", hideDefaultActions: true, initialWidth: 100, sortable: true, wrapText: true }, { label: "未发票金额(元)", fieldName: "InvoiceNotPro_money__c", hideDefaultActions: true, initialWidth: 125, type: "number", typeAttributes: { minimumFractionDigits: 2 }, wrapText: true }, { label: "创建日期", fieldName: "CreatedDate", hideDefaultActions: true, sortable: true, wrapText: true, initialWidth: 180, type: "date", typeAttributes: { timeZone: "Asia/Shanghai", day: "numeric", month: "numeric", year: "numeric", hour: "2-digit", minute: "2-digit" } } ]; export default class LexSaleAndDelivery extends NavigationMixin( LightningElement ) { columns = columns; @track isShowSpinner = true; @track message = ""; @track deliveryFromDate = ""; @track deliveryToDate = ""; @track deliveryOrderNo = ""; @track contactName = ""; @track data = []; @track userinfoId = ""; @track accountid = ""; @track agencyProType = ""; @track userWorkLocation = ""; @track showTable = false; @track hidecheckboxcolumn = true; //排序 defaultSortDirection = "asc"; sortDirection = "asc"; sortedBy; stylesLoaded = false; renderedCallback() { if (!this.stylesLoaded) { Promise.all([loadStyle(this, WrappedHeaderTable)]) .then(() => { console.log("Custom styles loaded"); this.stylesLoaded = true; }) .catch((error) => { console.error("Error loading custom styles"); }); } } connectedCallback() { init() .then((r) => { r = JSON.parse(JSON.stringify(r)); console.log("r = " + JSON.stringify(r)); if (r.status == "Success") { this.userinfoId = r.entity.userinfoId; this.accountid = r.entity.accountid; this.agencyProType = r.entity.agencyProType; this.userWorkLocation = r.entity.userWorkLocation; this.data = r.entity.raesList; for (var i in this.data) { this.data[i]["url"] = "/s/lexsummonscreat?ESetid=" + this.data[i].Id; } console.log("this.data = " + JSON.stringify(this.data)); this.isShowSpinner = false; this.showTable = true; } else { console.log("r = " + JSON.stringify(r)); this.showMyToast("初始化失败", r.msg, "Error"); } }) .catch((error) => { console.log("error = " + JSON.stringify(error)); this.showMyToast("错误", "初始化失败", "Error"); }); } //新建出库单 neworderhead() { this[NavigationMixin.Navigate]({ type: "standard__webPage", attributes: { url: "/lexsummonscreat" } }); } //已出库未开票的出库单 searchOrderInstatusJs() { this.isShowSpinner = true; this.showTable = false; console.log("searchOrderInstatusJs"); searchOrderInstatus({ orderDate: this.deliveryFromDate, deliverDate: this.deliveryToDate, accountid: this.accountid, agencyProType: this.agencyProType, userWorkLocation: this.userWorkLocation, category1: this.deliveryOrderNo, category2: this.contactName }) .then((r) => { r = JSON.parse(JSON.stringify(r)); console.log("r = " + JSON.stringify(r)); if (r.status == "Success") { this.data = r.entity.raesList; for (var i in this.data) { this.data[i]["url"] = "/s/lexsummonscreat?ESetid=" + this.data[i].Id; } this.message = r.msg; if (this.message == "没有搜索到相关出库单") { this.showMyToast("搜索失败", this.message, "Error"); } else { this.showMyToast("搜索成功", this.message, "Success"); } this.isShowSpinner = false; //this.isCssLoaded = true this.showTable = true; } else { this.showMyToast("错误", r.msg, "Error"); } }) .catch((error) => { console.log("error = " + JSON.stringify(error)); }); } //还没出库的出库单 searchConsumableorderdetailsJs() { this.isShowSpinner = true; this.showTable = false; console.log("searchConsumableorderdetailsJs"); console.log("this.deliveryFromDate = " + this.deliveryFromDate); console.log("this.deliveryToDate = " + this.deliveryToDate); searchConsumableorderdetails({ orderDate: this.deliveryFromDate, deliverDate: this.deliveryToDate, accountid: this.accountid, agencyProType: this.agencyProType, userWorkLocation: this.userWorkLocation, category1: this.deliveryOrderNo, category2: this.contactName }) .then((r) => { r = JSON.parse(JSON.stringify(r)); console.log("r = " + JSON.stringify(r)); if (r.status == "Success") { this.data = r.entity.raesList; for (var i in this.data) { this.data[i]["url"] = "/s/lexsummonscreat?ESetid=" + this.data[i].Id; } this.message = r.msg; if (this.message == "没有搜索到相关出库单") { this.showMyToast("搜索失败", this.message, "Error"); } else { this.showMyToast("搜索成功", this.message, "Success"); } this.isShowSpinner = false; this.showTable = true; } else { this.showMyToast("搜索失败", r.msg, "Error"); } }) .catch((error) => { console.log("error = " + JSON.stringify(error)); this.showMyToast("搜索失败", "搜索还没出库的出库单出错", "Error"); }); } //已出库已开票的出库单 searchConsumableorFinishJs() { this.isShowSpinner = true; this.showTable = false; console.log("searchConsumableorFinishJs"); searchConsumableorFinish({ orderDate: this.deliveryFromDate, deliverDate: this.deliveryToDate, accountid: this.accountid, agencyProType: this.agencyProType, userWorkLocation: this.userWorkLocation, category1: this.deliveryOrderNo, category2: this.contactName }) .then((r) => { r = JSON.parse(JSON.stringify(r)); console.log("r = " + JSON.stringify(r)); if (r.status == "Success") { this.data = r.entity.raesList; for (var i in this.data) { this.data[i]["url"] = "/s/lexsummonscreat?ESetid=" + this.data[i].Id; } this.message = r.msg; if (this.message == "没有搜索到相关出库单") { this.showMyToast("搜索失败", this.message, "Error"); } else { this.showMyToast("搜索成功", this.message, "Success"); } this.isShowSpinner = false; this.showTable = true; } else { this.showMyToast("搜索失败", r.msg, "Error"); } }) .catch((error) => { console.log("error = " + JSON.stringify(error)); this.showMyToast("搜索失败", "搜索已出库已开票的出库单出错", "Error"); }); } //清空 clearJs() { this.deliveryFromDate = ""; this.deliveryToDate = ""; this.deliveryOrderNo = ""; this.contactName = ""; this.isShowSpinner = true; this.showTable = false; cleanUp({ accountid: this.accountid, agencyProType: this.agencyProType, userWorkLocation: this.userWorkLocation }) .then((r) => { r = JSON.parse(JSON.stringify(r)); console.log("r = " + JSON.stringify(r)); if (r.status == "Success") { this.data = r.entity.raesList; for (var i in this.data) { this.data[i]["url"] = "/s/lexsummonscreat?ESetid=" + this.data[i].Id; } this.message = r.msg; if (this.message == "没有搜索到相关出库单") { this.showMyToast("搜索失败", this.message, "Error"); } else { this.showMyToast("搜索成功", this.message, "Success"); } this.isShowSpinner = false; this.showTable = true; } else { this.showMyToast("搜索失败", r.msg, "Error"); } }) .catch((error) => { console.log("error = " + JSON.stringify(error)); this.showMyToast("搜索失败", "搜索失败", "Error"); }); } //Capture the event fired from the paginator component handlePaginatorChange(event) { this.recordsToDisplay = event.detail.recordsToDisplay; this.preSelected = event.detail.preSelected; if (this.recordsToDisplay && this.recordsToDisplay > 0) { this.rowNumberOffset = this.recordsToDisplay[0].rowNumber - 1; } else { this.rowNumberOffset = 0; } } //排序 onHandleSort(event) { const { fieldName: sortedBy, sortDirection } = event.detail; const cloneData = [...this.data]; cloneData.sort(this.sortBy(sortedBy, sortDirection === "asc" ? 1 : -1)); this.data = cloneData; this.sortDirection = sortDirection; this.sortedBy = sortedBy; } sortBy(field, reverse, primer) { const key = primer ? function (x) { return primer(x[field]); } : function (x) { return x[field]; }; return function (a, b) { a = key(a); b = key(b); return reverse * ((a > b) - (b > a)); }; } dataChange(event) { let fieldName = event.target.getAttribute("data-field"); let value = event.detail.value; switch (fieldName) { case "deliveryFromDate": this.deliveryFromDate = value; break; case "deliveryToDate": this.deliveryToDate = value; break; case "deliveryOrderNo": this.deliveryOrderNo = value; break; case "contactName": this.contactName = value; break; default: console.log("no data"); } } editProductLimit() { this[NavigationMixin.Navigate]({ type: "standard__webPage", attributes: { url: "/lexoutboundorderimport" } }); } showMyToast(title, message, variant) { this.isShowSpinner = false; console.log("show custom message"); var iconName = ""; var content = ""; if (variant.toLowerCase() == "success") { iconName = "utility:check"; } else { iconName = "utility:error"; } if (message != "") { content = "