package com.jianshui.invoice.domain.dto.adapter.request.aisino_jn;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jianshui.common.annotation.Excel;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

/**
 * 已开发票对象 invoice
 *
 * @author tianenhui
 * @date 2020-12-07
 */
public class HxInvoiceDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 发票主键
     */
    private String c_invoiceid;

    // bill_info中对应的bill_id
    private String c_bill_id;
    /**
     * 发票代码
     */
    @Excel(name = "发票代码")
    private String c_fpdm;

    /**
     * 发票号码
     */
    @Excel(name = "发票号码")
    private String c_fphm;

    @Excel(name = "开票机号")
    private String fjh;
    
    /**
     * 订单编号
     */
    @Excel(name = "订单编号")
    private String c_orderno;
    /**
     * 购方名称
     */

    @Excel(name = "购方名称")
    private String c_buyername;

    /**
     * 购方税号
     */
    @Excel(name = "购方税号")
    private String c_taxnum;
    /**
     * 发票种类（ p电子增值税普通发票 c增值税普通发票 s 增值税专用发票 e 收购发票 f 收购发票 r增值税普通发票）
     */
    @Excel(name = "购方银行账号")
    private String account;

    @Excel(name = "购方地址电话")
    private String address;

    /**
     * 销方税号
     */
    @Excel(name = "销方税号")
    private String c_salerTaxNum;

    /**
     * 销方银行账号
     */
    @Excel(name = "销方银行账号")
    private String c_salerAccount;
    /**
     * 销方地址
     */
    @Excel(name = "销方地址电话")
    private String c_salerAddress;

    @Excel(name = "发票种类")
    private String c_invoice_line;

    /**
     * 复核人
     */
    @Excel(name = "复核人")
    private String c_checker;

    /**
     * 收款人
     */
    @Excel(name = "收款人")
    private String c_payee;

    /**
     * 开票员
     */
    @Excel(name = "开票人")
    private String c_clerk;

    /**
     * 不含税金额
     */
    @Excel(name = "不含税金额")
    private BigDecimal c_bhsje;

    /**
     * 合计税额
     */
    @Excel(name = "合计税额")
    private BigDecimal c_hjse;

    /**
     * 合计金额
     */
    @Excel(name = "合计金额")
    private BigDecimal c_hjje;

    /**
     * 开票日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开票日期", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date c_kprq;

    @Excel(name = "开票状态", readConverterExp = "2=开票完成,22=开票失败,3=发票已作废")
    private String c_status;

    /**
     * 订单编号
     */
    @Excel(name = "是否为清单", readConverterExp = "0=非清单,1=清单")
    private String c_qdbz;
    /**
     * 校验码
     */
    @Excel(name = "校验码")
    private String c_jym;

    /**
     * 二维码
     */
    @Excel(name = "qrcode")
    private String qrcode;

    /**
     * 税控设备号（机器编码
     */
    @Excel(name = "税控设备号")
    private String machinecode;

    /**
     * 发票密文
     */

    private String ciphertext;

    /**
     * 发票 pdf 地址
     */
    /* @Excel(name = "发票 pdf 地址")*/
    private String c_url;

    /**
     * 发票详情地址
     */

    private String c_jpg_url;


    /**
     * 发票请求流水号
     */
    private String c_fpqqlsh;

    public String getC_qdbz() {
        return c_qdbz;
    }

    public void setC_qdbz(String c_qdbz) {
        this.c_qdbz = c_qdbz;
    }


    /**
     * 开票状态： 2 :开票完成（ 最终状态），其他状态分别为: 20:开票中; 21:开票成功签章中;22:开票失败;24: 开票成功签章失败;3: 发票已作废31:
     * 发票作废中
     * 备注：22、24 状态时，无需再查询， 请确认开票失败原因以及签章失败原因；3、31 只针对纸票
     * 注：请以该状态码区分发票状态
     */


    /**
     * 开票信息，成功或者失败的信息
     */

    private String c_msg;

    /**
     * 结果信息
     * [9999]HX1000 4003-发票数据写盘失[TCD_769_25, 离线发票累计金额超限！], 发票代码或号码为空
     */

    private String c_resultmsg;

    /**
     * 创建者
     */
    private String create_by;

    /**
     * 创建时间
     */
    private Date create_time;

    /**
     * 更新者
     */
    private String update_by;

    /**
     * 更新时间
     */
    private Date update_time;

    /**
     * 备注
     */

    private String memo;


    /**
     * 销方电话
     */

    private String c_salerTel;


    /**
     * 成品油标志
     */

    private String productOilFlag;

    /**
     * jpg 图片地址
     */

    private String c_imgUrls;

    /**
     * 分机号
     */

    private String extensionNumber;
    /**
     * ofdUrl：电子专用发票专用
     * 发票ofd地址（公共服务平台签章时返回）
     */
    private String c_ofd_url;

    private List<HxInvoiceDetailDTO> invoiceItems;

    private Date createTime;
    private Date updateTime;
    private HashMap params;
    private String kptype;
    private String phone;//购房联系电话

    private String mail;//购方交付邮箱
    private String telephone;//购方交付 手机号
    private String billInfoNo;//红字信息表编号
    private String taxexcludedamount;//
    private Long companyId;//


    private String terminal_number; // 终端号

    private String clerk; // 开票员
    private String checker; // 复核员
    private String payer; // 收款人

    private Long billInfoId; // bill_info表里的bill_id

    private String business_remark;

    private String c_remark;

    public String getC_remark() {
        return c_remark;
    }

    public void setC_remark(String c_remark) {
        this.memo = c_remark;
        this.c_remark = c_remark;
    }

    public String getBusiness_remark() {
        return business_remark;
    }

    public void setBusiness_remark(String business_remark) {
        this.business_remark = business_remark;
    }

    public Long getBillInfoId() {
        return billInfoId;
    }

    public void setBillInfoId(Long billInfoId) {
        this.billInfoId = billInfoId;
    }

    public String getFjh() {
        return fjh;
    }

    public void setFjh(String fjh) {
        this.fjh = fjh;
    }

    public String getTerminal_number() {
        return terminal_number;
    }

    public void setTerminal_number(String terminal_number) {
        this.terminal_number = terminal_number;
    }

    public String getBillInfoNo() {
        return billInfoNo;
    }

    public void setBillInfoNo(String billInfoNo) {
        this.billInfoNo = billInfoNo;
    }

    public String getTaxexcludedamount() {
        return taxexcludedamount;
    }

    public void setTaxexcludedamount(String taxexcludedamount) {
        this.taxexcludedamount = taxexcludedamount;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getMail() {
        return mail;
    }

    public void setMail(String mail) {
        this.mail = mail;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public BigDecimal getC_hjje() {
        return c_hjje;
    }

    public void setC_hjje(BigDecimal c_hjje) {
        this.c_hjje = c_hjje;
    }

    public String getKptype() {
        return kptype;
    }

    public void setKptype(String kptype) {
        this.kptype = kptype;
    }

    public HashMap getParams() {
        return params;
    }

    public void setParams(HashMap params) {
        this.params = params;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public List<HxInvoiceDetailDTO> getInvoiceItems() {
        return invoiceItems;
    }

    public void setInvoiceItems(List<HxInvoiceDetailDTO> invoiceItems) {
        this.invoiceItems = invoiceItems;
    }

    public void setC_invoiceid(String c_invoiceid) {
        this.c_invoiceid = c_invoiceid;
    }

    public String getC_invoiceid() {
        return c_invoiceid;
    }

    public void setC_invoice_line(String c_invoice_line) {
        this.c_invoice_line = c_invoice_line;
    }

    public String getC_invoice_line() {
        return c_invoice_line;
    }

    public void setC_fpdm(String c_fpdm) {
        this.c_fpdm = c_fpdm;
    }

    public String getC_fpdm() {
        return c_fpdm;
    }

    public void setC_fphm(String c_fphm) {
        this.c_fphm = c_fphm;
    }

    public String getC_fphm() {
        return c_fphm;
    }

    public void setC_kprq(Date c_kprq) {
        this.c_kprq = c_kprq;
    }

    public Date getC_kprq() {
        return c_kprq;
    }

    public void setC_bhsje(BigDecimal c_bhsje) {
        this.c_bhsje = c_bhsje;
    }

    public BigDecimal getC_bhsje() {
        return c_bhsje;
    }

    public void setC_hjse(BigDecimal c_hjse) {
        this.c_hjse = c_hjse;
    }

    public BigDecimal getC_hjse() {
        return c_hjse;
    }

    public void setC_buyername(String c_buyername) {
        this.c_buyername = c_buyername;
    }

    public String getC_buyername() {
        return c_buyername;
    }

    public void setC_taxnum(String c_taxnum) {
        this.c_taxnum = c_taxnum;
    }

    public String getC_taxnum() {
        return c_taxnum;
    }

    public void setC_jym(String c_jym) {
        this.c_jym = c_jym;
    }

    public String getC_jym() {
        return c_jym;
    }

    public void setQrcode(String qrcode) {
        this.qrcode = qrcode;
    }

    public String getQrcode() {
        return qrcode;
    }

    public void setMachinecode(String machinecode) {
        this.machinecode = machinecode;
    }

    public String getMachinecode() {
        return machinecode;
    }

    public void setCiphertext(String ciphertext) {
        this.ciphertext = ciphertext;
    }

    public String getCiphertext() {
        return ciphertext;
    }

    public void setC_url(String c_url) {
        this.c_url = c_url;
    }

    public String getC_url() {
        return c_url;
    }

    public void setC_jpg_url(String c_jpg_url) {
        this.c_jpg_url = c_jpg_url;
    }

    public String getC_jpg_url() {
        return c_jpg_url;
    }

    public void setC_orderno(String c_orderno) {
        this.c_orderno = c_orderno;
    }

    public String getC_orderno() {
        return c_orderno;
    }

    public void setC_fpqqlsh(String c_fpqqlsh) {
        this.c_fpqqlsh = c_fpqqlsh;
    }

    public String getC_fpqqlsh() {
        return c_fpqqlsh;
    }

    public void setC_status(String c_status) {
        this.c_status = c_status;
    }

    public String getC_status() {
        return c_status;
    }

    public void setC_msg(String c_msg) {
        this.c_msg = c_msg;
    }

    public String getC_msg() {
        return c_msg;
    }

    public void setC_resultmsg(String c_resultmsg) {
        this.c_resultmsg = c_resultmsg;
    }

    public String getC_resultmsg() {
        return c_resultmsg;
    }

    public void setCreate_by(String create_by) {
        this.create_by = create_by;
    }

    public String getCreate_by() {
        return create_by;
    }

    public void setCreate_time(Date create_time) {
        this.create_time = create_time;
    }

    public Date getCreate_time() {
        return create_time;
    }

    public void setUpdate_by(String update_by) {
        this.update_by = update_by;
    }

    public String getUpdate_by() {
        return update_by;
    }

    public void setUpdate_time(Date update_time) {
        this.update_time = update_time;
    }

    public Date getUpdate_time() {
        return update_time;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

    public String getMemo() {
        return memo;
    }

    public void setC_clerk(String c_clerk) {
        this.c_clerk = c_clerk;
    }

    public String getC_clerk() {
        return c_clerk;
    }

    public void setC_payee(String c_payee) {
        this.c_payee = c_payee;
    }

    public String getC_payee() {
        return c_payee;
    }

    public void setC_checker(String c_checker) {
        this.c_checker = c_checker;
    }

    public String getC_checker() {
        return c_checker;
    }

    public void setC_salerAccount(String c_salerAccount) {
        this.c_salerAccount = c_salerAccount;
    }

    public String getC_salerAccount() {
        return c_salerAccount;
    }

    public void setC_salerTel(String c_salerTel) {
        this.c_salerTel = c_salerTel;
    }

    public String getC_salerTel() {
        return c_salerTel;
    }

    public void setC_salerAddress(String c_salerAddress) {
        this.c_salerAddress = c_salerAddress;
    }

    public String getC_salerAddress() {
        return c_salerAddress;
    }

    public void setC_salerTaxNum(String c_salerTaxNum) {
        this.c_salerTaxNum = c_salerTaxNum;
    }

    public String getC_salerTaxNum() {
        return c_salerTaxNum;
    }

    public void setProductOilFlag(String productOilFlag) {
        this.productOilFlag = productOilFlag;
    }

    public String getProductOilFlag() {
        return productOilFlag;
    }

    public void setC_imgUrls(String c_imgUrls) {
        this.c_imgUrls = c_imgUrls;
    }

    public String getC_imgUrls() {
        return c_imgUrls;
    }

    public void setExtensionNumber(String extensionNumber) {
        this.extensionNumber = extensionNumber;
    }

    public String getExtensionNumber() {
        return extensionNumber;
    }


    public void setC_bill_id(String c_bill_id) {
        this.c_bill_id = c_bill_id;
    }

    public String getC_bill_id() {
        return c_bill_id;
    }

    public Long getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Long companyId) {
        this.companyId = companyId;
    }

    public String getC_ofd_url() {
        return c_ofd_url;
    }

    public void setC_ofd_url(String c_ofd_url) {
        this.c_ofd_url = c_ofd_url;
    }

    @Override
    public String toString() {
        return "Invoice{" +
                "c_invoiceid='" + c_invoiceid + '\'' +
                ", c_bill_id='" + c_bill_id + '\'' +
                ", c_invoice_line='" + c_invoice_line + '\'' +
                ", c_fpdm='" + c_fpdm + '\'' +
                ", c_fphm='" + c_fphm + '\'' +
                ", c_kprq=" + c_kprq +
                ", c_bhsje=" + c_bhsje +
                ", c_hjse=" + c_hjse +
                ", c_buyername='" + c_buyername + '\'' +
                ", c_taxnum='" + c_taxnum + '\'' +
                ", c_jym='" + c_jym + '\'' +
                ", qrcode='" + qrcode + '\'' +
                ", machinecode='" + machinecode + '\'' +
                ", ciphertext='" + ciphertext + '\'' +
                ", c_url='" + c_url + '\'' +
                ", c_jpg_url='" + c_jpg_url + '\'' +
                ", c_orderno='" + c_orderno + '\'' +
                ", c_fpqqlsh='" + c_fpqqlsh + '\'' +
                ", c_status='" + c_status + '\'' +
                ", c_msg='" + c_msg + '\'' +
                ", c_resultmsg='" + c_resultmsg + '\'' +
                ", create_by='" + create_by + '\'' +
                ", create_time=" + create_time +
                ", update_by='" + update_by + '\'' +
                ", update_time=" + update_time +
                ", memo='" + memo + '\'' +
                ", c_clerk='" + c_clerk + '\'' +
                ", c_payee='" + c_payee + '\'' +
                ", c_checker='" + c_checker + '\'' +
                ", c_salerAccount='" + c_salerAccount + '\'' +
                ", c_salerTel='" + c_salerTel + '\'' +
                ", c_salerAddress='" + c_salerAddress + '\'' +
                ", c_salerTaxNum='" + c_salerTaxNum + '\'' +
                ", productOilFlag='" + productOilFlag + '\'' +
                ", c_imgUrls='" + c_imgUrls + '\'' +
                ", extensionNumber='" + extensionNumber + '\'' +
                ", invoiceItems=" + invoiceItems +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                ", params=" + params +
                '}';
    }

    public void setUpdateTime(Date nowDate) {
    }
}
