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

import com.jianshui.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.math.BigDecimal;

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

    /**
     * 发票主键
     */
    /*    @Excel(name = "发票ID")*/
    private String invoiceid;

    /**
     * 序号
     */
    @Excel(name = "订单编号")
    private String order;

    // item在当前发票中的排序
    private Integer index;
    @Excel(name = "发票代码")
    private String c_fpdm;

    /**
     * 发票号码
     */
    @Excel(name = "发票号码")
    private String c_fphm;
    /**
     * 商品名称
     */
    @Excel(name = "商品名称")
    private String itemname;

    /**
     * 规格型号
     */
    @Excel(name = "规格型号")
    private String itemspec;
    /**
     * 单位
     */
    @Excel(name = "商品单位")
    private String itemunit;

    /**
     * 单价
     */
    @Excel(name = "商品单价")
    private BigDecimal itemprice;

    /**
     * 数量
     */
    @Excel(name = "商品数量")
    private BigDecimal itemnum;

    /**
     * 金额
     */
    @Excel(name = "商品金额")
    private BigDecimal itemsumamount;

    /**
     * 税额
     */
    @Excel(name = "商品税额")
    private BigDecimal itemtaxamount;
    /**
     * 税率
     */
    @Excel(name = "商品税率")
    private BigDecimal itemtaxrate;

    /**
     * 商品编码
     */
    @Excel(name = "商品编码")
    private String itemcode;

    @Excel(name = "开票日期")
    private String kprq;//开票日期
    @Excel(name = "购方名称")
    private String c_buyername;

    /**
     * 购方税号
     */
    @Excel(name = "购方税号")
    private String c_taxnum;
    @Excel(name = "销方税号")
    private String salertaxnum;//
    /**
     * 含税标识 true：含税 false：不含税
     */
    @Excel(name = "商品含税标识", readConverterExp = "true=含税,false=不含税")
    private String isincludetax;

    /**
     * 发票行性质
     * 0, 正常行;1,折扣行;2,被扣行
     */
    @Excel(name = "发票行性质", readConverterExp = "0=正常行,1=折扣行,2=被折扣行")
    private String invoicelineproperty;

    /**
     * 零税率标识:空：非零税率，1：免税，
     * 2：不征税，3：普通零税率
     */
    @Excel(name = "零税率标识", readConverterExp = "0=非零税率,1=免税,2=不征税,3=普通零税率")
    private String zerorateflag;

    /**
     * 优惠政策标识:0：不使用;1：使用
     */
    @Excel(name = "优惠政策标识", readConverterExp = "0=不使用,1=使用")
    private String favouredpolicyflag;

    /**
     * 优惠政策名称（增值税特殊管理）
     */
    @Excel(name = "优惠政策名称")
    private String favouredpolicyname;

    /**
     * @param invoiceid
     */

    private String invoiceline;//发票类型
    private String[] kprqArr;//
    private String jshj;//
    private String fjh;//
    private String kprqStart;
    private String kprqEnd;
    private String fphmStart;
    private String fphmEnd;
    private String fpdm;

    public String getC_buyername() {
        return c_buyername;
    }

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

    public String getC_taxnum() {
        return c_taxnum;
    }

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

    public String getC_fpdm() {
        return c_fpdm;
    }

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

    public String getC_fphm() {
        return c_fphm;
    }

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

    public String getFphmStart() {
        return fphmStart;
    }

    public void setFphmStart(String fphmStart) {
        this.fphmStart = fphmStart;
    }

    public String getFphmEnd() {
        return fphmEnd;
    }

    public void setFphmEnd(String fphmEnd) {
        this.fphmEnd = fphmEnd;
    }

    public String getFpdm() {
        return fpdm;
    }

    public void setFpdm(String fpdm) {
        this.fpdm = fpdm;
    }

    public String[] getKprqArr() {
        return kprqArr;
    }

    public void setKprqArr(String[] kprqArr) {
        this.kprqArr = kprqArr;
    }

    public String getKprqStart() {
        return kprqStart;
    }

    public void setKprqStart(String kprqStart) {
        this.kprqStart = kprqStart;
    }

    public String getKprqEnd() {
        return kprqEnd;
    }

    public void setKprqEnd(String kprqEnd) {
        this.kprqEnd = kprqEnd;
    }

    public String getJshj() {
        return jshj;
    }

    public void setJshj(String jshj) {
        this.jshj = jshj;
    }

    public String getSalertaxnum() {
        return salertaxnum;
    }

    public void setSalertaxnum(String salertaxnum) {
        this.salertaxnum = salertaxnum;
    }

    public String getInvoiceline() {
        return invoiceline;
    }

    public void setInvoiceline(String invoiceline) {
        this.invoiceline = invoiceline;
    }

    public String getKprq() {
        return kprq;
    }

    public void setKprq(String kprq) {
        this.kprq = kprq;
    }

    public void setInvoiceid(String invoiceid) {
        this.invoiceid = invoiceid;
    }

    public String getInvoiceid() {
        return invoiceid;
    }

    public void setOrder(String order) {
        this.order = order;
    }

    public String getOrder() {
        return order;
    }

    public void setItemname(String itemname) {
        this.itemname = itemname;
    }

    public String getItemname() {
        return itemname;
    }

    public void setItemunit(String itemunit) {
        this.itemunit = itemunit;
    }

    public String getItemunit() {
        return itemunit;
    }

    public void setItemprice(BigDecimal itemprice) {
        this.itemprice = itemprice;
    }

    public BigDecimal getItemprice() {
        return itemprice;
    }

    public void setItemtaxrate(BigDecimal itemtaxrate) {
        this.itemtaxrate = itemtaxrate;
    }

    public BigDecimal getItemtaxrate() {
        return itemtaxrate;
    }

    public void setItemnum(BigDecimal itemnum) {
        this.itemnum = itemnum;
    }

    public BigDecimal getItemnum() {
        return itemnum;
    }

    public void setItemsumamount(BigDecimal itemsumamount) {
        this.itemsumamount = itemsumamount;
    }

    public BigDecimal getItemsumamount() {
        return itemsumamount;
    }

    public void setItemtaxamount(BigDecimal itemtaxamount) {
        this.itemtaxamount = itemtaxamount;
    }

    public BigDecimal getItemtaxamount() {
        return itemtaxamount;
    }

    public void setItemspec(String itemspec) {
        this.itemspec = itemspec;
    }

    public String getItemspec() {
        return itemspec;
    }

    public void setItemcode(String itemcode) {
        this.itemcode = itemcode;
    }

    public String getItemcode() {
        return itemcode;
    }

    public void setIsincludetax(String isincludetax) {
        this.isincludetax = isincludetax;
    }

    public String getIsincludetax() {
        return isincludetax;
    }

    public void setInvoicelineproperty(String invoicelineproperty) {
        this.invoicelineproperty = invoicelineproperty;
    }

    public String getInvoicelineproperty() {
        return invoicelineproperty;
    }

    public void setZerorateflag(String zerorateflag) {
        this.zerorateflag = zerorateflag;
    }

    public String getZerorateflag() {
        return zerorateflag;
    }

    public void setFavouredpolicyflag(String favouredpolicyflag) {
        this.favouredpolicyflag = favouredpolicyflag;
    }

    public String getFavouredpolicyflag() {
        return favouredpolicyflag;
    }

    public void setFavouredpolicyname(String favouredpolicyname) {
        this.favouredpolicyname = favouredpolicyname;
    }

    public String getFavouredpolicyname() {
        return favouredpolicyname;
    }

    public void setIndex(Integer index) {
        this.index = index;
    }

    public Integer getIndex() {
        return index;
    }

    public String getFjh() {
        return fjh;
    }

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

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("invoiceid", getInvoiceid())
                .append("order", getOrder())
                .append("index", getIndex())
                .append("itemname", getItemname())
                .append("itemunit", getItemunit())
                .append("itemprice", getItemprice())
                .append("itemtaxrate", getItemtaxrate())
                .append("itemnum", getItemnum())
                .append("itemsumamount", getItemsumamount())
                .append("itemtaxamount", getItemtaxamount())
                .append("itemspec", getItemspec())
                .append("itemcode", getItemcode())
                .append("isincludetax", getIsincludetax())
                .append("invoicelineproperty", getInvoicelineproperty())
                .append("zerorateflag", getZerorateflag())
                .append("favouredpolicyflag", getFavouredpolicyflag())
                .append("favouredpolicyname", getFavouredpolicyname())
                .toString();
    }
}
