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 =
|
'<h2><strong>' +
|
title +
|
'<strong/></h2><h5>' +
|
message +
|
'</h5>';
|
} else {
|
content = '<h2><strong>' + title + '<strong/></h2>';
|
}
|
this.template
|
.querySelector('c-common-toast')
|
.showToast(variant, content, iconName, 10000);
|
}
|
|
@track isModalOpen = false;
|
openModal() {
|
this.isModalOpen = true;
|
}
|
}
|