#include "dialogajoutcours.h"
#include "ui_dialogajoutcours.h"
#include "mainwindow.h"
#include "panneaudeconnexion.h"
#include "classes.h"

dialogAjoutCours::dialogAjoutCours(QWidget *parent) :QDialog(parent),ui(new Ui::dialogAjoutCours)
{
    ui->setupUi(this);

//    generationMatieres();
//    generationTypeCours();
//    generationHoraireDuCours();
//    //...


}

dialogAjoutCours::~dialogAjoutCours()
{
    delete ui;
    //delete [] tableauDeMatiere;
    //delete [] tableauDeSalle;
    //delete salleDuCours;
   // delete dateDuCours;
    //delete matiereDuCours;
//    delete horaireDuCours;
//    delete professeurDuCours;
}

void dialogAjoutCours::setDialog (QVector<Matiere> &mat, QVector<Salle> &sal, QVector<Professeur> &pro)
{
    tableauDeMatiere=mat;
    tableauDeSalle=sal;
    tableauDeProf=pro;
    this->show();
    //on_comboBox_promotion_activated(&arg1);

}

void dialogAjoutCours::generationMatieres(const QString &arg1) //Générer les matieres possibles
{
        QChar c ;
        int numero;
        int i=0;
        ui->comboBox_matiere->clear();
        if(arg1 != "")
        {
            c = arg1[1];
            numero = c.toAscii() -48;
        }
        while (i<tableauDeMatiere.size())
        {
            if(tableauDeMatiere[i].getPromo()== numero)
                ui->comboBox_matiere->insertItem(1,tableauDeMatiere[i].getModule());
            i++;
        }
}

void dialogAjoutCours::generationTypeCours(const QString &arg1) //Générer les types de cours (TP/Amphi/TD)
{
    //A prendre en compte :

    int i=0;
    QChar c ;
    int numero;
    ui->comboBox_typeDeCours->clear();

    while (i<tableauDeMatiere.size())
    {   if(ui->comboBox_promotion->currentText() != "")
        {
            c = ui->comboBox_promotion->currentText().at(1);
            numero = c.toAscii() -48;
        }
        if(tableauDeMatiere[i].getNbAmphi() != 0 && tableauDeMatiere[i].getModule()==ui->comboBox_matiere->currentText() && tableauDeMatiere[i].getPromo()==numero)
            ui->comboBox_typeDeCours->insertItem(1,"Amphi");
        if(tableauDeMatiere[i].getNbTD() != 0 && tableauDeMatiere[i].getModule()==ui->comboBox_matiere->currentText() && tableauDeMatiere[i].getPromo()==numero)
            ui->comboBox_typeDeCours->insertItem(1,"TD");
        if(tableauDeMatiere[i].getNbTP() != 0 && tableauDeMatiere[i].getModule()==ui->comboBox_matiere->currentText() && tableauDeMatiere[i].getPromo()==numero)
            ui->comboBox_typeDeCours->insertItem(1,"TP");
        i++;
    }
        //Nombre d'heure restantes
}

void dialogAjoutCours::generationProfesseur(const QString &arg1) //Générer le professeur associé au cours
{
    int i=0;
    QChar c ;
    int numero;
    ui->comboBox_professeur->clear();
    while (i<tableauDeProf.size())
    {   if(ui->comboBox_promotion->currentText() != "")
        {
            c = ui->comboBox_promotion->currentText().at(1);
            numero = c.toAscii() -48;
        }

        if(arg1=="Amphi" && tableauDeProf[i].getFaitAmphi()==1 && tableauDeProf[i].getModule()==ui->comboBox_matiere->currentText() &&((tableauDeProf[i].getFaitPromoL1() && numero==1)||(tableauDeProf[i].getFaitPromoL2() && numero==2)))
            ui->comboBox_professeur->insertItem(1, tableauDeProf[i].getNom());
        else if(arg1=="TD" && tableauDeProf[i].getFaitTD()==1 && tableauDeProf[i].getModule()==ui->comboBox_matiere->currentText() && ((tableauDeProf[i].getFaitPromoL1() && numero==1)||(tableauDeProf[i].getFaitPromoL2() && numero==2)))
            ui->comboBox_professeur->insertItem(1, tableauDeProf[i].getNom());
        else if(arg1=="TP" && tableauDeProf[i].getFaitTP()==1 && tableauDeProf[i].getModule()==ui->comboBox_matiere->currentText() && ((tableauDeProf[i].getFaitPromoL1() && numero==1)||(tableauDeProf[i].getFaitPromoL2() && numero==2)))
            ui->comboBox_professeur->insertItem(1, tableauDeProf[i].getNom());
            i++;
    }
}

