/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package acces_aux_donnes;

import java.lang.reflect.Array;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

/**
 *
 * @author emile.lalorcey
 */
public class observationSQL {
    private Connection connexionTest;
    private Statement stmt = 	null;
    private ResultSet result = 	null;
    
    /**
     * Constructeur de observationSQL
     */
    public observationSQL() {
        connexionTest = connexionSQL.getConnect("10.121.38.69","bdgsb","appliGSB","(Uq1XV0Tr01s2H9Z");
    }
    
    /**
     * Méthode permettant de compter le nombre d'observations 
     * présente dans la Table observation 
     * @return nombre de lignes
     */
    public int compterLignes(){
        int nbLignes = 0;
        try {
            stmt = connexionTest.createStatement();
            // Accès à la table 
            result = stmt.executeQuery("SELECT COUNT(idObservation) From OBSERVATION");
            if (result.next()) {
                nbLignes = Integer.parseInt(result.getString(1));
            }
            result.close();
            stmt.close();
        } catch (SQLException ex) {
              System.out.println("SQLException : " + ex.getMessage());
              System.out.println("SQLState : " + ex.getSQLState());
              System.out.println("Code erreur : " + ex.getErrorCode());  
        }
        return nbLignes;
    }
    
    /**
     * Méthode permattant d'inserer dans la base de données une nouvelle observation
     * @param idMedoc
     * @param idPraticien
     * @param observation
     * @return int
     */
    public int ajouterObservation(String idMedoc, int idPraticien, String observation){
        int passer = 1000;
        int nbLignes = this.compterLignes();
        try {
            stmt = connexionTest.createStatement();
            // Accès à la table 
            passer = stmt.executeUpdate("INSERT INTO OBSERVATION(idObservation, idMedoc, idPraticien, observation) "
                    + "VALUES ("+(nbLignes+1)+",'"+idMedoc+"',"+idPraticien+",\""+observation+"\");");
            
            result.close();
            stmt.close();
        }catch (SQLException ex) {
              System.out.println("SQLException : " + ex.getMessage());
              System.out.println("SQLState : " + ex.getSQLState());
              System.out.println("Code erreur : " + ex.getErrorCode());  
        }
        return passer;
    }
    
    /**
     * Méthode permettant de sélectionner les observations se rapportant au médicament sélectionné
     * @param idMedoc
     * @return Tableau des différentes observations
     */
    public ArrayList<String> selectionObservation(String idMedoc){
        ArrayList<String> observationMedoc = new ArrayList<String>();
        try {
            stmt = connexionTest.createStatement();
            // Accès à la table 
            result = stmt.executeQuery("SELECT observation FROM OBSERVATION WHERE idMedoc ='" + idMedoc +"';");
            while (result.next()){
                observationMedoc.add(result.getString(1));
            }
        }catch(SQLException ex) {
              System.out.println("SQLException : " + ex.getMessage());
              System.out.println("SQLState : " + ex.getSQLState());
              System.out.println("Code erreur : " + ex.getErrorCode());  
        }     
        return observationMedoc;
    }
}
