package com.jwipc.finance.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 对账模块-开票申请
 * </p>
 *
 * @author shenyang.ou
 * @since 2024-03-04
 */
@Getter
@Setter
@TableName("fin_invoiced_apply")
public class InvoicedApply implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 数据主键
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;
    private BigDecimal provisionalBalance;
    /**
     * 开票申请单号
     */
    private String invoiceApplyNo;

    /**
     * 对账单id
     */
    private Long accountStatementId;

    /**
     * 对账单号
     */
    private String accountStatementNo;

    /**
     * 供应商编码
     */
    private String supplierCode;

    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 公司编码
     */
    private String companyCode;

    /**
     * 公司名称
     */
    private String companyName;

    /**
     * 工厂编码
     */
    private String factoryCode;

    /**
     * 工厂名称
     */
    private String factoryName;

    /**
     * 货币代码
     */
    private String currencyCode;

    /**
     * 未税扣款金额
     */
    private BigDecimal dntAmount;

    /**
     * 扣款金额
     */
    private BigDecimal deductionAmount;

    /**
     * 未税返利金额
     */
    private BigDecimal rntAmount;

    /**
     * 返利金额
     */
    private BigDecimal rebateAmount;

    /**
     * 对账数量
     */
    private BigDecimal statementNum;

    /**
     * 开票净价总金额(未税金额合计)
     */
    private BigDecimal invoiceNetAmount;

    /**
     * 开票含税总金额(含税金额合计)
     */
    private BigDecimal invoiceTaxAmount;

    /**
     * 开票税额
     */
    private BigDecimal invoiceDiffAmount;

    /**
     * 关联净价总金额
     */
    private BigDecimal invoiceTotalAmount;

    /**
     * 关联含税总金额
     */
    private BigDecimal invoiceTaxTotalAmount;

    /**
     * 发票税额
     */
    private BigDecimal invoiceTotalDiffAmount;

    /**
     * 金额差
     */
    private BigDecimal diffAmountSap;
    /**
     * 税额差
     */
    private BigDecimal diffTaxAmountSap;

    /**
     * 发票张数
     */
    private Integer invoiceNum;

    /**
     * 发票号 多张发票号英文逗号分开
     */
    private String invoiceNo;

    /**
     * 备注
     */
    private String remark;

    /**
     * 数据状态 1:暂存 2:待采购确认 3:采购拒绝 4:待推送OA审批 5:OA审批中 6:OA审批不通过 7:待财务确认 8:财务拒绝 9:确认完成
     */
    private Integer status;

    /**
     * 过账状态 1:暂存 2:待预制 3:预制失败 4:预制成功 5-过账成功 6-无需过账 7-已冲销
     */
    private Integer postStatus;

    /**
     * 合同补录状态；0-无；1-待复核；2-复核未通过；3-复核通过
     */
    private Integer contractSupplementStatus;

    /**
     * 合同补录复核备注
     */
    private String contractSupplementRemark;

    /**
     * OA审批流程ID
     */
    private String oaProcessId;

    /**
     * OA审批流程号
     */
    private String oaProcessNo;

    /**
     * 推送OA次数(后续推送OA时赋值价格组审批流程号, 价格组审批流程号: 对账单号+推送OA次数)
     */
    private Integer pushOaNum;

    /**
     * 推送OA员工工号
     */
    private String pushOaUserCode;

    /**
     * 推送OA员工姓名
     */
    private String pushOaUserName;

    /**
     * 付款条件
     */
    private String paymentTermCode;

    /**
     * 付款方式
     */
    private String paymentWay;

    /**
     * 单据类型 1:材料开票申请 2:运费开票申请
     */
    private Integer orderType;

    /**
     * 创建用户ID
     */
    private Long createUserId;

    /**
     * 创建用户编码
     */
    private String createUserCode;

    /**
     * 创建用户姓名
     */
    private String createUserName;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 新付款到期日--采购可以修改的付款到期日
     */
    private LocalDateTime newPaymentExpireDate;

    /**
     * 最后更新用户ID
     */
    private Long updateUserId;

    /**
     * 最后更新用户编码
     */
    private String updateUserCode;

    /**
     * 最后更新用户姓名
     */
    private String updateUserName;

    /**
     * 最后更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 采购到票确认人ID
     */
    private Long pcUserId;

    /**
     * 采购到票确认人工号
     */
    private String pcUserCode;

    /**
     * 采购到票确认人姓名
     */
    private String pcUserName;

    /**
     * 采购到票确认时间
     */
    private LocalDateTime pcTime;

    /**
     * 删除标识 0:未删除 1:已删除
     */
    private Integer deleteFlag;

    /**
     * 采购组
     */
    private String purchaseGroup;

    /**
     * 是否打印 0：未打印 1：已打印
     */
    private Integer isPrint;

    /**
     * 预付款总金额
     */
    private BigDecimal allBudInnerMoney;

    /**
     * 订单类型
     */
    private String poType;

    /**
     * 冲账接口描述
     */
    private String syncStrikeMessage;

    /**
     * 冲账状态 0-待冲账；1-冲账成功；2-冲账失败；3-无需冲账
     */
    private Integer strikeStatus;

    /**
     * 冲账总金额
     */
    private BigDecimal strikePriceAmount;

    /**
     * 实际未付金额
     */
    private BigDecimal actualUnpaidAmount;

    /**
     * 税率
     */
    private String taxCode;

    /**
     * 扣款状态 0-待扣款；1-扣款成功；2-扣款失败；3-无需扣款
     */
    private Integer deductionStatus;

    /**
     * 扣款接口描述
     */
    private String syncDeductionMessage;

    /**
     * 应付本币金额
     */
    private BigDecimal localCurrency;

    /**
     * 应付原币金额
     */
    private BigDecimal originalCurrency;

    /**
     * 预付本币金额
     */
    private BigDecimal advanceLocalCurrency;

    /**
     * 预付原币金额
     */
    private BigDecimal advanceOriginalCurrency;

    /**
     * 扣款金额-不分摊
     */
    private BigDecimal deductionAmountTotal;

    /**
     * 财务确认时间
     */
    private LocalDateTime financeConfirmTime;

    /**
     * 财务确认人
     */
    private Long financeConfirmUserId;

    /**
     * 附件
     */
    private String files;

    /**
     * 外币资料交接新增标识；0-否；1-是
     */
    private Integer foreignCurrencyAddFlag;

    /**
     * 是否无纸化；0-否；1-是
     */
    private Integer paperlessFlag;

    /**
     * 冲销原因
     */
    private String writeOff;

    /**
     * 影像编码
     */
    private String imgCode;
    private String imgAllCode;

    /**
     * 发票云助手单据id
     */
    private String billId;

    /**
     * 发票云助手单据编码
     */
    private String billNo;

    /**
     * 影像编码
     */
    private LocalDateTime imgTime;
    private Long imgUserId;

    /**
     * 红冲状态；0-空；1-待补票；2-待财务确认发票；3-财务已确认发票；4-财务驳回发票
     */
    private Integer redReversalStatus;

    /**
     * 红冲原因
     */
    private String redReversalReason;


    /**
     * 财务应付单推送状态；0-未推送；1-推送成功；2-推送失败
     */
    private Integer financePayablePostStatus;
    private String financePayablePostMsg;
    private String financePayablePostId;
}
