class InvoicesModel {
  List<InvoicesDetailModel> records;
  int total;
  int size;
  int current;
  bool searchCount;
  int pages;

  InvoicesModel(
      {this.records,
      this.total,
      this.size,
      this.current,
      this.searchCount,
      this.pages});

  InvoicesModel.fromJson(Map<String, dynamic> json) {
    if (json['records'] != null) {
      records = new List<InvoicesDetailModel>();
      json['records'].forEach((v) {
        records.add(new InvoicesDetailModel.fromJson(v));
      });
    }
    total = json['total'];
    size = json['size'];
    current = json['current'];
    searchCount = json['searchCount'];
    pages = json['pages'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    if (this.records != null) {
      data['records'] = this.records.map((v) => v.toJson()).toList();
    }
    data['total'] = this.total;
    data['size'] = this.size;
    data['current'] = this.current;
    data['searchCount'] = this.searchCount;
    data['pages'] = this.pages;
    return data;
  }
}

class InvoicesDetailModel {
  String bz;
  int checkFlag;
  String createBy;
  int createTime;
  String dm;
  String email;
  String ewm;
  String fhr;
  String fpmw;
  String fpqqlsh;
  String gmfDh;
  String gmfDz;
  String gmfMc;
  String gmfNsrsbm;
  String gmfYh;
  int hjje;
  int hjse;
  String hm;
  int id;
  List<InvoiceImg> invoiceImg;
  List<InvoiceItem> invoiceItem;
  int jshj;
  String jym;
  String kplx;
  String kpr;
  int kqrq;
  String reason;
  String skr;
  int statuz;
  int type;
  String updateBy;
  int updateTime;
  int userId;
  int userInvoiceId;

  InvoicesDetailModel(
      {this.bz,
      this.checkFlag,
      this.createBy,
      this.createTime,
      this.dm,
      this.email,
      this.ewm,
      this.fhr,
      this.fpmw,
      this.fpqqlsh,
      this.gmfDh,
      this.gmfDz,
      this.gmfMc,
      this.gmfNsrsbm,
      this.gmfYh,
      this.hjje,
      this.hjse,
      this.hm,
      this.id,
      this.invoiceImg,
      this.invoiceItem,
      this.jshj,
      this.jym,
      this.kplx,
      this.kpr,
      this.kqrq,
      this.reason,
      this.skr,
      this.statuz,
      this.type,
      this.updateBy,
      this.updateTime,
      this.userId,
      this.userInvoiceId});

  InvoicesDetailModel.fromJson(Map<String, dynamic> json) {
    bz = json['bz'];
    checkFlag = json['checkFlag'];
    createBy = json['createBy'];
    createTime = json['createTime'];
    dm = json['dm'];
    email = json['email'];
    ewm = json['ewm'];
    fhr = json['fhr'];
    fpmw = json['fpmw'];
    fpqqlsh = json['fpqqlsh'];
    gmfDh = json['gmfDh'];
    gmfDz = json['gmfDz'];
    gmfMc = json['gmfMc'];
    gmfNsrsbm = json['gmfNsrsbm'];
    gmfYh = json['gmfYh'];
    hjje = json['hjje'];
    hjse = json['hjse'];
    hm = json['hm'];
    id = json['id'];
    if (json['invoiceImg'] != null) {
      invoiceImg = new List<InvoiceImg>();
      json['invoiceImg'].forEach((v) {
        invoiceImg.add(new InvoiceImg.fromJson(v));
      });
    }
    if (json['invoiceItem'] != null) {
      invoiceItem = new List<InvoiceItem>();
      json['invoiceItem'].forEach((v) {
        invoiceItem.add(new InvoiceItem.fromJson(v));
      });
    }
    jshj = json['jshj'];
    jym = json['jym'];
    kplx = json['kplx'];
    kpr = json['kpr'];
    kqrq = json['kqrq'];
    reason = json['reason'];
    skr = json['skr'];
    statuz = json['statuz'];
    type = json['type'];
    updateBy = json['updateBy'];
    updateTime = json['updateTime'];
    userId = json['userId'];
    userInvoiceId = json['userInvoiceId'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['bz'] = this.bz;
    data['checkFlag'] = this.checkFlag;
    data['createBy'] = this.createBy;
    data['createTime'] = this.createTime;
    data['dm'] = this.dm;
    data['email'] = this.email;
    data['ewm'] = this.ewm;
    data['fhr'] = this.fhr;
    data['fpmw'] = this.fpmw;
    data['fpqqlsh'] = this.fpqqlsh;
    data['gmfDh'] = this.gmfDh;
    data['gmfDz'] = this.gmfDz;
    data['gmfMc'] = this.gmfMc;
    data['gmfNsrsbm'] = this.gmfNsrsbm;
    data['gmfYh'] = this.gmfYh;
    data['hjje'] = this.hjje;
    data['hjse'] = this.hjse;
    data['hm'] = this.hm;
    data['id'] = this.id;
    if (this.invoiceImg != null) {
      data['invoiceImg'] = this.invoiceImg.map((v) => v.toJson()).toList();
    }
    if (this.invoiceItem != null) {
      data['invoiceItem'] = this.invoiceItem.map((v) => v.toJson()).toList();
    }
    data['jshj'] = this.jshj;
    data['jym'] = this.jym;
    data['kplx'] = this.kplx;
    data['kpr'] = this.kpr;
    data['kqrq'] = this.kqrq;
    data['reason'] = this.reason;
    data['skr'] = this.skr;
    data['statuz'] = this.statuz;
    data['type'] = this.type;
    data['updateBy'] = this.updateBy;
    data['updateTime'] = this.updateTime;
    data['userId'] = this.userId;
    data['userInvoiceId'] = this.userInvoiceId;
    return data;
  }
}

class InvoiceImg {
  String base64Code;
  String createBy;
  int createTime;
  String dataId;
  int id;
  String updateBy;
  int updateTime;
  String url;

