class DentalInvoiceDetailResponse {
  List<ListEInvoiceForDental> listEInvoiceForDental;

  DentalInvoiceDetailResponse({this.listEInvoiceForDental});

  DentalInvoiceDetailResponse.fromJson(Map<String, dynamic> json) {
    if (json['List_eInvoiceForDental'] != null) {
      listEInvoiceForDental = new List<ListEInvoiceForDental>();
      json['List_eInvoiceForDental'].forEach((v) {
        listEInvoiceForDental.add(new ListEInvoiceForDental.fromJson(v));
      });
    }
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    if (this.listEInvoiceForDental != null) {
      data['List_eInvoiceForDental'] =
          this.listEInvoiceForDental.map((v) => v.toJson()).toList();
    }
    return data;
  }
}

class ListEInvoiceForDental {
  int projectID;
  int doctorID;
  dynamic grandTotal;
  dynamic quantity;
  dynamic total;
  dynamic discount;
  dynamic subTotal;
  int invoiceNo;
  String createdOn;
  dynamic procedureID;
  dynamic procedureName;
  dynamic procedureNameN;
  dynamic procedurePrice;
  dynamic patientShare;
  dynamic companyShare;
  dynamic totalPatientShare;
  dynamic totalCompanyShare;
  dynamic totalShare;
  dynamic discountAmount;
  dynamic vATPercentage;
  dynamic patientVATAmount;
  dynamic companyVATAmount;
  dynamic totalVATAmount;
  dynamic price;
  int patientID;
  String patientName;
  dynamic patientNameN;
  String nationalityID;
  String doctorName;
  dynamic doctorNameN;
  int clinicID;
  String clinicDescription;
  dynamic clinicDescriptionN;
  String appointmentDate;
  int appointmentNo;
  String insuranceID;
  int companyID;
  String companyName;
  dynamic companyNameN;
  String companyAddress;
  dynamic companyAddressN;
  String companyGroupAddress;
  String groupName;
  dynamic groupNameN;
  String patientAddress;
  String vATNo;
  String paymentDate;
  String projectName;
  dynamic totalDiscount;
  dynamic totalPatientShareWithQuantity;
  String legalName;
  dynamic legalNameN;
  dynamic advanceAdjustment;
  String doctorImageURL;
  List<ListConsultation> listConsultation;

  ListEInvoiceForDental(
      {this.projectID,
        this.doctorID,
        this.grandTotal,
        this.quantity,
        this.total,
        this.discount,
        this.subTotal,
        this.invoiceNo,
        this.createdOn,
        this.procedureID,
        this.procedureName,
        this.procedureNameN,
        this.procedurePrice,
        this.patientShare,
        this.companyShare,
        this.totalPatientShare,
        this.totalCompanyShare,
        this.totalShare,
        this.discountAmount,
        this.vATPercentage,
        this.patientVATAmount,
        this.companyVATAmount,
        this.totalVATAmount,
        this.price,
        this.patientID,
        this.patientName,
        this.patientNameN,
        this.nationalityID,
        this.doctorName,
        this.doctorNameN,
        this.clinicID,
        this.clinicDescription,
        this.clinicDescriptionN,
        this.appointmentDate,
        this.appointmentNo,
        this.insuranceID,
        this.companyID,
        this.companyName,
        this.companyNameN,
        this.companyAddress,
        this.companyAddressN,
        this.companyGroupAddress,
        this.groupName,
        this.groupNameN,
        this.patientAddress,
        this.vATNo,
        this.paymentDate,
        this.projectName,
        this.totalDiscount,
        this.totalPatientShareWithQuantity,
        this.legalName,
        this.legalNameN,
        this.advanceAdjustment,
        this.doctorImageURL,
        this.listConsultation});

