"réf.", 'nom' => "nom" ); function getNbLegumesInList($search=false) { $sql = getCountLegumesListSelectBaseSQL()." WHERE ".LEGUMES_TABLE.".`del`=0"; $sql = buildSqlSearch($sql, $search, "buildLegumesListSearchSQL"); $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 getLegumesList($order='nom',$sens='ASC', $search=false, $limits=false) { // TARIF & DATE ORDRE $grps = getPaniersGroupesList(); $tarif_date_orders = array(); foreach($grps as $g) { $tarif_date_orders[] = "tarif_".$g["ref"]; $orders[] = "date_".$g["ref"]; } $list = array(); $sql = getLegumesTableSelectBaseSQL()." WHERE ".LEGUMES_TABLE.".`del`=0"; // SEARCH $sql = buildSqlSearch($sql, $search, "buildLegumesListSearchSQL"); // ORDRE $sql.=" ORDER BY "; if($order=='ref') $sql .= LEGUMES_TABLE.".`ref`"; else if($order=='nom') $sql .= LEGUMES_TABLE.".`nom`"; else $sql .= LEGUMES_TABLE.".`nom`"; // SENS if($sens=='DESC') $sql .= ' DESC'; else $sql .= ' ASC'; // LIMITS if(is_array($limits) && !in_array($order, $tarif_date_orders)) $sql .= " LIMIT ".$limits['start'].", ".$limits['nbItemsByPage']; $r = $GLOBALS['db_admin']['man']->select($sql); if(!$r['erreur']) { foreach($r['datas'] as $i) { $i["tarifs"] = getLegumeTarifs($i['ref']); foreach($i["tarifs"] as $g => $t) { if($t["ref"] >0) { $i["tarif_".$g] = $t["prix"]; $i["date_".$g] = $t["dateObj"]; } else { $i["tarif_".$g] = false; $i["date_".$g] = false; } } $i["next_tarifs"] = getLegumeTarifs($i['ref'], 'next'); $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 légumes dans le base de données !".$er; } if(in_array($order, $tarif_date_orders)) { $list = orderListByKey($list, $order, $sens); if(is_array($limits)) $list = array_slice($list, $limits['start'], $limits['nbItemsByPage']); } return $list; } function getLegumesAutocompleteList() { $list = array(); $term = trim($_REQUEST['search']); // get user autocomplete input $term = preg_replace('/\s+/', ' ', $term); // replace multiple spaces by one $parts = explode(' ', $term); $sql = getLegumesTableSelectBaseSQL()." WHERE ".LEGUMES_TABLE.".`del`=0"; foreach($parts as $p) $sql .= " AND (".buildLegumesListSearchSQL($p).")"; $groupe = false; if(isset($_REQUEST['groupe']) && (int)$_REQUEST['groupe']>0) $groupe = intval($_REQUEST['groupe']); $date = false; if(isset($_REQUEST['date']) && isValidDate($_REQUEST['date'], "mysql_date")) $date = $_REQUEST['date']; $r = $GLOBALS['db_admin']['man']->select($sql); if(!$r['erreur']) { foreach($r['datas'] as $l) { // TARIF $t = getLegumeTarif($l['ref'], $groupe, $date, false); if($t) { $row = array( "id" => $l['ref'], "value" => $l['nom'], "label" => $l['nom'], "ref" => $l['ref'], "tarif_ref" => $t['ref'], "tarif_prix" => $t['prix'], "tarif_unite" => $t['unite'] ); array_push($list, $row); } } $a_json = apply_highlight($list, $parts); // highlight search parts } 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 !".$er; } return $list; } // GET DATAS function getLegumeDatas($id) { $i = array(); $sql = getLegumesTableSelectBaseSQL()." WHERE ".LEGUMES_TABLE.".`ref`=".intval($id); $r = $GLOBALS['db_admin']['man']->select($sql,1); if(!$r['erreur']) { $i = $r['datas']; $i["tarifs_list"] = getLegumeTarifsList($i['ref']); $i["tarifs"] = getLegumeTarifs($i['ref']); $i["next_tarifs"] = getLegumeTarifs($i['ref'], 'next'); } else { $er = "
sql: ".$sql."
error: ".getReadableVar($r['erreur']); $GLOBALS['errors'][] = "Une erreur est survenue durant la récupération des informations du légume dans le base de données !".$er; } return $i; } // ADD / UPDATE DATAS function getLegumeDatasFromRequest() { $datas = getRequestTableDatas(LEGUMES_TABLE_STRUCT); // TARIFS $datas["tarifs"] = array(); if(isset($_REQUEST["tarifs"])) $datas["tarifs"] = json_decode($_REQUEST["tarifs"], true); return $datas; } function addLegume($datas) { return addDatasInTable( $GLOBALS['db_admin']['man'], // DB MANAGER LEGUMES_TABLE, // TABLE NAME LEGUMES_TABLE_STRUCT, // TABLE STRUCTURE $datas, // DATAS "du légume" // ERROR STRING ); } function updateLegume($id, $datas) { return updateDatasInTable( $GLOBALS['db_admin']['man'], // DB MANAGER LEGUMES_TABLE, // TABLE NAME LEGUMES_TABLE_STRUCT, // TABLE STRUCTURE $id, // ID $datas, // DATAS "au légume", // NULL STRING "du légume" // ERROR STRING ); } function deleteLegume($id) { return deleteItemInTable( $GLOBALS['db_admin']['man'], // DB MANAGER LEGUMES_TABLE, // TABLE NAME $id, // ID "du légume" // ERROR STRING ); } function eraseLegume($id) { return eraseItemInTable( $GLOBALS['db_admin']['man'], // DB MANAGER LEGUMES_TABLE, // TABLE NAME $id, // ID "du légume" // ERROR STRING ); } //////////////////////////////////////////////////////////////////////// // LEGUMES - TARIFS //////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// function getLegumeTarifsList($legume) { $list = array(); $sql = getLegumesTarifsTableSelectBaseSQL() ." WHERE ".LEGUMES_TARIFS_TABLE.".`legume`=".intval($legume) ." AND ".LEGUMES_TARIFS_TABLE.".`del`=0" ." ORDER BY ".LEGUMES_TARIFS_TABLE.".`date` DESC, ".LEGUMES_TARIFS_TABLE.".`ref` DESC"; $r = $GLOBALS['db_admin']['man']->select($sql); if(!$r['erreur']) { foreach($r['datas'] as $i) { $i["print"] = $i["prix"]." €/".$i["unite"]; $i["date_print"] = formatDate($i["date"], "mysql_date", "print_date"); $i["use"] = getLegumeTarifUtilise($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 tarifs du légume dans le base de données !".$er; } return $list; } function getLegumeTarifs($legume, $date=false) { $groupes = getPaniersGroupesList(); $list = []; $tarifToutGrp = getLegumeTarif($legume, 0, $date); foreach($groupes as $g) { $tarif = array( "groupe_ref" => $g['ref'], "groupe_nom" => $g['nom'], "ref" => 0 ); $tarifGrp = getLegumeTarif($legume, $g['ref'], $date, false); if(is_array($tarifGrp)) { $tarif["ref"] = intval($tarifGrp["ref"]); $tarif["prix"] = $tarifGrp["prix"]; $tarif["unite"] = $tarifGrp["unite"]; $tarif["print"] = $tarifGrp["print"]; $tarif["date"] = $tarifGrp["date"]; $tarif["date_print"] = $tarifGrp["date_print"]; $tarif["tarif_groupe"] = $g['ref']; } $list[$g['ref']] = $tarif; } return $list; } function getLegumeTarif($legume, $groupe, $date=false, $groupe_exclusif=true) { $i = false; $sql = getLegumesTarifsTableSelectBaseSQL() ." WHERE ".LEGUMES_TARIFS_TABLE.".`legume`=".intval($legume) ." AND ".LEGUMES_TARIFS_TABLE.".`del`=0"; // GROUPE if($groupe>0) { if($groupe_exclusif) $sql .= " AND ".LEGUMES_TARIFS_TABLE.".`groupe`=".intval($groupe); else $sql .= " AND (".LEGUMES_TARIFS_TABLE.".`groupe`=".intval($groupe) ." OR ".LEGUMES_TARIFS_TABLE.".`groupe`=0" ." OR ".LEGUMES_TARIFS_TABLE.".`groupe` IS NULL)"; } else $sql .= " AND (".LEGUMES_TARIFS_TABLE.".`groupe` IS NULL OR ".LEGUMES_TARIFS_TABLE.".`groupe`=0)"; // DATE if($date == 'next') { $date = formatDate('now', false, 'mysql_date'); $sql .= " AND ".LEGUMES_TARIFS_TABLE.".`date`>'".$date."'"; } else { if(!isValidDate($date, "mysql_date")) $date = formatDate('now', false, 'mysql_date'); $sql .= " AND ".LEGUMES_TARIFS_TABLE.".`date`<='".$date."'"; } $sql .= " ORDER BY ".LEGUMES_TARIFS_TABLE.".`date` DESC, ".LEGUMES_TARIFS_TABLE.".`ref` DESC"; $r = $GLOBALS['db_admin']['man']->select($sql); if(!$r['erreur']) { if(count($r['datas'])>0) { $i = $r['datas'][0]; $i["dateObj"] = new DateTime($i["date"]); $i["print"] = $i["prix"]." €/".$i["unite"]; $i["date_print"] = formatDate($i["date"], "mysql_date", "print_date"); } } else { $er = "
sql: ".$sql."
error: ".getReadableVar($r['erreur']); $GLOBALS['errors'][] = "Une erreur est survenue durant la récupération des informations du tarif du légume dans le base de données !".$er; } return $i; } function getLegumeTarifUtilise($tarif) { $use = false; $sql = "SELECT COUNT(*) as 'use' FROM ".LIVRAISONS_LEGUMES_TABLE." WHERE tarif=".intval($tarif); addDebug($sql); $r = $GLOBALS['db_admin']['man']->select($sql,1); if(!$r['erreur']) $use = (int)$r['datas']["use"]>0; else { $er = "
sql: ".$sql."
error: ".getReadableVar($r['erreur']); $GLOBALS['errors'][] = "Une erreur est survenue durant l'analyse d'utilisation du tarif de légume dans le base de données !".$er; } return $use; } function addLegumeTarif($datas) { return addDatasInTable( $GLOBALS['db_admin']['man'], // DB MANAGER LEGUMES_TARIFS_TABLE, // TABLE NAME LEGUMES_TARIFS_TABLE_STRUCT, // TABLE STRUCTURE $datas, // DATAS "du tarif" // ERROR STRING ); } function updateLegumeTarif($id, $datas) { return updateDatasInTable( $GLOBALS['db_admin']['man'], // DB MANAGER LEGUMES_TARIFS_TABLE, // TABLE NAME LEGUMES_TARIFS_TABLE_STRUCT, // TABLE STRUCTURE $id, // ID $datas, // DATAS "du tarif", // NULL STRING "au tarif" // ERROR STRING ); } function deleteLegumeTarif($id) { return deleteItemInTable( $GLOBALS['db_admin']['man'], // DB MANAGER LEGUMES_TARIFS_TABLE, // TABLE NAME $id, // ID "du tarif" // ERROR STRING ); } function eraseLegumeTarif($id) { return eraseItemInTable( $GLOBALS['db_admin']['man'], // DB MANAGER LEGUMES_TARIFS_TABLE, // TABLE NAME $id, // ID "du tarif" // ERROR STRING ); } //////////////////////////////////////////////////////////////////////// // PRINT LIST ////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// function printLegumesList() { $GLOBALS['smarty'] -> assign('logo', "file://".PUBLIC_HTML_ADMIN_PATH."/img/logo.png"); $GLOBALS['smarty'] -> assign('date', formatDate('now', false, 'print_date')); $GLOBALS['smarty'] -> assign('time', formatDate('now', false, 'print_time')); $GLOBALS['smarty'] -> assign('cssFiles',array( "file://".PUBLIC_HTML_ADMIN_PATH."css/bootstrap_print_light.css", "file://".PUBLIC_HTML_ADMIN_PATH."css/print.css" )); $html = $GLOBALS['smarty']->fetch("legumes/legumes_list_print.tpl"); $dompdf = new Dompdf\Dompdf(["chroot" => ROOT_DIR_PATH]); $dompdf->loadHtml($html); $dompdf->setPaper('A4', "portrait"); $options = $dompdf->getOptions(); $options->setIsRemoteEnabled(true); $dompdf->setOptions($options); $dompdf->render(); $dompdf->stream("Liste des légumes (".formatDate('now', false, 'strdate').").pdf"); exit(); }