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

import java.util.Date;

import com.trade.common.core.page.PageDomain;
import org.springframework.format.annotation.DateTimeFormat;

import com.trade.common.annotation.RewriteDateAt;
import com.trade.common.annotation.RewriteDateAtEnum;

/**
 * C端退税查询条件
 */
public class TaxRebateSearchDto extends PageDomain {

    private Long customerUserId;
    private boolean hasDeclarationBatch = true;
    /**
     * 申报年月(所属期）开始（yyyyMM）
     */
    private String declarationMonthYearStart;
    /**
     * 申报年月(所属期）结束（yyyyMM）
     */
    private String declarationMonthYearEnd;
    /**
     * 申报批次
     */
    private String declarationBatch;
    /**
     * 销售订单号
     */
    private String salesOrderNo;
    /**
     * 海关报关单号（18位）
     */
    private String customsDeclarationNo;
    /**
     * 出口发票号（形式发票号）
     */
    private String proformaInvoiceNo;
    /**
     * 出口日期开始
     */
    @RewriteDateAt(value = RewriteDateAtEnum.START_OF_MONTH)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date exportDateStart;
    /**
     * 出口日期结束
     */
    @RewriteDateAt(value = RewriteDateAtEnum.END_OF_MONTH)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date exportDateEnd;
    /**
     * 退税状态，枚举:rebate_process_status
     */
    private String status;

    public boolean isHasDeclarationBatch() {
        return hasDeclarationBatch;
    }

    public void setHasDeclarationBatch(boolean hasDeclarationBatch) {
        this.hasDeclarationBatch = hasDeclarationBatch;
    }

    public Long getCustomerUserId() {
        return customerUserId;
    }

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

    public String getDeclarationMonthYearStart() {
        return declarationMonthYearStart;
    }

    public void setDeclarationMonthYearStart(String declarationMonthYearStart) {
        this.declarationMonthYearStart = declarationMonthYearStart;
    }

    public String getDeclarationMonthYearEnd() {
        return declarationMonthYearEnd;
    }

    public void setDeclarationMonthYearEnd(String declarationMonthYearEnd) {
        this.declarationMonthYearEnd = declarationMonthYearEnd;
    }

    public String getDeclarationBatch() {
        return declarationBatch;
    }

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

    public String getSalesOrderNo() {
        return salesOrderNo;
    }

    public void setSalesOrderNo(String salesOrderNo) {
        this.salesOrderNo = salesOrderNo;
    }

    public String getCustomsDeclarationNo() {
        return customsDeclarationNo;
    }

    public void setCustomsDeclarationNo(String customsDeclarationNo) {
        this.customsDeclarationNo = customsDeclarationNo;
    }

    public String getProformaInvoiceNo() {
        return proformaInvoiceNo;
    }

    public void setProformaInvoiceNo(String proformaInvoiceNo) {
        this.proformaInvoiceNo = proformaInvoiceNo;
    }

    public Date getExportDateStart() {
        return exportDateStart;
    }

    public void setExportDateStart(Date exportDateStart) {
        this.exportDateStart = exportDateStart;
    }

    public Date getExportDateEnd() {
        return exportDateEnd;
    }

    public void setExportDateEnd(Date exportDateEnd) {
        this.exportDateEnd = exportDateEnd;
    }

    public String getStatus() {
        return status;
    }

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