import { LightningElement, api, track, wire } from 'lwc';
|
import { ShowToastEvent } from "lightning/platformShowToastEvent";
|
import init from "@salesforce/apex/LexConInvoiceViewController.init";
|
import save from "@salesforce/apex/LexConInvoiceViewController.save";
|
import saveFile from "@salesforce/apex/LexConInvoiceViewController.saveFile";
|
import saveAttachment from "@salesforce/apex/LexConInvoiceViewController.saveAttachment";
|
import InvoiceorderSearch from "@salesforce/apex/LexConInvoiceViewController.InvoiceorderSearch";
|
import deleteButton from "@salesforce/apex/LexConInvoiceViewController.deleteButton";
|
import approval from "@salesforce/apex/LexConInvoiceViewController.approval";
|
import conInvoiceListInit from "@salesforce/apex/LexConInvoiceList.init";
|
import invoiceCodeSearch from "@salesforce/apex/LexConInvoiceList.invoiceCodeSearch";
|
import hospitalInit from "@salesforce/apex/lexSearchAgencyHospitalController.init";
|
import serContact from "@salesforce/apex/lexSearchAgencyHospitalController.serContact";
|
import detailsInit from "@salesforce/apex/LexConInvoicedetailsController.init";
|
import detailsSave from "@salesforce/apex/LexConInvoicedetailsController.save";
|
import deleteAtt from '@salesforce/apex/LexConsumableController.deleteAtt';
|
import { NavigationMixin } from "lightning/navigation";
|
//table css
|
import { loadStyle } from "lightning/platformResourceLoader";
|
import WrappedHeaderTable from "@salesforce/resourceUrl/lexdatatable";
|
import LexConInvoiceViewReport from '@salesforce/label/c.LexConInvoiceViewReport';
|
|
const hospitalColumns = [
|
{
|
label: "医院名称",
|
fieldName: "Name",
|
initialWidth: 400,
|
hideDefaultActions: true,
|
wrapText: true,
|
},
|
{
|
label: "省份",
|
fieldName: "stateMasterName",
|
hideDefaultActions: true,
|
},
|
{
|
label: "选择",
|
fieldName: "Id1",
|
type: "button",
|
hideDefaultActions: true,
|
typeAttributes: {
|
label: "选择",
|
name: "Id2",
|
size: 1,
|
},
|
},
|
];
|
const invoiceDetailsColumns = [
|
{
|
label: "出库日期",
|
fieldName: "esdetProductOutDate",
|
hideDefaultActions: true,
|
wrapText: true,
|
},
|
{
|
label: "出库单编码",
|
fieldName: "esdetInvoicedet1ODlinkName",
|
wrapText: true,
|
hideDefaultActions: true,
|
wrapText: true,
|
},
|
{
|
label: "产品型号",
|
fieldName: "esdetAssetModelNo",
|
hideDefaultActions: true,
|
wrapText: true,
|
initialWidth: 400,
|
},
|
{
|
label: "单位",
|
fieldName: "esdetInvoiceUnit",
|
hideDefaultActions: true,
|
wrapText: true,
|
initialWidth: 50,
|
},
|
{
|
label: "发票单价",
|
fieldName: "esdetInvoiceUnitprice",
|
hideDefaultActions: true,
|
wrapText: true,
|
type: "number",
|
typeAttributes: {
|
minimumFractionDigits: 2,
|
},
|
},
|
{
|
label: "发票数量",
|
fieldName: "esdetInvoicedCount",
|
cellAttributes: { alignment: 'right' },
|
hideDefaultActions: true,
|
wrapText: true,
|
},
|
{
|
label: "发票票面金额(元)",
|
fieldName: "esdetInvoicedProCostRMB",
|
hideDefaultActions: true,
|
wrapText: true,
|
cellAttributes: { alignment: 'right' },
|
type: "number",
|
typeAttributes: {
|
minimumFractionDigits: 2,
|
},
|
},
|
];
|
const invoiceColumns = [
|
{
|
label: "发票日期",
|
fieldName: "Invoice_Date__c",
|
hideDefaultActions: true,
|
initialWidth: 150
|
},
|
{
|
label: "发票号",
|
type: 'url',
|
fieldName: "NameUrl",
|
typeAttributes: {
|
label: { fieldName: "Name" },
|
},
|
hideDefaultActions: true,
|
},
|
{
|
label: "客户名",
|
fieldName: "ShipmentAccount__c",
|
hideDefaultActions: true,
|
wrapText: true,
|
},
|
{
|
label: "发票状态",
|
fieldName: "Invoice_status__c",
|
hideDefaultActions: true,
|
initialWidth: 100
|
},
|
{
|
label: "发票账面金额(元)",
|
fieldName: "Invoice_total_amount__c",
|
hideDefaultActions: true,
|
type: "number",
|
typeAttributes: {
|
minimumFractionDigits: 2,
|
},
|
initialWidth: 180
|
},
|
{
|
label: "发票附件",
|
fieldName: "Invoice_attachment__c",
|
type: 'boolean',
|
hideDefaultActions: true,
|
initialWidth: 120
|
},
|
{
|
label: "发票明细附件",
|
fieldName: "Invoicedet_attachment__c",
|
type: 'boolean',
|
hideDefaultActions: true,
|
initialWidth: 120
|
},
|
];
|
const detailsColumns = [
|
{
|
label: "产品型号",
|
fieldName: "esdAssetModelNo",
|
hideDefaultActions: true,
|
wrapText: true,
|
},
|
{
|
label: "规格",
|
fieldName: "packingListManual",
|
hideDefaultActions: true,
|
initialWidth: 30
|
},
|
{
|
label: "出货单价(元)",
|
fieldName: "esdDeliveryListRMB",
|
hideDefaultActions: true,
|
type: "number",
|
typeAttributes: {
|
minimumFractionDigits: 2,
|
},
|
},
|
{
|
label: "出货数量",
|
fieldName: "esdShipmentCount",
|
hideDefaultActions: true,
|
},
|
{
|
label: "返品数量",
|
fieldName: "esdRrturnProCount",
|
hideDefaultActions: true,
|
},
|
{
|
label: "出库单位",
|
fieldName: "esdBoxPiece",
|
hideDefaultActions: true,
|
},
|
{
|
label: "已发票数量",
|
fieldName: "esdInvoicedProcount",
|
hideDefaultActions: true,
|
type: "number",
|
typeAttributes: {
|
minimumFractionDigits: 2,
|
},
|
},
|
{
|
label: "还没发票数量",
|
fieldName: "esdInvoiceProNotCount",
|
hideDefaultActions: true,
|
type: "number",
|
typeAttributes: {
|
minimumFractionDigits: 2,
|
},
|
},
|
{
|
label: "开票单位",
|
hideDefaultActions: true,
|
type: "customUnit",
|
typeAttributes: {
|
unitValue: { fieldName: "unitValue" },
|
unitOptions: { fieldName: "unitOptions" },
|
recordId: { fieldName: "recordId" },
|
isDisabled: { fieldName: "isDisabled" },
|
},
|
},
|
{
|
label: "发票单价",
|
fieldName: "esdInvoiceUnitprice",
|
hideDefaultActions: true,
|
type: "number",
|
typeAttributes: {
|
minimumFractionDigits: 2,
|
},
|
initialWidth: 130
|
},
|
{
|
label: "发票数量",
|
//fieldName: "invoiceCount",
|
hideDefaultActions: true,
|
type: "customShipment",
|
cellAttributes: { alignment: 'right' },
|
typeAttributes: {
|
recordId: { fieldName: "recordId" },
|
shipmentNumber: { fieldName: "shipmentNumber" },
|
},
|
},
|
{
|
label: "发票票面金额(元)",
|
cellAttributes: { alignment: 'right' },
|
fieldName: "invoiceAllprice",
|
hideDefaultActions: true,
|
type: "number",
|
typeAttributes: {
|
minimumFractionDigits: 2,
|
},
|
},
|
]
|
const customLabel = {
|
LexConInvoiceViewReport
|
}
|
export default class LexConInvoiceView extends NavigationMixin(LightningElement) {
|
|
@track label=customLabel;
|
invoiceColumns = invoiceColumns;
|
detailsColumns = detailsColumns;
|
@track outboundColumns = [
|
{
|
label: "出库日期",
|
fieldName: "esdOutboundDate",
|
hideDefaultActions: true,
|
wrapText: true,
|
},
|
{
|
label: "出库单编码",
|
fieldName: "esdNameUrl",
|
type: 'url',
|
typeAttributes: {
|
label: { fieldName: "esdName" },
|
target: "_blank",
|
},
|
hideDefaultActions: true,
|
wrapText: true,
|
}
|
]
|
@track outboundData = [];
|
@track outboundDataSumPrice = [];
|
@track invoiceData = [];
|
@track invoiceAllpriceData = [];
|
@track detailsSelectedRows = [];
|
@track showAttPop = false;
|
|
@track invoiceId = '';
|
@track orderId = '';
|
@track userWorkLocation = '';
|
@track deliveryId = '';
|
@track cocId = '';
|
@track statusEdit = '';
|
@track coc = {};
|
@track EditAble = false;
|
@track isChange = false;
|
@track sumPrice = 0.00;
|
@track OrderCode = '';
|
@track ExistOutbound = false;
|
@track reopen = '';
|
@track invoiceOrderRecoedschange = [];
|
@track isNew = '';
|
@track outOrderStringListLwc = [];
|
@track outordercountMapLwc = {};
|
@track selectedRows = [];
|
@track detailsInvoiceId = '';
|
@track detailsCocId = '';
|
@track detailsData = [];
|
@track invoiceAllprice = 0.00;
|
//状态
|
@track invoiceStatusValue = '';
|
@track invoiceStatusOptions = [];
|
get Options() {
|
return this.invoiceStatusOptions;
|
}
|
//出库从
|
@track deliveryFromDate = '';
|
//出库到
|
@track deliveryToDate = '';
|
//发票号
|
@track category1 = '';
|
//客户名
|
@track category2 = '';
|
@track ConInvoiceListAccountId = '';
|
@track ConInvoiceListUserWorkLocation = '';
|
@track ConInvoiceListAgencyProType = '';
|
|
//二级经销商
|
@track provinceOptsMap = [];
|
@track secondaryDistributor = '';
|
//客户名
|
@track isModalOpen = false;
|
@track HospitalName = "";
|
@track HospitalInfo = "";
|
@track searchHospitalName = "";
|
@track isDisabledHospitalName = false;
|
@track agencyProType = '';
|
@track accountid = '';
|
@track hospitalList = [];
|
hospitalColumns = hospitalColumns;
|
//发票日期
|
@track InvoiceDate = '';
|
//科室
|
@track ForCustomerText = '';
|
//备注
|
@track InvoiceNote = '';
|
|
//发票明细
|
@track invoiceOrderdetail1Recoeds = [];
|
invoiceDetailsColumns = invoiceDetailsColumns;
|
|
//显示
|
@track isShowSecondaryDistributor = false;
|
@track isEditInvoice = false;
|
@track isShowSpinner = true;
|
@track hideCheckbox = true;
|
@track done = false;
|
@track isConInvoiceList = true;
|
@track isDetailsShow = false;
|
|
//disable
|
@track isDisabledEdit = false;
|
@track isDisabledReopen = false;
|
@track isDisabledDelete = false;
|
@track isDisabledAttachment = false;
|
@track isOpenReportDisabled = true;
|
|
//文件上传
|
@track showLoadingSpinner = false;
|
@track UploadFile = "Upload File";
|
@track fileName = "";
|
@track fileData = [];
|
@track fileColumns = [
|
{
|
label: "标题",
|
fieldName: "url",
|
type: "url",
|
typeAttributes: { label: { fieldName: "Title" }, target: "_blank" },
|
hideDefaultActions: true,
|
},
|
{
|
label: "创建人",
|
type: "url",
|
fieldName: "CreatedByNameUrl",
|
typeAttributes: { label: { fieldName: "CreatedByName" }, target: "_blank" },
|
hideDefaultActions: true,
|
},
|
{
|
label: "上传日期",
|
type: 'date',
|
typeAttributes: {
|
year: "numeric",
|
month: "long",
|
day: "2-digit",
|
hour: "2-digit",
|
minute: "2-digit"
|
},
|
fieldName: "CreatedDate",
|
hideDefaultActions: true,
|
},
|
{
|
label: "附件类型",
|
type: "customAttachmentType",
|
typeAttributes: {
|
typeValue: { fieldName: "typeValue" },
|
typeOptions: { fieldName: "typeOptions" },
|
recordId: { fieldName: "recordId" },
|
isDisabledAttachment: { fieldName: "isDisabledAttachment" },
|
},
|
hideDefaultActions: true,
|
},
|
{
|
label: '',
|
type: 'tableCellIcon',
|
typeAttributes: {
|
iconName: 'utility:delete',
|
recordId: {
|
fieldName: 'Id'
|
}
|
},
|
initialWidth: 50,
|
hideDefaultActions: true
|
},
|
];
|
filesUploaded = [];
|
fileContents;
|
fileReader;
|
content;
|
MAX_FILE_SIZE = 1500000;
|
|
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");
|
});
|
}
|
}
|
|
//获取链接参数
|
getQueryString(name) {
|
console.log("getQueryString name " + name);
|
let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
|
let r = window.location.search.substr(1).match(reg);
|
if (r != null) {
|
return decodeURIComponent(r[2]);
|
}
|
return null;
|
}
|
|
connectedCallback() {
|
this.init();
|
}
|
|
init() {
|
this.isShowSpinner = true;
|
this.deliveryId = this.getQueryString("deliveryId");
|
this.deliveryId = this.deliveryId == null ? "" : this.deliveryId;
|
this.invoiceId = this.getQueryString("invoiceId");
|
this.invoiceId = this.invoiceId == null ? "" : this.invoiceId;
|
this.orderId = this.getQueryString("orderId");
|
this.orderId = this.orderId == null ? "" : this.orderId;
|
this.statusEdit = this.getQueryString("KeyWords");
|
this.statusEdit = this.statusEdit == null ? "" : this.statusEdit;
|
this.reopen = this.getQueryString("reopen");
|
this.reopen = this.reopen == null ? "" : this.reopen;
|
this.isNew = this.getQueryString("isNew");
|
this.isNew = this.isNew == null ? "" : this.isNew;
|
console.log('this.deliveryId = ' + this.deliveryId + ' this.invoiceId = ' + this.invoiceId + ' this.statusEdit = ' + this.statusEdit);
|
if (this.invoiceId != '' && this.orderId != '') {
|
//进入coninvoiceDetails
|
detailsInit({
|
orderIdLwc: this.orderId,
|
invoiceIdLwc: this.invoiceId
|
}).then((r) => {
|
r = JSON.parse(JSON.stringify(r));
|
if (r.status == "Success") {
|
this.detailsInvoiceId = r.entity.invoicecode.Id;
|
this.detailsCocId = r.entity.coc.Id;
|
this.detailsData = r.entity.consumableorderdetails1Records;
|
for (var i in this.detailsData) {
|
this.detailsData[i]['Id'] = this.detailsData[i].esd.Id;
|
|
this.detailsData[i]['esdAssetModelNo'] = this.detailsData[i].esd.Asset_Model_No__c;
|
this.detailsData[i]['packingListManual'] = this.detailsData[i].Packing_list_manual;
|
this.detailsData[i]['esdDeliveryListRMB'] = this.detailsData[i].esd.Delivery_List_RMB__c;
|
this.detailsData[i]['esdShipmentCount'] = this.detailsData[i].esd.Shipment_Count__c;
|
this.detailsData[i]['esdRrturnProCount'] = this.detailsData[i].esd.RrturnPro_count__c;
|
this.detailsData[i]['esdBoxPiece'] = this.detailsData[i].esd.Box_Piece__c;
|
|
this.detailsData[i]['esdInvoicedProcount'] = this.detailsData[i].esd.Invoiced_Procount__c;
|
this.detailsData[i]['esdInvoiceProNotCount'] = this.detailsData[i].esd.InvoiceProNot_count__c;
|
//开票单位
|
//this.detailsData[i].esd.Box_Piece__c
|
//this.detailsData[i]['unitValue'] = this.detailsData[i].esd.Invoice_Unit__c;
|
this.detailsData[i]['unitValue'] = this.detailsData[i].esd.Box_Piece__c;
|
console.log('unitValue = ' + this.detailsData[i]['unitValue']);
|
this.detailsData[i]['recordId'] = this.detailsData[i].esd.Id;
|
//disabled="{!IF(records.esd.Box_Piece__c =='个' || (records.esd.Box_Piece__c =='盒' && records.Packing_list_manual ==1),true,false)}"
|
//this.detailsData[i]['isDisabled'] = (this.detailsData[i].esd.Box_Piece__c == '个' || (this.detailsData[i].esd.Box_Piece__c =='盒' && this.detailsData[i].Packing_list_manual ==1)) ? true:false;
|
this.detailsData[i]['isDisabled'] = true;
|
let unitOptions = [];
|
for (var key in this.detailsData[i].Invoice_UnitOptsMap) {
|
let unitOption = {};
|
unitOption["label"] = this.detailsData[i].Invoice_UnitOptsMap[key];
|
unitOption["value"] = key;
|
unitOptions.push(unitOption);
|
}
|
this.detailsData[i]["unitOptions"] = unitOptions;
|
this.detailsData[i]['esdInvoiceUnitprice'] = this.detailsData[i].esd.Invoice_Unitprice__c;
|
//发票数量
|
this.detailsData[i]['shipmentNumber'] = this.detailsData[i].invoiceCount;
|
this.detailsData[i]['invoiceAllprice'] = this.detailsData[i].invoiceAllprice;
|
|
if (this.detailsData[i].check) {
|
this.detailsSelectedRows.push(this.detailsData[i]['Id']);
|
this.invoiceAllprice += this.detailsData[i]['invoiceAllprice'];
|
}
|
}
|
|
console.log('this.detailsData = ' + JSON.stringify(this.detailsData));
|
|
let lastInvoiceAllprice = {
|
invoiceAllprice: this.invoiceAllprice
|
}
|
this.invoiceAllpriceData.push(lastInvoiceAllprice);
|
console.log('this.invoiceAllpriceData = ' + JSON.stringify(this.invoiceAllpriceData))
|
|
this.isShowSpinner = false;
|
this.isDetailsShow = true;
|
} else {
|
this.showMyToast('初始化失败', r.msg, 'Error');
|
}
|
}).catch((error) => {
|
this.isShowSpinner = false;
|
console.log("error = " + JSON.stringify(error));
|
});
|
} else if (this.deliveryId == '' && this.invoiceId == '' && this.isNew == '') {
|
console.log('conInvoiceListInit');
|
conInvoiceListInit().then((r) => {
|
r = JSON.parse(JSON.stringify(r));
|
console.log("conInvoiceListInit r = " + JSON.stringify(r));
|
if (r.status == "Success") {
|
this.ConInvoiceListAccountId = r.entity.accountid;
|
this.ConInvoiceListUserWorkLocation = r.entity.userWorkLocation;
|
|
this.ConInvoiceListAgencyProType = r.entity.agencyProType;
|
if (this.ConInvoiceListAgencyProType != 'ET')
|
this.isOpenReportDisabled = false;
|
this.invoiceData = r.entity.raesList;
|
for (var i in this.invoiceData) {
|
this.invoiceData[i]['NameUrl'] = '/lexconinvoiceview?invoiceId=' + this.invoiceData[i].Id;
|
}
|
console.log("this.invoiceData = " + JSON.stringify(this.invoiceData));
|
for (var key in r.entity.statusMap) {
|
let object = {};
|
object["label"] = key;
|
object["value"] = r.entity.statusMap[key];
|
this.invoiceStatusOptions.push(object);
|
}
|
this.invoiceStatusOptions = [...this.invoiceStatusOptions];
|
console.log("this.invoiceStatusOptions = " + JSON.stringify(this.invoiceStatusOptions));
|
this.isShowSpinner = false;
|
} else {
|
this.showMyToast('初始化失败', r.msg, 'Error');
|
}
|
}).catch((error) => {
|
console.log("error = " + JSON.stringify(error));
|
});
|
|
} else {
|
console.log('init');
|
this.isConInvoiceList = false;
|
init({
|
invoiceId: this.invoiceId,
|
statusEdit: this.statusEdit,
|
deliveryId: this.deliveryId
|
}).then((r) => {
|
r = JSON.parse(JSON.stringify(r));
|
console.log("r = " + JSON.stringify(r));
|
if (r.status == "Success") {
|
this.coc = r.entity.coc;
|
this.cocId = this.coc.Id;
|
this.EditAble = r.entity.EditAble;
|
this.isChange = r.entity.isChange;
|
this.ExistOutbound = r.entity.ExistOutbound;
|
this.outboundData = r.entity.invoiceOrderRecoeds;
|
console.log('this.outboundData = ' + JSON.stringify(this.outboundData))
|
this.done = r.entity.done;
|
this.accountid = r.entity.accountid;
|
this.userWorkLocation = r.entity.userWorkLocation;
|
this.outOrderStringListLwc = r.entity.outOrderStringList;
|
this.outordercountMapLwc = r.entity.outordercountMap;
|
this.invoiceOrderRecoedschange = r.entity.invoiceOrderRecoedschange;
|
this.isDisabledEdit = (this.coc.Invoice_status__c == '提交' || this.coc.Invoice_status__c == '已完成') ? true : false;
|
this.isDisabledReopen = this.coc.Invoice_status__c == '提交' ? false : true;
|
this.isDisabledDelete = this.coc.Invoice_status__c == '草案中' ? false : true;
|
this.isDisabledAttachment = this.coc.Invoice_status__c == '已完成' ? true : false;
|
this.OrderCode = this.coc.Name;
|
this.InvoiceDate = this.coc.Invoice_Date__c;
|
|
for (var i in this.outboundData) {
|
this.outboundData[i].Id = this.outboundData[i].esd.Id;
|
if (this.outboundData[i].check)
|
this.selectedRows.push(this.outboundData[i].esd.Id);
|
}
|
this.selectedRows = [...this.selectedRows];
|
console.log('r.entity.attachmentRecoeds = ' + JSON.stringify(r.entity.attachmentRecoeds))
|
if (!this.EditAble) {
|
//附件显示
|
this.showLoadingSpinner = true;
|
this.fileData = r.entity.attachmentRecoeds;
|
for (var i in this.fileData) {
|
this.fileData[i]["Id"] = this.fileData[i].cvInfo.Id;
|
this.fileData[i]["recordId"] = this.fileData[i].cvInfo.Id;
|
this.fileData[i]["url"] = "/" + this.fileData[i].cvInfo.Id;
|
this.fileData[i]["Title"] = this.fileData[i].cvInfo.Title;
|
this.fileData[i]["CreatedByName"] = this.fileData[i].cvInfo.Owner.Name;
|
this.fileData[i]["CreatedByNameUrl"] = "/" + this.fileData[i].cvInfo.OwnerId;;
|
this.fileData[i]["CreatedDate"] = this.fileData[i].cvInfo.CreatedDate;
|
this.fileData[i]["attUrl"] = '/' + this.fileData[i].cvInfo.Id;
|
this.fileData[i]['downloadUrl'] = '/sfc/servlet.shepherd/document/download/' + this.fileData[i].cvInfo.ContentDocumentId + '?operationContext=S1';
|
if (this.isDisabledAttachment) {
|
console.log('进入this.isDisabledAttachment')
|
this.fileData[i]["isDisabledAttachment"] = true;
|
}
|
let typeOptions = [];
|
for (var key in this.fileData[i].mailSelectOptsMap) {
|
let typeOption = {};
|
typeOption["label"] = this.fileData[i].mailSelectOptsMap[key];
|
typeOption["value"] = key;
|
typeOptions.push(typeOption);
|
}
|
this.fileData[i]["typeValue"] = this.fileData[i].mailSelectOptsin == null ? typeOptions[0].value : this.fileData[i].mailSelectOptsin;
|
this.fileData[i]["typeOptions"] = typeOptions;
|
this.fileData[i]["mailSelectOptsin"] = this.fileData[i].mailSelectOptsin == null ? typeOptions[0].value : this.fileData[i].mailSelectOptsin;
|
}
|
console.log('this.fileData = ' + JSON.stringify(this.fileData))
|
}
|
|
//发票明细
|
this.invoiceOrderdetail1Recoeds = r.entity.invoiceOrderdetail1Recoeds;
|
for (var i in this.invoiceOrderdetail1Recoeds) {
|
this.invoiceOrderdetail1Recoeds[i]['esdetProductOutDate'] = this.invoiceOrderdetail1Recoeds[i].esdet.Product_OutDate__c;
|
this.invoiceOrderdetail1Recoeds[i]['esdetInvoicedet1ODlinkName'] = this.invoiceOrderdetail1Recoeds[i].esdet.Invoicedet1_OD_link__r.Name;
|
this.invoiceOrderdetail1Recoeds[i]['esdetAssetModelNo'] = this.invoiceOrderdetail1Recoeds[i].esdet.Asset_Model_No__c;
|
this.invoiceOrderdetail1Recoeds[i]['esdetInvoiceUnit'] = this.invoiceOrderdetail1Recoeds[i].esdet.Invoice_Unit__c;
|
this.invoiceOrderdetail1Recoeds[i]['esdetInvoiceUnitprice'] = this.invoiceOrderdetail1Recoeds[i].esdet.Invoice_Unitprice__c;
|
this.invoiceOrderdetail1Recoeds[i]['esdetInvoicedCount'] = this.invoiceOrderdetail1Recoeds[i].esdet.Invoiced_Count__c;
|
this.invoiceOrderdetail1Recoeds[i]['esdetInvoicedProCostRMB'] = this.invoiceOrderdetail1Recoeds[i].esdet.InvoicedProCost_RMB__c;
|
}
|
//客户名
|
this.HospitalName = r.entity.HospitalName;
|
this.HospitalInfo = r.entity.HospitalInfo;
|
this.agencyProType = r.entity.agencyProType;
|
if (this.agencyProType != 'ET')
|
this.isOpenReportDisabled = false;
|
//科室
|
this.ForCustomerText = this.coc.Order_ForCustomerText__c;
|
//备注
|
this.InvoiceNote = this.coc.Invoice_Note__c;
|
//二级经销商
|
for (var key in r.entity.provinceOptsMap) {
|
let object = {};
|
object["label"] = r.entity.provinceOptsMap[key];
|
object["value"] = key;
|
this.provinceOptsMap.push(object);
|
}
|
//出货一览columns
|
|
|
if (this.EditAble) {
|
let object1 = {
|
label: '客户名',
|
fieldName: "hospitalName",
|
hideDefaultActions: true,
|
};
|
let object2 = {
|
label: '出货金额(元)',
|
fieldName: "shipmentAmount",
|
type: "number",
|
typeAttributes: {
|
minimumFractionDigits: 2,
|
},
|
hideDefaultActions: true,
|
};
|
let object3 = {
|
label: '返品金额(元)',
|
fieldName: "returnAmount",
|
type: "number",
|
typeAttributes: {
|
minimumFractionDigits: 2,
|
},
|
hideDefaultActions: true,
|
};
|
this.outboundColumns.push(object1)
|
this.outboundColumns.push(object2)
|
this.outboundColumns.push(object3)
|
}
|
let object4 = {
|
label: '未发票金额(元)',
|
fieldName: "uninvoicedAmount",
|
type: "number",
|
typeAttributes: {
|
minimumFractionDigits: 2,
|
},
|
hideDefaultActions: true,
|
};
|
this.outboundColumns.push(object4)
|
|
//出货一览Data
|
let index = 0;
|
for (var i in this.outboundData) {
|
this.outboundData[i]['esdOutboundDate'] = this.outboundData[i].esd.Outbound_Date__c;
|
this.outboundData[i]['esdNameUrl'] = '/s/lexsummonscreat?ESetid=' + this.outboundData[i].esd.Id;
|
this.outboundData[i]['esdName'] = this.outboundData[i].esd.Name;
|
if (this.EditAble) {
|
this.outboundData[i]['hospitalName'] = this.outboundData[i].esd.ShipmentAccount__c;
|
this.outboundData[i]['shipmentAmount'] = this.outboundData[i].esd.Shipment_total_amount__c;
|
this.outboundData[i]['returnAmount'] = this.outboundData[i].esd.RrturnPro_total_amount__c;
|
}
|
this.outboundData[i]['uninvoicedAmount'] = this.outboundData[i].esd.InvoiceNotPro_money__c;
|
this.outboundData[i]['invoiceFaceAmount'] = this.keepTwoDecimalStr(this.outboundData[i].needInvoiceCount);
|
if (!(this.outboundData[i].esd.Billed_Status__c == '全部开票' || this.EditAble || this.coc.Invoice_status__c != '草案中')) {
|
console.log('进入 if')
|
let url = "/lexconinvoiceview?orderId=" + this.outboundData[i].esd.Id + "&invoiceId=" + this.invoiceId;
|
this.outboundData[i]['invoiceFaceAmountUrl'] = url;
|
if (index == 0) {
|
let object5 = {
|
label: '发票票面金额(元)',
|
cellAttributes: { alignment: 'right' },
|
type: 'url',
|
fieldName: "invoiceFaceAmountUrl",
|
typeAttributes: {
|
label: { fieldName: "invoiceFaceAmount" },
|
//target: "_blank",
|
},
|
hideDefaultActions: true,
|
};
|
this.outboundColumns.push(object5)
|
index++;
|
}
|
} else {
|
console.log('进入 else')
|
if (index == 0) {
|
let object5 = {
|
label: '发票票面金额(元)',
|
cellAttributes: { alignment: 'right' },
|
fieldName: "invoiceFaceAmount",
|
hideDefaultActions: true,
|
type: "number",
|
typeAttributes: {
|
minimumFractionDigits: 2,
|
},
|
};
|
this.outboundColumns.push(object5)
|
index++;
|
}
|
}
|
//计算发票票面金额
|
this.sumPrice += this.outboundData[i].needInvoiceCount;
|
}
|
|
//四舍五入
|
//this.sumPrice = this.sumPrice.toFixed(2);
|
//如果不四舍五入
|
console.log('start keepTwoDecimalStr')
|
this.sumPrice = this.keepTwoDecimalStr(this.sumPrice);
|
console.log('end keepTwoDecimalStr = ' + this.sumPrice)
|
//加最后一行显示金额
|
if (this.EditAble) {
|
let lastOutboundData = {
|
invoiceFaceAmount: this.sumPrice
|
}
|
this.outboundDataSumPrice.push(lastOutboundData);
|
}
|
this.outboundColumns = [...this.outboundColumns];
|
|
|
this.isEditInvoice = !(!this.EditAble || this.isChange);
|
if (this.coc.SummonsForDirction__c == '销售给二级经销商')
|
this.isShowSecondaryDistributor = true;
|
if (this.deliveryId == '' && !this.ExistOutbound && this.EditAble)
|
this.hideCheckbox = false;
|
this.isShowSpinner = false;
|
this.showLoadingSpinner = false;
|
} else {
|
this.showMyToast('失败', r.msg, 'Error');
|
}
|
}).catch((error) => {
|
console.log("error = " + JSON.stringify(error));
|
});
|
}
|
|
}
|
|
|
//上传配置单
|
uploadOrder(event) {
|
this.showAttPop = true;
|
}
|
|
//关闭附件弹窗
|
closePop() {
|
this.showAttPop = false;
|
this.filesUploaded = [];
|
this.fileName = null;
|
}
|
|
//附件change事件
|
attChange(event) {
|
if (event.target.files.length > 0) {
|
this.filesUploaded = event.target.files;
|
this.fileName = event.target.files[0].name;
|
console.log('this.fileName:' + this.fileName);
|
}
|
}
|
|
//移除附件
|
removeAtt() {
|
this.filesUploaded = [];
|
this.fileName = '';
|
}
|
|
keepTwoDecimalStr(num) {
|
const result = Number(num.toString().match(/^\d+(?:\.\d{0,2})?/));
|
let s = result.toString();
|
let rs = s.indexOf('.');
|
if (rs < 0) {
|
rs = s.length;
|
s += '.';
|
}
|
while (s.length <= rs + 2) {
|
s += '0';
|
}
|
return s;
|
};
|
|
dataChange(event) {
|
let fieldName = event.target.getAttribute("data-field");
|
let value = event.detail.value;
|
console.log("fieldName = " + fieldName + " value = " + value);
|
switch (fieldName) {
|
case "OrderCode":
|
this.OrderCode = value;
|
this.coc['Name'] = value;
|
break;
|
case "ForCustomerText":
|
this.ForCustomerText = value;
|
this.coc['Order_ForCustomerText__c'] = value;
|
break;
|
case "InvoiceDate":
|
this.InvoiceDate = value;
|
this.coc['Invoice_Date__c'] = value;
|
break;
|
case "secondaryDistributor":
|
this.secondaryDistributor = value;
|
break;
|
case "deliveryFromDate":
|
this.deliveryFromDate = value;
|
break;
|
case "deliveryToDate":
|
this.deliveryToDate = value;
|
break;
|
case "category1":
|
this.category1 = value;
|
break;
|
case "category2":
|
this.category2 = value;
|
break;
|
case "invoiceStatus":
|
this.invoiceStatusValue = value;
|
break;
|
case "searchHospitalName":
|
this.searchHospitalName = value;
|
break;
|
case "InvoiceNote":
|
this.InvoiceNote = value;
|
this.coc['Invoice_Note__c'] = value;
|
break;
|
}
|
}
|
|
invoiceDateChange(event) {
|
this.InvoiceDate = event.detail.value;
|
this.coc['Invoice_Date__c'] = event.detail.value;
|
console.log('this.InvoiceDate = ' + this.InvoiceDate);
|
}
|
|
//搜索客户名
|
searchHospitalNameModal() {
|
console.log("searchHospitalNameModal");
|
hospitalInit({
|
ctype: this.agencyProType,
|
}).then((r) => {
|
r = JSON.parse(JSON.stringify(r));
|
if (r.status == "Success") {
|
this.hospitalList = r.entity.at;
|
for (var i in this.hospitalList) {
|
this.hospitalList[i]["stateMasterName"] = this.hospitalList[i].State_Master__r.Name;
|
}
|
console.log("hospitalInit r = " + JSON.stringify(this.hospitalList));
|
this.isModalOpen = true;
|
}
|
});
|
}
|
|
searchHospital() {
|
console.log("this.searchHospitalName = " + this.searchHospitalName);
|
serContact({
|
searchName: this.searchHospitalName,
|
ctype: this.agencyProType,
|
}).then((r) => {
|
r = JSON.parse(JSON.stringify(r));
|
if (r.status == "Success") {
|
this.hospitalList = r.entity.at;
|
for (var i in this.hospitalList) {
|
this.hospitalList[i]["stateMasterName"] =
|
this.hospitalList[i].State_Master__r.Name;
|
}
|
console.log("hospitalInit r = " + JSON.stringify(this.hospitalList));
|
}
|
});
|
}
|
|
//选择客户名
|
searchHandleRowAction(event) {
|
console.log("searchHandleRowAction");
|
let row = event.detail.row;
|
this.HospitalInfo = row.Id;
|
this.HospitalName = row.Name;
|
console.log("this.HospitalInfo = " + this.HospitalInfo + " this.HospitalName = " + this.HospitalName);
|
this.isModalOpen = false;
|
}
|
|
//当客户名是空时。客户id也变为空
|
clearAgencyI(event) {
|
this.HospitalName = event.target.value;
|
if (this.HospitalName == "" || this.HospitalName == null) {
|
this.HospitalInfo = "";
|
}
|
console.log("this.HospitalName = " + this.HospitalName);
|
console.log("this.HospitalInfo = " + this.HospitalInfo);
|
}
|
|
closeModal() {
|
this.isModalOpen = false;
|
}
|
|
SaveJs() {
|
this.isShowSpinner = true;
|
let cloneData = this.outboundData
|
|
debugger
|
const selectedRows = this.template.querySelector("[data-field='outbound']").getSelectedRows();
|
console.log('selectedRows = ' + JSON.stringify(selectedRows));
|
|
for (var i in cloneData) {
|
let b = false;
|
for (var j in selectedRows) {
|
if (cloneData[i].esd.Id == selectedRows[j].esd.Id) {
|
b = true;
|
cloneData[i].check = true;
|
}
|
}
|
if(!b){
|
cloneData[i].check = false;
|
}
|
delete cloneData[i].esdOutboundDate;
|
delete cloneData[i].esdNameUrl;
|
delete cloneData[i].esdName;
|
delete cloneData[i].hospitalName;
|
delete cloneData[i].shipmentAmount;
|
delete cloneData[i].returnAmount;
|
delete cloneData[i].uninvoicedAmount;
|
delete cloneData[i].invoiceFaceAmount;
|
delete cloneData[i].invoiceFaceAmountUrl;
|
}
|
|
console.log('this.coc = ' + JSON.stringify(this.coc));
|
console.log('this.HospitalName = ' + this.HospitalName);
|
console.log('this.HospitalInfo = ' + this.HospitalInfo);
|
console.log('this.secondaryDistributor = ' + this.secondaryDistributor);
|
console.log('this.outboundData = ' + JSON.stringify(cloneData));
|
console.log('this.deliveryId = ' + this.deliveryId);
|
console.log('this.invoiceId = ' + this.invoiceId);
|
console.log('this.accountid = ' + this.accountid);
|
console.log('this.agencyProType = ' + this.agencyProType);
|
console.log('this.reopen = ' + this.reopen);
|
console.log('this.invoiceOrderRecoedschangeLwc = ' + JSON.stringify(this.invoiceOrderRecoedschange));
|
save({
|
cocLwc: this.coc,
|
HospitalNameLwc: this.HospitalName,
|
HospitalInfoLwc: this.HospitalInfo,
|
SecondDealerLwc: this.secondaryDistributor,
|
invoiceOrderRecoedsLwc: JSON.stringify(cloneData),
|
deliveryIdLwc: this.deliveryId,
|
invoiceIdLwc: this.invoiceId,
|
accountidLwc: this.accountid,
|
agencyProTypeLwc: this.agencyProType,
|
reopenLwc: this.reopen,
|
invoiceOrderRecoedschangeLwc: JSON.stringify(this.invoiceOrderRecoedschange)
|
}).then((r) => {
|
r = JSON.parse(JSON.stringify(r));
|
console.log("r = " + JSON.stringify(r));
|
if (r.status == "Success" && r.msg == '') {
|
this.isShowSpinner = false;
|
console.log('save success');
|
let url = "/lexconinvoiceview?invoiceId=" + r.entity.invoiceId;
|
console.log('url = ' + url);
|
this[NavigationMixin.Navigate]({
|
type: "standard__webPage",
|
attributes: {
|
url: url,
|
},
|
});
|
} else {
|
this.showMyToast('保存失败', r.msg, 'Error');
|
}
|
}).catch((error) => {
|
console.log("error = " + JSON.stringify(error));
|
});
|
}
|
|
//上传附件,直接就保存好,然后展示
|
handleFilesChange(event) {
|
console.log("handleFilesChange");
|
this.handleSave();
|
// if (event.target.files.length > 0) {
|
// this.filesUploaded = event.target.files;
|
// this.fileName = event.target.files[0].name;
|
// this.handleSave();
|
// }
|
}
|
|
handleSave() {
|
this.isShowSpinner = true;
|
console.log("saveFile");
|
if (this.filesUploaded.length > 0) {
|
this.file = this.filesUploaded[0];
|
if (this.file.size > this.MAX_FILE_SIZE) {
|
this.showMyToast('保存失败', '文件过大', 'Error');
|
return;
|
}
|
this.showLoadingSpinner = true;
|
this.fileReader = new FileReader();
|
|
this.fileReader.onloadend = () => {
|
this.fileContents = this.fileReader.result;
|
let base64 = "base64,";
|
this.content = this.fileContents.indexOf(base64) + base64.length;
|
this.fileContents = this.fileContents.substring(this.content);
|
this.saveToFile();
|
};
|
this.fileReader.readAsDataURL(this.file);
|
} else {
|
this.fileName = "选择一个文件上传";
|
}
|
}
|
|
saveToFile() {
|
console.log("saveToFile");
|
console.log("invoiceId = " + this.invoiceId);
|
console.log("fileName = " + this.fileName);
|
console.log("base64Data = " + encodeURIComponent(this.fileContents));
|
saveFile({
|
recordId: this.invoiceId,
|
fileName: this.fileName,
|
base64Data: encodeURIComponent(this.fileContents),
|
}).then((r) => {
|
r = JSON.parse(JSON.stringify(r));
|
console.log("r = " + JSON.stringify(r));
|
if (r != '') {
|
this.showLoadingSpinner = false;
|
this.showMyToast('附件上传成功', '', 'Success');
|
this.closePop();
|
this.init();
|
} else {
|
this.showMyToast('上传失败', r.msg, 'Error');
|
}
|
}).catch((error) => {
|
console.log("error = " + error.message);
|
this.showMyToast('错误', '上传失败', 'Error');
|
});
|
}
|
|
|
handleTypeChange(event) {
|
console.log("handleTypeChange");
|
const typeDetail = event.detail;
|
console.log("typeDetail = " + JSON.stringify(typeDetail));
|
for (var i in this.fileData) {
|
if (this.fileData[i].recordId == typeDetail.data.recordId) {
|
this.fileData[i].typeValue = typeDetail.data.typeValue;
|
this.fileData[i].mailSelectOptsin = typeDetail.data.typeValue;
|
}
|
}
|
console.log("this.fileData = " + JSON.stringify(this.fileData));
|
}
|
|
newInvoiceJs() {
|
let url = "/lexconinvoiceview?isNew=yes";
|
console.log('url = ' + url);
|
this[NavigationMixin.Navigate]({
|
type: "standard__webPage",
|
attributes: {
|
url: url,
|
},
|
});
|
}
|
|
saveAttachmentJs() {
|
this.showLoadingSpinner = true;
|
let cloneData = this.fileData
|
for (var i in cloneData) {
|
delete cloneData[i].Id;
|
delete cloneData[i].recordId;
|
delete cloneData[i].url;
|
delete cloneData[i].Title;
|
delete cloneData[i].CreatedByName;
|
delete cloneData[i].CreatedByNameUrl;
|
delete cloneData[i].CreatedDate;
|
delete cloneData[i].typeValue;
|
delete cloneData[i].typeOptions;
|
delete cloneData[i].mailSelectOptsMap;
|
}
|
console.log('cloneData = ' + JSON.stringify(cloneData));
|
saveAttachment({
|
attachmentRecoedsLwc: JSON.stringify(cloneData),
|
invoiceId: this.invoiceId
|
}).then((r) => {
|
r = JSON.parse(JSON.stringify(r));
|
console.log("r = " + JSON.stringify(r));
|
if (r.status == "Success") {
|
this.showLoadingSpinner = false;
|
this.isShowSpinner = true;
|
// const event = new ShowToastEvent({
|
// title: 'Success',
|
// variant: 'Success',
|
// message: '保存成功',
|
// });
|
// this.dispatchEvent(event);
|
this.showMyToast('附件保存成功', '', 'Success');
|
//this.init();
|
setTimeout(function () {
|
//1秒后执行刷新
|
window.location.reload();
|
}, 2000); //单位是毫秒
|
// let url = "/lexconinvoiceview?invoiceId=" + this.invoiceId;
|
// console.log('url = ' + url);
|
// this[NavigationMixin.Navigate]({
|
// type: "standard__webPage",
|
// attributes: {
|
// url: url,
|
// },
|
// });
|
} else {
|
this.showMyToast('上传失败', r.msg, 'Error');
|
}
|
}).catch((error) => {
|
console.log("error = " + error.message);
|
this.showMyToast('错误', '上传失败', 'Error');
|
});
|
}
|
|
invoiceCodeSearchJs() {
|
this.isShowSpinner = true;
|
invoiceCodeSearch({
|
orderDateLwc: this.deliveryFromDate == null ? null : new Date(this.deliveryFromDate),
|
deliverDateLwc: this.deliveryToDate == null ? null : new Date(this.deliveryToDate),
|
invoiceStatusLwc: this.invoiceStatusValue,
|
category1Lwc: this.category1,
|
category2Lwc: this.category2,
|
accountidLwc: this.ConInvoiceListAccountId,
|
userWorkLocationLwc: this.ConInvoiceListUserWorkLocation,
|
agencyProTypeLwc: this.ConInvoiceListAgencyProType,
|
}).then((r) => {
|
r = JSON.parse(JSON.stringify(r));
|
console.log("r = " + JSON.stringify(r));
|
if (r.status == "Success") {
|
this.invoiceData = r.entity.raesList;
|
for (var i in this.invoiceData) {
|
this.invoiceData[i]['NameUrl'] = '/lexconinvoiceview?invoiceId=' + this.invoiceData[i].Id;
|
}
|
console.log("this.invoiceData = " + JSON.stringify(this.invoiceData));
|
this.isShowSpinner = false;
|
if (r.entity.raesListSize > 0) {
|
this.showMyToast('搜索成功', '共检索到' + r.entity.raesListSize + '个发票', 'Success');
|
} else {
|
this.showMyToast('搜索失败', '没有搜索到相关发票', 'Error');
|
}
|
} else {
|
this.showMyToast('搜索失败', r.msg, 'Error');
|
}
|
}).catch((error) => {
|
console.log("error = " + error.message);
|
this.showMyToast('错误', '搜索失败', 'Error');
|
});
|
}
|
|
ClearJs() {
|
this.deliveryFromDate = '';
|
this.deliveryToDate = '';
|
this.category1 = '';
|
this.category2 = '';
|
this.invoiceStatusValue = '';
|
this.isShowSpinner = true;
|
conInvoiceListInit().then((r) => {
|
r = JSON.parse(JSON.stringify(r));
|
console.log("conInvoiceListInit r = " + JSON.stringify(r));
|
if (r.status == "Success") {
|
this.invoiceData = r.entity.raesList;
|
for (var i in this.invoiceData) {
|
this.invoiceData[i]['NameUrl'] = '/lexconinvoiceview?invoiceId=' + this.invoiceData[i].Id;
|
}
|
console.log("this.invoiceData = " + JSON.stringify(this.invoiceData));
|
this.isShowSpinner = false;
|
} else {
|
this.showMyToast('搜索失败', r.msg, 'Error');
|
}
|
}).catch((error) => {
|
console.log("error = " + JSON.stringify(error));
|
});
|
}
|
|
InvoiceorderSearchJs() {
|
this.isShowSpinner = true;
|
|
debugger
|
let cloneData = this.outboundData
|
const selectedRows = this.template.querySelector("[data-field='outbound']").getSelectedRows();
|
console.log('selectedRows ' + JSON.stringify(selectedRows));
|
for (var i in cloneData) {
|
let b = false;
|
for (var j in selectedRows) {
|
if (cloneData[i].esd.Id == selectedRows[j].esd.Id) {
|
b = true;
|
cloneData[i].check = true;
|
}
|
}
|
if(!b){
|
cloneData[i].check = false;
|
}
|
delete cloneData[i].esdOutboundDate;
|
delete cloneData[i].esdNameUrl;
|
delete cloneData[i].esdName;
|
delete cloneData[i].hospitalName;
|
delete cloneData[i].shipmentAmount;
|
delete cloneData[i].returnAmount;
|
delete cloneData[i].uninvoicedAmount;
|
delete cloneData[i].invoiceFaceAmount;
|
delete cloneData[i].invoiceFaceAmountUrl;
|
}
|
|
console.log('this.coc = ' + JSON.stringify(this.coc));
|
console.log('this.invoiceId = ' + this.invoiceId);
|
console.log('this.accountid = ' + this.accountid);
|
console.log('this.userWorkLocation = ' + this.userWorkLocation);
|
console.log('this.agencyProType = ' + this.agencyProType);
|
console.log('this.HospitalInfo = ' + this.HospitalInfo);
|
console.log('SecondDealer = ' + this.secondaryDistributor);
|
console.log('invoiceOrderRecoedsLwc = ' + JSON.stringify(cloneData));
|
|
InvoiceorderSearch({
|
cocLwc: this.coc,
|
invoiceIdLwc: this.invoiceId,
|
accountidLwc: this.accountid,
|
userWorkLocationLwc: this.userWorkLocation,
|
agencyProTypeLwc: this.agencyProType,
|
HospitalInfoLwc: this.HospitalInfo,
|
SecondDealerLwc: this.secondaryDistributor,
|
invoiceOrderRecoedsLwc: JSON.stringify(cloneData),
|
}).then((r) => {
|
r = JSON.parse(JSON.stringify(r));
|
console.log("r = " + JSON.stringify(r));
|
if (r.status == "Success") {
|
this.outboundData = r.entity.invoiceOrderRecoeds;
|
console.log('this.outboundData = ' + JSON.stringify(this.outboundData));
|
let index = 0;
|
this.selectedRows = [];
|
for (var i in this.outboundData) {
|
|
if(this.outboundData[i].check)
|
this.selectedRows.push(this.outboundData[i].esd.Id)
|
this.outboundData[i].Id = this.outboundData[i].esd.Id;
|
this.outboundData[i]['esdOutboundDate'] = this.outboundData[i].esd.Outbound_Date__c;
|
this.outboundData[i]['esdNameUrl'] = '/s/lexsummonscreat?ESetid=' + this.outboundData[i].esd.Id;
|
this.outboundData[i]['esdName'] = this.outboundData[i].esd.Name;
|
if (this.EditAble) {
|
this.outboundData[i]['hospitalName'] = this.outboundData[i].esd.ShipmentAccount__c;
|
this.outboundData[i]['shipmentAmount'] = this.outboundData[i].esd.Shipment_total_amount__c;
|
this.outboundData[i]['returnAmount'] = this.outboundData[i].esd.RrturnPro_total_amount__c;
|
}
|
this.outboundData[i]['uninvoicedAmount'] = this.outboundData[i].esd.InvoiceNotPro_money__c;
|
this.outboundData[i]['invoiceFaceAmount'] = this.outboundData[i].needInvoiceCount;
|
if (!(this.outboundData[i].esd.Billed_Status__c == '全部开票' || this.EditAble || this.coc.Invoice_status__c != '草案中')) {
|
//let url = "/ConInvoicedetails?orderId=" + this.outboundData[i].esd.Id + "&invoiceId=" + this.invoiceId;
|
let url = "/s/lexconinvoiceview?orderId=" + this.outboundData[i].esd.Id + "&invoiceId=" + this.invoiceId;
|
this.outboundData[i]['invoiceFaceAmountUrl'] = url;
|
|
if (index == 0) {
|
let object5 = {
|
label: '发票票面金额(元)',
|
cellAttributes: { alignment: 'right' },
|
type: 'url',
|
fieldName: "invoiceFaceAmountUrl",
|
typeAttributes: {
|
label: { fieldName: "invoiceFaceAmount" },
|
target: "_blank",
|
},
|
hideDefaultActions: true,
|
};
|
this.outboundColumns.push(object5)
|
index++;
|
}
|
} else {
|
if (index == 0) {
|
let object5 = {
|
label: '发票票面金额(元)',
|
cellAttributes: { alignment: 'right' },
|
fieldName: "invoiceFaceAmount",
|
hideDefaultActions: true,
|
};
|
this.outboundColumns.push(object5)
|
index++;
|
}
|
}
|
//计算发票票面金额
|
this.sumPrice += this.outboundData[i].needInvoiceCount;
|
}
|
console.log('this.selectedRows = ' + JSON.stringify(this.selectedRows))
|
this.isShowSpinner = false;
|
} else {
|
this.showMyToast('搜索失败', r.msg, 'Error');
|
}
|
}).catch((error) => {
|
console.log("error = " + error.message);
|
this.showMyToast('错误', '搜索失败', 'Error');
|
});
|
}
|
|
getSelectedRows(event) {
|
// console.log("getSelectedRows ");
|
// for (var i in this.outboundData) {
|
// this.outboundData[i].check = false;
|
// }
|
// const selectedRows = event.detail.selectedRows;
|
// for (var i in this.outboundData) {
|
// for (var j in selectedRows) {
|
// if (this.outboundData[i].esd.Id == selectedRows[j].esd.Id) {
|
// //this.outboundData[i].check = !this.outboundData[i].check;
|
// this.outboundData[i].check = true;
|
// }
|
// }
|
// }
|
// console.log('this.outboundData = ' + JSON.stringify(this.outboundData));
|
}
|
|
deleteButtonJs() {
|
this.isShowSpinner = true;
|
deleteButton({
|
cocLwc: this.coc,
|
invoiceIdLwc: this.invoiceId,
|
}).then((r) => {
|
r = JSON.parse(JSON.stringify(r));
|
console.log("r = " + JSON.stringify(r));
|
if (r.status == "Success") {
|
this.isShowSpinner = false
|
let url = "/lexconinvoiceview";
|
console.log('url = ' + url);
|
this[NavigationMixin.Navigate]({
|
type: "standard__webPage",
|
attributes: {
|
url: url,
|
},
|
});
|
} else {
|
this.showMyToast('删除失败', r.msg, 'Error');
|
}
|
}).catch((error) => {
|
console.log("error = " + error.message);
|
});
|
}
|
|
SetEditAbleJs() {
|
let statusEditAbleJs = 'Redirect';
|
let url = "/lexconinvoiceview?invoiceId=" + this.invoiceId + '&KeyWords=' + statusEditAbleJs;
|
console.log('url = ' + url);
|
this[NavigationMixin.Navigate]({
|
type: "standard__webPage",
|
attributes: {
|
url: url,
|
},
|
});
|
}
|
|
approvalJs() {
|
this.isShowSpinner = true;
|
approval({
|
outOrderStringListLwc: this.outOrderStringListLwc,
|
outordercountMapLwc: this.outordercountMapLwc,
|
invoiceIdLwc: this.invoiceId
|
|
}).then((r) => {
|
r = JSON.parse(JSON.stringify(r));
|
console.log("r = " + JSON.stringify(r));
|
if (r.status == "Success") {
|
this.isShowSpinner = false
|
let url = "/s/lexconinvoiceview?invoiceId=" + this.invoiceId;
|
console.log('url = ' + url);
|
window.open(url, '_self');
|
// this[NavigationMixin.Navigate]({
|
// type: "standard__webPage",
|
// attributes: {
|
// url: url,
|
// },
|
// });
|
} else {
|
this.showMyToast('错误', r.msg, 'Error');
|
}
|
}).catch((error) => {
|
console.log("error = " + error.message);
|
});
|
}
|
|
openReportJs() {
|
console.log("openReportJs");
|
let reportUrl = this.label.LexConInvoiceViewReport;
|
let reportFilters = '[{"operator":"equals","value":"' + this.OrderCode + '","column":"FK_NAME"}]';
|
console.log('reportUrl = ' + reportUrl);
|
let url = "/report/"+ reportUrl +"?reportFilters=" + encodeURIComponent(reportFilters);
|
this[NavigationMixin.Navigate]({
|
type: "standard__webPage",
|
attributes: {
|
url: url,
|
},
|
});
|
}
|
|
reopenJs() {
|
// statusEdit = 'Redirect';
|
// PageReference ref = new Pagereference('/ConInvoiceView?invoiceId=' + invoiceId + '&reopen=isreopen' + '&KeyWords=' + statusEdit);
|
let statusEditAbleJs = 'Redirect';
|
let url = "/lexconinvoiceview?invoiceId=" + this.invoiceId + '&reopen=isreopen' + '&KeyWords=' + statusEditAbleJs;
|
console.log('url = ' + url);
|
this[NavigationMixin.Navigate]({
|
type: "standard__webPage",
|
attributes: {
|
url: url,
|
},
|
});
|
}
|
|
showMyToast(title, message, variant) {
|
this.isShowSpinner = false;
|
this.showLoadingSpinner = false;
|
this.showAttPop = false;
|
this.filesUploaded = [];
|
this.fileName = null;
|
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);
|
}
|
|
handleLoad() {
|
console.log('handleLoad')
|
try {
|
const style = document.createElement('style');
|
style.innerText = '.hehe-layoutItem .slds-button__icon {display: none;}';
|
this.template.querySelector('.hideHelpText').appendChild(style);
|
|
const style2 = document.createElement('style');
|
style2.innerText = '.hehe-layoutItem .slds-form-element__label {padding : 0px}';
|
this.template.querySelector('.hideHelpText').appendChild(style2);
|
|
const style3 = document.createElement('style');
|
style3.innerText = '.readOnly .slds-form-element__label {padding-top: 7px;}';
|
this.template.querySelector('.hideHelpText').appendChild(style3);
|
} catch (error) {
|
console.log(error);
|
}
|
}
|
|
keepTwoDecimalStr(num) {
|
const result = Number(num.toString().match(/^\d+(?:\.\d{0,2})?/));
|
let s = result.toString();
|
let rs = s.indexOf('.');
|
if (rs < 0) {
|
rs = s.length;
|
s += '.';
|
}
|
while (s.length <= rs + 2) {
|
s += '0';
|
}
|
return s;
|
};
|
|
handleLoad2() {
|
console.log('handleLoad2')
|
try {
|
const style = document.createElement('style');
|
style.innerText = '.hehe-layoutItem .slds-button__icon {display: none;}';
|
this.template.querySelector('.hideHelpText').appendChild(style);
|
|
const style2 = document.createElement('style');
|
style2.innerText = '.hehe-layoutItem .slds-form-element__label {padding : 0px}';
|
this.template.querySelector('.hideHelpText').appendChild(style2);
|
} catch (error) {
|
console.log(error);
|
}
|
}
|
|
handleUnitChange(event) {
|
console.log("handleUnitChange");
|
this.invoiceAllpriceData[0].invoiceAllprice = 0.00;
|
const unitDetail = event.detail;
|
console.log("unitDetail = " + JSON.stringify(unitDetail));
|
for (var i in this.detailsData) {
|
if (this.detailsData[i].recordId == unitDetail.data.recordId) {
|
this.detailsData[i].unitValue = unitDetail.data.unitValue;
|
this.detailsData[i].esd.Invoice_Unit__c = unitDetail.data.unitValue;
|
if (this.detailsSelectedRows.indexOf(this.detailsData[i].recordId) == -1)
|
this.detailsSelectedRows.push(this.detailsData[i].recordId);
|
}
|
}
|
this.detailsSelectedRows = [...this.detailsSelectedRows];
|
|
|
console.log('this.detailsSelectedRows = ' + JSON.stringify(this.detailsSelectedRows))
|
for (var i in this.detailsData) {
|
this.detailsData[i].invoiceAllprice = 0.00;
|
for (var j in this.detailsSelectedRows) {
|
console.log('this.detailsData[i].Id = ' + this.detailsData[i].Id);
|
console.log('this.detailsSelectedRows[j] = ' + this.detailsSelectedRows[j]);
|
if (this.detailsData[i].Id == this.detailsSelectedRows[j]) {
|
this.detailsData[i].invoiceAllprice = this.amend(this.detailsData[i].shipmentNumber, this.detailsData[i].esdInvoiceUnitprice, '*');
|
console.log('this.detailsData[i].invoiceAllprice = ' + this.detailsData[i].invoiceAllprice);
|
}
|
}
|
this.invoiceAllpriceData[0].invoiceAllprice = this.amend(this.invoiceAllpriceData[0].invoiceAllprice, this.detailsData[i].invoiceAllprice, '+');
|
}
|
this.detailsData = [...this.detailsData];
|
this.invoiceAllpriceData = [...this.invoiceAllpriceData];
|
}
|
|
handleShipmentNumber(event) {
|
console.log("handleShipmentNumber");
|
this.invoiceAllpriceData[0].invoiceAllprice = 0.00;
|
const numberDetail = event.detail;
|
console.log('numberDetail = ' + JSON.stringify(numberDetail))
|
if (numberDetail.data.shipmentnumber == 0) {
|
if (this.detailsSelectedRows.indexOf(numberDetail.data.recordId) != -1) {
|
this.detailsSelectedRows.splice(this.detailsSelectedRows.indexOf(numberDetail.data.recordId), 1);
|
}
|
}
|
console.log("start this.detailsSelectedRows = " + JSON.stringify(this.detailsSelectedRows));
|
console.log("numberDetail = " + JSON.stringify(numberDetail));
|
for (var i in this.detailsData) {
|
if (this.detailsData[i].recordId == numberDetail.data.recordId) {
|
this.detailsData[i].shipmentNumber = Number(numberDetail.data.shipmentnumber);
|
this.detailsData[i].invoiceCount = Number(numberDetail.data.shipmentnumber);
|
if (this.detailsSelectedRows.indexOf(this.detailsData[i].recordId) == -1 && numberDetail.data.shipmentnumber != 0)
|
this.detailsSelectedRows.push(this.detailsData[i].recordId);
|
}
|
}
|
|
console.log("end this.detailsSelectedRows = " + JSON.stringify(this.detailsSelectedRows));
|
this.detailsSelectedRows = [...this.detailsSelectedRows];
|
|
|
console.log('this.detailsSelectedRows = ' + JSON.stringify(this.detailsSelectedRows));
|
for (var i in this.detailsData) {
|
this.detailsData[i].invoiceAllprice = 0.00;
|
for (var j in this.detailsSelectedRows) {
|
console.log('this.detailsData[i].Id = ' + this.detailsData[i].Id);
|
console.log('this.detailsSelectedRows[j] = ' + this.detailsSelectedRows[j]);
|
if (this.detailsData[i].Id == this.detailsSelectedRows[j]) {
|
this.detailsData[i].invoiceAllprice = this.amend(this.detailsData[i].shipmentNumber, this.detailsData[i].esdInvoiceUnitprice, '*');
|
console.log('this.detailsData[i].invoiceAllprice = ' + this.detailsData[i].invoiceAllprice);
|
}
|
}
|
this.invoiceAllpriceData[0].invoiceAllprice = this.amend(this.invoiceAllpriceData[0].invoiceAllprice, this.detailsData[i].invoiceAllprice, '+');
|
}
|
this.detailsData = [...this.detailsData];
|
this.invoiceAllpriceData = [...this.invoiceAllpriceData];
|
}
|
|
detailsGetSelectedRows(event) {
|
console.log("detailsGetSelectedRows ");
|
this.invoiceAllpriceData[0].invoiceAllprice = 0.00;
|
let selectedRows = event.detail.selectedRows;
|
for (var i in this.detailsData) {
|
this.detailsData[i].invoiceAllprice = 0.00;
|
for (var j in selectedRows) {
|
if (this.detailsData[i].Id == selectedRows[j].esd.Id) {
|
this.detailsData[i].invoiceAllprice = this.amend(this.detailsData[i].shipmentNumber, this.detailsData[i].esdInvoiceUnitprice, '*');
|
console.log('this.detailsData[i].invoiceAllprice = ' + this.detailsData[i].invoiceAllprice);
|
}
|
}
|
this.invoiceAllpriceData[0].invoiceAllprice = this.amend(this.invoiceAllpriceData[0].invoiceAllprice, this.detailsData[i].invoiceAllprice, '+');
|
console.log('this.invoiceAllpriceData[0].invoiceAllprice = ' + this.invoiceAllpriceData[0].invoiceAllprice);
|
}
|
console.log('start this.detailsData = ' + JSON.stringify(this.detailsData));
|
this.detailsData = [...this.detailsData];
|
console.log('end this.detailsData = ' + JSON.stringify(this.detailsData));
|
this.invoiceAllpriceData = [...this.invoiceAllpriceData];
|
}
|
|
ComputePrice(index, number, price) {
|
console.log("index = " + index);
|
console.log("number = " + number);
|
console.log("price = " + price);
|
let shipmentAmount = this.amend(number, price, "*");
|
console.log("shipmentAmount = " + shipmentAmount);
|
let sumPrice = 0.0;
|
this.data[index].shipmentAmount = shipmentAmount;
|
for (var i in this.data) {
|
if (this.data[i].shipmentAmount) sumPrice += this.data[i].shipmentAmount;
|
}
|
this.sumPrice = sumPrice + "元";
|
//存下选择行,不会被清空
|
if (this.selectedRows.indexOf(this.data[index].Id) == -1)
|
this.selectedRows.push(this.data[index].Id);
|
this.data = [...this.data];
|
this.selectedRows = [...this.selectedRows]
|
console.log("this.selectedRows = " + JSON.stringify(this.selectedRows));
|
console.log("this.data = " + JSON.stringify(this.data));
|
}
|
|
detailsSaveJs() {
|
this.isShowSpinner = true;
|
let cloneData = this.detailsData;
|
|
let selectedRows = this.template.querySelector('c-lex-custom-lightning-datatable').getSelectedRows();
|
console.log('selectedRows = ' + JSON.stringify(selectedRows));
|
|
for (var i in cloneData) {
|
delete cloneData[i].Id;
|
delete cloneData[i].esdAssetModelNo;
|
delete cloneData[i].packingListManual;
|
delete cloneData[i].esdDeliveryListRMB;
|
delete cloneData[i].esdShipmentCount;
|
delete cloneData[i].esdRrturnProCount;
|
delete cloneData[i].esdBoxPiece;
|
delete cloneData[i].esdInvoicedProcount;
|
delete cloneData[i].esdInvoiceProNotCount;
|
delete cloneData[i].unitValue;
|
delete cloneData[i].recordId;
|
delete cloneData[i].unitOptions;
|
delete cloneData[i].esdInvoiceUnitprice;
|
delete cloneData[i].shipmentNumber;
|
delete cloneData[i].invoiceAllprice;
|
for (var j in selectedRows) {
|
if (cloneData[i].esd.Id == selectedRows[j].esd.Id) {
|
cloneData[i]['check'] = true;
|
}
|
}
|
}
|
console.log('cloneData = ' + JSON.stringify(cloneData));
|
|
|
|
detailsSave({
|
consumableorderdetails1RecordsLwc: JSON.stringify(cloneData),
|
invoiceIdLwc: this.invoiceId,
|
orderIdLwc: this.orderId
|
}).then((r) => {
|
r = JSON.parse(JSON.stringify(r));
|
console.log("r = " + JSON.stringify(r));
|
if (r.status == "Success") {
|
let url = "/lexconinvoiceview?invoiceId=" + this.invoiceId;
|
this[NavigationMixin.Navigate]({
|
type: "standard__webPage",
|
attributes: {
|
url: url,
|
},
|
});
|
} else {
|
this.showMyToast('保存失败', r.msg, 'Error');
|
}
|
}).catch((error) => {
|
console.log("error = " + error.message);
|
});
|
}
|
|
//num1 num2传入两个值 symbol +-*/符号
|
amend(num1, num2, symbol) {
|
var str1 = num1.toString(),
|
str2 = num2.toString(),
|
result,
|
str1Length,
|
str2Length;
|
//解决整数没有小数点方法
|
try {
|
str1Length = str1.split(".")[1].length;
|
} catch (error) {
|
str1Length = 0;
|
}
|
try {
|
str2Length = str2.split(".")[1].length;
|
} catch (error) {
|
str2Length = 0;
|
}
|
var step = Math.pow(10, Math.max(str1Length, str2Length));
|
switch (symbol) {
|
case "+":
|
result = (num1 * step + num2 * step) / step;
|
break;
|
case "-":
|
result = (num1 * step - num2 * step) / step;
|
break;
|
case "*":
|
result = (num1 * step * (num2 * step)) / step / step;
|
break;
|
case "/":
|
result = (num1 * step) / (num2 * step);
|
break;
|
default:
|
break;
|
}
|
return result;
|
}
|
|
//删除附件
|
deleteAtt(event) {
|
this.isShowSpinner = true;
|
//var recordId = event.detail.data.recordId;
|
var recordId = event.target.getAttribute("data-fileid");
|
console.log('attid:' + recordId);
|
deleteAtt({
|
contentVersionId: recordId
|
}).then(result => {
|
if (result.result == 'Success') {
|
this.showMyToast('删除成功', '', 'Success');
|
if (this.fileData.length == 1)
|
window.location.reload();
|
else
|
this.init();
|
} else {
|
this.showMyToast('删除失败', result.errorMsg, 'Error');
|
}
|
}).catch(error => {
|
this.showMyToast('错误', '删除失败', 'Error');
|
})
|
}
|
}
|