void FenetreUnitaire::enregistrerTacheUnitaire()
{
    Duree du(dureeUnitaire->time().hour(), dureeUnitaire->time().minute());
    ProjetManager& pm = ProjetManager::getInstance();
    Projet* projet = pm.trouverProjet(idProjet->currentText());
    if(projet->trouverTache(idUnitaire->text()))
    {
        QMessageBox::warning(this, "erreur","sauvegarde impossible, tache deja existante");
        dispoUnitaire->setDateTime(QDateTime::currentDateTime());
        echeanceUnitaire->setDateTime(QDateTime::currentDateTime());
    }
    else if(projet->getEcheance()<echeanceUnitaire->dateTime())
    {
        QMessageBox::warning(this, "erreur","sauvegarde impossible, date d'échéance de la tache postérieure à la date d'échéance du projet");
        echeanceUnitaire->setDateTime(QDateTime::currentDateTime());
    }
    else if(projet->getDispo()>dispoUnitaire->dateTime())
    {
        QMessageBox::warning(this, "erreur","sauvegarde impossible, date de dispo de la tache antérieure a la date de dispo du projet");
        dispoUnitaire->setDateTime(QDateTime::currentDateTime());
    }
    else if(preemptive->isChecked())
    {
        if(idComposite->currentText()!="")
        {
            if(projet->getTache(idComposite->currentText()).getEcheance()<echeanceUnitaire->dateTime())
            {
                QMessageBox::warning(this, "erreur", "date echeance de la composite inferieure a l'echeance de la tache que vous ajoutez");
            }
            else if(projet->getTache(idComposite->currentText()).getDate()>dispoUnitaire->dateTime())
            {
                QMessageBox::warning(this, "erreur", "date dispo de la composite superieure a la dispo que la date que vous ajoutez");
            }
            else {
                projet->ajouterTacheUnitaire(idUnitaire->text(),titreUnitaire->text(),dispoUnitaire->dateTime(), echeanceUnitaire->dateTime(), du);
                projet->getTache(idComposite->currentText()).ajouterSousTache(projet->trouverTache(idUnitaire->text()));
                QMessageBox::about(this, "ajout", "Tache preemptive dans composite ajoutée");
                this->close();
            }
        }else{
            pm.trouverProjet(idProjet->currentText())->ajouterTachePreemptable(idUnitaire->text(),titreUnitaire->text(),dispoUnitaire->dateTime(), echeanceUnitaire->dateTime(), du);
            QMessageBox::about(this, "ajout", "Tache préemptive ajoutée");
            this->close();
        }
    }else{
        if(idComposite->currentText()!="")
        {
            projet->ajouterTacheUnitaire(idUnitaire->text(),titreUnitaire->text(),dispoUnitaire->dateTime(), echeanceUnitaire->dateTime(), du);
            projet->getTache(idComposite->currentText()).ajouterSousTache(projet->trouverTache(idUnitaire->text()));
            QMessageBox::about(this, "ajout", "Tache unitaire dans composite ajoutée");
            this->close();
        }
        else
        {
            projet->ajouterTacheUnitaire(idUnitaire->text(),titreUnitaire->text(),dispoUnitaire->dateTime(), echeanceUnitaire->dateTime(), du);
            QMessageBox::about(this, "ajout", "Tache unitaire ajoutée");
            this->close();
       }
    }
}
void FenetreUnitaire::load()
{

    ProjetManager& pm= ProjetManager::getInstance();
    Projet* projet = pm.trouverProjet(idProjet->currentText());
    dureeUnitaire->clear();
    preemptive->setChecked(false);
    idComposite->clear();
    idUnitaire->clear();
    titreUnitaire->clear();
    echeanceUnitaire->setDateTime(QDateTime::currentDateTime());
    dispoUnitaire->setDateTime(QDateTime::currentDateTime());

    if(projet)
    {
        preemptive->setEnabled(true);
        idUnitaire->setEnabled(true);
        dispoUnitaire->setEnabled(true);
        echeanceUnitaire->setEnabled(true);
        titreUnitaire->setEnabled(true);
        dureeUnitaire->setEnabled(true);
        idComposite->setEnabled(true);
        idComposite->clear();
        idComposite->addItem("");
        dispoProjet->setDateTime(projet->getDispo());
        echeanceProjet->setDateTime(projet->getEcheance());
        for(Projet::taches_iterator it = projet->begin_taches() ; it != projet->end_taches() ; ++it){
            if(typeid(**it) == typeid(TacheComposite)){
                idComposite->addItem((*it)->getId());
            }
        }
    }else{
        dureeUnitaire->setDisabled(true);
        dispoUnitaire->setDisabled(true);
        idComposite->setDisabled(true);
        idUnitaire->setDisabled(true);
        echeanceUnitaire->setDisabled(true);
        titreUnitaire->setDisabled(true);
        preemptive->setDisabled(true);
    }
}