<?php
/****************************************************************************************
 * SMI (Services Maintenance Interventions) est une gestion libre de maintenance et de SAV
 *
 * Version 1.0.0
 *
 * Copyright (C) 2006-2014  Sylvain FATOME
 * This program is free software; you can redistribute it and/or modify it under the terms
 * of the GNU General Public License as published by the Free Software Foundation;
 * either version 2 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with this program
 * (in the directory docs);
 * if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA  02110-1301, USA.
 *
 * Contact : galawa@free.fr
 *
 * Web : http://smi.no-ip.org
 ****************************************************************************************/


// vérification des tentatives de hack
$pos = strpos($_SERVER['PHP_SELF'], "inc.php");
if ($pos === FALSE)
    $ok_inc = TRUE;
else
    $ok_inc = FALSE;
if ($ok_inc == FALSE) header("Location: ../index.php");

include_once("../inc/fic_droits.inc.php");
include_once("../inc/func.inc.php");
include_once("../inc/func_date.inc.php");
include_once("../inc/func_geo.inc.php");
include_once("../inc/func_txt.inc.php");
include_once("../inc/lst.inc.php");
include_once("../classes/ezSQL/shared/ez_sql_core.php");
include_once("../classes/ezSQL/mysqli/ez_sql_mysqli.php");
include_once("../inc/func_sql.inc.php");
Archivelog(@$_SESSION["code_log"]);
// Variables Formulaire
fix_magic_quotes();
$_GET = clean_str($_GET);

$_SESSION["typ_filtres"] = "tac";

$fi = "";
if (isset($_GET['fi']) && (trim($_GET['fi']) <> ""))
    $fi = intval($_GET['fi']);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>SMI - <?PHP echo _("ESPACE PRIVE"); ?> : <?PHP echo _("Liste Tâches"); ?></title>

    <?PHP include_once("../inc/header.inc.php"); ?>

    <script type="text/javascript">
        <!--
        function init_all() {
            init_Body();
            init_autohref_classe('falselnkimg','<?PHP echo str_escape(_("Merci de confirmer<br />Sinon, cliquez sur 'Annuler'")); ?>');
            <?php if (($td=="view") OR ($td=="del")) echo "readonly_all();"; ?>
            <?php if ($td=="del") echo "warn_del('');"; ?>
            Focus_first();
        }

        $(document).ready(function () {
            init_all();
        });
        //-->
    </script>
</head>

<body>
<?php
include_once("../inc/entete.inc.php");
if (@$_SESSION["niv_log"] >= 5)
    echo '<p align="center"><span class="titrepage">' . _("LISTE DES TACHES") . '</span></p>';
else
    echo '<p align="center"><span class="titrepage">' . _("VOS TACHES") . '</span></p>';

$fic_imp = "tac_lsti.php";
$url_add = "tac_maj.php?td=add";
$tab_fi[] = "Toutes les tâches";
$tab_fi[] = "Tâches non closes";
$tab_fi[] = "Tâches closes";
if ((@$_SESSION["niv_log"] == 9) OR (@$_SESSION["niv_log"] == 5) OR (@$_SESSION["niv_log"] == 4) OR (@$_SESSION["niv_log"] == 3)) {
    $tab_fi[] = _("Tâches rattachées à des interventions");
    $tab_fi[] = _("Tâches rattachées à des contrats de maintenance");
    $tab_fi[] = _("Tâches rattachées à des contrats de location");
    $tab_fi[] = _("Tâches rattachées à des dossiers de suivi");
    $tab_fi[] = _("Tâches rattachées à des relevés de parc");
}
if ((@$_SESSION["niv_log"] == 9) OR (@$_SESSION["niv_log"] == 5) OR (@$_SESSION["niv_log"] == 10) OR (@$_SESSION["niv_log"] == 11))
    $tab_fi[8] = _("Tâches rattachées à des bons de travail");
$tab_fi[9] = _("Tâches que vous avez ordonnées");
$url_rss = lien_rss(@$_SESSION["code_log"], @$_SESSION["niv_log"], "tac");

$db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);

