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

  GetInvoiceDetailsResponseModel(
      {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.patientIdentificationNo,
        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.patientCityName,
        this.patientCityNameN,
        this.doctorImageURL,
        this.listConsultation});

  GetInvoiceDetailsResponseModel.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'];
    patientIdentificationNo = json['PatientIdentificationNo'];
    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'];
    patientCityName = json['PatientCityName'];
    patientCityNameN = json['PatientCityNameN'];
    doctorImageURL = json['DoctorImageURL'];
    if (json['listConsultation'] != null) {
      listConsultation = <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['PatientIdentificationNo'] = this.patientIdentificationNo;
    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['PatientCityName'] = this.patientCityName;
    data['PatientCityNameN'] = this.patientCityNameN;
    data['DoctorImageURL'] = this.doctorImageURL;
    if (this.listConsultation != null) {
      data['listConsultation'] =
          this.listConsultation!.map((v) => v.toJson()).toList();
    }
    return data;
  }
}

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

  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.patientIdentificationNo,
        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.patientCityName,
        this.patientCityNameN});

  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'];
    patientIdentificationNo = json['PatientIdentificationNo'];
    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'];
    patientCityName = json['PatientCityName'];
    patientCityNameN = json['PatientCityNameN'];
  }

  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['PatientIdentificationNo'] = this.patientIdentificationNo;
    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['PatientCityName'] = this.patientCityName;
    data['PatientCityNameN'] = this.patientCityNameN;
    return data;
  }
}
