From 3962c2bb0435484b60a3e408e4738d792e249a53 Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期一, 05 六月 2023 11:09:55 +0800
Subject: [PATCH] LEX CommunityNewCmp

---
 force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.js | 1764 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,764 insertions(+), 0 deletions(-)

diff --git a/force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.js b/force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.js
new file mode 100644
index 0000000..0c4122c
--- /dev/null
+++ b/force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.js
@@ -0,0 +1,1764 @@
+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);
+                    }
+                    //鍑鸿揣涓�瑙坈olumns
+
+
+                    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)
+
+                    //鍑鸿揣涓�瑙圖ata
+                    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;
+    }
+
+    //褰撳鎴峰悕鏄┖鏃躲�傚鎴穒d涔熷彉涓虹┖
+    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;
+        //瑙e喅鏁存暟娌℃湁灏忔暟鐐规柟娉�
+        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');
+        })
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.1