import Utils from "~/utils"
import BigNumber from "bignumber.js";

/**
* Dbezxb Check规则
*/
export default {
  data() {
    return {
      rules: {
        "recgrp.rec.agreementno": [
          { type: "string", required: true, message: "必输项" },
          { max: 60, message: "长度不能超过60" }
        ],
        "recgrp.rec.amt": [
          {
            validator: (rule, value, callback) => {
              if (this.model.recgrp.rec.amt == "") {
                callback(new Error('必输项'));
              } else {
                if (this.model.recgrp.rec.rcvtotamt != "") {
                  if (new BigNumber(this.model.recgrp.rec.amt).comparedTo(new BigNumber(this.model.recgrp.rec.rcvtotamt)) > 0) {
                    callback(new Error('融资申请金额应小于等于应收账款金额'));
                  }
                }
                if (this.model.recpan.bgdamt != "") {
                  if (new BigNumber(this.model.recgrp.rec.amt).comparedTo(new BigNumber(this.model.recpan.bgdamt)) > 0) {
                    callback(new Error('融资申请金额应小于等于报关单汇总金额'));
                  }
                }
              }
              callback();
            },
            trigger: ['change', 'blur']
          },
        ],
        "recgrp.rec.cliextkey": [
          { type: "string", required: true, message: "必输项" },
          { max: 10, message: "长度不能超过10" }
        ],
        "recgrp.rec.clinam": [
          { type: "string", required: true, message: "必输项" },
          { max: 100, message: "长度不能超过49" }
        ],
        "recgrp.rec.conenddat": [
          { type: "string", required: true, message: "必输项" }
        ],
        "recgrp.rec.cur": [
          { type: "string", required: true, message: "必输项" },
        ],
        "recgrp.rec.custcode": [
          { type: "string", required: true, message: "必输项" },
          { max: 32, message: "长度不能超过32" }
        ],
        "recgrp.rec.finloaamt": [
          {
            validator: (rule, value, callback) => {
              if (this.model.recgrp.rec.finloaamt == "") {
                callback(new Error('必输项'));
              }
              callback();
            },
            trigger: ['change', 'blur']
          },
        ],
        "recgrp.rec.loadat": [
          { type: "string", required: true, message: "必输项" },
        ],
        "recgrp.rec.loalimday": [
          {
            validator: (rule, value, callback) => {
              if (this.model.recgrp.rec.loalimday == "") {
                callback(new Error('必输项'));
              }
              callback();
            },
            trigger: ['change', 'blur']
          },
        ],
        "recgrp.rec.noticeid": [
          {
            validator: (rule, value, callback) => {
              if (this.model.recgrp.rec.xxcbflg == "Y" && this.model.recgrp.rec.noticeid == "") {
                callback(new Error('必输项'));
              }
              callback();
            },
            trigger: ['change', 'blur']
          },
        ],
        "recgrp.rec.ownbchcod": [
          { type: "string", required: true, message: "必输项" },
        ],
        "recgrp.rec.policyno": [
          { type: "string", required: true, message: "必输项" },
          { max: 25, message: "长度不能超过25" }
        ],
        "recgrp.rec.policytype": [
          { type: "string", required: true, message: "必输项" },
        ],
        "recgrp.rec.rcvtotamt": [
          {
            validator: (rule, value, callback) => {
              if (value == "") {
                callback(new Error('必输项'));
              }
              let rcvtotamt = new BigNumber("0");
              for (let i = 0; i < this.model.recgrp.inelst.length; i++) {
                rcvtotamt = rcvtotamt.plus(new BigNumber(this.model.recgrp.inelst[i].amt))
              }
              if (new BigNumber(value).comparedTo(rcvtotamt) > 0) {
                callback(new Error("应收账总金额不能超过发票总金额"));
              }
              callback();
            },
            trigger: ['change', 'blur']
          },
        ],
        "recgrp.rec.rcvtotcur": [
          {
            validator: (rule, value, callback) => {
              if (value == "") {
                callback(new Error('必输项'));
              }
              for (let i = 0; i < this.model.recpan.danlst.length; i++) {
                if (value != this.model.recpan.danlst[i].cur) {
                  callback(new Error("与承包通知书关联的发票币种不一致"));
                }
              }
              callback();
            },
            trigger: ['change', 'blur']
          },
        ],
      }
    }
  }
}