/**
   * Supprime un Docteur dans la Base de données selon ses identifiants
   *
   * @param num - Numero du Docteur (Employe)
   * @throws SQLException
   */
  public static void Supr(int num) throws SQLException {
    DAODocteur dao = new DAODocteur(Connexion.getInstance());
    DAOSoigne daos = new DAOSoigne(Connexion.getInstance());

    int var = 0;
    ArrayList<Soigne> allsoin = (ArrayList<Soigne>) daos.findAll();

    for (Soigne s : allsoin) {
      if (s.getNo_docteur().getNumero().getNumero() == num) var = 1;
    }

    Docteur doc = new Docteur();
    Employe emp = new Employe();
    emp.setNumero(num);
    doc.setNumero(emp);

    if (var == 0) {
      dao.delete(doc);
    }
  }
  /**
   * Créer un nouveau Docteur dans la Base de données selon les attributs en parametre
   *
   * @param spe - Specialite
   * @param numemp1 - Employe
   * @throws SQLException
   */
  public static void Create(String spe, int numemp1) throws SQLException {
    DAODocteur dao = new DAODocteur(Connexion.getInstance());
    Employe emp = new Employe();
    emp.setNumero(numemp1);

    Docteur doc = new Docteur();
    doc.setNumero(emp);
    doc.setSpecialite(spe);

    dao.insert(doc);
  }
  /**
   * Créer un nouveau Hospitalisation dans la Base de données selon les attributs en parametre
   *
   * @param numlit - Numéro de lit
   * @param nummal1 - Numéro de malade
   * @param codesrv2 - Numéro de service
   * @param numch - Numéro de chambre
   * @throws SQLException
   */
  public static void Create(int numlit, int nummal1, String codesrv2, int numch)
      throws SQLException {
    DAOHospitalisation dao = new DAOHospitalisation(Connexion.getInstance());

    Chambre ch = new Chambre();
    Service srv = new Service();
    Malade mal = new Malade();

    srv.setCode(codesrv2);
    ch.setCode_service(srv);
    ch.setNo_chambre(numch);
    mal.setNumero(nummal1);

    Hospitalisation hospi = new Hospitalisation();
    hospi.setCode_service(srv);
    hospi.setLit(numlit);
    hospi.setNo_chambre(ch);
    hospi.setNo_malade(mal);

    dao.insert(hospi);
  }
  /**
   * Effectue une recherche dans les Hospitalisation selon les 3 attribut voulu contenant les 3
   * informations données en parametre
   *
   * @param att1
   * @param arg1
   * @param att2
   * @param arg2
   * @param att3
   * @param arg3
   * @return ListHospitalisation
   * @throws java.sql.SQLException
   */
  public static List<Hospitalisation> FindResult(
      String att1, String arg1, String att2, String arg2, String att3, String arg3)
      throws SQLException {

    String[] HospitalisationRecherche = {
      "Numero du Malade",
      "Nom du Malade",
      "Numero du Service",
      "Nom du Service",
      "Chambre",
      "Numero du lit"
    };
    // Initialisation
    DAOHospitalisation daohos = new DAOHospitalisation(Connexion.getInstance());
    DAOMalade daomal = new DAOMalade(Connexion.getInstance());
    DAOService daosrv = new DAOService(Connexion.getInstance());
    DAOChambre daoch = new DAOChambre(Connexion.getInstance());

    List<Hospitalisation> ListHos = new ArrayList<Hospitalisation>();

    // Mise en place de la liste ALL
    List<Hospitalisation> ListAllHos = daohos.findAll();
    for (Hospitalisation hosp : ListAllHos) {
      hosp.setCode_service(daosrv.getById(hosp.getCode_service().getCode()));
      hosp.setNo_chambre(
          daoch.getById(hosp.getCode_service().getCode(), hosp.getNo_chambre().getNo_chambre()));
      hosp.setNo_malade(daomal.getById(hosp.getNo_malade().getNumero()));
    }

    // Att1
    if ("Numero du Malade".equals(att1)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (("" + hosp.getNo_malade().getNumero()).contains(arg1)) ListHos.add(hosp);
      }
    } else if ("Nom du Malade".equals(att1)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (hosp.getNo_malade().getNom().contains(arg1)) ListHos.add(hosp);
      }
    } else if ("Numero du Service".equals(att1)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (hosp.getCode_service().getCode().contains(arg1)) ListHos.add(hosp);
      }
    } else if ("Nom du Service".equals(att1)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (hosp.getCode_service().getNomserv().contains(arg1)) ListHos.add(hosp);
      }
    } else if ("Chambre".equals(att1)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (("" + hosp.getNo_chambre().getNo_chambre()).contains(arg1)) ListHos.add(hosp);
      }
    } else if ("Numero du lit".equals(att1)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (("" + hosp.getNo_chambre().getNb_lits()).contains(arg1)) ListHos.add(hosp);
      }
    }

    // Att2
    if ("Numero du Malade".equals(att2)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (("" + hosp.getNo_malade().getNumero()).contains(arg2)) ListHos.add(hosp);
      }
    } else if ("Nom du Malade".equals(att2)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (hosp.getNo_malade().getNom().contains(arg2)) ListHos.add(hosp);
      }
    } else if ("Numero du Service".equals(att2)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (hosp.getCode_service().getCode().contains(arg2)) ListHos.add(hosp);
      }
    } else if ("Nom du Service".equals(att2)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (hosp.getCode_service().getNomserv().contains(arg2)) ListHos.add(hosp);
      }
    } else if ("Chambre".equals(att2)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (("" + hosp.getNo_chambre().getNo_chambre()).contains(arg2)) ListHos.add(hosp);
      }
    } else if ("Numero du lit".equals(att2)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (("" + hosp.getNo_chambre().getNb_lits()).contains(arg2)) ListHos.add(hosp);
      }
    }

    // att3
    if ("Numero du Malade".equals(att3)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (("" + hosp.getNo_malade().getNumero()).contains(arg3)) ListHos.add(hosp);
      }
    } else if ("Nom du Malade".equals(att3)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (hosp.getNo_malade().getNom().contains(arg3)) ListHos.add(hosp);
      }
    } else if ("Numero du Service".equals(att3)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (hosp.getCode_service().getCode().contains(arg3)) ListHos.add(hosp);
      }
    } else if ("Nom du Service".equals(att3)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (hosp.getCode_service().getNomserv().contains(arg3)) ListHos.add(hosp);
      }
    } else if ("Chambre".equals(att3)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (("" + hosp.getNo_chambre().getNo_chambre()).contains(arg3)) ListHos.add(hosp);
      }
    } else if ("Numero du lit".equals(att3)) {
      for (Hospitalisation hosp : ListAllHos) {
        if (("" + hosp.getNo_chambre().getNb_lits()).contains(arg3)) ListHos.add(hosp);
      }
    }

    if (att1.equals(att2) && att1.equals(att3) && att3.equals("")) {
      ListHos = ListAllHos;
    }
    return ListHos;
  }
  /**
   * Effectue une recherche dans les Docteurs selon les 3 attribut voulu contenant les 3
   * informations données en parametre
   *
   * @param att1
   * @param arg1
   * @param att2
   * @param arg2
   * @param att3
   * @param arg3
   * @return ListDocteur
   * @throws java.sql.SQLException
   */
  public static List<Docteur> FindResult(
      String att1, String arg1, String att2, String arg2, String att3, String arg3)
      throws SQLException {

    // Initialisation
    DAODocteur daodoc = new DAODocteur(Connexion.getInstance());
    DAOEmploye daoemp = new DAOEmploye(Connexion.getInstance());
    List<Docteur> ListDoc = new ArrayList<Docteur>();
    List<Docteur> ListFinal = new ArrayList<Docteur>();
    // Mise en place de la liste ALL
    List<Docteur> ListAllDoc = daodoc.findAll();
    for (Docteur doc : ListAllDoc) {
      doc.setNumero(daoemp.getById(doc.getNumero().getNumero()));
    }

    // Att1
    if ("Numero".equals(att1)) {
      try {
        boolean add = ListDoc.add(daodoc.getById(Integer.parseInt(arg1)));
      } catch (NumberFormatException e) {
      }
    } else if ("Nom".equals(att1)) {
      List<Employe> Listemp = daoemp.findByNom(arg1);
      for (Employe emp : Listemp) {
        boolean add = ListDoc.add(daodoc.getById(emp.getNumero()));
      }

    } else if ("Prenom".equals(att1)) {
      List<Employe> Listemp = daoemp.findByPrenom(arg1);
      for (Employe emp : Listemp) {
        boolean add = ListDoc.add(daodoc.getById(emp.getNumero()));
      }

    } else if ("Adresse".equals(att1)) {
      List<Employe> Listemp = daoemp.findByAdr(arg1);
      for (Employe emp : Listemp) {
        boolean add = ListDoc.add(daodoc.getById(emp.getNumero()));
      }

    } else if ("Telephone".equals(att1)) {
      List<Employe> Listemp = daoemp.findByTel(arg1);
      for (Employe emp : Listemp) {
        boolean add = ListDoc.add(daodoc.getById(emp.getNumero()));
      }

    } else if ("Specialite".equals(att1)) {
      ListDoc = daodoc.findBySpe(arg1);
    }

    // Att2
    if ("Numero".equals(att2)) {
      try {
        boolean add = ListDoc.add(daodoc.getById(Integer.parseInt(arg2)));
      } catch (NumberFormatException e) {
      }
    } else if ("Nom".equals(att2)) {
      List<Employe> Listemp = daoemp.findByNom(arg2);
      for (Employe emp : Listemp) {
        boolean add = ListDoc.add(daodoc.getById(emp.getNumero()));
      }

    } else if ("Prenom".equals(att2)) {
      List<Employe> Listemp = daoemp.findByPrenom(arg2);
      for (Employe emp : Listemp) {
        boolean add = ListDoc.add(daodoc.getById(emp.getNumero()));
      }

    } else if ("Adresse".equals(att2)) {
      List<Employe> Listemp = daoemp.findByAdr(arg2);
      for (Employe emp : Listemp) {
        boolean add = ListDoc.add(daodoc.getById(emp.getNumero()));
      }

    } else if ("Telephone".equals(att2)) {
      List<Employe> Listemp = daoemp.findByTel(arg2);
      for (Employe emp : Listemp) {
        boolean add = ListDoc.add(daodoc.getById(emp.getNumero()));
      }

    } else if ("Specialite".equals(att2)) {
      ListDoc = daodoc.findBySpe(att2);
    }

    // Att3
    if ("Numero".equals(att3)) {
      try {
        boolean add = ListDoc.add(daodoc.getById(Integer.parseInt(arg3)));
      } catch (NumberFormatException e) {
      }
    } else if ("Nom".equals(att3)) {
      List<Employe> Listemp = daoemp.findByNom(arg3);
      for (Employe emp : Listemp) {
        boolean add = ListDoc.add(daodoc.getById(emp.getNumero()));
      }

    } else if ("Prenom".equals(att3)) {
      List<Employe> Listemp = daoemp.findByPrenom(arg3);
      for (Employe emp : Listemp) {
        boolean add = ListDoc.add(daodoc.getById(emp.getNumero()));
      }

    } else if ("Adresse".equals(att3)) {
      List<Employe> Listemp = daoemp.findByAdr(arg3);
      for (Employe emp : Listemp) {
        boolean add = ListDoc.add(daodoc.getById(emp.getNumero()));
      }

    } else if ("Telephone".equals(att3)) {
      List<Employe> Listemp = daoemp.findByTel(arg3);
      for (Employe emp : Listemp) {
        boolean add = ListDoc.add(daodoc.getById(emp.getNumero()));
      }

    } else if ("Specialite".equals(att3)) {
      ListDoc = daodoc.findBySpe(att3);
    }
    if (ListDoc.size() > 0) {
      for (Docteur ListDoc1 : ListDoc) {
        if (ListDoc1.getNumero() != null) {
          ListFinal.add(ListDoc1);
        }
      }
      for (Docteur doc : ListFinal) {
        doc.setNumero(daoemp.getById(doc.getNumero().getNumero()));
      }
    }

    if (att1.equals(att2) && att1.equals(att3) && att3.equals("")) {
      ListFinal = ListAllDoc;
    }
    return ListFinal;
  }