<?php

////////////////////////////////////////////////////////////////////////
// LIVRAISONS //////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////

// LIST

$allowLivraisonsListOrder = array(
    'ref' => "réf.",
    'paniers_groupe' => "groupe de paniers",
    'date' => "date",
    'quinz_groupe' => "groupe quinzaine",
    'nb_paniers' => "nb. de paniers"
);

function getNbLivraisonsInList($groupe=0, $archive=0) {
    $sql = getCountLivraisonsListSelectBaseSQL()." WHERE ".LIVRAISONS_TABLE.".`del`=0";
    if((int)$groupe>0) $sql.=" AND ".LIVRAISONS_TABLE.".`paniers_groupe`=".intval($groupe);
    if((int)$archive>=0) $sql.=" AND ".LIVRAISONS_TABLE.".`archive`=".intval($archive);
    $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 getLivraisonsList($order='id',$sens='ASC', $groupe=0, $archive=0, $limits=false) {
    // ARCHIVES OLD LIVRAISONS
    archiveOldLivraison();
    
    // LIST
    $list = array();
    
    $sql = getLivraisonsTableSelectBaseSQL()." WHERE ".LIVRAISONS_TABLE.".`del`=0";
    
    if((int)$groupe>0) $sql.=" AND ".LIVRAISONS_TABLE.".`paniers_groupe`=".intval($groupe);
    
    if((int)$archive>=0) $sql.=" AND ".LIVRAISONS_TABLE.".`archive`=".intval($archive);
        
    // ORDRE
    $sql.=" ORDER BY ";
    
    if($order=='ref') $sql .= LIVRAISONS_TABLE.".`ref`";
    else if($order=='paniers_groupe') $sql .= LIVRAISONS_TABLE.".`paniers_groupe`";
    else if($order=='date') $sql .= LIVRAISONS_TABLE.".`date`";
    else if($order=='quinz_groupe') $sql .= LIVRAISONS_TABLE.".`quinz_groupe`";
    else if($order=='nb_paniers') $sql .= LIVRAISONS_NB_PANIERS_VIEW.".`nb_paniers`";
    else $sql .= LIVRAISONS_TABLE.".`date`";
    
    // 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) {
            $i["date_print"] = formatDate($i["date"], "mysql_date", "date");
            
            $i["nb_paniers"] = intval($i["nb_paniers"]);
            
            $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 livraisons dans le base de données !".$er;
    }
    
    return $list;
}

function getLivraisonLastQuinzGroupeAtDate($groupe, $date) {
    $grp = NULL;
    
    $sql = "SELECT ".LIVRAISONS_TABLE.".`quinz_groupe` FROM ".LIVRAISONS_TABLE
            ." WHERE ".LIVRAISONS_TABLE.".del=0"
            ." AND ".LIVRAISONS_TABLE.".paniers_groupe=".intval($groupe)
            ." AND ".LIVRAISONS_TABLE.".date<='".$date."'"
            ." ORDER BY ".LIVRAISONS_TABLE.".date DESC  LIMIT 0,1";
    
    $r = $GLOBALS['db_admin']['man']->select($sql);
    
    if(!$r['erreur']) {
        if(count($r['datas'])>0) $grp = $r['datas'][0]["quinz_groupe"];
    }
    else {
        $er = "</br>sql: ".$sql."</br>error: ".getReadableVar($r['erreur']);
        $GLOBALS['errors'][] = "Une erreur est survenue durant la récupération du groupe de la dernière livraison dans le base de données !".$er;
    }
    
    return $grp;
}

