buli
2023-07-14 5b5c1e16deaa3a9d6d0ed1ffca390655ed103df7
force-app/main/default/lwc/lexOverdueStock/lexOverdueStock.js
@@ -4,397 +4,350 @@
import save from '@salesforce/apex/LexOverdueStockController.save';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { NavigationMixin } from 'lightning/navigation';
//table css
import { loadStyle } from 'lightning/platformResourceLoader';
import WrappedHeaderTable from '@salesforce/resourceUrl/lexdatatable';
//table css
import { loadStyle } from "lightning/platformResourceLoader";
import WrappedHeaderTable from "@salesforce/resourceUrl/lexdatatable";
//过期库存一览
const columns = [
    {
        label: '是否销存',
        fieldName: 'iscount',
        type: 'checkbox',
        hideDefaultActions: true,
        initialWidth: 80
    },
    {
        label: '消耗品名称',
        fieldName: 'prodname',
        type: 'prodname',
        wrapText: true,
        initialWidth: 350,
  {
    label: '是否销存',
    fieldName: 'iscount',
    type: 'checkbox',
    hideDefaultActions: true,
    initialWidth: 80,
  },
  {
    label: '消耗品名称',
    fieldName: 'prodname',
    type: 'prodname',
    wrapText: true,
    initialWidth: 350,
        hideDefaultActions: true
    },
    {
        label: '单位',
        fieldName: 'boxPiece',
        hideDefaultActions: true
        // initialWidth: 250,
    },
    {
        label: '过期数量',
        fieldName: 'overlimitCount',
        hideDefaultActions: true,
        cellAttributes: { alignment: 'right' }
    hideDefaultActions: true
        // initialWidth: 250,
    },
    {
        label: '销存数量',
        fieldName: 'pandian',
        hideDefaultActions: true,
        cellAttributes: { alignment: 'right' }
        // initialWidth: 250,
        //   cellAttributes: { alignment: 'center' }
    }
  },
  {
    label: '单位',
    fieldName: 'boxPiece',
    hideDefaultActions: true,
    // initialWidth: 250,
  },
  {
    label: '过期数量',
    fieldName: 'overlimitCount',
    hideDefaultActions: true,
    cellAttributes: { alignment: 'right' }
    // initialWidth: 250,
  },
  {
    label: '销存数量',
    fieldName: 'pandian',
    hideDefaultActions: true,
    cellAttributes: { alignment: 'right' }
    // initialWidth: 250,
    //   cellAttributes: { alignment: 'center' }
  }
];
//销存明细
const column = [
    {
        label: '消耗品名称',
        fieldName: 'Name__c',
        type: 'Name',
        wrapText: true,
        // initialWidth : 300,
        hideDefaultActions: true,
        cellAttributes: { alignment: 'left' }
    },
    {
        label: '单位',
        fieldName: 'Box_Piece__c',
        initialWidth: 80,
        hideDefaultActions: true
    },
    {
        label: 'BarCode',
        fieldName: 'Bar_Code__c',
        wrapText: true,
        hideDefaultActions: true
        // initialWidth: 500,
    },
    {
        label: '使用期限',
        fieldName: 'Sterilization_limit__c',
        hideDefaultActions: true
        // initialWidth : 250
    },
    {
        label: '销存原因',
        fieldName: 'diffReason',
        hideDefaultActions: true,
        wrapText: true,
        initialWidth: 160
    }
  {
    label: '消耗品名称',
    fieldName: 'Name__c',
    type: 'Name',
    wrapText: true,
    // initialWidth : 300,
    hideDefaultActions: true,
    cellAttributes: { alignment: 'left' }
  },
  {
    label: '单位',
    fieldName: 'Box_Piece__c',
    initialWidth: 80,
    hideDefaultActions: true
  },
  {
    label: 'BarCode',
    fieldName: 'Bar_Code__c',
    wrapText: true,
    hideDefaultActions: true,
    // initialWidth: 500,
  },
  {
    label: '使用期限',
    fieldName: 'Sterilization_limit__c',
    hideDefaultActions: true,
    // initialWidth : 250
  }
  ,
  {
    label: '销存原因',
    fieldName: 'diffReason',
    hideDefaultActions: true,
    wrapText: true,
    initialWidth: 160
  }
];
export default class LexOverdueStock extends NavigationMixin(LightningElement) {
    columns = columns;
    column = column;
    @track data = [];
    @track overduePageRecords = [];
    @track iSinventory = false;
  columns = columns
  column = column
  @track data = [];
  @track overduePageRecords = [];
  @track iSinventory = false
    //加载框
    // @track casesSpinner = true;
    @track showSpinner = true;
    //显示口
    @track showbutton = false;
    @track showTable = false;
    @track showTables = false;
    //销存一览数据
    @track accountName;
    @track agencyProType;
    @track userWorkLocation;
    @track barcode = '';
    @track orderDetZaiku;
    @track selectedRows = [];
    @track codPageRecordsLWC;
    @track Id;
    @track overdueList = [];
    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');
                });
        }
    }
  //加载框
  // @track casesSpinner = true;
  @track showSpinner = true;
  //显示口
  @track showbutton = false
  @track showTable = false;
  @track showTables = false;
  //销存一览数据
  @track accountName;
  @track agencyProType;
  @track userWorkLocation;
  @track barcode = ''
  @track orderDetZaiku
  @track selectedRows = [];
  @track codPageRecordsLWC;
  @track Id;
  @track overdueList = [];
    //初始化
    connectedCallback() {
        console.log('初始化');
        this.showSpinner = true;
        init()
            .then((result) => {
                result = JSON.parse(JSON.stringify(result));
                console.log('result =' + JSON.stringify(result));
                console.log('result 1=' + result.entity.codPageRecords);
                if ((result.status = 'Success')) {
                    this.data = JSON.parse(result.entity.codPageRecords);
                    this.codPageRecordsLWC = result.entity.codPageRecords;
                    console.log('this.data' + this.data);
                    this.accountName = result.entity.accountName;
                    this.agencyProType = result.entity.agencyProType;
                    this.userWorkLocation = result.entity.userWorkLocation;
                    for (var i in this.data) {
                        this.data[i]['key'] =
                            this.data[i]['prodid'] + this.data[i]['boxPiece'];
                    }
                    this.showTable = true;
                    // this.casesSpinner = false;
                    this.showSpinner = false;
                } else {
                    this.showMyToast('初始化失败', result.msg, 'error');
                    this.showSpinner = false;
                }
            })
            .catch((error) => {
                console.log('error = ' + JSON.stringify(error));
                this.showSpinner = false;
            });
    }
    //barcode录入
    barcodeEntrys() {
        this.showSpinner = true;
        this.showTable = false;
        console.log('code' + this.barcode);
        console.log(' this.accountName' + this.accountName);
        console.log(' this.barcode' + this.barcode);
        const selectedRows = this.template
            .querySelector('c-lex-custom-lightning-datatable')
            .getSelectedRows();
        console.log('selectedRows========> ' + JSON.stringify(selectedRows));
        for (var i in this.data) {
            this.data[i]['check'] = false;
        }
        for (var i in this.data) {
            for (var j in selectedRows) {
                if (
                    this.data[i].prodid + this.data[i]['boxPiece'] ==
                    selectedRows[j].prodid + selectedRows[j]['boxPiece']
                ) {
                    this.data[i]['check'] = true;
                }
            }
        }
        barcodeEntry({
            accountNameLWC: this.accountName,
            agencyProTypeLWC: this.agencyProType,
            userWorkLocationLWC: this.userWorkLocation,
            barcodeLWC: this.barcode,
            codPageRecordsLWC: JSON.stringify(this.data)
  renderedCallback() {
    if (!this.stylesLoaded) {
      Promise.all([loadStyle(this, WrappedHeaderTable)])
        .then(() => {
          console.log("Custom styles loaded");
          this.stylesLoaded = true;
        })
            .then((result) => {
                result = JSON.parse(JSON.stringify(result));
                if (result.status == 'Success') {
                    this.overduePageRecords = JSON.parse(
                        result.entity.overduePageRecords
                    );
                    this.overdueList = result.entity.overdueList;
                    this.iSinventory = result.entity.iSinventory;
                    console.log('result录入' + JSON.stringify(result));
                    console.log(
                        'overdueList==>' + JSON.stringify(this.overdueList)
                    );
                    for (let i in this.overduePageRecords) {
                        if (this.overduePageRecords[i].Prod != null) {
                            this.overduePageRecords[i]['Name__c'] =
                                this.overduePageRecords[i].Prod.Name__c;
                        }
                        this.overduePageRecords[i]['Bar_Code__c'] =
                            this.overduePageRecords[
                                i
                            ].orderdetails2.Bar_Code__c;
                        this.overduePageRecords[i]['Box_Piece__c'] =
                            this.overduePageRecords[
                                i
                            ].orderdetails2.Box_Piece__c;
                        this.overduePageRecords[i]['Sterilization_limit__c'] =
                            this.overduePageRecords[
                                i
                            ].orderdetails2.Sterilization_limit__c;
                    }
                    this.data = JSON.parse(result.entity.codPageRecords);
                    console.log(' this.data' + JSON.stringify(this.data));
                    for (var i in this.data) {
                        this.data[i]['key'] =
                            this.data[i]['prodid'] + this.data[i]['boxPiece'];
                    }
                    for (var i in this.data) {
                        if (this.data[i]['check']) {
                            this.selectedRows.push(
                                this.data[i].prodid + this.data[i]['boxPiece']
                            );
                            console.log('selectedRows:' + this.selectedRows);
                        }
                    }
                    this.showSpinner = false;
                    this.showTable = true;
                } else {
                    if (result.status == 'Success1') {
                        this.overduePageRecords = JSON.parse(
                            result.entity.overduePageRecords
                        );
                        this.overdueList = result.entity.overdueList;
                        this.iSinventory = result.entity.iSinventory;
                        console.log('result录入' + JSON.stringify(result));
                        console.log(
                            'overdueList==>' + JSON.stringify(this.overdueList)
                        );
                        for (let i in this.overduePageRecords) {
                            if (this.overduePageRecords[i].Prod != null) {
                                this.overduePageRecords[i]['Name__c'] =
                                    this.overduePageRecords[i].Prod.Name__c;
                            }
                            this.overduePageRecords[i]['Bar_Code__c'] =
                                this.overduePageRecords[
                                    i
                                ].orderdetails2.Bar_Code__c;
                            this.overduePageRecords[i]['Box_Piece__c'] =
                                this.overduePageRecords[
                                    i
                                ].orderdetails2.Box_Piece__c;
                            this.overduePageRecords[i][
                                'Sterilization_limit__c'
                            ] =
                                this.overduePageRecords[
                                    i
                                ].orderdetails2.Sterilization_limit__c;
                        }
                        this.data = JSON.parse(result.entity.codPageRecords);
                        console.log(' this.data' + JSON.stringify(this.data));
                        for (var i in this.data) {
                            this.data[i]['key'] =
                                this.data[i]['prodid'] +
                                this.data[i]['boxPiece'];
                        }
                        for (var i in this.data) {
                            if (this.data[i]['check']) {
                                this.selectedRows.push(
                                    this.data[i].prodid +
                                        this.data[i]['boxPiece']
                                );
                                console.log(
                                    'selectedRows:' + this.selectedRows
                                );
                            }
                        }
                        this.showSpinner = false;
                        // this.showTables = true;
                        this.showTable = true;
                    } else {
                        console.log('Error:' + result.msg);
                        this.showMyToast(result.msg, '', 'error');
                        this.showSpinner = false;
                        this.showTable = true;
                    }
        .catch((error) => {
          console.error("Error loading custom styles");
        });
    }
  }
                    // this.showMyToast('获取失败', result.msg, 'error');
                    // this.showSpinner = false;
                }
            })
            .catch((error) => {
                this.showSpinner = false;
                console.log('error = ' + JSON.stringify(error));
            });
    }
    //获取当前输入值
    handleChange(event) {
        let value = event.detail.value;
        console.log('value' + value);
        this.barcode = value;
        console.log('this.barcode' + this.barcode);
    }
    getSelectedRows(event) {
        let selectedRowsEvent = event.detail.selectedRows;
        this.selectedRows = [];
        for (var i in selectedRowsEvent) {
            this.selectedRows.push(
                selectedRowsEvent[i].prodid + this.data[i]['boxPiece']
            );
        }
        console.log('this.selectedRows==>' + this.selectedRows);
    }
    //保存
    saveConfirm() {
        console.log('进入销存确认');
        this.showSpinner = true;
        //查询有哪些选择了的然后check
        const selectedRows = this.template
            .querySelector('c-lex-custom-lightning-datatable')
            .getSelectedRows();
        console.log('selectedRows========> ' + JSON.stringify(selectedRows));
  //初始化
  connectedCallback() {
    console.log('初始化');
    this.showSpinner = true;
    init().then((result) => {
      result = JSON.parse(JSON.stringify(result));
      console.log('result =' + JSON.stringify(result));
      console.log('result 1=' + result.entity.codPageRecords);
      if (result.status = 'Success') {
        this.data = JSON.parse(result.entity.codPageRecords);
        this.codPageRecordsLWC = result.entity.codPageRecords;
        console.log('this.data' + this.data);
        this.accountName = result.entity.accountName;
        this.agencyProType = result.entity.agencyProType;
        this.userWorkLocation = result.entity.userWorkLocation;
        for (var i in this.data) {
            this.data[i]['check'] = false;
          this.data[i]["key"] = this.data[i]["prodid"] + this.data[i]["boxPiece"];
        }
        this.showTable = true;
        // this.casesSpinner = false;
        this.showSpinner = false;
      } else {
        this.showMyToast('初始化失败', result.msg, 'error');
        this.showSpinner = false;
      }
    }).catch((error) => {
      console.log('error = ' + JSON.stringify(error));
      this.showSpinner = false;
    });
  }
  //barcode录入
  barcodeEntrys() {
    this.showSpinner = true;
    this.showTable = false;
    console.log('code' + this.barcode);
    console.log(' this.accountName' + this.accountName);
    console.log(' this.barcode' + this.barcode);
    const selectedRows = this.template.querySelector('c-lex-custom-lightning-datatable').getSelectedRows();
    console.log('selectedRows========> ' + JSON.stringify(selectedRows));
    for (var i in this.data) {
      this.data[i]["check"] = false;
    }
    for (var i in this.data) {
      for (var j in selectedRows) {
        if (this.data[i].prodid + this.data[i]["boxPiece"] == selectedRows[j].prodid + selectedRows[j]["boxPiece"]) {
          this.data[i]["check"] = true;
        }
      }
    }
    barcodeEntry({
      accountNameLWC: this.accountName,
      agencyProTypeLWC: this.agencyProType,
      userWorkLocationLWC: this.userWorkLocation,
      barcodeLWC: this.barcode,
      codPageRecordsLWC:  JSON.stringify(this.data)
    }).then((result) => {
      result = JSON.parse(JSON.stringify(result));
      if (result.status == 'Success') {
        this.overduePageRecords = JSON.parse(result.entity.overduePageRecords);
        this.overdueList = result.entity.overdueList;
        this.iSinventory = result.entity.iSinventory;
        console.log('result录入' + JSON.stringify(result));
        console.log('overdueList==>' + JSON.stringify(this.overdueList));
        for (let i in this.overduePageRecords) {
          if (this.overduePageRecords[i].Prod != null) {
            this.overduePageRecords[i]['Name__c'] = this.overduePageRecords[i].Prod.Name__c;
          }
          this.overduePageRecords[i]['Bar_Code__c'] = this.overduePageRecords[i].orderdetails2.Bar_Code__c;
          this.overduePageRecords[i]['Box_Piece__c'] = this.overduePageRecords[i].orderdetails2.Box_Piece__c;
          this.overduePageRecords[i]['Sterilization_limit__c'] = this.overduePageRecords[i].orderdetails2.Sterilization_limit__c;
        }
        this.data = JSON.parse(result.entity.codPageRecords);
        console.log(' this.data' + JSON.stringify(this.data));
        for (var i in this.data) {
          this.data[i]["key"] = this.data[i]["prodid"] + this.data[i]["boxPiece"];
        }
        for (var i in this.data) {
            for (var j in selectedRows) {
                if (
                    this.data[i].prodid + this.data[i]['boxPiece'] ==
                    selectedRows[j].prodid + selectedRows[j]['boxPiece']
                ) {
                    this.data[i]['check'] = true;
                }
          if (this.data[i]['check']) {
            this.selectedRows.push(this.data[i].prodid + this.data[i]["boxPiece"]);
            console.log("selectedRows:" + this.selectedRows);
          }
        }
        this.showSpinner = false;
        this.showTable = true;
      } else {
        if (result.status == 'Success1') {
          this.overduePageRecords = JSON.parse(result.entity.overduePageRecords);
          this.overdueList = result.entity.overdueList;
          this.iSinventory = result.entity.iSinventory;
          console.log('result录入' + JSON.stringify(result));
          console.log('overdueList==>' + JSON.stringify(this.overdueList));
          for (let i in this.overduePageRecords) {
            if (this.overduePageRecords[i].Prod != null) {
              this.overduePageRecords[i]['Name__c'] = this.overduePageRecords[i].Prod.Name__c;
            }
            this.overduePageRecords[i]['Bar_Code__c'] = this.overduePageRecords[i].orderdetails2.Bar_Code__c;
            this.overduePageRecords[i]['Box_Piece__c'] = this.overduePageRecords[i].orderdetails2.Box_Piece__c;
            this.overduePageRecords[i]['Sterilization_limit__c'] = this.overduePageRecords[i].orderdetails2.Sterilization_limit__c;
          }
          this.data = JSON.parse(result.entity.codPageRecords);
          console.log(' this.data' + JSON.stringify(this.data));
          for (var i in this.data) {
            this.data[i]["key"] = this.data[i]["prodid"] + this.data[i]["boxPiece"];
          }
          for (var i in this.data) {
            if (this.data[i]['check']) {
              this.selectedRows.push(this.data[i].prodid + this.data[i]["boxPiece"]);
              console.log("selectedRows:" + this.selectedRows);
            }
          }
          this.showSpinner = false;
          // this.showTables = true;
          this.showTable = true;
        }else {
          console.log('Error:' + result.msg);
          this.showMyToast(result.msg,'','error');
          this.showSpinner = false;
          this.showTable = true;
        }
        save({
            iSinventory: this.iSinventory,
            saveCodPageRecords: JSON.stringify(this.data),
            // saveoverdueList:JSON.stringify(this.overdueList)
            saveoverdueList: this.overdueList
        })
            .then((result) => {
                result = JSON.parse(JSON.stringify(result));
                console.log('result保存 = ' + JSON.stringify(result));
                if (result.status == 'Success') {
                    this[NavigationMixin.Navigate]({
                        type: 'standard__recordPage',
                        attributes: {
                            recordId: result.entity.Id,
                            objectApiName: 'Consumable_order__c',
                            actionName: 'view'
                        }
                    });
                    this.showSpinner = false;
                } else {
                    this.showMyToast('销存失败', result.msg, 'error');
                    this.showSpinner = false;
                }
            })
            .catch((error) => {
                console.log('error = ' + JSON.stringify(error));
                this.showSpinner = false;
            });
    }
    showMyToast(title, message, variant) {
        console.log('show custom message');
        var iconName = '';
        var content = '';
        if (variant == '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);
        // this.showMyToast('获取失败', result.msg, 'error');
        // this.showSpinner = false;
      }
    }).catch((error) => {
      this.showSpinner = false;
      console.log('error = ' + JSON.stringify(error));
    });
  }
  //获取当前输入值
  handleChange(event) {
    let value = event.detail.value;
    console.log('value' + value);
    this.barcode = value;
    console.log('this.barcode' + this.barcode);
  }
  getSelectedRows(event) {
         let selectedRowsEvent = event.detail.selectedRows;
          this.selectedRows = [];
          for (var i in selectedRowsEvent) {
              this.selectedRows.push(selectedRowsEvent[i].prodid+this.data[i]["boxPiece"]);
          }
        console.log('this.selectedRows==>'+this.selectedRows);
  }
  //保存
  saveConfirm() {
    console.log('进入销存确认');
    this.showSpinner = true;
       //查询有哪些选择了的然后check
      const selectedRows = this.template.querySelector('c-lex-custom-lightning-datatable').getSelectedRows();
      console.log('selectedRows========> ' + JSON.stringify(selectedRows));
      for (var i in this.data) {
         this.data[i]["check"] = false;
      }
      for (var i in this.data) {
         for (var j in selectedRows) {
            if (this.data[i].prodid+this.data[i]["boxPiece"] == selectedRows[j].prodid+ selectedRows[j]["boxPiece"]) {
               this.data[i]["check"] = true;
            }
         }
      }
    save({
      iSinventory: this.iSinventory,
      saveCodPageRecords: JSON.stringify(this.data),
      // saveoverdueList:JSON.stringify(this.overdueList)
      saveoverdueList: this.overdueList
    }).then((result) => {
      result = JSON.parse(JSON.stringify(result));
      console.log('result保存 = ' + JSON.stringify(result));
      if (result.status == 'Success') {
        this[NavigationMixin.Navigate]({
          type: 'standard__recordPage',
          attributes: {
            recordId: result.entity.Id,
            objectApiName: 'Consumable_order__c',
            actionName: 'view'
          }
        });
        this.showSpinner = false;
      } else {
        this.showMyToast('销存失败', result.msg, 'error');
        this.showSpinner = false;
      }
    })
      .catch((error) => {
        console.log('error = ' + JSON.stringify(error));
        this.showSpinner = false;
      });
  }
  showMyToast(title, message, variant) {
    console.log('show custom message');
    var iconName = '';
    var content = '';
    if (variant == '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);
  }
}