$rech = cree_strrechlsttac();
switch (@$_SESSION["niv_log"]) {
    // Filtre pour les techniciens agences ou sous-traitants
    case 3 :
    case 11 :
        // Si filtre N°9,  on ne prend pas en compte les tâche à faire, mais seulement celles ordonnées
        // On autorise aussi les auteurs à voir les tâches qu'ils ont créé
        if ($fi <> "9") {
            if (!stristr($rech, "WHERE "))
                $rech .= " WHERE (" . TBTAC . ".tac_codedest='" . @$_SESSION["code_log"] . "'";
            else
                $rech .= " AND (" . TBTAC . ".tac_codedest='" . @$_SESSION["code_log"] . "'";
            $rech .= " OR " . TBTAC . ".tac_codecrea='" . @$_SESSION["code_log"] . "')";
        } else {
            if (!stristr($rech, "WHERE "))
                $rech .= " WHERE " . TBTAC . ".tac_codecrea='" . @$_SESSION["code_log"] . "'";
            else
                $rech .= " AND " . TBTAC . ".tac_codecrea='" . @$_SESSION["code_log"] . "'";
        }
        break;
    // Filtre pour les agences
    case 4 :
        // On construit la liste des techniciens actifs de l'agence
        $tab_lst_tec = [];
        $rech2 = "SELECT tec_code FROM `" . TBTEC . "` WHERE tec_codeage='" . @$_SESSION["code_log"] . "' AND tec_out=0";
        $rows2 = $db->get_results($rech2, ARRAY_A);
        foreach ($rows2 as $row2) {
            $row2 = encode_str($row2);
            extract($row2);
            $tab_lst_tec[] = $tec_code;
        }

        // Si filtre N°9,  on ne prend pas en compte les tâche à faire, mais seulement celles ordonnées
        // On autorise aussi les auteurs à voir les tâches qu'ils ont créé
        if ($fi <> "9") {
            if (!stristr($rech, "WHERE "))
                $rech .= " WHERE ((" . TBTAC . ".tac_codedest='" . @$_SESSION["code_log"] . "'";
            else
                $rech .= " AND ((" . TBTAC . ".tac_codedest='" . @$_SESSION["code_log"] . "'";
            // Une agence peut voir les tâches de ses techniciens
            foreach ($tab_lst_tec as $key => $value) {
                $rech .= " OR " . TBTAC . ".tac_codedest='" . $value . "'";
            }
            $rech .= ")";
            // On autorise aussi les auteurs à voir les tâches qu'ils ont créé
            $rech .= " OR (" . TBTAC . ".tac_codecrea='" . @$_SESSION["code_log"] . "'";
            // Une agence peut voir les tâches créées par ses techniciens
            foreach ($tab_lst_tec as $key => $value) {
                $rech .= " OR " . TBTAC . ".tac_codedest='" . $value . "'";
            }
            $rech .= "))";
        } else {
            if (!stristr($rech, "WHERE "))
                $rech .= " WHERE (" . TBTAC . ".tac_codecrea='" . @$_SESSION["code_log"] . "'";
            else
                $rech .= " AND (" . TBTAC . ".tac_codecrea='" . @$_SESSION["code_log"] . "'";
            // Une agence peut voir les tâches de ses techniciens
            foreach ($tab_lst_tec as $key => $value) {
                $rech .= " OR " . TBTAC . ".tac_codecrea='" . $value . "'";
            }
            $rech .= ")";
        }
        break;
    // Filtre pour le centre de gestion
    case 5 :
        // Si filtre N°9,  on ne prend pas en compte les tâche à faire, mais seulement celles ordonnées
        // On autorise aussi les auteurs à voir les tâches qu'ils ont créé
        if ($fi <> "9") {
            if (!stristr($rech, "WHERE "))
                $rech .= " WHERE (" . TBTAC . ".tac_codedest<>'" . $admin_code . "'";
            else
                $rech .= " AND (" . TBTAC . ".tac_codedest<>'" . $admin_code . "'";
            $rech .= " OR " . TBTAC . ".tac_codecrea='" . @$_SESSION["code_log"] . "')";
        } else {
            if (!stristr($rech, "WHERE "))
                $rech .= " WHERE " . TBTAC . ".tac_codecrea='" . @$_SESSION["code_log"] . "'";
            else
                $rech .= " AND " . TBTAC . ".tac_codecrea='" . @$_SESSION["code_log"] . "'";
        }
        break;
    // Filtre pour les sous-traitants
    case 10 :
        // On construit la liste des techniciens actifs du sous-traitant
        $tab_lst_tec = [];
        $rech2 = "SELECT tec_code FROM `" . TBTEC . "` WHERE tec_codest='" . @$_SESSION["code_log"] . "' AND tec_out=0";
        $rows2 = $db->get_results($rech2, ARRAY_A);
        foreach ($rows2 as $row2) {
            $row2 = encode_str($row2);
            extract($row2);
            $tab_lst_tec[] = $tec_code;
        }

        // Si filtre N°9,  on ne prend pas en compte les tâche à faire, mais seulement celles ordonnées
        // On autorise aussi les auteurs à voir les tâches qu'ils ont créé
        if ($fi <> "9") {
            if (!stristr($rech, "WHERE "))
                $rech .= " WHERE ((" . TBTAC . ".tac_codedest='" . @$_SESSION["code_log"] . "'";
            else
                $rech .= " AND ((" . TBTAC . ".tac_codedest='" . @$_SESSION["code_log"] . "'";
            // Une agence peut voir les tâches de ses techniciens
            foreach ($tab_lst_tec as $key => $value) {
                $rech .= " OR " . TBTAC . ".tac_codedest='" . $value . "'";
            }
            $rech .= ")";
            // On autorise aussi les auteurs à voir les tâches qu'ils ont créé
            $rech .= " OR (" . TBTAC . ".tac_codecrea='" . @$_SESSION["code_log"] . "'";
            // Une agence peut voir les tâches créées par ses techniciens
            foreach ($tab_lst_tec as $key => $value) {
                $rech .= " OR " . TBTAC . ".tac_codedest='" . $value . "'";
            }
            $rech .= "))";
        } else {
            if (!stristr($rech, "WHERE "))
                $rech .= " WHERE (" . TBTAC . ".tac_codecrea='" . @$_SESSION["code_log"] . "'";
            else
                $rech .= " AND (" . TBTAC . ".tac_codecrea='" . @$_SESSION["code_log"] . "'";
            // Une agence peut voir les tâches de ses techniciens
            foreach ($tab_lst_tec as $key => $value) {
                $rech .= " OR " . TBTAC . ".tac_codecrea='" . $value . "'";
            }
            $rech .= ")";
        }
        break;
    // Filtre pour l'administrateur
    case 9 :
        // Si filtre N°9,  on ne prend pas en compte les tâche à faire, mais seulement celles ordonnées
        if ($fi == "9") {
            if (!stristr($rech, "WHERE "))
                $rech .= " WHERE " . TBTAC . ".tac_codecrea='" . @$_SESSION["code_log"] . "'";
            else
                $rech .= " AND " . TBTAC . ".tac_codecrea='" . @$_SESSION["code_log"] . "'";
        }
        break;
}

