using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OASystem.Domain.Entities.Groups
{
    /// <summary>
    /// 付款信息表
    /// </summary>
    [SugarTable("Grp_CreditCardPayment")]
    public class Grp_CreditCardPayment:EntityBase
    {
        /// <summary>
        /// 团组外键编号
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int DIId { get; set; }
        /// <summary>
        /// 指向表外键编号
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int CId { get; set; }
        /// <summary>
        /// 指向标识 设置数据外键编号
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int CTable { get; set; }
        /// <summary>
        /// 支付方式
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int PayDId { get; set; } = 0;
        /// <summary>
        /// 消费方式
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(125)")]
        public string ConsumptionPatterns { get; set; }
        /// <summary>
        /// 消费日期
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(30)")]
        public string ConsumptionDate { get; set; }
        /// <summary>
        /// 卡类型
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int CTDId { get; set; }
        /// <summary>
        /// 银行卡号
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(125)")]
        public string BankNo { get; set; }
        /// <summary>
        /// 持卡人姓名
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(125)")]
        public string CardholderName { get; set; }
        /// <summary>
        /// 付款金额
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
        public decimal PayMoney { get; set; }
        /// <summary>
        /// 付款币种 数据类型Id
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int PaymentCurrency { get; set; }
        /// <summary>
        /// 当天汇率
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,4)")]
        public decimal DayRate { get; set; }
        /// <summary>
        /// 公司银行卡号
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(125)")]
        public string CompanyBankNo { get; set; }
        /// <summary>
        /// 对方开户行
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(125)")]
        public string OtherBankName { get; set; }
        /// <summary>
        /// 对方银行账号
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(125)")]
        public string OtherSideNo { get; set; }
        /// <summary>
        /// 对方姓名
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(125)")]
        public string OtherSideName { get; set; }
        /// <summary>
        /// 财务操作人 用户Id
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int MFOperator { get; set; }
        /// <summary>
        /// 财务操作时间
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(30)")]
        public string MFOperatorDate { get; set; }
        /// <summary>
        /// 部门经理是否审核 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsAuditDM { get; set; }
        /// <summary>
        /// 部门经理审核人 用户Id
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int AuditDMOperate { get; set; }
        /// <summary>
        /// 部门经理审核时间
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(30)")]
        public string AuditDMDate { get; set; }
        /// <summary>
        /// 财务部是否审核  0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsAuditMF { get; set; }
        /// <summary>
        /// 财务部审核人
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int AuditMFOperate { get; set; }
        /// <summary>
        /// 财务部审核时间
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(30)")]
        public string  AuditMFDate { get; set; }

        /// <summary>
        /// 总经理是否审核  0 未审核 1已通过 2未通过 3 自动审核
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsAuditGM { get; set; }

        /// <summary>
        /// 总经理审核人
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int AuditGMOperate { get; set; }
        /// <summary>
        /// 总经理审核时间
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(30)")]
        public string AuditGMDate { get; set; }
        /// <summary> 
        /// 是否付款  0 否 1 是
        /// </summary> 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsPay { get; set; }
        
        /// <summary>
        /// 此次付款百分比
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
        public decimal PayPercentage { get; set; } = 100M;
        /// <summary>
        /// 此次付款金额
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
        public decimal PayThenMoney { get; set; }
        /// <summary>
        /// 上次付款百分比
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
        public decimal PayPercentageOld { get; set; }
        /// <summary>
        /// 上次付款金额
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
        public decimal PayThenMoneyOld { get; set; }
        /// <summary>
        /// 上次付款时间
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(30)")]
        public string UpdateDate { get; set; }
        /// <summary>
        /// 收款方
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(255)")]
        public string Payee { get; set; }
        /// <summary>
        /// 人民币费用
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
        public decimal RMBPrice { get; set; }

        /// <summary>
        /// 费用标识
        /// 0 公转 1 私转
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int OrbitalPrivateTransfer { get; set; }

        /// <summary>
        /// 超出预算比例
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
        public decimal ExceedBudget { get; set; }

        /// <summary>
        /// 是否匹配上了信用卡账单
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public decimal IsMatchCreditCard { get; set; }
    }
}