package controler.recherche;

import java.sql.Connection;
import java.util.List;

import view.vueRechercheFermeture.VueRechercheFermeture;

import commander.Commander;

import controler.Message;
import database.crud.DepotCrud;
import database.crud.EmployeCrud;
import database.crud.FermetureCrud;
import database.dataset.Depot;
import database.dataset.Employe;
import database.dataset.Fermeture;

/**
 * 
 * @author Alfredo Toyo
 *
 */
public class ControlerRechercheFermeture {
	public ControlerRechercheFermeture() {

	}
	public static final Message reveil = new Message(){
		public void trigger(Object caster) throws Exception {
			recherche.trigger(caster);
		}
	};
	
	public static final Message recherche = new Message(){
		public void trigger(Object caster) throws Exception {
			if (!(caster instanceof VueRechercheFermeture))
				return;
			VueRechercheFermeture vue = (VueRechercheFermeture)caster;				
			FermetureCrud fermetureCrud = new FermetureCrud(Commander.getInstance().getConnectionBD());
			EmployeCrud employeCrud = new EmployeCrud(Commander.getInstance().getConnectionBD());
			DepotCrud depotCrud         = new DepotCrud(Commander.getInstance().getConnectionBD());
			
			String numero        = vue.getTextFieldNumero();
			String date          = vue.getDateFieldDate();
			String nomEmploye    = vue.getTextFieldNomEmploye();
			String prenomEmploye = vue.getTextFieldPrenomEmploye();
			String numeroDepot   = vue.getTextFieldNumeroDepot();
			
			List<Fermeture> fermetures = fermetureCrud.readAllLike(numero, date, nomEmploye, prenomEmploye, "", numeroDepot, "");
			vue.clearFermeture();
			
			for(Fermeture fermeture : fermetures){
				Employe employe = employeCrud.readById(fermeture.getemploye_fk_id());
				Depot depot = depotCrud.readById(fermeture.getdepot_fk_id());
				vue.addLineToTableFermeture(employe.getEmploye_prenom() + " " + employe.getEmploye_nom(), 
											fermeture.getdepot_fk_id(),
											depot.getDepot_montant(),
											fermeture.getemploye_fk_id(), 
											fermeture.getFermeture_jour().toString(), 
											fermeture.getFermeture_commentaire());
			}
		}
	};
	
	public static final Message modifier = new Message(){
		public void trigger(Object caster) throws Exception {
			if (!(caster instanceof VueRechercheFermeture))
				return;
			VueRechercheFermeture vue = (VueRechercheFermeture)caster;
			
			if(!vue.hasRowSelected())
				return;			
			//Connection connection = Commander.getInstance().getConnectionBD();
		}
	};
}