// GET DATAS

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

    if(!$r['erreur']) {
        $i = $r['datas'];
        
        $i["date_print"] = formatDate($i["date"], "mysql_date", "date");
        $i["date_long_print"] = formatDate($i["date"], "mysql_date", "print_date_with_day");
        
        $i["nb_paniers"] = intval($i["nb_paniers"]);
        
        $i["lieux"] = getLivraisonLieux($id);
        $i["paniers"] = getLivraisonPaniers($id);
        $i["paniers_contrats"] = getLivraisonPaniersContratsList($id);
        $i["nb_paniers"] = getLivraisonNbPaniers($id);
        $i["legumes"] = getLivraisonLegumes($id, $i["nb_paniers"]);
        $i["total_legumes"] = calcLivraisonTotalLegumes($i["legumes"]);
    }
    else {
        $er = "</br>sql: ".$sql."</br>error: ".getReadableVar($r['erreur']);
        $GLOBALS['errors'][] = "Une erreur est survenue durant la récupération des informations de la livraison dans le base de données !".$er;
    }
    
    return $i;
}

// ADD / UPDATE DATAS

function getLivraisonDatasFromRequest() { 
    $datas = getRequestTableDatas(LIVRAISONS_TABLE_STRUCT);
    
    // PANIERS
    $datas['paniers'] = array();
    if(isset($_REQUEST['paniers'])) $datas['paniers'] = json_decode($_REQUEST['paniers'], true);
    
    // PANIERS COMPO
    $datas['paniers_compo'] = array();
    if(isset($_REQUEST['paniersCompo'])) $datas['paniers_compo'] = json_decode($_REQUEST['paniersCompo'], true);
    
    return $datas;
}

function addLivraison($datas) {
    return addDatasInTable(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        LIVRAISONS_TABLE,               // TABLE NAME
        LIVRAISONS_TABLE_STRUCT,        // TABLE STRUCTURE
        $datas,                         // DATAS
        "de la livraison"               // ERROR STRING
    );
}

function updateLivraison($id, $datas) { 
    return updateDatasInTable(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        LIVRAISONS_TABLE,               // TABLE NAME
        LIVRAISONS_TABLE_STRUCT,        // TABLE STRUCTURE
        $id,                            // ID
        $datas,                         // DATAS
        "à la livraison",               // NULL STRING
        "de la livraison"               // ERROR STRING
    );
}

function archiveLivraison($id, $state) {
    $datas = array(
        "archive" => ($state == true) ? 1 : 0,
        "force_not_archive" => ($state == true) ? 0 : 1,
    );
    $r = updateLivraison($id, $datas);
    if(!(int)$r>0) {
        $er = "ERREUR : une erreur est survenue ";
        $er.= ($state == true) ? "à l'archivage" : "au désarchivage";
        $er = " de la livraison ! ($r)";
        return $er;
    }
    return 1;
}

function archiveOldLivraison() {
    $date = new DateTime(DATE_TIME_ZONE);
    $dateInt = new DateInterval( "P".AUTO_ARCHIVE_OLD_LIVRAISONS_DELAY."D" );
    $date->sub( $dateInt );
    $condition = "WHERE date < '".$date->format("Y-m-d")."' AND force_not_archive=0";
    
    $r = updateDatasInTableByCondition(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        LIVRAISONS_TABLE,               // TABLE NAME
        LIVRAISONS_TABLE_STRUCT,        // TABLE STRUCTURE
        $condition,                     // CONDITION
        array("archive" => 1),          // DATAS
        "aux livraisons",               // NULL STRING
        "des livraisons"                // ERROR STRING
    );
    
    if(!$r>0) $GLOBALS['errors'][] = "ERREUR : une erreur est survenue durant l'archivage automatique des anciennes livraisons...<br/>($r)";
//    else addDebug("ARCHIVE OLD LIVRAISONS DONE !");
}

function deleteLivraison($id) {
    return deleteItemInTable(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        LIVRAISONS_TABLE,               // TABLE NAME
        $id,                            // ID
        "de la livraison"               // ERROR STRING
    );
}

function eraseLivraison($id) {
    return eraseItemInTable(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        LIVRAISONS_TABLE,               // TABLE NAME
        $id,                            // ID
        "de la livraison"               // ERROR STRING
    );
}

////////////////////////////////////////////////////////////////////////
// LIVRAISONS - LIEUX //////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////

