<?php

/**
 * Fonction retournant la requete permettant d'insérer dans la table OXA_SUIVI_REQUETE une nouveklle requete pour le suivi des documents
 *
 * @param le Code USER $user
 * @param le type de suivi $type_suivi (DA,CDE,BR,BS) 
 * @param le code Societe $code_ste
 * @param le libelle saisie par l'utilisateur $libelle
 * @param l'ensemble des champs sous la forme "champ1=val1 || champ2=val2 || champ3=val3 || champ4=val4 ..."  $valeur
 * @return la requete
 */
class SqlSaveRequeteSuivi
{

    public static function &rqInsertRequeteSuivi($user, $type_suivi, $code_ste, $libelle, $valeur)
    {
        $id = 'ID' . $user . '_' . time(); // identifiant unique
        $date_jour = date('Ymd'); // Date sous la format aaaammjj
        
        $sql = ' insert into OXA_SUIVI_REQUETE (ID_REQUETE, ID_USER, TYPE_SUIVI, CODE_STE, LIBELLE, VALEUR, COMPTEUR, DATE_CREA, DATE_MODIF)';
        $sql .= " values('" . replacesqlpointeur($id) . "','" . replacesqlpointeur($user) . "','" . replacesqlpointeur($type_suivi) . "','" . replacesqlpointeur($code_ste) . "','" . replacesqlpointeur($libelle) . "','" . replacesqlpointeur($valeur) . "','0','$date_jour','$date_jour')";

        $sqlfinal[0] = new RequeteSQL($sql, DB_OXAPROCDB);
        $sqlfinal[1] = $id;
        
        return $sqlfinal;
    }

    /**
     * Fonction supprimant l'enregistrement cooresopondant à la requete du suivi dont l'id est $id_requete
     *
     * @param
     *            id de l'enregistrement à supprimer $id_requete
     * @return la requete
     */
    public static function rqDeleteRequeteSuivi($id_requete)
    {
        $sql = "delete from OXA_SUIVI_REQUETE WHERE OXA_SUIVI_REQUETE.ID_REQUETE = '" . replacesqlpointeur($id_requete) . "'";
        return new RequeteSQL($sql, DB_OXAPROCDB);
    }

    /**
     * Fonction de mise à jour de l'enregistrement correspondant à la requête du suivi dont l'id est $id_requete
     *
     * @param
     *            id de l'enregistrement $id_requete
     * @param
     *            code societe $code_ste
     * @param
     *            libelle à mettre à jour $libelle
     * @param
     *            les nouvelles valeurs saisies dans le suivi $valeur
     * @return la requete
     */
    public static function rqUpdateRequeteSuivi($id_requete, $code_ste, $libelle, $valeur)
    {
        $date_jour = date('Ymd'); // Date sous la format aaaammjj
        
        $sql = " UPDATE OXA_SUIVI_REQUETE SET CODE_STE = '" . replacesqlpointeur($code_ste) . "', LIBELLE = '" . replacesqlpointeur($libelle) . "', VALEUR = '" . replacesqlpointeur($valeur) . "', DATE_MODIF = '$date_jour' ";
        $sql .= " WHERE OXA_SUIVI_REQUETE.ID_REQUETE = '" . replacesqlpointeur($id_requete) . "'";
        
        return new RequeteSQL($sql, DB_OXAPROCDB);
    }

    /**
     * Recupère toute les requetes favorites de l'utilisateur pour un type de suivi donné
     *
     * @param
     *            le l'id de l'utilisateur $id_user
     * @param
     *            le type du suivi $type_suivi (DA, CDE, BR, BS)
     *            renvoie les infos
     */
    public static function rqSelectRequeteSuivi($id_user, $type_suivi)
    {
        $sql = ' select ID_REQUETE, ID_USER, TYPE_SUIVI, CODE_STE, LIBELLE, COMPTEUR, DATE_CREA, DATE_MODIF, cast(VALEUR as text) VALEUR from OXA_SUIVI_REQUETE with (nolock) ' . " where ID_USER='" . replacesqlpointeur($id_user) . "' and TYPE_SUIVI='" . replacesqlpointeur($type_suivi) . "'" . ' order by COMPTEUR DESC';
        return new RequeteSQL($sql, DB_OXAPROCDB);
    }

    /**
     * Recupère toute les informations contenu dans la requete passé en paramètre
     *
     * @param unknown_type $id_requete
     * @return requête
     */
    public static function rqSelectContenuRequeteSuivi($id_requete)
    {
        $sql = ' select ID_REQUETE, ID_USER, TYPE_SUIVI, CODE_STE, LIBELLE, COMPTEUR, DATE_CREA, DATE_MODIF, cast(VALEUR as text) VALEUR from OXA_SUIVI_REQUETE with (nolock) ' . " where ID_REQUETE='" . replacesqlpointeur($id_requete) . "' ";
        return new RequeteSQL($sql, DB_OXAPROCDB);
    }

    /**
     * requte qui ajoute + 1 au compteur de la requête favorite du suivi
     *
     * @param
     *            identifiant de la requete$id_requete
     * @return la requete
     */
    public static function rqUpdateCompteurRequeteSuivi($id_requete)
    {
        $sql = ' UPDATE OXA_SUIVI_REQUETE SET COMPTEUR = COMPTEUR + 1 ';
        $sql .= " WHERE OXA_SUIVI_REQUETE.ID_REQUETE = '" . replacesqlpointeur($id_requete) . "' ";
        
        return new RequeteSQL($sql, DB_OXAPROCDB);
    }
}