adPayHome.js 6.6 KB


// pages/main/advancepayment/home.js
var format = require('../../../utils/util.js');
var app = getApp();
var baseUrl = app.globalData.baseUrl;
const Sub_taxation_method = { "0101": '正常工资薪金', "0107": "内退一次性补偿", "0108": "解除劳动合同一次性补偿", "0109": "个人股票期权行权收入", "0110": "企业年金", "0111": "提前退休一次性补贴", "0103": "全年一次性奖金收入" }
Page({
  loadCount: 0,
  timestamp: 0,
  Authorization: null,
  data: {
    // tab切换  
    // isshow : false,
    currentTab: 0,
    taxDatas: [],
    salaryDatas: {},
    choosed_date: '',
    hascompleted_tax: false,
    hascompleted_sal: false
  },
  onLoad: function (options) {
    var mydate = new Date();
    this.setData({
      choosed_date: mydate.getFullYear() + "年" + (mydate.getMonth() + 1) + "月",
    })
    this.timestamp = (mydate.getTime() / 1000).toFixed(0)
    this.loadData(this.timestamp);
  },
  loadData: function (timestamp) {
    var that = this
    this.Authorization = getApp().globalData.Authorization;
    wx.showLoading()
    that.loadCount = 2
    wx.request({
      url: baseUrl + "payroll/v1/tax/person-records?global=true",
      header: {
        'Authorization': this.Authorization
      },
      data: { 'declare_month': timestamp },
      success: function (result) {
        let taxDatas = that.handleTaxData(result.data.items)
        if (taxDatas) {
          that.setData({
            taxDatas: taxDatas
          })
        }


      },
      fail: function (res) {
        console.log('OSS init  失败', res)
      },
      complete: function () {
        that.loadCount--
        if (!that.loadCount) {
          wx.hideLoading()
        }
        that.setData({
          hascompleted_tax: true
        })
      }
    })
    wx.request({
      url: baseUrl + "payroll/v1/salary/person-records?global=true",
      header: {
        'Authorization': this.Authorization
      },
      data: { 'cycle_date': timestamp },
      success: function (result) {
        console.log('rest', result.data)
        that.setData({
          salaryDatas: that.handleSalaryData(result.data.items)
        })
      },
      fail: function (res) {
        console.log('salary获取失败', res)
      },
      complete: function () {
        that.loadCount--
        if (!that.loadCount) {
          wx.hideLoading()
        }
        that.setData({
          hascompleted_sal: true
        })
      }
    })

  },
  handleTaxData: function (items) {
    if (!items) return
    for (var i = 0; i < items.length; ++i) {
      var item = items[i]
      var method
      if (item.taxation_method == '0101') {
        method = '工资薪金'
        // if (item.sub_taxation_method && Sub_taxation_method[item.sub_taxation_method]){
        //   method = '工资薪金-' + Sub_taxation_method[item.sub_taxation_method]
        // }
      } else if (item.taxation_method == '0401') {
        method = '劳务报酬'
      } else if (item.taxation_method == '0103') {
        method = '全年一次性奖金'
      }
      if (item.taxpayer_type == 'non-resident') {//非居民
        item.method = '外籍人' + method
      } else {
        item.method = method
      }
    }
    return items;
  },
  handleSalaryData: function (items) {
    for (var i = 0; i < items.length; ++i) {
      var item = items[i]
      console.log("item---", item)
      item.payroll_date = format.formatTime_date(item.payroll_date)
      item.count_date = format.formatDate_min(item.start_time) + '-' + format.formatDate_min(item.end_time)
      item.zeroShow = item.zero_display=='yes'?true:false//是否展示非0字段
      item.detals = this.handleDetailsData(item)
      item.isshow = false
    }
    return items;
  },
  // handleData: function (items) {
  //   for (var i = 0; i < items.length; ++i) {
  //     if (items.taxation_method)
  //   }
  // },

  datePickerChange: function (e) {
    console.log("e", e)
    var timestamp = Date.parse(new Date(e.detail.value)) / 1000
    this.setData({
      choosed_date: format.yearFormString(timestamp) + "年" + format.monthFormString(timestamp) + "月"
    })
    this.dateStamp = timestamp
    this.loadData(timestamp);
  },

  /** 
  * 点击tab切换 
  */
  swichNav: function (e) {
    var that = this;

    if (this.data.currentTab === e.target.dataset.current) {
      return false;
    } else {
      that.setData({
        currentTab: e.target.dataset.current
      })
    }
  },

  /** 
  * 滑动切换tab 
  */
  bindChange: function (e) {

    var that = this;
    that.setData({ currentTab: e.detail.current });
  },

  gospan: function (e) {
    console.log(e)
    var item = this.data.salaryDatas[e.currentTarget.id]
    item.isshow = !item.isshow
    this.setData({
      salaryDatas: this.data.salaryDatas
    })
    // this.setData({
    //   isshow: !this.data.isshow
    // })
    // console.log('idddddd',e.currentTarget.id)
    // if (!e.currentTarget.id) return
    // var that = this
    // wx.showLoading()
    // wx.request({
    //   url: baseUrl + "payroll/v1/salary/person-records/" + e.currentTarget.id,
    //   header: {
    //     'Authorization': this.Authorization
    //   },
    //   data: {},
    //   success: function (result) {
    //     console.log('rest', result.data)
    //     that.handleDetailsData(result.data)
    //   },
    //   fail: function (res) {
    //   },
    //   complete: function () {
    //     wx.hideLoading()

    //   }
    // })
  },

  handleDetailsData: function (data) {

    let titles = JSON.parse(data['slip_titles'])
    let detail = JSON.parse(data['detail'])
    let mapping_keys = data["mapping_keys"] ? data["mapping_keys"]:[]
     console.log(titles,detail,mapping_keys)
    var details = []
    for (var i = 0; i < titles.length; ++i) {
      var titleData = titles[i]
      var value = detail[titleData['key']]
      var title = titleData['title']
      if (!title) {
        title = titleData['original_column']
      }
      if (value != 0 && !value) {
        value = data[titleData['key']]
        if (value != undefined) {
          value += 'tax_rate' == titleData['key'] ? '%' : ''
        }
      }
      if (!title) continue;
      // if (!title || (value != 0 && !value)) continue;
      // if (mapping_keys.indexOf(titleData['key']) == -1 && (value == '0' || value == 0)) continue;
      details.push({
        title: title,
        value: value
      })
    }
    console.log('details', details)
    return details
  },

  goItemDetails: function (e) {
    var item = this.data.taxDatas[e.currentTarget.id]
    wx.navigateTo({
      url: "adPayDetails/adPayDetails?id=" + item.id + "&date=" + this.data.choosed_date + "&taxpayer_type=" + item.taxpayer_type
    })
  },
})