count(); $new_objekte = 0; $has_objekte_im_detail = ProjektObjekteImDetail::where('projekte_id', $projekte_id)->count(); $new_objekte_im_detail = 0; $update_objekte_im_detail = 0; foreach ($data as $row) { $row = str_replace(';', '|', $row); $cells = explode('|', $row); $top_nummer = trim($cells[0]); $geschoss = trim($cells[1]); $raumart = trim($cells[2]); $projekt_methode = ProjektMethode::firstOrCreate([ 'projekte_id' => $projekte_id, 'raumart' => $raumart, ]); $flaeche = (float) str_replace(',', '.', trim($cells[3])); if (is_numeric($flaeche) && $flaeche > 0 && $projekt_methode->id) { $objekt = ProjektObjekte::where('projekte_id', $projekte_id) ->where('top_nummer', $top_nummer) ->first(); if ($objekt === null) { $new_objekte++; $objekt = new ProjektObjekte(['projekte_id' => $projekte_id, 'top_nummer' => $top_nummer]); $objekt->save(); } $objektImDetail = ProjektObjekteImDetail::where('projekte_id', $projekte_id) ->where('projekt_objekte_id', $objekt->id) ->where('projekt_methode_id', $projekt_methode->id) ->where('geschoss', $geschoss) ->first(); if ($objektImDetail === null) { $new_objekte_im_detail++; $objektImDetail = new ProjektObjekteImDetail([ 'projekte_id' => $projekte_id, 'projekt_objekte_id' => $objekt->id, 'projekt_methode_id' => $projekt_methode->id, 'geschoss' => $geschoss, 'raumart' => $raumart, ]); } else { $update_objekte_im_detail++; } $objektImDetail->projekt_methode_id = $projekt_methode->id; $objektImDetail->flaeche = $flaeche; $objektImDetail->save(); } } /** @var User $user * */ $recipient = Auth::user(); Notification::make() ->title('Objekte im Detail wurden erfolgreich importiert') ->body(self::getBody($has_objekte, $has_objekte_im_detail, $new_objekte, $new_objekte_im_detail, $update_objekte_im_detail)) ->success() ->send() ->sendToDatabase($recipient); } public static function getBody($has_objekte, $has_objekte_im_detail, $new_objekte, $new_objekte_im_detail, $update_objekte_im_detail) { return new HtmlString('
Objekte
Vorher
'.$has_objekte.'
Neu
'.$new_objekte.'
Objekte im Detail
Vorher
'.$has_objekte_im_detail.'
Neu
'.$new_objekte_im_detail.'
Aktualisiert
'.$update_objekte_im_detail.'
'); } }