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); } }