"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"; $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"); $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 ); // TARIF TOUT GROUPE if(is_array($tarifToutGrp)) { $tarif["ref"] = intval($tarifToutGrp["ref"]); $tarif["prix"] = $tarifToutGrp["prix"]; $tarif["unite"] = $tarifToutGrp["unite"]; $tarif["print"] = $tarifToutGrp["print"]; $tarif["date"] = $tarifToutGrp["date"]; $tarif["date_print"] = $tarifToutGrp["date_print"]; $tarif["tarif_groupe"] = 0; } // TARIF SPECIFIQUE $tarifGrp = getLegumeTarif($legume, $g['ref'], $date); if(is_array($tarifGrp)) { if(!is_array($tarifToutGrp) || (is_array($tarifToutGrp) && $tarifToutGrp["dateObj"] < $tarifGrp["dateObj"])) { $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('', '', 'mysql_date'); $sql .= " AND ".LEGUMES_TARIFS_TABLE.".`date`>'".$date."'"; } else { if(!isValidDate($date, "mysql_date")) $date = formatDate('', '', 'mysql_date'); $sql .= " AND ".LEGUMES_TARIFS_TABLE.".`date`<='".$date."'"; } $sql .= " ORDER BY ".LEGUMES_TARIFS_TABLE.".`date` 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 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 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 ); } function getLegumeTarifHistorique($id, $current = 0) { $list = array(); $sql = getLegumesTarifsTableSelectBaseSQL() ." WHERE ".LEGUMES_TARIFS_TABLE.".legume=".intval($id) ." AND ".LEGUMES_TARIFS_TABLE.".del=0"; // ORDRE $sql.=" ORDER BY ".LEGUMES_TARIFS_TABLE.".date DESC"; $r = $GLOBALS['db_admin']['man']->select($sql); if(!$r['erreur']) { $last_date = ""; foreach($r['datas'] as $i) { $i["tarif_print"] = $i["tarif_prix"]." €/".$i["tarif_unite"]; $i["tarif_date_print"] = formatDate($i["tarif_date"], "mysql_date", "print_date"); $i["tarif_end_date"] = ($last_date!="") ? $last_date : NULL; $i["tarif_end_date_print"] = ($last_date!="") ? formatDate($last_date, "mysql_date", "print_date") : NULL; $i["tarif_periode"] = (is_null($i["tarif_end_date"]) ? "depuis le " : "du ").$i["tarif_date_print"]; if(!is_null($i["tarif_end_date"])) $id["tarif_periode"] .= " au ".$i["tarif_end_date_print"]; if($i['ref'] != $current) $list[] = $i; $last_date = $i["tarif_date"]; } } else { $er = "
sql: ".$sql."
error: ".getReadableVar($r['erreur']); $GLOBALS['errors'][] = "Une erreur est survenue durant la récupération de l'historique de tarif du légume dans le base de données !".$er; } return $list; }