<?php

////////////////////////////////////////////////////////////////////////
// LIEUX DE DEPOT //////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////

// LIST

$allowLieuxListOrder = array(
    'ref' => "réf.",
    'nom' => "nom"
);

function getLieuxList($order='id',$sens='ASC', $search=false) {
    $list = array();
    
    $sql = getLieuxTableSelectBaseSQL()." WHERE ".LIEUX_TABLE.".`del`=0";
    
    // SEARCH
    if($search && $search!="") {
        $parts = explode(" ", $search);
        if(is_array($parts) && count($parts>0)) {
            $search_sql = "";
            foreach($parts as $p) {
                if($p!="") $search_sql .= (($search_sql!="") ? " OR " : "").buildLieuxSearchSQL($p);
            }
            if($search_sql!="") $sql .= " AND (".$search_sql.")";
        }
    }
    
    // ORDRE
    $sql.=" ORDER BY ";
    
    if($order=='ref') $sql .= LIEUX_TABLE.".`ref`";
    else if($order=='nom') $sql .= LIEUX_TABLE.".`nom`";
    else $sql .= LIEUX_TABLE.".`nom`";
    
    // SENS
    if($sens=='DESC') $sql .= ' DESC';
    else $sql .= ' ASC';
    
    $r = $GLOBALS['db_admin']['man']->select($sql);

    if(!$r['erreur']) {
        foreach($r['datas'] as $i) $list[$i['ref']] = $i;
    }
    else {
        $er = "</br>sql: ".$sql."</br>error: ".getReadableVar($r['erreur']);
        $GLOBALS['errors'][] = "Une erreur est survenue durant la récupération de la liste des lieux de dépôt dans le base de données !".$er;
    }
    
    return $list;
}

// GET DATAS

function getLieuDatas($id) {
    $i = array();
    
    $sql = getLieuxTableSelectBaseSQL()." WHERE ".LIEUX_TABLE.".`ref`=".intval($id);
    
    $r = $GLOBALS['db_admin']['man']->select($sql,1);

    if(!$r['erreur']) $i = $r['datas'];
    else {
        $er = "</br>sql: ".$sql."</br>error: ".getReadableVar($r['erreur']);
        $GLOBALS['errors'][] = "Une erreur est survenue durant la récupération des informations du lieu de dépôt dans le base de données !".$er;
    }
    
    return $i;
}

// ADD / UPDATE DATAS

function getLieuDatasFromRequest() { return getRequestTableDatas(LIEUX_TABLE_STRUCT); }

function addLieu($datas) {
    return addDatasInTable(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        LIEUX_TABLE,                    // TABLE NAME
        LIEUX_TABLE_STRUCT,             // TABLE STRUCTURE
        $datas,                         // DATAS
        "du lieu de dépôt"              // ERROR STRING
    );
}

function updateLieu($id, $datas) { 
    return updateDatasInTable(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        LIEUX_TABLE,                    // TABLE NAME
        LIEUX_TABLE_STRUCT,             // TABLE STRUCTURE
        $id,                            // ID
        $datas,                         // DATAS
        "au lieu de dépôt",             // NULL STRING
        "du lieu de dépôt"              // ERROR STRING
    );
}

function deleteLieu($id) {
    return deleteItemInTable(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        LIEUX_TABLE,                    // TABLE NAME
        $id,                            // ID
        "du lieu de dépôt"              // ERROR STRING
    );
}

function eraseLieu($id) {
    return eraseItemInTable(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        LIEUX_TABLE,                    // TABLE NAME
        $id,                            // ID
        "du lieu de dépôt"              // ERROR STRING
    );
}