package com.yuchen.saas.payment.api.vo.invoice;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @Author: 张逸飞
 * @Date: 2021/4/22 11:34
 * @Description: 开票请求中的发票信息
 */
public class RhSaasInvoice {
    /**
     * 订单编号
     */
    private String orderNo;

    /**
     * 子订单编号
     */
    private String subOrderNo;

    /**
     * 店铺名称
     */
    private String shopName;

    /**
     * 店铺编号
     */
    private String shopCode;

    /**
     * 销货方纳税人识别号
     */
    private String taxpayerCode;

    /**
     * 销货方名称
     */
    private String taxpayerName;

    /**
     * 销货方地址
     */
    private String taxpayerAddress;

    /**
     * 销货方电话
     */
    private String taxpayerTel;

    /**
     * 销货方开户银行
     */
    private String taxpayerBankName;

    /**
     * 销货方银行账号
     */
    private String taxpayerBankAccount;

    /**
     * 购货方纳税人识别号
     */
    private String customerCode;

    /**
     * 购货方名称，即发票抬头
     */
    private String customerName;

    /**
     * 购货方地址
     */
    private String customerAddress;

    /**
     * 购货方电话
     */
    private String customerTel;

    /**
     * 购货方开户银行
     */
    private String customerBankName;

    /**
     * 购货方银行账号
     */
    private String customerBankAccount;

    /**
     * 发票代码＋发票号码
     */
    private String code;

    /**
     * 校验码
     */
    private String checkCode;

    /**
     * 税控码
     */
    private String fiscalCode;

    /**
     * 发票状态
     * 正常：1
     * 红冲：3
     * 被红冲：4
     */
    private String status;

    /**
     * 生成时间
     */
    private String generateTime;

    /**
     * 税价合计金额
     */
    private BigDecimal totalAmount;

    /**
     * 不含税金额
     */
    private BigDecimal noTaxAmount;

    /**
     * 税额
     */
    private BigDecimal taxAmount;

    /**
     * 开票人
     */
    private String drawer;

    /**
     * 收款人
     */
    private String payee;

    /**
     * 复核人
     */
    private String reviewer;

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

    /**
     * 未签名PDF下载URL
     */
    private String pdfUnsignedUrl;

    /**
     * 查看URL
     */
    private String viewUrl;

    /**
     * 全电发票下载地址
     */
    private String pdfUrl;

    /**
     * 关联发票编号
     */
    private String relatedCode;

    /**
     * 作废/红冲原因
     */
    private String validReason;

    /**
     * 作废/红冲时间
     */
    private String validTime;

    /**
     * 扩展参数
     */
    private Map<String, String> extendedParams;

    /**
     * 项目明细
     */
    private List<RhSaasInvoiceItem> items;

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getSubOrderNo() {
        return subOrderNo;
    }

    public void setSubOrderNo(String subOrderNo) {
        this.subOrderNo = subOrderNo;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public String getShopCode() {
        return shopCode;
    }

    public void setShopCode(String shopCode) {
        this.shopCode = shopCode;
    }

    public String getTaxpayerCode() {
        return taxpayerCode;
    }

    public void setTaxpayerCode(String taxpayerCode) {
        this.taxpayerCode = taxpayerCode;
    }

    public String getTaxpayerName() {
        return taxpayerName;
    }

    public void setTaxpayerName(String taxpayerName) {
        this.taxpayerName = taxpayerName;
    }

    public String getTaxpayerAddress() {
        return taxpayerAddress;
    }

    public void setTaxpayerAddress(String taxpayerAddress) {
        this.taxpayerAddress = taxpayerAddress;
    }

    public String getTaxpayerTel() {
        return taxpayerTel;
    }

    public void setTaxpayerTel(String taxpayerTel) {
        this.taxpayerTel = taxpayerTel;
    }

    public String getTaxpayerBankName() {
        return taxpayerBankName;
    }

    public void setTaxpayerBankName(String taxpayerBankName) {
        this.taxpayerBankName = taxpayerBankName;
    }

    public String getTaxpayerBankAccount() {
        return taxpayerBankAccount;
    }

    public void setTaxpayerBankAccount(String taxpayerBankAccount) {
        this.taxpayerBankAccount = taxpayerBankAccount;
    }

    public String getCustomerCode() {
        return customerCode;
    }

    public void setCustomerCode(String customerCode) {
        this.customerCode = customerCode;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getCustomerAddress() {
        return customerAddress;
    }

    public void setCustomerAddress(String customerAddress) {
        this.customerAddress = customerAddress;
    }

    public String getCustomerTel() {
        return customerTel;
    }

    public void setCustomerTel(String customerTel) {
        this.customerTel = customerTel;
    }

    public String getCustomerBankName() {
        return customerBankName;
    }

    public void setCustomerBankName(String customerBankName) {
        this.customerBankName = customerBankName;
    }

    public String getCustomerBankAccount() {
        return customerBankAccount;
    }

    public void setCustomerBankAccount(String customerBankAccount) {
        this.customerBankAccount = customerBankAccount;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getCheckCode() {
        return checkCode;
    }

    public void setCheckCode(String checkCode) {
        this.checkCode = checkCode;
    }

    public String getFiscalCode() {
        return fiscalCode;
    }

    public void setFiscalCode(String fiscalCode) {
        this.fiscalCode = fiscalCode;
    }

    public String getStatus() {
        return status;
    }

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

    public String getGenerateTime() {
        return generateTime;
    }

    public void setGenerateTime(String generateTime) {
        this.generateTime = generateTime;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getNoTaxAmount() {
        return noTaxAmount;
    }

    public void setNoTaxAmount(BigDecimal noTaxAmount) {
        this.noTaxAmount = noTaxAmount;
    }

    public BigDecimal getTaxAmount() {
        return taxAmount;
    }

    public void setTaxAmount(BigDecimal taxAmount) {
        this.taxAmount = taxAmount;
    }

    public String getDrawer() {
        return drawer;
    }

    public void setDrawer(String drawer) {
        this.drawer = drawer;
    }

    public String getPayee() {
        return payee;
    }

    public void setPayee(String payee) {
        this.payee = payee;
    }

    public String getReviewer() {
        return reviewer;
    }

    public void setReviewer(String reviewer) {
        this.reviewer = reviewer;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getPdfUnsignedUrl() {
        return pdfUnsignedUrl;
    }

    public void setPdfUnsignedUrl(String pdfUnsignedUrl) {
        this.pdfUnsignedUrl = pdfUnsignedUrl;
    }

    public String getViewUrl() {
        return viewUrl;
    }

    public void setViewUrl(String viewUrl) {
        this.viewUrl = viewUrl;
    }

    public String getRelatedCode() {
        return relatedCode;
    }

    public void setRelatedCode(String relatedCode) {
        this.relatedCode = relatedCode;
    }

    public String getValidReason() {
        return validReason;
    }

    public void setValidReason(String validReason) {
        this.validReason = validReason;
    }

    public String getValidTime() {
        return validTime;
    }

    public void setValidTime(String validTime) {
        this.validTime = validTime;
    }

    public List<RhSaasInvoiceItem> getItems() {
        return items;
    }

    public void setItems(List<RhSaasInvoiceItem> items) {
        this.items = items;
    }

    public Map<String, String> getExtendedParams() {
        return extendedParams;
    }

    public void setExtendedParams(Map<String, String> extendedParams) {
        this.extendedParams = extendedParams;
    }

    public String getPdfUrl() {
        return pdfUrl;
    }

    public void setPdfUrl(String pdfUrl) {
        this.pdfUrl = pdfUrl;
    }
}
