package com.jwipc.finance.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 对账模块-开票申请过账结果表
 * </p>
 *
 * @author shenyang.ou
 * @since 2024-03-07
 */
@Getter
@Setter
@TableName("fin_invoiced_apply_post_result")
public class InvoicedApplyPostResult implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 数据主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 数据状态 0:未预制 1:过账失败 2:预制成功3-过账成功
     */
    private Integer dataStatus;

    /**
     * 开票申请ID
     */
    private Long invoiceApplyId;

    /**
     * 开票申请单号
     */
    private String invoiceApplyNo;

    /**
     * 过账发票类型 1:凭证发票 2:返利发票 3:扣款发票 4:贷方发票
     */
    private Integer postInvoiceType;

    /**
     * 开票申请过账日期
     */
    private LocalDateTime postDate;

    /**
     * 发票凭证号
     */
    private String invoiceVoucher;

    /**
     * 会计凭证号
     */
    private String accountantVoucher;

    /**
     * 凭证年度
     */
    private String voucherYear;

    /**
     * 过账接口描述
     */
    private String syncMessage;

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

    /**
     * 过账用户ID
     */
    private Long postUserId;

    /**
     * 过账用户工号
     */
    private String postUserCode;

    /**
     * 过账用户姓名
     */
    private String postUserName;

    /**
     * 发票创建日期(当前日期)
     */
    private LocalDateTime invoiceCreateDate;

    /**
     * 发票过账日期
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private LocalDateTime invoicePostDate;

    /**
     * 起算日期
     */
    private LocalDateTime zeroDate;

    /**
     * SAP发票凭证类型 默认RE
     */
    private String sapInvoiceType;

    /**
     * 自动计算税金 0:否 1:是
     */
    private Integer autoCalculationTaxes;

    /**
     * 收付条件代码
     */
    private String paymentConditionCode;

    /**
     * 凭证抬头文本(基表T053选择, 长度不能超过30)
     */
    private String voucherHeadText;

    /**
     * 操作过账时间
     */
    private LocalDateTime optPostTime;

    /**
     * 付款日期
     */
    private LocalDateTime paymentTime;

    /**
     * 付款到期日
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private LocalDateTime paymentExpireDate;
}
