package Models.Client;

import Controllers.Dialog.ShowDialog;
import Controllers.Traitement.Adaptateur;
import Controllers.Traitement.ParametreSystem;
import Controllers.Traitement.contro;
import Models.H2JDBC;
import org.apache.log4j.Logger;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * @author Maher Ben Tili
 */
public class ClientPassagerDB {
    
    H2JDBC h2jdbc = new H2JDBC();
    ShowDialog SD = new ShowDialog();
    Logger logger = Logger.getLogger(ClientPassagerDB.class.getName());
    contro clt = new contro();
    
    public ClientPassager getPassager(String CodeClt)
    {
        ClientPassager CltPassager = new ClientPassager();
        String sql="SELECT * FROM cltpassageur WHERE (idcltpassageur = "+CodeClt+") AND (local_nom = '"+ParametreSystem.NomLocalPC+"');";
        try {
            ResultSet resultat = h2jdbc.selectFromDB(sql);
            while (resultat.next()){
                CltPassager.setCodeclient(resultat.getString("idcltpassageur"));
                CltPassager.setNom(resultat.getString("nom"));
                CltPassager.setPrenom(resultat.getString("prenom"));
                CltPassager.setSexe(resultat.getInt("sexe"));
                CltPassager.setAdresse(resultat.getString("adresse"));
                CltPassager.setTelefixString(resultat.getString("tele"));
                CltPassager.setTelemobileString(resultat.getString("gsm"));
                CltPassager.setLocalNom(resultat.getString("local_nom"));
            }
        } catch(SQLException ex){
            System.err.println("Erreur SQL ! \n"+ex.getMessage());
            System.out.println(sql);
            if(ParametreSystem.ErrorShowLogger)
            {
                logger.error("ClientPassagerDB  : getClient :" + ex.getMessage());
            }
            if(ParametreSystem.ErrorShowDialog)
            {
                ShowDialog.setTitre("Erreur SQL !");
                ShowDialog.setDetail(ex.getMessage()+"\n"+ex.getSQLState());
                SD.ShowAletDialog();
            }
        }
        return CltPassager;
    }
    
    
    
    
    public ClientPassager addPassager(ClientPassager CltPassager)
    {
        String Nom = "'"+Adaptateur.addSlashes(CltPassager.getNom())+"'";
        String Prenom = "'"+Adaptateur.addSlashes(CltPassager.getPrenom())+"'";
        String Adresse = "null";
        String Naissance = "null";
        String Tele = "null";
        String Gsm = "null";
        
        if(!clt.isStringNull(CltPassager.getNaissance())){
            Naissance = "'"+CltPassager.getNaissance()+"'";
        }       
        
        if(!clt.isStringNull(CltPassager.getAdresse())){
            Adresse = "'"+Adaptateur.addSlashes(CltPassager.getAdresse())+"'";
        }
        
        if(!clt.isStringNull(CltPassager.getTelefixString())){
            Tele = "'"+CltPassager.getTelefixString()+"'";
        }
        
        if(!clt.isStringNull(CltPassager.getTelemobileString())){
            Gsm = "'"+CltPassager.getTelemobileString()+"'";
        }
        
        String req = "INSERT INTO cltpassageur (nom, prenom, adresse, sexe, naissance, tele, gsm, local_nom, date_add) VALUES ("+Nom+", "+Prenom+", "+Adresse+", "+CltPassager.getSexe()+", "+Naissance+", "+Tele+", "+Gsm+", '"+ParametreSystem.NomLocalPC+"', now());";
        
        String code = null;
        try {
            code = h2jdbc.InsertGetLastId(req);
            CltPassager.setCodeclient(code);
        }catch(SQLException ex){
            System.err.println("Erreur SQL ! \n"+ex.getMessage());
            System.out.println(req);
            if(ParametreSystem.ErrorShowLogger)
            {
                logger.error("ClientPassagerDB  : addPassager :" + ex.getMessage());
            }
            if(ParametreSystem.ErrorShowDialog)
            {
                ShowDialog.setTitre("Erreur SQL !");
                ShowDialog.setDetail(ex.getMessage()+"\n"+ex.getSQLState());
                SD.ShowAletDialog();
            }
        }
        return CltPassager;
    }
    
}