switch ($fi) {
    case "1" :
        if (!stristr($rech, "WHERE "))
            $rech .= " WHERE tac_datefin='0000-00-00'";
        else
            $rech .= " AND tac_datefin='0000-00-00'";
        break;
    case "2" :
        if (!stristr($rech, "WHERE "))
            $rech .= " WHERE tac_datefin<>'0000-00-00'";
        else
            $rech .= " AND tac_datefin<>'0000-00-00'";
        break;
    case "3" :
        if (!stristr($rech, "WHERE "))
            $rech .= " WHERE tac_typrat=1";
        else
            $rech .= " AND tac_typrat=1";
        break;
    case "4" :
        if (!stristr($rech, "WHERE "))
            $rech .= " WHERE tac_typrat=2";
        else
            $rech .= " AND tac_typrat=2";
        break;
    case "5" :
        if (!stristr($rech, "WHERE "))
            $rech .= " WHERE tac_typrat=3";
        else
            $rech .= " AND tac_typrat=3";
        break;
    case "6" :
        if (!stristr($rech, "WHERE "))
            $rech .= " WHERE tac_typrat=4";
        else
            $rech .= " AND tac_typrat=4";
        break;
    case "7" :
        if (!stristr($rech, "WHERE "))
            $rech .= " WHERE tac_typrat=5";
        else
            $rech .= " AND tac_typrat=5";
        break;
    case "8" :
        if (!stristr($rech, "WHERE "))
            $rech .= " WHERE tac_typrat=6";
        else
            $rech .= " AND tac_typrat=6";
        break;
    default :
        break;
}
$rech .= crestr_triord($tac_titre_col, "tac_code", FALSE, $limit);

$rows = $db->get_results($rech, ARRAY_A);
$db->disconnect();

if ($rows) {
    $numrows = count($rows);
    include_once("formr.inc.php");

    $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);

    $rech = modstr_triord($rech, $tac_titre_col, "tac_code", TRUE, $limit);

    $rows = $db->get_results($rech, ARRAY_A);

    // *** Pagination de pied
    pagine_lst($numrows, $limit);

    // *** Affichage de la table
    echo "<table class=\"Mtable\" border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n";

    // création entête
    titlst($tac_titre_col);
    echo "<th>" . _("Cliquer") . "</th>\n";

    $i = 0;

    // Inclusion module affichage liste tâches
    include_once("../inc/tacr_lst.inc.php");

    echo "</table>\n";
    // *** Fin affichage de la table

    $db->disconnect();

    // *** Pagination de pied
    pagine_lst($numrows, $limit);

    $taille_piedla = "";
    include_once("piedla.inc.php");
} else
    retpp();

include_once("pied.php");
?>
</body>
</html>