  ListEInvoiceForDental.fromJson(Map<String, dynamic> json) {
    projectID = json['ProjectID'];
    doctorID = json['DoctorID'];
    grandTotal = json['GrandTotal'];
    quantity = json['Quantity'];
    total = json['Total'];
    discount = json['Discount'];
    subTotal = json['SubTotal'];
    invoiceNo = json['InvoiceNo'];
    createdOn = json['CreatedOn'];
    procedureID = json['ProcedureID'];
    procedureName = json['ProcedureName'];
    procedureNameN = json['ProcedureNameN'];
    procedurePrice = json['ProcedurePrice'];
    patientShare = json['PatientShare'];
    companyShare = json['CompanyShare'];
    totalPatientShare = json['TotalPatientShare'];
    totalCompanyShare = json['TotalCompanyShare'];
    totalShare = json['TotalShare'];
    discountAmount = json['DiscountAmount'];
    vATPercentage = json['VATPercentage'];
    patientVATAmount = json['PatientVATAmount'];
    companyVATAmount = json['CompanyVATAmount'];
    totalVATAmount = json['TotalVATAmount'];
    price = json['Price'];
    patientID = json['PatientID'];
    patientName = json['PatientName'];
    patientNameN = json['PatientNameN'];
    nationalityID = json['NationalityID'];
    doctorName = json['DoctorName'];
    doctorNameN = json['DoctorNameN'];
    clinicID = json['ClinicID'];
    clinicDescription = json['ClinicDescription'];
    clinicDescriptionN = json['ClinicDescriptionN'];
    appointmentDate = json['AppointmentDate'];
    appointmentNo = json['AppointmentNo'];
    insuranceID = json['InsuranceID'];
    companyID = json['CompanyID'];
    companyName = json['CompanyName'];
    companyNameN = json['CompanyNameN'];
    companyAddress = json['CompanyAddress'];
    companyAddressN = json['CompanyAddressN'];
    companyGroupAddress = json['CompanyGroupAddress'];
    groupName = json['GroupName'];
    groupNameN = json['GroupNameN'];
    patientAddress = json['PatientAddress'];
    vATNo = json['VATNo'];
    paymentDate = json['PaymentDate'];
    projectName = json['ProjectName'];
    totalDiscount = json['TotalDiscount'];
    totalPatientShareWithQuantity = json['TotalPatientShareWithQuantity'];
    legalName = json['LegalName'];
    legalNameN = json['LegalNameN'];
    advanceAdjustment = json['AdvanceAdjustment'];
    doctorImageURL = json['DoctorImageURL'];
    if (json['listConsultation'] != null) {
      listConsultation = new List<ListConsultation>();
      json['listConsultation'].forEach((v) {
        listConsultation.add(new ListConsultation.fromJson(v));
      });
    }
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['ProjectID'] = this.projectID;
    data['DoctorID'] = this.doctorID;
    data['GrandTotal'] = this.grandTotal;
    data['Quantity'] = this.quantity;
    data['Total'] = this.total;
    data['Discount'] = this.discount;
    data['SubTotal'] = this.subTotal;
    data['InvoiceNo'] = this.invoiceNo;
    data['CreatedOn'] = this.createdOn;
    data['ProcedureID'] = this.procedureID;
    data['ProcedureName'] = this.procedureName;
    data['ProcedureNameN'] = this.procedureNameN;
    data['ProcedurePrice'] = this.procedurePrice;
    data['PatientShare'] = this.patientShare;
    data['CompanyShare'] = this.companyShare;
    data['TotalPatientShare'] = this.totalPatientShare;
    data['TotalCompanyShare'] = this.totalCompanyShare;
    data['TotalShare'] = this.totalShare;
    data['DiscountAmount'] = this.discountAmount;
    data['VATPercentage'] = this.vATPercentage;
    data['PatientVATAmount'] = this.patientVATAmount;
    data['CompanyVATAmount'] = this.companyVATAmount;
    data['TotalVATAmount'] = this.totalVATAmount;
    data['Price'] = this.price;
    data['PatientID'] = this.patientID;
    data['PatientName'] = this.patientName;
    data['PatientNameN'] = this.patientNameN;
    data['NationalityID'] = this.nationalityID;
    data['DoctorName'] = this.doctorName;
    data['DoctorNameN'] = this.doctorNameN;
    data['ClinicID'] = this.clinicID;
    data['ClinicDescription'] = this.clinicDescription;
    data['ClinicDescriptionN'] = this.clinicDescriptionN;
    data['AppointmentDate'] = this.appointmentDate;
    data['AppointmentNo'] = this.appointmentNo;
    data['InsuranceID'] = this.insuranceID;
    data['CompanyID'] = this.companyID;
    data['CompanyName'] = this.companyName;
    data['CompanyNameN'] = this.companyNameN;
    data['CompanyAddress'] = this.companyAddress;
    data['CompanyAddressN'] = this.companyAddressN;
    data['CompanyGroupAddress'] = this.companyGroupAddress;
    data['GroupName'] = this.groupName;
    data['GroupNameN'] = this.groupNameN;
    data['PatientAddress'] = this.patientAddress;
    data['VATNo'] = this.vATNo;
    data['PaymentDate'] = this.paymentDate;
    data['ProjectName'] = this.projectName;
    data['TotalDiscount'] = this.totalDiscount;
    data['TotalPatientShareWithQuantity'] = this.totalPatientShareWithQuantity;
    data['LegalName'] = this.legalName;
    data['LegalNameN'] = this.legalNameN;
    data['AdvanceAdjustment'] = this.advanceAdjustment;
    data['DoctorImageURL'] = this.doctorImageURL;
    if (this.listConsultation != null) {
      data['listConsultation'] =
          this.listConsultation.map((v) => v.toJson()).toList();
    }
    return data;
  }
}