  InvoiceImg(
      {this.base64Code,
      this.createBy,
      this.createTime,
      this.dataId,
      this.id,
      this.updateBy,
      this.updateTime,
      this.url});

  InvoiceImg.fromJson(Map<String, dynamic> json) {
    base64Code = json['base64Code'];
    createBy = json['createBy'];
    createTime = json['createTime'];
    dataId = json['dataId'];
    id = json['id'];
    updateBy = json['updateBy'];
    updateTime = json['updateTime'];
    url = json['url'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['base64Code'] = this.base64Code;
    data['createBy'] = this.createBy;
    data['createTime'] = this.createTime;
    data['dataId'] = this.dataId;
    data['id'] = this.id;
    data['updateBy'] = this.updateBy;
    data['updateTime'] = this.updateTime;
    data['url'] = this.url;
    return data;
  }
}

class InvoiceItem {
  String createBy;
  int createTime;
  int dataId;
  int dataType;
  String dw;
  int fphxz;
  String ggxh;
  int id;
  int invoiceId;
  int se;
  int sl;
  String updateBy;
  int updateTime;
  int xmdj;
  String xmmc;
  int xmsl;
  int xmze;

  InvoiceItem(
      {this.createBy,
      this.createTime,
      this.dataId,
      this.dataType,
      this.dw,
      this.fphxz,
      this.ggxh,
      this.id,
      this.invoiceId,
      this.se,
      this.sl,
      this.updateBy,
      this.updateTime,
      this.xmdj,
      this.xmmc,
      this.xmsl,
      this.xmze});

  InvoiceItem.fromJson(Map<String, dynamic> json) {
    createBy = json['createBy'];
    createTime = json['createTime'];
    dataId = json['dataId'];
    dataType = json['dataType'];
    dw = json['dw'];
    fphxz = json['fphxz'];
    ggxh = json['ggxh'];
    id = json['id'];
    invoiceId = json['invoiceId'];
    se = json['se'];
    sl = json['sl'];
    updateBy = json['updateBy'];
    updateTime = json['updateTime'];
    xmdj = json['xmdj'];
    xmmc = json['xmmc'];
    xmsl = json['xmsl'];
    xmze = json['xmze'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['createBy'] = this.createBy;
    data['createTime'] = this.createTime;
    data['dataId'] = this.dataId;
    data['dataType'] = this.dataType;
    data['dw'] = this.dw;
    data['fphxz'] = this.fphxz;
    data['ggxh'] = this.ggxh;
    data['id'] = this.id;
    data['invoiceId'] = this.invoiceId;
    data['se'] = this.se;
    data['sl'] = this.sl;
    data['updateBy'] = this.updateBy;
    data['updateTime'] = this.updateTime;
    data['xmdj'] = this.xmdj;
    data['xmmc'] = this.xmmc;
    data['xmsl'] = this.xmsl;
    data['xmze'] = this.xmze;
    return data;
  }
}