//void dialogAjoutCours::generationDateDuCours() //Générer la date du cours
//{

//}

void dialogAjoutCours::generationHoraireDuCours(const QString &arg1) //Générer l'horaire du cours
{
    //A prendre en compte :
//    int i=0;
//    if (ui->comboBox_promotion->currentText()=="L1")
//    {
//            if(getContenu(1,i)==false)
//            {
//                ui->comboBox_heure
//            }

//    }
//    else
//    {



//    }

    //Type de cours (pour le temps)
        //Date
        //Cours déjà placés
        //Emploi du temps professeur
    for (int i=0; i<47; i++)
    {
        switch(i)
        {
            case 0 :
                ui->comboBox_heure->insertItem(i+1,"8h15");
               break;
            case 1 :
                ui->comboBox_heure->insertItem(i+1,"8h30");
               break;
           case 2 :
                ui->comboBox_heure->insertItem(i+1,"8h45");
                break;
           case 3 :
                ui->comboBox_heure->insertItem(i+1,"9h00");
                break;
           case 4 :
                ui->comboBox_heure->insertItem(i+1,"9h15");
                break;
           case 5 :
                ui->comboBox_heure->insertItem(i+1,"9h30");
                break;
           case 6 :
                ui->comboBox_heure->insertItem(i+1,"9h45");
                break;
           case 7 :
                ui->comboBox_heure->insertItem(i+1,"10h00");
                break;
           case 8 :
                ui->comboBox_heure->insertItem(i+1,"10h15");
                break;
           case 9 :
                ui->comboBox_heure->insertItem(i+1,"10h30");
                break;
           case 10 :
                ui->comboBox_heure->insertItem(i+1,"10h45");
                break;
           case 11 :
                ui->comboBox_heure->insertItem(i+1,"11h00");
                break;
           case 12 :
                ui->comboBox_heure->insertItem(i+1,"11h15");
                break;
           case 13 :
                ui->comboBox_heure->insertItem(i+1,"11h30");
                break;
           case 14 :
                ui->comboBox_heure->insertItem(i+1,"11h45");
                break;
           case 15 :
                ui->comboBox_heure->insertItem(i+1,"12h00");
                break;
           case 16 :
                ui->comboBox_heure->insertItem(i+1,"12h15");
                break;
           case 17 :
                ui->comboBox_heure->insertItem(i+1,"12h30");
                break;
           case 18 :
                ui->comboBox_heure->insertItem(i+1,"12h45");
                break;
           case 19 :
                ui->comboBox_heure->insertItem(i+1,"13h00");
                break;
           case 20 :
                ui->comboBox_heure->insertItem(i+1,"13h15");
                break;
           case 21 :
                ui->comboBox_heure->insertItem(i+1,"13h30");
                break;
           case 22 :
                ui->comboBox_heure->insertItem(i+1,"13h45");
                break;
           case 23 :
                ui->comboBox_heure->insertItem(i+1,"14h00");
                break;
           case 24 :
                ui->comboBox_heure->insertItem(i+1,"14h15");
                break;
           case 25 :
                ui->comboBox_heure->insertItem(i+1,"14h30");
                break;
           case 26 :
                ui->comboBox_heure->insertItem(i+1,"14h45");
                break;
           case 27 :
                ui->comboBox_heure->insertItem(i+1,"15h00");
                break;
           case 28 :
                ui->comboBox_heure->insertItem(i+1,"15h15");
                break;
           case 29 :
                ui->comboBox_heure->insertItem(i+1,"15h30");
                break;
           case 30 :
                ui->comboBox_heure->insertItem(i+1,"15h45");
                break;
           case 31 :
                ui->comboBox_heure->insertItem(i+1,"16h00");
                break;
           case 32 :
                ui->comboBox_heure->insertItem(i+1,"16h15");
                break;
           case 33 :
                ui->comboBox_heure->insertItem(i+1,"16h30");
                break;
           case 34 :
                ui->comboBox_heure->insertItem(i+1,"16h45");
                break;
           case 35 :
                ui->comboBox_heure->insertItem(i+1,"17h00");
                break;
           case 36 :
                ui->comboBox_heure->insertItem(i+1,"17h15");
                break;
           case 37 :
                ui->comboBox_heure->insertItem(i+1,"17h30");
                break;
           case 38 :
                ui->comboBox_heure->insertItem(i+1,"17h45");
                break;
           case 39 :
                ui->comboBox_heure->insertItem(i+1,"18h00");
                break;
           case 40 :
                ui->comboBox_heure->insertItem(1,"18h15");
                break;
           case 41 :
                ui->comboBox_heure->insertItem(i+1,"18h30");
                break;
           case 42 :
                ui->comboBox_heure->insertItem(i+1,"18h45");
                break;
           case 43 :
                ui->comboBox_heure->insertItem(i+1,"19h00");
                break;
           case 44 :
                ui->comboBox_heure->insertItem(i+1,"19h15");
                break;
           case 45 :
                ui->comboBox_heure->insertItem(i+1,"19h30");
                break;
           case 46 :
                ui->comboBox_heure->insertItem(i+1,"19h45");
                break;
        }
    }
}