class ListConsultation {
  dynamic projectID;
  dynamic doctorID;
  dynamic grandTotal;
  int quantity;
  int total;
  dynamic discount;
  int subTotal;
  dynamic invoiceNo;
  dynamic createdOn;
  String procedureID;
  String procedureName;
  dynamic procedureNameN;
  dynamic procedurePrice;
  int patientShare;
  dynamic companyShare;
  int totalPatientShare;
  dynamic totalCompanyShare;
  dynamic totalShare;
  dynamic discountAmount;
  int vATPercentage;
  int patientVATAmount;
  dynamic companyVATAmount;
  dynamic totalVATAmount;
  int price;
  dynamic patientID;
  dynamic patientName;
  dynamic patientNameN;
  dynamic nationalityID;
  dynamic doctorName;
  dynamic doctorNameN;
  dynamic clinicID;
  dynamic clinicDescription;
  dynamic clinicDescriptionN;
  dynamic appointmentDate;
  dynamic appointmentNo;
  dynamic insuranceID;
  dynamic companyID;
  dynamic companyName;
  dynamic companyNameN;
  dynamic companyAddress;
  dynamic companyAddressN;
  dynamic companyGroupAddress;
  dynamic groupName;
  dynamic groupNameN;
  dynamic patientAddress;
  String vATNo;
  dynamic paymentDate;
  dynamic projectName;
  dynamic totalDiscount;
  dynamic totalPatientShareWithQuantity;
  dynamic legalName;
  dynamic legalNameN;
  int advanceAdjustment;

  ListConsultation(
      {this.projectID,
        this.doctorID,
        this.grandTotal,
        this.quantity,
        this.total,
        this.discount,
        this.subTotal,
        this.invoiceNo,
        this.createdOn,
        this.procedureID,
        this.procedureName,
        this.procedureNameN,
        this.procedurePrice,
        this.patientShare,
        this.companyShare,
        this.totalPatientShare,
        this.totalCompanyShare,
        this.totalShare,
        this.discountAmount,
        this.vATPercentage,
        this.patientVATAmount,
        this.companyVATAmount,
        this.totalVATAmount,
        this.price,
        this.patientID,
        this.patientName,
        this.patientNameN,
        this.nationalityID,
        this.doctorName,
        this.doctorNameN,
        this.clinicID,
        this.clinicDescription,
        this.clinicDescriptionN,
        this.appointmentDate,
        this.appointmentNo,
        this.insuranceID,
        this.companyID,
        this.companyName,
        this.companyNameN,
        this.companyAddress,
        this.companyAddressN,
        this.companyGroupAddress,
        this.groupName,
        this.groupNameN,
        this.patientAddress,
        this.vATNo,
        this.paymentDate,
        this.projectName,
        this.totalDiscount,
        this.totalPatientShareWithQuantity,
        this.legalName,
        this.legalNameN,
        this.advanceAdjustment});

