"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; } $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, $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(); }