void dialogAjoutCours::generationSalle()
{
    int i=0;
    ui->comboBox_salle->clear();
    while (i<tableauDeSalle.size())
    {
        if(ui->comboBox_typeDeCours->currentText()=="TP")
        {
            if( ui->comboBox_matiere->currentText()=="Physique" && tableauDeSalle[i].getTypeSalle()=="TP_phys" && tableauDeSalle[i].getSalleIsOccupe()==0)
                ui->comboBox_salle->insertItem(1,tableauDeSalle[i].getNomSalle());

            else if(ui->comboBox_matiere->currentText() != "Physique" && tableauDeSalle[i].getTypeSalle()=="TP" && tableauDeSalle[i].getSalleIsOccupe()==0)
                ui->comboBox_salle->insertItem(1,tableauDeSalle[i].getNomSalle());
//            else if (tableauDeSalle[i].getSalleIsOccupe()==0)
//                ui->comboBox_salle->insertItem(1,tableauDeSalle[i].getNomSalle());
        }
        else if(ui->comboBox_typeDeCours->currentText()=="Amphi" && tableauDeSalle[i].getTypeSalle()=="Amphi" && tableauDeSalle[i].getSalleIsOccupe()==0)
            ui->comboBox_salle->insertItem(1,tableauDeSalle[i].getNomSalle());
        else if (ui->comboBox_typeDeCours->currentText()=="TD" && tableauDeSalle[i].getTypeSalle()=="TD" && tableauDeSalle[i].getSalleIsOccupe()==0)
            if(tableauDeSalle[i].getSalleIsOccupe()==0)
                ui->comboBox_salle->insertItem(1,tableauDeSalle[i].getNomSalle());
        i++;
    }
}

void dialogAjoutCours::on_comboBox_promotion_activated(const QString &arg1)
{
    generationMatieres(arg1);
}

void dialogAjoutCours::on_comboBox_matiere_activated(const QString &arg1)
{
    generationTypeCours(arg1);
}

void dialogAjoutCours::on_comboBox_typeDeCours_activated(const QString &arg1)
{
    generationProfesseur(arg1);
    generationSalle();
}

void dialogAjoutCours::on_comboBox_jour_activated(const QString &arg1)
{
    generationHoraireDuCours(arg1);
}

void dialogAjoutCours::on_buttonBox_accepted()
{

}
