/****************************************************************************
** ui.h extension file, included from the uic-generated form implementation.
**
** If you wish to add, delete or rename functions or slots use
** Qt Designer which will update this file, preserving your code. Create an
** init() function in place of a constructor, and a destroy() function in
** place of a destructor.
*****************************************************************************/


void FormEleves::init()
{
    //mise en forme du tableau
    tableNotes->verticalHeader()->hide();
    tableNotes->setLeftMargin(0);
    tableNotes->setColumnWidth(0,200);
    tableNotes->setColumnWidth(1,100);
    tableNotes->setColumnWidth(2,100);
    
    classe_changement();
}


void FormEleves::classe_changement()
{
    //on vide la liste des élèves
    comboBoxEleve->clear();
     
    //récupération de la classe sélectionnée
    QString classe=comboBoxClasse->currentText();
        
    //on sélectionne tous les élèves de cette classe
    QSqlQuery req;
    QString lib="SELECT nomEleve,prenomEleve FROM ELEVE WHERE classeEleve='"+classe;
    lib=lib+"' ORDER BY nomEleve";
    req.exec(lib);
    
    QString texteAff;
    //pour chaque élève
    while (req.next() )
    {
	 texteAff=req.value(0).toString()+" "+req.value(1).toString();
	 comboBoxEleve->insertItem(texteAff);
    }
    
    eleve_changement();
}


void FormEleves::eleve_changement()
{
     //récupération du nom et du prénom de l'élève
    QString eleve=comboBoxEleve->currentText();
    QStringList qsElv=QStringList::split(" ",eleve);
    QString nom=qsElv[0];
    QString prenom=qsElv[1];
    //on sélectionne le numéro de l'élève
    QSqlQuery req;
    QString lib="SELECT noEleve FROM ELEVE WHERE nomEleve='"+nom;
    lib=lib+"' AND prenomEleve='"+prenom+"'";
    req.exec(lib);
    req.next();
    int noElv=req.value(0).toInt();
    QString noEleve=QString::number(noElv);
    
    //on sélectionne les devoirs pour lesquels l'élève sélectionné a obtenu une note
    lib="SELECT libDevoir,dateDevoir,note FROM DEVOIR D,EFFECTUER EF";
    lib=lib+" WHERE D.noMatiere=EF.noMatiere AND D.noDevoir=EF.noDevoir";
    lib=lib+" AND noEleve="+noEleve+" AND note IS NOT NULL";
    req.exec(lib);
    qDebug(lib);
    
    //on indique que le nombre de lignes du tableau est égal au nombre de devoirs qu'on a sélectionné
    tableNotes->setNumRows(req.size() );
    
    int noLigne=0;
    uint i;
    
    //pour chaque devoir
    while (req.next() )
    {
	for (i=0;i<3;i++)
	{
	    //avant d'insérer la date dans le tableau, on la reformate
	    if (i==1)
	    {
		QStringList dateAng=QStringList::split("-",req.value(i).toString());
		QString jour=dateAng[2 ];
		QString mois=dateAng[1];
		QString annee=dateAng[0];
		QString dateFr=jour+"/"+mois+"/"+annee;
		tableNotes->setText(noLigne,i,dateFr);
	    }
	    else
	    {
		tableNotes->setText(noLigne,i,req.value(i).toString() );
	    }
	}
	noLigne++;
    }
}
