id)->first(); /** * Gutachter */ $res = Gutachter::where('konto_id', Auth::user()->konto_id)->where('id', $pro->gutachter_id)->first(); if (! $res->digitale_signatur_stempel) { Notification::make() ->title('Gutacher') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Es fehlt der Stempel für die Digitale Signatur.') ->send(); return false; } /** * ProjektAllgemeinflaechen */ $res = ProjektAllgemeinflaechen::where('projekte_id', $record->id)->get(); if (! $res->count()) { Notification::make() ->title('Tabelle Allgemeinflächen') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Die Tabelle der Allgemeinflächen ist leer.') ->send(); return false; } foreach ($res as $value) { if (! $value->geschoss) { Notification::make() ->title('Tabelle Allgemeinflächen') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Für die Allgemeinfläche '.$value->raumart.' fehlt die Angabe des Geschoßes.') ->send(); return false; } if (! $value->raumart) { Notification::make() ->title('Tabelle Allgemeinflächen') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Für eine Allgemeinfläche im Geschoss '.$value->geschoss.' fehlt die Angabe der Raumart.') ->send(); return false; } if ($value->flaeche == 0) { Notification::make() ->title('Tabelle Allgemeinflächen') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Für die Allgemeinfläche '.$value->raumart.' fehlt die Angabe der Fläche.') ->send(); return false; } } /** * jedes objekt hat mindestens ein objekt im detail */ $res = ProjektObjekte::where('projekte_id', $record->id)->get(); $collect = []; foreach ($res as $value) { $res2 = ProjektObjekteImDetail::where('projekte_id', $record->id)->where('projekt_objekte_id', $value->id)->first(); if(!$res2){ $collect[] = $value->top_nummer; } } if($collect){ Notification::make() ->title('Fehler bei Verbindungen von Objekt zu Objekt im Detail') ->body('Für die Objekte:
'.implode(', ', $collect).'
fehlen die Objekte im Detail. Daten können nochmals hochladen werden.') ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->danger() ->send(); return false; } /** * jedes objekt im detail hat eine Verbindung zu einem objekt */ $res = ProjektObjekteImDetail::where('projekte_id', $record->id)->get(); $collect=[]; foreach ($res as $value) { $res2 = ProjektObjekte::where('projekte_id', $record->id)->where('id', $value->projekt_objekte_id)->first(); if(!$res2){ $collect[] = $value->geschoss .' '.$value->raumart; } } if($collect){ Notification::make() ->title('Fehler bei Verbindungen von Objekt im Detail zu Objekt') ->body('Für die Objekte im Detail:
'.implode(', ', $collect).'
fehlt dasObjekte. Daten können nochmals hochladen werden.') ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->danger() ->send(); return false; } /** * ProjektObjekteImDetail + raumart * -> cosistent * ProjektMethode + raumart */ $raumarts_oid = ProjektObjekteImDetail::where('projekte_id', $record->id)->groupBy('raumart')->pluck('raumart')->toArray(); $raumarts_meth = ProjektMethode::where('projekte_id', $record->id)->pluck('raumart')->toArray(); $extra_oid = array_diff($raumarts_oid, $raumarts_meth); $extra_meth = array_diff($raumarts_meth, $raumarts_oid); // dd($extra_oid, $raumarts_meth); if ($extra_oid) { $titel = \count($extra_oid) == 1 ? 'Für diese "Raumart" aus "Objekte im Detail" ist keine "Raum Methode" definiert' : 'Für diese "Raumarten" aus "Objekte im Detail" sind keine "Raum Methoden" definiert'; Notification::make() ->title($titel) ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->danger() ->body(implode('
', $extra_oid)) ->send(); return false; } if ($extra_meth) { $titel = \count($extra_meth) == 1 ? 'Für diese "Raumart" aus "Raum Methode" existiert kein "Objekte im Detail"' : 'Für diese "Raumarten" aus "Raum Methode" existieren kein "Objekte im Detail"'; Notification::make() ->title($titel) ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->danger() ->body(implode('
', $extra_oid)) ->send(); return false; } /** * ProjektObjekte + nicht_in_orientierung */ $res = ProjektObjekte::where('projekte_id', $record->id)->get(); if (! $res->count()) { Notification::make() ->title('Tabelle Objekte') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Die Tabelle Objekte ist leer.') ->send(); return false; } $res = ProjektObjekte::where('projekte_id', $record->id)->where('nicht_in_orientierung', false)->get(); foreach ($res as $value) { if (! $value->orientierung_id && ! $value->nicht_in_orientierung) { Notification::make() ->title('Tabelle Objekte') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Bei der Top Nummer '.$value->top_nummer.' fehlt die Orientierung.') ->send(); return false; } if (! $value->orientierung_id && ! $value->type) { Notification::make() ->title('Tabelle Objekte') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Bei der Top Nummer '.$value->top_nummer.' fehlt der Type.') ->send(); return false; } } /** * ProjektObjekte & ProjektObjekteImDetail */ $res = ProjektObjekte::with('projektobjekteimdetail')->where('projekte_id', $record->id)->get(); if (! $res->count()) { Notification::make() ->title('Tabelle Objekte im Detail') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Die Tabelle Objekte im Detail ist leer.') ->send(); return false; } foreach ($res as $value) { if (! count($value->projektobjekteimdetail)) { Notification::make() ->title('Tabelle Objekte') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Der Top Nummer '.$value->top_nummer.' sind keine Räume zugeordnet.') ->send(); return false; } if (! $value->top_nummer) { Notification::make() ->title('Tabelle Objekte') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Für den Raum mit der ID '.$value->id.' fehlt die Angabe der Top Nummer.') ->send(); return false; } if (! $value->projektobjekteimdetail->first()->raumart) { Notification::make() ->title('Tabelle Objekte im Detail') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Beim Objekt Top Nummer '.$value->top_nummer.' fehlt die Angabe der Raumart.') ->send(); return false; } if (! $value->projektobjekteimdetail->first()->flaeche) { Notification::make() ->title('Tabelle Objekte im Detail') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Für die Raumart '.$value->raumart.' mit der Top Nummer '.$value->top_nummer.' im Geschoss '.$value->geschoss.' fehlt die Angabe der Fläche.') ->send(); return false; } } /** * Projekt Methode */ $res = ProjektMethode::where('projekte_id', $record->id)->get(); if (! $res->count()) { Notification::make() ->title('Tabelle Räume Methoden') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Die Tabelle Raum Methode ist leer.') ->send(); return false; } foreach ($res as $value) { if (! $value->methode_id) { Notification::make() ->title('Tabelle Räume Methoden') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Für den Raum '.$value->raumart.' fehlt die Methode.') ->send(); return false; } if ($value->methode_id != 1 && $value->faktor == 0) { Notification::make() ->title('Tabelle Räume Methoden') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) ->body('Für den Raum '.$value->raumart.' fehlt ein Faktor.') ->send(); return false; } } /** * ProjektInhaltsverzeichnis */ $res = ProjektInhaltsverzeichnis::where('projekte_id', $record->id)->get(); if (! $res->count()) { Notification::make() ->title('Tabelle Inhaltsverzeichnis') ->info() ->icon('heroicon-o-exclamation-triangle') ->body('Inhaltsverzeichnis fehlt!') ->duration(10000) ->send(); return false; } /** * ProjektPlatzhalter */ // $res = ProjektPlatzhalter::where('projekte_id', $record->id)->whereNull('platzhaltertext')->orWhere('platzhaltertext', '=', '')->get(); // if ($res->count()) { // Notification::make() // ->title('Tabelle Platzhalter') // ->info() // ->icon('heroicon-o-exclamation-triangle') // ->duration(10000) // ->body('Bitte füllen Sie die fehlenden Platzhalter aus. Sollten die fehlenden Platzhalter nicht mehr gebraucht werden löschen Sie diese aus dem Text und generieren sie die Platzhalter Tabelle neu.') // ->send(); // return false; // } Notification::make() ->title('Evaluierung') ->success() ->duration(10000) ->body('Die Evaluierung des Projektes war erfolgreich.') ->send(); Projekte::where('id', $record->id)->update(['evaluation_gutachten' => 1]); return true; } }