<?php

require_once('../init.php');
$GLOBALS['smarty']->assign('page','legumes');
$GLOBALS['template'] = 'legumes/legumes_list.tpl';
$GLOBALS['smarty']->assign('secondbar','legumes/legumes_secondbar.tpl');
$jsFiles[] = PUBLIC_HTML_ADMIN.'js/legumes.js';
$cssFiles[] = PUBLIC_HTML_ADMIN.'css/legumes.css';

if($id>0 && $action) {
    $infos = getLegumeDatas($id);
    switch($action) {
        // AJAX GET DATAS
        case "getDatas": die(json_encode($infos)); break;
        // AJAX GET TARIF
        case "getTarif": {
            $groupe = false;
            if(isset($_REQUEST['groupe']) && (int)$_REQUEST['groupe']>0) $groupe = intval($_REQUEST['groupe']);
            $date = false;
            if(isset($_REQUEST['date']) && isValidDate($_REQUEST['date'], "mysql_date")) $date = $_REQUEST['date'];
            $t = getLegumeTarif($id, $groupe, $date, false);
            die(json_encode($t));
        } break;
        // EDIT
        case "edit": {
            $datas = getLegumeDatasFromRequest();
        
            // TARIFS
            foreach($datas["tarifs"] as $t) {
                // ADD
                if($t['ref'] == "new") {
                    $t['legume'] = $id;
                    $r = addLegumeTarif($t);
                    if(!(int)$r>0) die("ERREUR : une errreur est survenue durant l'enregistrement du nouveau tarif du légume. ($r)");
                }
                // DELETE
                else if((int)$t['ref']>0 && (int)$t['del']>0) {
                    $r = eraseLegumeTarif(intval($t['ref']));
                    if(!(int)$r>0) die("ERREUR : une errreur est survenue durant la suppression du tarif du légume. ($r)");
                }
                // UPDATE
                else if((int)$t['ref']>0) {
                    $r = updateLegumeTarif(intval($t['ref']), $t);
                    if(!(int)$r>0) die("ERREUR : une errreur est survenue durant la mise à jour du tarif du légume. ($r)");
                }
            }
            
            die( strval( updateLegume($id,$datas) ) );
        } break;
        // DELETE
        case "delete" : die( strval( deleteLegume($id) ) ); break;
        // DEFAULT
        default: die("NO ACTION");
    }
}
switch($action) {
    // ADD
    case "add": {
        $datas = getLegumeDatasFromRequest();
        $r = addLegume($datas);

        if((int)$r>0) {
            $id = $r;

            // TARIFS
            foreach($datas["tarifs"] as $t) {
                if($t['ref'] == "new") {
                    $t['legume'] = $id;
                    $r = addLegumeTarif($t);
                    if(!(int)$r>0) die("ERREUR : une errreur est survenue durant l'enregistrement du tarif du légume. ($r)");
                }
            }

            die( (string)$id );
        }
        else die($r);
    } break;
    // DELETE TARIF
    case "deleteTarif": {
        if(!isset($_REQUEST['tarif']) || !(int)$_REQUEST['tarif']>0) die("NO ID !");
        die( strval( deleteLegumeTarif(intval($_REQUEST['tarif'])) ) ); break;
    } break;
    // AUTOCOMPLETE LIST
    case "autocomplete_list": die( json_encode( getLegumesAutocompleteList() ) ); break;
    // DEFAULT - LIST
    default: {
        // PRINT
        $print = isset($_REQUEST["action"]) && $_REQUEST["action"]=="printList";
        
        // SEARCH
        $search = getSearch("legumes_search");
        
        // LIMITS
        if($print) $limits = false;
        else {
            $limits = array("start" => 0, "end" => LIST_NB_LIGNES_PAR_PAGE, "nbItemsByPage" => LIST_NB_LIGNES_PAR_PAGE, "max" => getNbLegumesInList($search));
            if(isset($_REQUEST['startListAt']) && (int)$_REQUEST['startListAt']>0) {
                $limits['start'] = intval($_REQUEST['startListAt']);
                $limits['end'] = $limits['start'] + $limits['nbItemsByPage'];
                if($limits['end'] > $limits['max']) $limits['end'] = $limits['max'];
            }
            $limits['rest'] = $limits['max'] - $limits['end'];
            $GLOBALS['smarty'] -> assign('list_limits',$limits);
        }        
        
        // LIST
        $grps = getPaniersGroupesList();
        $groupes = array();
        foreach($grps as $g) {
            $g["tarif"] = "tarif_".$g['ref'];
            $g["date"] = "date_".$g['ref'];
            $groupes[] = $g;
            
            $allowLegumesListOrder[ $g["tarif"] ] = "tarif ".$g['nom'];
            $allowLegumesListOrder[ $g["date"]  ] = "date ".$g['nom'];
        }
        $GLOBALS['smarty'] -> assign('groupes',$groupes);
        $order = getListOrder('legumes_list_order', 'legumes_list_sens', $allowLegumesListOrder, 'prenom');
        $list = getLegumesList($order["order"], $order["sens"], $search, $limits);
        $GLOBALS['smarty'] -> assign('list',$list);
        
        // LIST PART
        if(isset($_REQUEST['startListAt']) && (int)$_REQUEST['startListAt']>0) {
            $limits["list"] = $GLOBALS['smarty']->fetch("legumes/legumes_list_builder.tpl");
            die(json_encode($limits));
        }
        // PRINT
        else if($print) printLegumesList();

        // DISPLAY
        display();
    }
}