adPayHome.js 6.5 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) {
        value = data[titleData['key']] 
        if(value != undefined){
          value +=  'tax_rate' == titleData['key'] ? '%' : ''
        }
      } 
      if (!title || !value) continue;
      if (mapping_keys.indexOf(titleData['key']) == -1) 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
    })
  },
})