/*******************************************************************************
 * Copyright(c) 2022 dongke All rights reserved. / Confidential
 * 类的信息：
 *		1.程序名称：
 * 编辑履历：
 *		作者				日期					版本				修改内容
 *		王英杰		 2024-1-24			1.00		    采购订单
 *******************************************************************************/
const Constants = require('@/utils/Constants.js');
const util = require('@/utils/util.js')
const mixins = require('@/mixins/index.js')
const app = getApp()
Page({
  mixins: [mixins],
  /**
   * 页面的初始数据 
   */
  data: {
 
    popbuttonList: [{
        name: 'followUp',
        title: mixins.$t('purchaseCancellation'),//采购作废
      }, //title:mixins.$t('followUp')
      {
        name: 'followUpTasks',
        title: mixins.$t('reverseAndReopen'),//冲正重开
      },
      {
        name: 'selectSourcePurchaseOrder',
        title: mixins.$t('purReturnOutBound'),//采购退货
        formMode: Constants.formMode.index,
        formType: Constants.formMode.add,
        idKey: 'purId',
      },
      {
        name: 'followUp',
        title: mixins.$t('purchaseReturnReversal'),//采购退货冲正
      }, //title:mixins.$t('followUp')
      {
        name: 'followUpTasks',
        title: mixins.$t('printTickets') //打印票据
      },
      {
        name: 'transferToWarehouse',
        title: mixins.$t('transferToWarehouse'),//转入库
        formMode: Constants.formMode.other,
        other: {
          idKey: 'purId'
        },
      },
    ], 
    // 弹出按钮
    buttonList: [{
      name: 'merge',
      title: mixins.$t('add'),//'新建'
    }],
    contentList: [{
      title: mixins.$t('totalAmount'),//'合计金额:',
      code: 'amount',
      content: 0,
      type: 'number'
    }, {
      type: 'count',
      code: 'count',
      bill: 1,
      quantity: 2
    }],
    btnFormData: null,
    active: 0, //默认查询入库中
    // 查询条件
    searchContent: [{
        code: 'makeTime',
        title: mixins.$t('pastThirthtyDays'),//近30天',
        defaultValue: 5,
        searchType: Constants.searchType.date
      },

      {
        code: 'choose',
        title: mixins.$t('choose'),//'筛选',
        searchType: Constants.searchType.pick
      }
    ],
    // 查询条件-筛选
    pullMenuList: [{
      code: 'outStatus',
      pullType: 'mSelect',
      typeName: 'outStatus'
    }, {
      code: 'receiveStatus',
      pullType: 'mSelect',
      typeName: 'receiveStatus'
    }, {
      code: 'followCount',
      dataType: 'number'
    }, {
      code: 'nextFollowTime',
      dataType: 'date'
    }],
    tagList: [{
      title: mixins.$t('all'),//"全部单据"
    }, {
      title:  mixins.$t('staging'),//"暂存"
    }, {
      title:  mixins.$t('deal'),//"成交"
    }],
    contentObj: {
      [mixins.$t('staging')]: [{ //[mixins.$t("procurementSupplier")]
        name: 'purNo',
        title: mixins.$t('saleOrderNo') //订单编号
      }, {
        name: [{
          name: 'orgName',
          title: ''
        }, {
          name: 'staffName',
          title: ''
        }],
        title: mixins.$t('purInfo')//采购信息
      }, {
        name: 'whName',
        title: mixins.$t('eiWhName') //预计入库仓库
      }, {
        name: 'pickupDate',
        title:  mixins.$t('erDate') //预计入库日期
      }],
      [ mixins.$t('warehousingProcessing') ]: [{ //[mixins.$t("procurementSupplier")]
        name: 'purNo',
        title: mixins.$t('saleOrderNo')  //订单编号
      }, {
        name: [{
          name: 'orgName',
          title: ''
        }, {
          name: 'staffName',
          title: ''
        }],
        title:  mixins.$t('purInfo')  //采购信息
      }, {
        name: 'whName',
        title: '预计入库仓库' //预计入库仓库
      }, {
        name: 'pickupDate',
        title:  mixins.$t('erDate') //预计入库日期
      }],
     [mixins.$t('inStorage')]: [{ // 入库中 
        name: 'purNo',
        title: mixins.$t('saleOrderNo') //订单编号
      }, {
        name: [{
          name: 'orgName',
          title: ''
        }, {
          name: 'staffName',
          title: ''
        }],
        title:  mixins.$t('purInfo')//采购信息
      }, {
        name: 'whName',
        title:  mixins.$t('enterWhName') //入库仓库
      }, {
        name: 'pickupDate',
        title:  mixins.$t('enterWhDate') //入库日期
      }],
      [mixins.$t('received')]: [{ //[mixins.$t("procurementSupplier")]
        name: 'purNo',
        title: mixins.$t('saleOrderNo') //订单编号
      }, {
        name: [{
          name: 'orgName',
          title: ''
        }, {
          name: 'staffName',
          title: ''
        }],
        title:  mixins.$t('purInfo') //采购信息
      }, {
        name: 'whName',
        title:  mixins.$t('enterWhName') //入库仓库
      }, {
        name: 'pickupDate',
        title:  mixins.$t('enterWhDate') //入库日期
      }],
    },
    // 列表区（脚部金额）
    footerAmount: {
      name: 'sumAmount',
      title:  mixins.$t('sumTotalAmount') //'共计金额'
    },
    // 列表区（脚部信息）
    footerInfo: [{
      prefix: mixins.$t('together'), //'共计',
      name: 'sumQuantity',
      title: mixins.$t('piece'), //'件'
    }],
    purchaseService: app.globalData['purchaseService'],
    // 路由
    routeObjName: 'purchase',
    primaryKey: 'purId'
  },


  /**
   * @desc : 新建
   * @date : 2024/2/1 15:49
   * @author : 王英杰
   */
  toAdd() {
    wx.navigateTo({
      url: this.data.route.add.url,
      success: function (res) {
        // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的，实际中，需要从route中读取
        res.eventChannel.emit('params', {})
      }
    })
  },
  /**
   * @desc : 切换  待出库  已出库
   * @date : 2024年3月8日
   * @author : 王英杰
   */
  onChangeTabs(e) {
    let index = e.detail.detail.index
    this.setData({
      active: index,
    })
    this.searchData()
  },
  /**
   * @desc : 设置查询参数
   * @date : 2024年3月8日
   * @author : 王英杰
   */
  setSearchParams(params) {
    if (this.data.active == 1) { //入库中的查询参数
      params.intoStatus = Constants.orderStatus.STATUS_STAGING//  '订单状态-暂存'
      // params.purType = '单据类型-采购订单'

    }
    if (this.data.active == 2) { //已入库的查询参数 
      params.purStatus = Constants.orderStatus.STATUS_DEAL//'订单状态-成交'

    }
    params.purType = Constants.documentType.purOrder //'单据类型-采购订单'
    return params;
  },
  /** 
   * @desc : 查询 入库单
   * @date : 2024年3月8日
   * @author : 王英杰
   */
  getData(params) {

    return this.excute(this.data.service, this.data.service.selectByCond, params);
  },

  /**
   * @desc :   处理接口返回数据
   * @date : 2024年3月8日
   * @author : 王英杰
   */
  handleSearchData(tableData) {
    let temp = tableData
    temp.forEach(element => {
      if (element.intoStatus == Constants.intoStatus.inBounding) {//'入库中'
        element.backgroundColor = "red"
      }
    });
    let sumAmount = 0 //总的 合计金额
    let sumNumber = 0 // 单数
    let sumQty = 0 //总的 合集数量
    sumAmount = tableData.sum('sumAmount')
    sumNumber = tableData.length
    sumQty = tableData.sum('sumQuantity')
    this.setData({
      tableData: temp,
      sumAmount,
      sumNumber,
      sumQty
    })
  },
  /**
   * @desc : 详细页面 （编辑）
   * @date : 2024/2/1 15:49
   * @author : 王英杰
   */
  toDetail(e) {
    let purId = e.detail.item.purId
    let displayedStatus = e.detail.item.displayedStatus
    wx.navigateTo({  //STAGING  ==  暂存
      url: (displayedStatus == Constants.orderStatus.STAGING) ? this.data.route.add.url : this.data.route.detail.url,
      events: {
        // 回调后，在这里给页面赋值
        bandData: function (e) {
          console.log("toDetail", e);
        }
      },
      success: function (res) {
        res.eventChannel.emit('params', {
          id: purId,
          formMode: Constants.formMode.edit
        })
      }
    })
  },
})