  ListConsultation.fromJson(Map<String, dynamic> json) {
    projectID = json['ProjectID'];
    doctorID = json['DoctorID'];
    grandTotal = json['GrandTotal'];
    quantity = json['Quantity'];
    total = json['Total'];
    discount = json['Discount'];
    subTotal = json['SubTotal'];
    invoiceNo = json['InvoiceNo'];
    createdOn = json['CreatedOn'];
    procedureID = json['ProcedureID'];
    procedureName = json['ProcedureName'];
    procedureNameN = json['ProcedureNameN'];
    procedurePrice = json['ProcedurePrice'];
    patientShare = json['PatientShare'];
    companyShare = json['CompanyShare'];
    totalPatientShare = json['TotalPatientShare'];
    totalCompanyShare = json['TotalCompanyShare'];
    totalShare = json['TotalShare'];
    discountAmount = json['DiscountAmount'];
    vATPercentage = json['VATPercentage'];
    patientVATAmount = json['PatientVATAmount'];
    companyVATAmount = json['CompanyVATAmount'];
    totalVATAmount = json['TotalVATAmount'];
    price = json['Price'];
    patientID = json['PatientID'];
    patientName = json['PatientName'];
    patientNameN = json['PatientNameN'];
    nationalityID = json['NationalityID'];
    doctorName = json['DoctorName'];
    doctorNameN = json['DoctorNameN'];
    clinicID = json['ClinicID'];
    clinicDescription = json['ClinicDescription'];
    clinicDescriptionN = json['ClinicDescriptionN'];
    appointmentDate = json['AppointmentDate'];
    appointmentNo = json['AppointmentNo'];
    insuranceID = json['InsuranceID'];
    companyID = json['CompanyID'];
    companyName = json['CompanyName'];
    companyNameN = json['CompanyNameN'];
    companyAddress = json['CompanyAddress'];
    companyAddressN = json['CompanyAddressN'];
    companyGroupAddress = json['CompanyGroupAddress'];
    groupName = json['GroupName'];
    groupNameN = json['GroupNameN'];
    patientAddress = json['PatientAddress'];
    vATNo = json['VATNo'];
    paymentDate = json['PaymentDate'];
    projectName = json['ProjectName'];
    totalDiscount = json['TotalDiscount'];
    totalPatientShareWithQuantity = json['TotalPatientShareWithQuantity'];
    legalName = json['LegalName'];
    legalNameN = json['LegalNameN'];
    advanceAdjustment = json['AdvanceAdjustment'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['ProjectID'] = this.projectID;
    data['DoctorID'] = this.doctorID;
    data['GrandTotal'] = this.grandTotal;
    data['Quantity'] = this.quantity;
    data['Total'] = this.total;
    data['Discount'] = this.discount;
    data['SubTotal'] = this.subTotal;
    data['InvoiceNo'] = this.invoiceNo;
    data['CreatedOn'] = this.createdOn;
    data['ProcedureID'] = this.procedureID;
    data['ProcedureName'] = this.procedureName;
    data['ProcedureNameN'] = this.procedureNameN;
    data['ProcedurePrice'] = this.procedurePrice;
    data['PatientShare'] = this.patientShare;
    data['CompanyShare'] = this.companyShare;
    data['TotalPatientShare'] = this.totalPatientShare;
    data['TotalCompanyShare'] = this.totalCompanyShare;
    data['TotalShare'] = this.totalShare;
    data['DiscountAmount'] = this.discountAmount;
    data['VATPercentage'] = this.vATPercentage;
    data['PatientVATAmount'] = this.patientVATAmount;
    data['CompanyVATAmount'] = this.companyVATAmount;
    data['TotalVATAmount'] = this.totalVATAmount;
    data['Price'] = this.price;
    data['PatientID'] = this.patientID;
    data['PatientName'] = this.patientName;
    data['PatientNameN'] = this.patientNameN;
    data['NationalityID'] = this.nationalityID;
    data['DoctorName'] = this.doctorName;
    data['DoctorNameN'] = this.doctorNameN;
    data['ClinicID'] = this.clinicID;
    data['ClinicDescription'] = this.clinicDescription;
    data['ClinicDescriptionN'] = this.clinicDescriptionN;
    data['AppointmentDate'] = this.appointmentDate;
    data['AppointmentNo'] = this.appointmentNo;
    data['InsuranceID'] = this.insuranceID;
    data['CompanyID'] = this.companyID;
    data['CompanyName'] = this.companyName;
    data['CompanyNameN'] = this.companyNameN;
    data['CompanyAddress'] = this.companyAddress;
    data['CompanyAddressN'] = this.companyAddressN;
    data['CompanyGroupAddress'] = this.companyGroupAddress;
    data['GroupName'] = this.groupName;
    data['GroupNameN'] = this.groupNameN;
    data['PatientAddress'] = this.patientAddress;
    data['VATNo'] = this.vATNo;
    data['PaymentDate'] = this.paymentDate;
    data['ProjectName'] = this.projectName;
    data['TotalDiscount'] = this.totalDiscount;
    data['TotalPatientShareWithQuantity'] = this.totalPatientShareWithQuantity;
    data['LegalName'] = this.legalName;
    data['LegalNameN'] = this.legalNameN;
    data['AdvanceAdjustment'] = this.advanceAdjustment;
    return data;
  }
}