function getLivraisonLieux($livraison) {
    $list = array();
    
    $sql = "SELECT "
        .CONTRATS_TABLE.".`lieu_depot` as 'ref',"
        .LIEUX_TABLE.".`nom` as 'nom',"
        ."count(*) as 'nb_paniers'"
        ." FROM ".LIVRAISONS_PANIERS_TABLE
        ." LEFT JOIN ".CONTRATS_TABLE." ON ".LIVRAISONS_PANIERS_TABLE.".`contrat`=".CONTRATS_TABLE.".`ref`"
        ." LEFT JOIN ".LIEUX_TABLE." ON ".CONTRATS_TABLE.".`lieu_depot`=".LIEUX_TABLE.".`ref`"
        ." WHERE ".LIVRAISONS_PANIERS_TABLE.".`livraison`=".intval($livraison)
        ." GROUP BY ".CONTRATS_TABLE.".`lieu_depot`";
        
    $r = $GLOBALS['db_admin']['man']->select($sql);

    if(!$r['erreur']) {
        foreach($r['datas'] as $i) {
            $i['ref'] = intval($i['ref']);
            $i['nb_paniers'] = intval($i['nb_paniers']);
            $i['paniers'] = getLivraisonPaniers($livraison, $i['ref']);
            $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 livraison dans le base de données !".$er;
    }
    
    return $list;
}

////////////////////////////////////////////////////////////////////////
// LIVRAISONS - PANIERS ////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////

function getLivraisonPaniersEligibles($paniers_groupe, $date, $quinz_groupe) {
    $list = array();
    
    $sql = "SELECT "
        .CONTRATS_TABLE.".`ref` as 'contrat_ref',"
        .CONTRATS_TABLE.".`client` as 'client_ref',"
        .CLIENTS_TABLE.".`nom` as 'client_nom',"
        .CLIENTS_TABLE.".`prenom` as 'client_prenom',"
        .CONTRATS_TABLE.".`panier_type` as 'panier_type_ref',"
        .PANIERS_TYPES_TABLE.".`nom` as 'panier_type_nom',"
        .CONTRATS_TABLE.".`frequence`,"
        .CONTRATS_TABLE.".`quinz_groupe`,"
        .CONTRATS_TABLE.".`nb_paniers`,"
        .CONTRATS_TABLE.".`lieu_depot` as 'lieu_depot_ref',"
        .LIEUX_TABLE.".`nom` as 'lieu_depot_nom',"
        .CONTRATS_TABLE.".`np_paniers_distrib_avt_saisie`,"
        .CONTRATS_TABLE.".`force_eligible`"
        ." FROM ".CONTRATS_TABLE
        ." LEFT JOIN ".CLIENTS_TABLE." ON ".CONTRATS_TABLE.".`client`=".CLIENTS_TABLE.".`ref`"
        ." LEFT JOIN ".PANIERS_TYPES_TABLE." ON ".CONTRATS_TABLE.".`panier_type`=".PANIERS_TYPES_TABLE.".`ref`"
        ." LEFT JOIN ".LIEUX_TABLE." ON ".CONTRATS_TABLE.".`lieu_depot`=".LIEUX_TABLE.".`ref`"
        ." WHERE ".CONTRATS_TABLE.".`del`=0"
        ." AND ".CONTRATS_TABLE.".`groupe`=".intval($paniers_groupe)
        ." AND ".CONTRATS_TABLE.".`date`<='".$date."'"
        ." AND (".CONTRATS_TABLE.".`frequence`='hebdo' OR (".CONTRATS_TABLE.".`frequence`='quinz' AND ".CONTRATS_TABLE.".`quinz_groupe`='".$quinz_groupe."'))"
        ." ORDER BY ".CLIENTS_TABLE.".`nom` ASC";
    
    $r = $GLOBALS['db_admin']['man']->select($sql);

    if(!$r['erreur']) {
        foreach($r['datas'] as $i) {
            $i["nb_paniers_livres"] = getNbLivraisonForContratAtDate($i['ref'], $date) + intval($i["np_paniers_distrib_avt_saisie"]);
            $i["nb_paniers_restants"] = intval($i["nb_paniers"])-$i["nb_paniers_livres"];
            $i["frequence_print"] = CONTRATS_FREQUENCES[$i["frequence"]];
            if($i["frequence"] == "quinz") $i["frequence_print"] .= " <small>(groupe ".$i["quinz_groupe"].")</small>";
            $i["absence"] = getClientAbsenceAtDate($i["client_ref"], $date);
            
            if($i["nb_paniers_restants"]>0 || (int)$i['force_eligible']>0) {
                // GROUP BY - LIEU & TYPE DE PANNIER
                $lieu = intval($i['lieu_depot_ref']);
                $pType = intval($i['panier_type_ref']);
                
                // CREATION DU LIEU
                if(!array_key_exists($lieu, $list)) {
                    $list[$lieu] = array(
                        "ref" => $lieu,
                        "nom" => $i['lieu_depot_nom'],
                        "nb_paniers" => 0,
                        "paniers" => array()
                    );
                }
                
                // CREATION DU TYPE DE PANIER
                if(!array_key_exists($pType, $list[$lieu]["paniers"])) {
                    $list[$lieu]["paniers"][$pType] = array(
                        "type_ref" => $pType,
                        "type_nom" => $i['panier_type_nom'],
                        "paniers" => array()
                    );
                }
                
                // AJOUT
                $list[$lieu]["paniers"][$pType]["paniers"][] = $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 paniers de la livraison dans le base de données !".$er;
    }
    
    // ORDER
    $list = orderListByKey($list, "nom", "ASC");
    for($i =0; $i<count($list); $i++) { $list[$i]["paniers"] = orderListByKey($list[$i]["paniers"], "type_nom", "ASC"); }
    
    return $list;
}

function getNbLivraisonForContratAtDate($contrat, $date) {
    $nb = 0;
    
    $sql = "SELECT count(*) as nb FROM ".LIVRAISONS_PANIERS_TABLE
        ." LEFT JOIN ".LIVRAISONS_TABLE." ON ".LIVRAISONS_PANIERS_TABLE.".`livraison`=".LIVRAISONS_TABLE.".`ref`"
        ." WHERE ".LIVRAISONS_PANIERS_TABLE.".contrat=".intval($contrat)
        ." AND ".LIVRAISONS_TABLE.".date<='".$date."'";
    
    $r = $GLOBALS['db_admin']['man']->select($sql,1);

    if(!$r['erreur']) $nb = intval($r['datas']['nb']);
    else {
        $er = "</br>sql: ".$sql."</br>error: ".getReadableVar($r['erreur']);
        $GLOBALS['errors'][] = "Une erreur est survenue durant la récupération du nombre de livraison du contrat dans le base de données !".$er;
    }
    
    return $i;
        
}

function getLivraisonPaniers($livraison, $lieu=0) {
    $list = array();
    
    $sql = getLivraisonsPaniersSelectBaseSQL();
    $sql.=" WHERE ".LIVRAISONS_PANIERS_TABLE.".`livraison`=".intval($livraison);
    if($lieu>0) $sql.=" AND ".CONTRATS_TABLE.".`lieu_depot`=".intval($lieu);
    $sql.=" ORDER BY ".CLIENTS_TABLE.".`nom` ASC";
    
    $r = $GLOBALS['db_admin']['man']->select($sql);

    if(!$r['erreur']) {
        foreach($r['datas'] as $i) {
            $i["frequence_print"] = CONTRATS_FREQUENCES[$i["frequence"]];
            if($i["frequence"] == "quinz") $i["frequence_print"] .= " <small>(groupe ".$i["quinz_groupe"].')</small>';
            
            // GROUPE PAR TYPE DE PANIER
            if(!array_key_exists($i["panier_type_ref"], $list)) {
                $list[$i["panier_type_ref"]] = array(
                    "type_ref" => $i["panier_type_ref"],
                    "type_nom" => $i["panier_type_nom"],
                    "paniers" => array()
                );
            }
            $list[$i["panier_type_ref"]]["paniers"][] = $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 paniers de la livraison dans le base de données !".$er;
    }
    
    $list = orderListByKey($list, "type_nom", "ASC");
    
    return $list;
}

function getLivraisonPaniersContratsList($livraison) {
    $list = array();
    
    $sql = "SELECT `contrat` FROM ".LIVRAISONS_PANIERS_TABLE." WHERE `livraison`=".intval($livraison);
    
    $r = $GLOBALS['db_admin']['man']->select($sql);

    if(!$r['erreur']) {
        foreach($r['datas'] as $i) $list[] = intval($i['contrat']);
    }
    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 contrats de paniers de la livraison dans le base de données !".$er;
    }
    
    return $list;
}

function getLivraisonNbPaniers($livraison) {
    $list = array();
    
    $sql = "SELECT "
        .CONTRATS_TABLE.".`panier_type` as 'ref', "
        .PANIERS_TYPES_TABLE.".`nom` as 'nom', "
        ."count(*) as 'nb'"
        ." FROM ".LIVRAISONS_PANIERS_TABLE
        ." LEFT JOIN ".CONTRATS_TABLE." ON ".LIVRAISONS_PANIERS_TABLE.".`contrat`=".CONTRATS_TABLE.".`ref`"
        ." LEFT JOIN ".PANIERS_TYPES_TABLE." ON ".CONTRATS_TABLE.".`panier_type`=".PANIERS_TYPES_TABLE.".`ref`"
        ." WHERE ".LIVRAISONS_PANIERS_TABLE.".`livraison`=".intval($livraison)
        ." GROUP BY ".CONTRATS_TABLE.".`panier_type`";
    
    $r = $GLOBALS['db_admin']['man']->select($sql);

    if(!$r['erreur']) {
        foreach($r['datas'] as $i) {
            $i['ref'] = intval($i['ref']);
            $i['nb'] = intval($i['nb']);
            $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 du nombre de paniers de la livraison dans le base de données !".$er;
    }
    
    return $list;
}

function addLivraisonPanier($datas) {
    return addDatasInTable(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        LIVRAISONS_PANIERS_TABLE,       // TABLE NAME
        LIVRAISONS_PANIERS_TABLE_STRUCT,// TABLE STRUCTURE
        $datas,                         // DATAS
        "du panier de la livraison"     // ERROR STRING
    );
}

function deleteLivraisonPaniers($livraison) {
    return deleteItemInTableByCondition(
        $GLOBALS['db_admin']['man'],            // DB MANAGER
        LIVRAISONS_PANIERS_TABLE,               // TABLE NAME
        "WHERE livraison=".intval($livraison),  // CONDITION
        "des paniers de la livraison"           // ERROR STRING
    );
}

function clearLivraisonPaniers($livraison) {
    return eraseItemInTableByCondition(
        $GLOBALS['db_admin']['man'],            // DB MANAGER
        LIVRAISONS_PANIERS_TABLE,               // TABLE NAME
        "WHERE livraison=".intval($livraison),  // CONDITION
        "des paniers de la livraison"           // ERROR STRING
    );
}

////////////////////////////////////////////////////////////////////////
// LIVRAISONS - LEGUMES ////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////

function getLivraisonLegumes($livraison, $nbPaniers=[]) {
    $list = array();
    
    $sql = getLivraisonsLegumesTableSelectBaseSQL();
    $sql.=" WHERE ".LIVRAISONS_LEGUMES_TABLE.".`livraison`=".intval($livraison);
    $sql.=" ORDER BY ".LEGUMES_TABLE.".`nom` ASC";
    
    $r = $GLOBALS['db_admin']['man']->select($sql);

    if(!$r['erreur']) {
        foreach($r['datas'] as $i) {
            $i['tarif_unite_acro'] = LEGUMES_TARIFS_UNITES_ACRONYMES[$i['tarif_unite']];
            
            // GROUPE PAR TYPE DE PANIER
            if(!array_key_exists($i["panier_type_ref"], $list)) {
                $list[$i["panier_type_ref"]] = array(
                    "ref" => $i["panier_type_ref"],
                    "nom" => $i["panier_type_nom"],
                    "nb" => 0,
                    "montant" => 0.0,
                    "legumes" => array()
                );
                
                if(array_key_exists($i["panier_type_ref"], $nbPaniers)) $list[$i["panier_type_ref"]]['nb'] = $nbPaniers[$i["panier_type_ref"]]['nb'];
            }
            $list[$i["panier_type_ref"]]["legumes"][] = $i;
            $list[$i["panier_type_ref"]]["montant"] += floatval($i["quantite"]) * floatval($i["tarif_prix"]);
        }
        
        $list = orderListByKey($list, "nom", "ASC");
    }
    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 légumes de la livraison dans le base de données !".$er;
    }
    
    return $list;
}

function calcLivraisonTotalLegumes($legumes) {
    $tot = array(
        "montant" => 0.0,
        "legumes" => array()
    );
    
    foreach($legumes as $p) {
        foreach($p["legumes"] as $l) {
            if(!array_key_exists($l['ref'], $tot["legumes"])) {
                $tot["legumes"][$l['ref']] = $l;
                $tot["legumes"][$l['ref']]["quantite"] = 0.0;
                $tot["legumes"][$l['ref']]["montant"] = 0.0;
            }
            $tot["legumes"][$l['ref']]["quantite"] += floatval($l["quantite"]) * floatval($p['nb']);
            $tot["legumes"][$l['ref']]["montant"] += floatval($l["tarif_prix"]) * floatval($l["quantite"]) * floatval($p['nb']);
            
            $tot["montant"] += floatval($l["tarif_prix"]) * floatval($l["quantite"]) * floatval($p['nb']);
        }
    }
    
    return $tot;
}

function addLivraisonLegume($datas) {
    return addDatasInTable(
        $GLOBALS['db_admin']['man'],    // DB MANAGER
        LIVRAISONS_LEGUMES_TABLE,       // TABLE NAME
        LIVRAISONS_LEGUMES_TABLE_STRUCT,// TABLE STRUCTURE
        $datas,                         // DATAS
        "du légume"                     // ERROR STRING
    );
}

function deleteLivraisonLegumes($livraison) {
    return deleteItemInTableByCondition(
        $GLOBALS['db_admin']['man'],            // DB MANAGER
        LIVRAISONS_LEGUMES_TABLE,               // TABLE NAME
        "WHERE livraison=".intval($livraison),  // CONDITION
        "des légumes de la livraison"           // ERROR STRING
    );
}

function clearLivraisonLegumes($livraison) {
    return eraseItemInTableByCondition(
        $GLOBALS['db_admin']['man'],            // DB MANAGER
        LIVRAISONS_LEGUMES_TABLE,               // TABLE NAME
        "WHERE livraison=".intval($livraison),  // CONDITION
        "des légumes de la livraison"           // ERROR STRING
    );
}

////////////////////////////////////////////////////////////////////////
// PRINTS //////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////

function exportLivraisonTemplateToPDF($templateFile, $outputFileName) {
    $GLOBALS['smarty'] -> assign('logo', PUBLIC_HTML_ADMIN.'img/logo.png');

    $cssFiles = array(
        PUBLIC_HTML_ADMIN.'css/bootstrap_print_light.css',
        PUBLIC_HTML_ADMIN.'css/livraisons.css'
    );
    $GLOBALS['smarty'] -> assign('cssFiles',$cssFiles);

    $html = $GLOBALS['smarty']->fetch($templateFile);
//    die($html);

    $dompdf = new Dompdf\Dompdf();
    $dompdf->loadHtml($html);
    $dompdf->setPaper('A4', 'portrait');
    $options = $dompdf->getOptions();
    $options->setIsRemoteEnabled(true);
    $dompdf->setOptions($options);

    $dompdf->render();
    $dompdf->stream($outputFileName);
    
    die();
}