package com.usoftchina.qywx.sdk.dto;

import java.util.List;

/**
 * @author yingp
 */
public class BatchGetInvoiceInfoResp extends BaseResp {

    private List<Invoice> item_list;

    public List<Invoice> getItem_list() {
        return item_list;
    }

    public void setItem_list(List<Invoice> item_list) {
        this.item_list = item_list;
    }

    public static class Invoice {
        /**
         * 发票id
         */
        private String card_id;
        /**
         * 用户标识
         */
        private String openid;
        /**
         * 发票类型，如广东增值税普通发票
         */
        private String type;
        /**
         * 发票的收款方
         */
        private String payee;
        /**
         * 发票详情
         */
        private String detail;
        /**
         * 发票的用户信息
         */
        private UserInfo user_info;

        public String getCard_id() {
            return card_id;
        }

        public void setCard_id(String card_id) {
            this.card_id = card_id;
        }

        public String getOpenid() {
            return openid;
        }

        public void setOpenid(String openid) {
            this.openid = openid;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public String getPayee() {
            return payee;
        }

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

        public String getDetail() {
            return detail;
        }

        public void setDetail(String detail) {
            this.detail = detail;
        }

        public UserInfo getUser_info() {
            return user_info;
        }

        public void setUser_info(UserInfo user_info) {
            this.user_info = user_info;
        }
    }

    public static class UserInfo {
        /**
         * 发票加税合计金额，以分为单位
         */
        private Double fee;
        /**
         * 发票的抬头
         */
        private String title;
        /**
         * 开票时间，为十位时间戳
         */
        private Long billing_time;
        /**
         * 发票代码
         */
        private String billing_no;
        /**
         * 发票号码
         */
        private String billing_code;
        /**
         * 商品信息结构
         */
        private List<ProductInfo> info;
        /**
         * 不含税金额，以分为单位
         */
        private Double fee_without_tax;
        /**
         * 税额，以分为单位
         */
        private Double tax;
        /**
         * 发票详情，一般描述的是发票的使用说明
         */
        private String detail;
        /**
         * 这张发票对应的PDF_URL
         */
        private String pdf_url;
        /**
         * 发报销状态INVOICE_REIMBURSE_INIT：发票初始状态，未锁定；INVOICE_REIMBURSE_LOCK：发票已锁定；INVOICE_REIMBURSE_CLOSURE：发票已核销
         */
        private String reimburse_status;
        /**
         * 开票人，发票右下角处
         */
        private String maker;
        /**
         * 收款人，发票左下角处
         */
        private String cashier;
        /**
         * 备注
         */
        private String remarks;
        /**
         * 销售方开户行及账号
         */
        private String seller_bank_account;
        /**
         * 销售方地址、电话
         */
        private String seller_address_and_phone;
        /**
         * 销售方纳税人识别号
         */
        private String seller_number;
        /**
         * 购买方开户行及账号
         */
        private String buyer_bank_account;
        /**
         * 购买方地址、电话
         */
        private String buyer_address_and_phone;
        /**
         * 购买方纳税人识别号
         */
        private String buyer_number;
        /**
         * 校验码
         */
        private String check_code;
        /**
         * 其它消费凭证附件对应的URL，如行程单、水单等
         */
        private String trip_pdf_url;

        private String order_id;

        public Double getFee() {
            return fee;
        }

        public void setFee(Double fee) {
            this.fee = fee;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public Long getBilling_time() {
            return billing_time;
        }

        public void setBilling_time(Long billing_time) {
            this.billing_time = billing_time;
        }

        public String getBilling_no() {
            return billing_no;
        }

        public void setBilling_no(String billing_no) {
            this.billing_no = billing_no;
        }

        public String getBilling_code() {
            return billing_code;
        }

        public void setBilling_code(String billing_code) {
            this.billing_code = billing_code;
        }

        public List<ProductInfo> getInfo() {
            return info;
        }

        public void setInfo(List<ProductInfo> info) {
            this.info = info;
        }

        public Double getFee_without_tax() {
            return fee_without_tax;
        }

        public void setFee_without_tax(Double fee_without_tax) {
            this.fee_without_tax = fee_without_tax;
        }

        public Double getTax() {
            return tax;
        }

        public void setTax(Double tax) {
            this.tax = tax;
        }

        public String getDetail() {
            return detail;
        }

        public void setDetail(String detail) {
            this.detail = detail;
        }

        public String getPdf_url() {
            return pdf_url;
        }

        public void setPdf_url(String pdf_url) {
            this.pdf_url = pdf_url;
        }

        public String getReimburse_status() {
            return reimburse_status;
        }

        public void setReimburse_status(String reimburse_status) {
            this.reimburse_status = reimburse_status;
        }

        public String getMaker() {
            return maker;
        }

        public void setMaker(String maker) {
            this.maker = maker;
        }

        public String getCashier() {
            return cashier;
        }

        public void setCashier(String cashier) {
            this.cashier = cashier;
        }

        public String getRemarks() {
            return remarks;
        }

        public void setRemarks(String remarks) {
            this.remarks = remarks;
        }

        public String getSeller_bank_account() {
            return seller_bank_account;
        }

        public void setSeller_bank_account(String seller_bank_account) {
            this.seller_bank_account = seller_bank_account;
        }

        public String getSeller_address_and_phone() {
            return seller_address_and_phone;
        }

        public void setSeller_address_and_phone(String seller_address_and_phone) {
            this.seller_address_and_phone = seller_address_and_phone;
        }

        public String getSeller_number() {
            return seller_number;
        }

        public void setSeller_number(String seller_number) {
            this.seller_number = seller_number;
        }

        public String getBuyer_bank_account() {
            return buyer_bank_account;
        }

        public void setBuyer_bank_account(String buyer_bank_account) {
            this.buyer_bank_account = buyer_bank_account;
        }

        public String getBuyer_address_and_phone() {
            return buyer_address_and_phone;
        }

        public void setBuyer_address_and_phone(String buyer_address_and_phone) {
            this.buyer_address_and_phone = buyer_address_and_phone;
        }

        public String getBuyer_number() {
            return buyer_number;
        }

        public void setBuyer_number(String buyer_number) {
            this.buyer_number = buyer_number;
        }

        public String getCheck_code() {
            return check_code;
        }

        public void setCheck_code(String check_code) {
            this.check_code = check_code;
        }

        public String getTrip_pdf_url() {
            return trip_pdf_url;
        }

        public void setTrip_pdf_url(String trip_pdf_url) {
            this.trip_pdf_url = trip_pdf_url;
        }

        public String getOrder_id() {
            return order_id;
        }

        public void setOrder_id(String order_id) {
            this.order_id = order_id;
        }
    }

    public static class ProductInfo {
        /**
         * 项目（商品）名称
         */
        private String name;
        /**
         * 项目数量
         */
        private Double num;
        /**
         * 项目单位
         */
        private String unit;
        /**
         * 金额，以分为单位
         */
        private Double fee;
        /**
         * 单价，以分为单位
         */
        private Double price;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public Double getNum() {
            return num;
        }

        public void setNum(Double num) {
            this.num = num;
        }

        public String getUnit() {
            return unit;
        }

        public void setUnit(String unit) {
            this.unit = unit;
        }

        public Double getFee() {
            return fee;
        }

        public void setFee(Double fee) {
            this.fee = fee;
        }

        public Double getPrice() {
            return price;
        }

        public void setPrice(Double price) {
            this.price = price;
        }
    }
}
