package com.trade.service.trade.exportrebate.dto;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 出口退税-进货明细摘要信息
 *
 * @author hlb
 * @since 2024-10-24 20:48:58
 */
public class TaxRebatePurchaseAbstractInfo {

    /**
     * 主键id
     */
    private Long id;
    /**
     * 出口退税-出口明细表id
     */
    private Long rebateExportDetailsId;
    /**
     * 客户id
     */
    private Long customerUserId;
    /**
     * 代理公司统一社会信用代码/注册号
     */
    private String agencyCertNo;
    /**
     * 代理公司名称
     */
    private String agencyName;
    /**
     * 客户企业统一社会信用代码
     */
    private String enterpriseCertNo;
    /**
     * 客户企业名称
     */
    private String enterpriseName;
    /**
     * 采购订单号
     */
    private String purchaseOrderNo;
    /**
     * 申报年月（yyyyMM）
     */
    private String declarationMonthYear;
    /**
     * 申报批次
     */
    private String declarationBatch;
    /**
     * 申报序号
     */
    private String declarationSerialNo;
    /**
     * 关联号
     */
    private String correlationNo;
    /**
     * 凭证种类
     */
    private String voucherType;
    /**
     * 凭证种类名称（发票类型）
     */
    private String voucherTypeName;
    /**
     * 进货凭证号（发票号码）
     */
    private String purchaseVoucherNo;
    /**
     * 开票日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date invoiceDate;
    /**
     * 供货方纳税人识别号（客户税号）
     */
    private String vendorTaxNo;
    /**
     * 商品HS编码
     */
    private String hsCode;
    /**
     * 出口商品代码
     */
    private String exportCommodityCode;
    /**
     * 商品名称
     */
    private String exportCommodityName;
    /**
     * 计量单位
     */
    private String measurementUnit;
    /**
     * 数量
     */
    private BigDecimal exportQuantity;
    /**
     * 计税金额
     */
    private BigDecimal taxBaseAmount;
    /**
     * 征税率（百分制，即已乘100）
     */
    private BigDecimal addedTaxRate;
    /**
     * 退税率（百分制，即已乘100）
     */
    private BigDecimal exportTaxRebateRate;
    /**
     * 可退税额
     */
    private BigDecimal taxRefundableAmount;
    /**
     * 退税额（根据出口明细退税额，按比例计算得）
     */
    private BigDecimal taxRefundAmount;
    /**
     * 退税状态，枚举rebate_process_status
     */
    private String status;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getRebateExportDetailsId() {
        return rebateExportDetailsId;
    }

    public void setRebateExportDetailsId(Long rebateExportDetailsId) {
        this.rebateExportDetailsId = rebateExportDetailsId;
    }

    public Long getCustomerUserId() {
        return customerUserId;
    }

    public void setCustomerUserId(Long customerUserId) {
        this.customerUserId = customerUserId;
    }

    public String getAgencyCertNo() {
        return agencyCertNo;
    }

    public void setAgencyCertNo(String agencyCertNo) {
        this.agencyCertNo = agencyCertNo;
    }

    public String getAgencyName() {
        return agencyName;
    }

    public void setAgencyName(String agencyName) {
        this.agencyName = agencyName;
    }

    public String getEnterpriseCertNo() {
        return enterpriseCertNo;
    }

    public void setEnterpriseCertNo(String enterpriseCertNo) {
        this.enterpriseCertNo = enterpriseCertNo;
    }

    public String getEnterpriseName() {
        return enterpriseName;
    }

    public void setEnterpriseName(String enterpriseName) {
        this.enterpriseName = enterpriseName;
    }

    public String getPurchaseOrderNo() {
        return purchaseOrderNo;
    }

    public void setPurchaseOrderNo(String purchaseOrderNo) {
        this.purchaseOrderNo = purchaseOrderNo;
    }

    public String getDeclarationMonthYear() {
        return declarationMonthYear;
    }

    public void setDeclarationMonthYear(String declarationMonthYear) {
        this.declarationMonthYear = declarationMonthYear;
    }

    public String getDeclarationBatch() {
        return declarationBatch;
    }

    public void setDeclarationBatch(String declarationBatch) {
        this.declarationBatch = declarationBatch;
    }

    public String getDeclarationSerialNo() {
        return declarationSerialNo;
    }

    public void setDeclarationSerialNo(String declarationSerialNo) {
        this.declarationSerialNo = declarationSerialNo;
    }

    public String getCorrelationNo() {
        return correlationNo;
    }

    public void setCorrelationNo(String correlationNo) {
        this.correlationNo = correlationNo;
    }

    public String getVoucherType() {
        return voucherType;
    }

    public void setVoucherType(String voucherType) {
        this.voucherType = voucherType;
    }

    public String getVoucherTypeName() {
        return voucherTypeName;
    }

    public void setVoucherTypeName(String voucherTypeName) {
        this.voucherTypeName = voucherTypeName;
    }

    public String getPurchaseVoucherNo() {
        return purchaseVoucherNo;
    }

    public void setPurchaseVoucherNo(String purchaseVoucherNo) {
        this.purchaseVoucherNo = purchaseVoucherNo;
    }

    public Date getInvoiceDate() {
        return invoiceDate;
    }

    public void setInvoiceDate(Date invoiceDate) {
        this.invoiceDate = invoiceDate;
    }

    public String getVendorTaxNo() {
        return vendorTaxNo;
    }

    public void setVendorTaxNo(String vendorTaxNo) {
        this.vendorTaxNo = vendorTaxNo;
    }

    public String getHsCode() {
        return hsCode;
    }

    public void setHsCode(String hsCode) {
        this.hsCode = hsCode;
    }

    public String getExportCommodityCode() {
        return exportCommodityCode;
    }

    public void setExportCommodityCode(String exportCommodityCode) {
        this.exportCommodityCode = exportCommodityCode;
    }

    public String getExportCommodityName() {
        return exportCommodityName;
    }

    public void setExportCommodityName(String exportCommodityName) {
        this.exportCommodityName = exportCommodityName;
    }

    public String getMeasurementUnit() {
        return measurementUnit;
    }

    public void setMeasurementUnit(String measurementUnit) {
        this.measurementUnit = measurementUnit;
    }

    public BigDecimal getExportQuantity() {
        return exportQuantity;
    }

    public void setExportQuantity(BigDecimal exportQuantity) {
        this.exportQuantity = exportQuantity;
    }

    public BigDecimal getTaxBaseAmount() {
        return taxBaseAmount;
    }

    public void setTaxBaseAmount(BigDecimal taxBaseAmount) {
        this.taxBaseAmount = taxBaseAmount;
    }

    public BigDecimal getAddedTaxRate() {
        return addedTaxRate;
    }

    public void setAddedTaxRate(BigDecimal addedTaxRate) {
        this.addedTaxRate = addedTaxRate;
    }

    public BigDecimal getExportTaxRebateRate() {
        return exportTaxRebateRate;
    }

    public void setExportTaxRebateRate(BigDecimal exportTaxRebateRate) {
        this.exportTaxRebateRate = exportTaxRebateRate;
    }

    public BigDecimal getTaxRefundableAmount() {
        return taxRefundableAmount;
    }

    public void setTaxRefundableAmount(BigDecimal taxRefundableAmount) {
        this.taxRefundableAmount = taxRefundableAmount;
    }

    public BigDecimal getTaxRefundAmount() {
        return taxRefundAmount;
    }

    public void setTaxRefundAmount(BigDecimal taxRefundAmount) {
        this.taxRefundAmount = taxRefundAmount;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }
}
