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;
}
}