diff --git a/be/app/Services/Karat/KaratService.php b/be/app/Services/Karat/KaratService.php index 0174b51..b06f4e3 100644 --- a/be/app/Services/Karat/KaratService.php +++ b/be/app/Services/Karat/KaratService.php @@ -91,21 +91,12 @@ class KaratService { $karatProjects = Project::all(); - $array = []; - foreach ( $karatProjects as $project ) { - $array[$project->code][] = $project->code; - } - - foreach ( $array as $key => $item ) { - if ( count($item) > 1 ) echo ($key) . PHP_EOL; - } - - dd('here'); - $dbProjects = \App\Models\Project::all(); - $this->insertProjectsFromKarat($karatProjects->take(200), $dbProjects); - dd('here'); + // ked sa to davalo naraz, tak to padalo na Prepared statement contains too many placeholders + $karatProjects->chunk(300)->each(function ($chunk) use ($dbProjects) { + $this->insertProjectsFromKarat($chunk, $dbProjects); + }); $this->removeProjectsThatAreNotInKaratAnymore($karatProjects, $dbProjects); } @@ -132,5 +123,11 @@ class KaratService \App\Models\Project::insert($karatProjectsToInsert->toArray()); } + private function removeProjectsThatAreNotInKaratAnymore( Collection $karatProjects, Collection $dbProjects ) { + $codesInDbThatAreNotInKaratAnymore = $dbProjects->pluck('code' )->diff( $karatProjects->pluck('code')); + + \App\Models\Project::whereIn('code', $codesInDbThatAreNotInKaratAnymore)->delete(); + } + }