153 lines
4.3 KiB
PHP
153 lines
4.3 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Exception;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Session;
|
|
|
|
|
|
class Gerichte extends Model
|
|
{
|
|
protected $table = 'gericht';
|
|
protected $primaryKey = 'id';
|
|
public $incrementing = true;
|
|
use HasFactory;
|
|
|
|
|
|
function getPreisIntern(){
|
|
return $this->formatPreis($this->attributes['preisintern']);
|
|
}
|
|
|
|
function getPreisExtern(){
|
|
return $this->formatPreis($this->attributes['preisextern']);
|
|
}
|
|
|
|
private function formatPreis($unformatted){
|
|
return number_format($unformatted, 2, ',');
|
|
}
|
|
|
|
function getBildname(){
|
|
return $this->attributes['bildname'];
|
|
}
|
|
|
|
function getGerichtName(){
|
|
return $this->attributes['name'];
|
|
}
|
|
|
|
function setVegetarischAttribut($value){
|
|
if ($value == 1 || $value == 0){
|
|
$this->attributes['vegetarisch'] = $value;
|
|
return;
|
|
}
|
|
|
|
$parsed = $this->parse_wahrheitswert($value) ;
|
|
$this->attributes['vegetarisch'] = $parsed;
|
|
}
|
|
|
|
function setVeganAttribut($value){
|
|
if ($value == 1 || $value == 0){
|
|
$this->attributes['vegan'] = $value;
|
|
return;
|
|
}
|
|
|
|
$parsed = $this->parse_wahrheitswert($value) ;
|
|
$this->attributes['vegetarisch'] = $parsed;
|
|
}
|
|
|
|
private function parse_wahrheitswert($value){
|
|
$value = strtolower(str_replace(" ", "", $value));
|
|
|
|
if ($value == "yes" || $value == "ja"){
|
|
return 1;
|
|
}
|
|
elseif ($value == "no" || $value == "nein"){
|
|
return 0;
|
|
}
|
|
else{
|
|
trigger_error("Could not parse value");
|
|
}
|
|
// Wenn versucht wird das in die Datenbank zu schreiben sollte es eine Fehlermeldung geben
|
|
}
|
|
|
|
|
|
function db_gericht_select_karte()
|
|
{
|
|
try {
|
|
|
|
$sql_gerichte = "SELECT * FROM gericht ORDER BY RAND() LIMIT 5";
|
|
$result_sql_gerichte = DB::select($sql_gerichte);
|
|
$result_sql_gerichte1 = DB::select($sql_gerichte);
|
|
|
|
|
|
$verwendete_allergene_code = [];
|
|
$verwendete_allergene_string = "";
|
|
|
|
|
|
foreach ($result_sql_gerichte as $row_gerichte) {
|
|
|
|
// Abfrage der vorhandenen Allergene im aktuellen Gericht
|
|
|
|
$sql_gericht_hat_allergene = "SELECT * FROM gericht_hat_allergen WHERE gericht_id=" . $row_gerichte->id;
|
|
$result_sql_gericht_hat_allergene = DB::select($sql_gericht_hat_allergene);
|
|
$allergene = "";
|
|
foreach ($result_sql_gericht_hat_allergene as $row_allergene) {
|
|
$allergene .= $row_allergene->code . ", ";
|
|
|
|
$drin = 0;
|
|
foreach ($verwendete_allergene_code as $verwendet){
|
|
if ($verwendet == $row_allergene->code){
|
|
$drin =1;
|
|
}
|
|
}
|
|
|
|
if ($drin == 0) {
|
|
$verwendete_allergene_code[] = $row_allergene->code;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
$sql_allergen = "SELECT code, name FROM allergen";
|
|
$result_sql_allergen = DB::select($sql_allergen);
|
|
|
|
|
|
|
|
$data = [
|
|
"allergene" => $verwendete_allergene_string,
|
|
"result_sql_allergen" => $result_sql_allergen,
|
|
"verwendete_allergene_code" => $verwendete_allergene_code,
|
|
"result_sql_gerichte" => $result_sql_gerichte1,
|
|
"allergene1" => $allergene
|
|
];
|
|
|
|
|
|
return $data;
|
|
} catch (Exception $ex) {
|
|
$data = array(
|
|
'id' => '-1',
|
|
'error' => true,
|
|
'name' => 'Datenbankfehler ' . $ex->getCode(),
|
|
'beschreibung' => $ex->getMessage());
|
|
return $data;
|
|
}
|
|
|
|
}
|
|
|
|
function db_gericht_bewertung(int $id){
|
|
$sql_gerichte = "SELECT gericht.name, gericht.bildname FROM gericht WHERE id =". $id;
|
|
$result_sql_gerichte = DB::select($sql_gerichte);
|
|
return $result_sql_gerichte;
|
|
}
|
|
|
|
function db_gericht_name(int $id){
|
|
$sql_gerichte = "SELECT gericht.name FROM gericht WHERE id =". $id;
|
|
$result_sql_gerichte = DB::select($sql_gerichte);
|
|
return $result_sql_gerichte;
|
|
}
|
|
|
|
}
|