"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 = "sql: ".$sql."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 = "sql: ".$sql."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 = "sql: ".$sql."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_types"] = getLivraisonPaniers($id, 0, true);
$i["paniers_contrats"] = getLivraisonPaniersContratsList($id);
$i["contrats_list"] = getLivraisonPaniersContratsList($id, $i["paniers_contrats"]);
$i["nb_paniers"] = getLivraisonNbPaniers($id);
$i["legumes"] = getLivraisonLegumes($id, "type", $i["nb_paniers"]);
$i["total_legumes"] = calcLivraisonTotalLegumes($i["legumes"]);
$i["legumes_distrib"] = getLivraisonLegumes($id, "legume", $i["nb_paniers"]);
$i["paniers_eligibles"] = getLivraisonPaniersEligibles($i["paniers_groupe_ref"], $i["date"], $i["quinz_groupe"], $i['paniers']);
$i["emargement_list"] = getLivraisonEmargementList($i["paniers_eligibles"], $i["date"]);
}
else {
$er = "sql: ".$sql."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;
}
function getLivraisonEmargementList($paniers_eligibles, $date, $lieu=0) {
$list = array();
foreach($paniers_eligibles as $l) {
if($l["ref"] == $lieu || !$lieu>0) {
foreach($l["paniers"] as $pType) {
foreach($pType["paniers"] as $p) {
if(array_key_exists($p["client_ref"], $list)) {
if($p["present"]) {
$o = $list[$p["client_ref"]];
// COMPLEMENT
if((float)$p["complement"]>0) $o["complement_print"] = number_format(($o["complement"] + $p["complement"]), 2, '.', ' ')." €";
// COMPLEMENT REGLE
if((float)$p["complement_regle"]>0) $o["complement_regle_print"] = number_format(($o["complement_regle"] + $p["complement_regle"]), 2, '.', ' ')." €";
// PANIERS
$o["paniers"][] = $p;
$list[$p["client_ref"]] = $o;
}
}
else {
$p["complement_du_print"] = "/";
$p["complement_print"] = "";
$p["complement_regle_print"] = "";
if($p["present"]) {
// COMPLEMENT DU
$p["complement_du"] = getClientComplementDuAtDate($p["client_ref"], $date);
if($p["complement_du"] > 0) $p["complement_du_print"] = number_format($p["complement_du"], 2, '.', ' ')." €";
else if($p["complement_du"] < 0) $p["complement_du_print"] = number_format(abs($p["complement_du"]), 2, '.', ' ')." € d'avoir";
// COMPLEMENT
if((float)$p["complement"]>0) $p["complement_print"] = number_format($p["complement"], 2, '.', ' ')." €";
// COMPLEMENT REGLE
if((float)$p["complement_regle"]>0) $p["complement_regle_print"] = number_format($p["complement_regle"], 2, '.', ' ')." €";
// PANIERS
$p["paniers"] = array();
$p["paniers"][] = $p;
}
$list[$p["client_ref"]] = $p;
}
}
}
}
}
// ORDER
$list = orderListByKey($list, "client_prenom", "ASC");
return $list;
}
// 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...
($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 = "sql: ".$sql."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, $paniers = array()) {
$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',"
.CLIENTS_TABLE.".`tel` as 'client_tel',"
.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"] .= " (groupe ".$i["quinz_groupe"].")";
$i["absence"] = getClientAbsenceAtDate($i["client_ref"], $date);
if($i["nb_paniers_restants"]>0 || (int)$i['force_eligible']>0) {
// PRESENT
$i["present"] = array_key_exists(intval($i["contrat_ref"]), $paniers);
// COMPLEMENT
$i["complement"] = 0;
$i["complement_regle"] = 0;
if($i["present"]) {
$i["complement"] = $paniers[$i["contrat_ref"]]["complement"];
$i["complement_regle"] = $paniers[$i["contrat_ref"]]["complement_regle"];
}
// 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'],
"nb_paniers" => 0,
"paniers" => array()
);
}
// AJOUT
$list[$lieu]["paniers"][$pType]["paniers"][] = $i;
if($i["present"]) {
$list[$lieu]["nb_paniers"]++;
$list[$lieu]["paniers"][$pType]["nb_paniers"]++;
}
}
}
}
else {
$er = "sql: ".$sql."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; $iselect($sql,1);
if(!$r['erreur']) $nb = intval($r['datas']['nb']);
else {
$er = "sql: ".$sql."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, $group_by_type=false) {
$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"] .= " (groupe ".$i["quinz_groupe"].')';
// GROUPE PAR TYPE DE PANIER
if($group_by_type) {
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 $list[$i["contrat_ref"]] = $i;
}
}
else {
$er = "sql: ".$sql."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;
}
if($group_by_type) $list = orderListByKey($list, "type_nom", "ASC");
return $list;
}
function getLivraisonPaniersContratsList($livraison, $ref_list = false) {
$list = array();
if(!is_array($ref_list)) $sql = "SELECT `contrat` FROM ".LIVRAISONS_PANIERS_TABLE." WHERE `livraison`=".intval($livraison);
else {
$inList = "";
foreach($ref_list as $key => $ref) $inList .= $ref.(($key!==array_key_last($ref_list)) ? "," : "");
$sql = getContratsTableSelectBaseSQL()
." WHERE ".CONTRATS_TABLE.".`ref` IN ($inList)"
." ORDER BY ".CLIENTS_TABLE.".`prenom`, ".CLIENTS_TABLE.".`nom` ASC";
}
$r = $GLOBALS['db_admin']['man']->select($sql);
if(!$r['erreur']) {
foreach($r['datas'] as $i) {
if(!is_array($ref_list)) $list[] = intval($i['contrat']);
else {
$i["paniers_livres"] = getContratPaniersLivres($i['ref']);
$list[] = $i;
}
}
}
else {
$er = "sql: ".$sql."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 = "sql: ".$sql."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 - COMPLEMENT /////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
function getLivraisonComplementFromRequest() {
$datas = array();
if(!isset($_REQUEST["complement"]) && !isset($_REQUEST["complement_regle"])) return "ERREUR : aucune modification de complement tranmis !";
if(isset($_REQUEST["complement"])) $datas["complement"] = floatval($_REQUEST["complement"]);
if(isset($_REQUEST["complement_regle"])) $datas["complement_regle"] = floatval($_REQUEST["complement_regle"]);
return $datas;
}
function updateLivraisonComplement($livraison, $contrat, $datas) {
$condition = " WHERE livraison=$livraison AND contrat=$contrat";
return updateDatasInTableByCondition(
$GLOBALS['db_admin']['man'], // DB MANAGER
LIVRAISONS_PANIERS_TABLE, // TABLE NAME
LIVRAISONS_PANIERS_TABLE_STRUCT,// TABLE STRUCTURE
$condition, // CONDITION
$datas, // DATAS
"au complement", // NULL STRING
"du complement" // ERROR STRING
);
}
////////////////////////////////////////////////////////////////////////
// LIVRAISONS - LEGUMES ////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
function getLivraisonLegumes($livraison, $groupBy=false, $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']];
$i['quantite_print'] = floatval($i['quantite'])." ".$i['tarif_unite_acro'];
if($i["tarif_unite"]=="kg" && floatval($i["quantite"])*1000<1000) $i['quantite_print'] = (floatval($i["quantite"])*1000)." g";
// GROUPE PAR TYPE DE PANIER
if($groupBy == "type") {
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"]);
}
// GROUPE PAR LEGUME
else if($groupBy == "legume") {
if(!array_key_exists($i["ref"], $list)) {
$list[$i["ref"]] = array(
"ref" => $i["ref"],
"nom" => $i["nom"],
"paniers" => array()
);
}
$list[$i["ref"]]["paniers"][$i["panier_type_ref"]] = $i;
}
else $list[] = $i;
}
if($groupBy == "type") $list = orderListByKey($list, "nom", "ASC");
}
else {
$er = "sql: ".$sql."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;
}
// QUANTITE
$tot["legumes"][$l['ref']]["quantite"] += floatval($l["quantite"]) * floatval($p['nb']);
$tot["legumes"][$l['ref']]['quantite_print'] = floatval($tot["legumes"][$l['ref']]['quantite'])." ".$tot["legumes"][$l['ref']]['tarif_unite_acro'];
if($tot["legumes"][$l['ref']]["tarif_unite"]=="kg" && floatval($tot["legumes"][$l['ref']]["quantite"])*1000<1000) $tot["legumes"][$l['ref']]['quantite_print'] = (floatval($tot["legumes"][$l['ref']]["quantite"])*1000)." g";
// MONTANT
$tot["legumes"][$l['ref']]["montant"] += floatval($l["tarif_prix"]) * floatval($l["quantite"]) * floatval($p['nb']);
// TOTAL
$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, $orientation='portrait') {
$GLOBALS['smarty'] -> assign('logo', "file://".PUBLIC_HTML_ADMIN_PATH."/img/logo.png");
$GLOBALS['smarty'] -> assign('cssFiles',array(
"file://".PUBLIC_HTML_ADMIN_PATH."css/bootstrap_print_light.css",
"file://".PUBLIC_HTML_ADMIN_PATH."css/print.css",
"file://".PUBLIC_HTML_ADMIN_PATH."css/livraisons.css"
));
$GLOBALS['smarty'] -> assign('orientation',$orientation);
$html = $GLOBALS['smarty']->fetch($templateFile);
$dompdf = new Dompdf\Dompdf(["chroot" => ROOT_DIR_PATH]);
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', $orientation);
$options = $dompdf->getOptions();
$options->setIsRemoteEnabled(true);
$dompdf->setOptions($options);
$dompdf->render();
$dompdf->stream($outputFileName);
die();
}