const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
const moment = require('moment')
/**
 * 发表申请表
 */
module.exports = (db, DataTypes) => {

  return db.define("iivoice", {
    // id: { type: DataTypes.STRING(32), allowNull: true, comment: "" },
    province: { type: DataTypes.STRING(10), allowNull: true, comment: "发票对应省份" },
    invoice_type: { type: DataTypes.STRING(4), allowNull: true, comment: '发票类型 10 增值税专用发票 20 增值税普通发票 30 普通发票' },
    invoice_join: { type: DataTypes.STRING(4), allowNull: true, comment: '发票联次 10 记账联 20 发票联 30 抵扣联 40 销售方次' },
    invoice_no: { type: DataTypes.STRING(20), allowNull: true, comment: "发票代码" },
    invoice_number: { type: DataTypes.STRING(20), allowNull: true, comment: "发票号码" },
    invoice_time: { type: DataTypes.DATE, allowNull: true, comment: "开票日期" },
    merchant_id: { type: DataTypes.STRING(32), allowNull: true, defaultValue: null, COMMENT: '购买方商户id' },
    merchant_name: { type: DataTypes.STRING(45), allowNull: false, COMMENT: '购买方名称' },
    merchant_credit_code: { type: DataTypes.STRING(45), allowNull: false, COMMENT: '购买方纳税人识别号' },
    merchant_addr: { type: DataTypes.STRING(45), allowNull: false, COMMENT: '购买方地址' },
    merchant_mobile: { type: DataTypes.STRING(45), allowNull: false, COMMENT: '购买方电话' },
    merchant_bank: { type: DataTypes.STRING(45), allowNull: false, COMMENT: '购买方开户行' },
    merchant_account: { type: DataTypes.STRING(45), allowNull: false, COMMENT: '银行账号' },
    businessmen_type: { type: DataTypes.STRING(4), allowNull: true, defaultValue: null, COMMENT: '销售方类型 10 个体工商户 20 自然人' },
    businessmen_id: { type: DataTypes.STRING(32), allowNull: false, COMMENT: '销售商id' },
    businessmen_credit_code: { type: DataTypes.STRING(45), allowNull: false, COMMENT: '销售方社会统一信用代码' },
    businessmen_name: { type: DataTypes.STRING(45), allowNull: true, defaultValue: null, },
    businessmen_addr: { type: DataTypes.STRING(45), allowNull: false, COMMENT: '销售方地址' },
    businessmen_mobile: { type: DataTypes.STRING(45), allowNull: false, COMMENT: '销售方电话' },
    businessmen_bank: { type: DataTypes.STRING(45), allowNull: false, COMMENT: '销售方开户行' },
    businessmen_account: { type: DataTypes.STRING(45), allowNull: false, COMMENT: '销售方银行账号' },
    apply_no: { type: DataTypes.STRING(45), allowNull: true, defaultValue: null, COMMENT: '发票申请编号' },
    apply_time: { type: DataTypes.DATE, allowNull: true, defaultValue: null, COMMENT: '发票申请时间' },
    invoice_amount: { type: DataTypes.INTEGER, allowNull: true, defaultValue: 0, COMMENT: '价税合计总金额' },
    invoice_content: { type: DataTypes.STRING(300), allowNull: false, defaultValue: null, COMMENT: '开票内容' },
    contract: { type: DataTypes.STRING(500), allowNull: true, COMMENT: '合同' },
    personal_invoice_tax: { type: DataTypes.INTEGER, allowNull: false, defaultValue: null, COMMENT: '个税' },
    additional_tax: { type: DataTypes.INTEGER, allowNull: false, defaultValue: null, COMMENT: '附加税' },
    value_added_tax: { type: DataTypes.INTEGER, allowNull: false, defaultValue: null, COMMENT: '增值税' },
    mail_addr: { type: DataTypes.STRING(200), allowNull: true, defaultValue: null, COMMENT: '邮寄地址' },
    mail_mobile: { type: DataTypes.STRING(20), allowNull: true, defaultValue: null, COMMENT: '邮寄电话' },
    mail_to: { type: DataTypes.STRING(20), allowNull: true, defaultValue: null, COMMENT: '邮寄人' },
    statements: { type: DataTypes.STRING(45), allowNull: true, defaultValue: null, COMMENT: '结算单' },
    invoice_img: { type: DataTypes.STRING(500), allowNull: true, defaultValue: null},
    invoice_deliver_id:{ type: DataTypes.STRING(32), allowNull: true, defaultValue: null,comment:"交付id i_invoice_deliver 表ID" },
    deliver_id:{ type: DataTypes.STRING(32), allowNull: true, defaultValue: null,comment:"交付商ID common下的交付商ID" },
    bd_id:{ type: DataTypes.STRING(32), allowNull: true, defaultValue: null ,comment:"业务员Id"},
    bd_path:{ type: DataTypes.STRING(200), allowNull: true, defaultValue: null ,comment:"业务员权限"},
    created_at: { type: DataTypes.DATE, allowNull: true },
    updated_at: { type: DataTypes.DATE, allowNull: true },
    deleted_at: { type: DataTypes.DATE, allowNull: true },
    version: { type: DataTypes.INTEGER, allowNull: true, defaultValue: 0 }
  }, {
    timestamps: true,
    paranoid: true,
    tableName: 'i_invoice',
    comment: '发票表',
    charset: 'utf8',
    collate: 'utf8_general_ci',
    version: true
  });
}