<?php

////////////////////////////////////////////////////////////////////////
// CONTRATS - TYPES ////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////

// LIST

$allowContratsTypesListOrder = array(
    'ref' => "réf.",
    'groupe' => "groupe",
    'nom' => "nom",
    'frequence' => "fréquence",
    'panier_type' => "type de panier",
    'nb_panier' => 'nb. de panier',
    'prix_total' => 'prix total'
);

function getContratsTypesList($order='id',$sens='ASC', $search=false) {
    $list = array();
    
    $sql = getContratsTypesTableSelectBaseSQL()." WHERE ".CONTRATS_TYPES_TABLE.".`del`=0";
    
    // ORDRE
    $sql.=" ORDER BY ";
    
    if($order=='ref') $sql .= CONTRATS_TYPES_TABLE.".`ref`";
    else if($order=='groupe') $sql .= PANIERS_GROUPES_TABLE.".`nom`";
    else if($order=='nom') $sql .= CONTRATS_TYPES_TABLE.".`nom`";
    else if($order=='frequence') $sql .= CONTRATS_TYPES_TABLE.".`frequence`";
    else if($order=='panier_type') $sql .= PANIER_TYPES_TABLE.".`nom`";
    else if($order=='nb_panier') $sql .= CONTRATS_TYPES_TABLE.".`nb_panier`";
    else if($order=='prix_total') $sql .= CONTRATS_TYPES_TABLE.".`prix_total`";
    else $sql .= CONTRATS_TYPES_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 types de contrats dans le base de données !".$er;
    }
    
    return $list;
}

// GET DATAS

function getContratsTypeDatas($id) {
    $i = array();
    
    $sql = getContratsTypesTableSelectBaseSQL()." WHERE ".CONTRATS_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 contrats dans le base de données !".$er;
    }
    
    return $i;
}

// ADD / UPDATE DATAS

function getContratsTypeDatasFromRequest() { return getRequestTableDatas(CONTRATS_TYPES_TABLE_STRUCT); }

function addContratsType($datas) {
    return addDatasInTable(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        CONTRATS_TYPES_TABLE,           // TABLE NAME
        CONTRATS_TYPES_TABLE_STRUCT,    // TABLE STRUCTURE
        $datas,                         // DATAS
        "du type de contrat"            // ERROR STRING
    );
}

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

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

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