<?php

////////////////////////////////////////////////////////////////////////
// PANIERS - TYPES /////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////

// LIST

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

function getNbPaniersInList($search=false, $groupe=0) {
    $sql = getCountPaniersTypesListSelectBaseSQL()." WHERE ".PANIERS_TYPES_TABLE.".`del`=0";
    $sql = buildSqlSearch($sql, $search, buildPaniersTypesListSearchSQL);
    if($groupe>0) $sql .= " AND ".PANIERS_TYPES_TABLE.".`groupe`=".intval($groupe);
    $r = $GLOBALS['db_admin']['man']->select($sql, 1);
    if(!$r['erreur']) return intval($r['datas']['nb']);
    else {
        $er = "</br>sql: ".$sql."</br>error: ".getReadableVar($r['erreur']);
        return "Une erreur est survenue durant du nombre d'item dans la liste !".$er;
    }
}

function getPaniersTypesList($order='nom',$sens='ASC', $search=false, $groupe=0, $limits=false) {
    $list = array();
    
    $sql = getPaniersTypesSelectBaseSQL()." WHERE ".PANIERS_TYPES_TABLE.".`del`=0";
    
    // SEARCH
    $sql = buildSqlSearch($sql, $search, buildPaniersTypesListSearchSQL);
    
    // GROUPE
    if($groupe>0) $sql .= " AND ".PANIERS_TYPES_TABLE.".`groupe`=".intval($groupe);
    
    // ORDRE
    $sql.=" ORDER BY ";
    
    if($order=='ref') $sql .= PANIERS_TYPES_TABLE.".`ref`";
    else if($order=='groupe') $sql .= PANIERS_GROUPES_TABLE.".`nom`";
    else if($order=='nom') $sql .= PANIERS_TYPES_TABLE.".`nom`";
    else if($order=='valeur') $sql .= PANIERS_TYPES_TABLE.".`valeur`";
    else $sql .= PANIERS_TYPES_TABLE.".`nom`";
    
    // SENS
    if($sens=='DESC') $sql .= ' DESC';
    else $sql .= ' ASC';
    
    // LIMITS
    if(is_array($limits)) $sql .= " LIMIT ".$limits['start'].", ".$limits['nbItemsByPage'];
    
    $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 types de paniers dans le base de données !".$er;
    }
    
    return $list;
}

// GET DATAS

function getPaniersTypeDatas($id) {
    $i = array();
    
    $sql = getPaniersTypesSelectBaseSQL()." WHERE ".PANIERS_TYPES_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 type de paniers dans le base de données !".$er;
    }
    
    return $i;
}

// ADD / UPDATE DATAS

function getPaniersTypeDatasFromRequest() { return getRequestTableDatas(PANIERS_TYPES_TABLE_STRUCT); }

function addPaniersType($datas) {
    return addDatasInTable(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        PANIERS_TYPES_TABLE,            // TABLE NAME
        PANIERS_TYPES_TABLE_STRUCT,     // TABLE STRUCTURE
        $datas,                         // DATAS
        "du type de panier"             // ERROR STRING
    );
}

function updatePaniersType($id, $datas) { 
    return updateDatasInTable(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        PANIERS_TYPES_TABLE,            // TABLE NAME
        PANIERS_TYPES_TABLE_STRUCT,     // TABLE STRUCTURE
        $id,                            // ID
        $datas,                         // DATAS
        "au type de panier",            // NULL STRING
        "du type de panier"             // ERROR STRING
    );
}

function deletePaniersType($id) {
    return deleteItemInTable(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        PANIERS_TYPES_TABLE,            // TABLE NAME
        $id,                            // ID
        "du type de panier"             // ERROR STRING
    );
}

function erasePaniersType($id) {
    return eraseItemInTable(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        PANIERS_TYPES_TABLE,            // TABLE NAME
        $id,                            // ID
        "du type de panier"             // ERROR STRING
    );
}