diff --git a/laravel_app/app/Jobs/ProjectMosiacGeneratorJob.php b/laravel_app/app/Jobs/ProjectMosiacGeneratorJob.php index d7e59da..400ebd5 100644 --- a/laravel_app/app/Jobs/ProjectMosiacGeneratorJob.php +++ b/laravel_app/app/Jobs/ProjectMosiacGeneratorJob.php @@ -94,23 +94,12 @@ public static function handleFor(Project $project, Carbon $endDate, int $offset) if (Carbon::parse($project->mail_day)->dayOfWeek < $endDate->dayOfWeek) { $endDate->next($project->mail_day); } + + /** * @var ProjectMosaic $mosaic */ - $mosaic = $project->mosaics()->updateOrCreate( - [ - 'name' => sprintf('Week_%s_%s', $endDate->week, $endDate->year), - ], - [ - 'name' => sprintf('Week_%s_%s', $endDate->week, $endDate->year), - 'path' => sprintf('%s/%s/%s', - $project->download_path, - 'mosaics', - sprintf('week_%s_%s.tif', $endDate->week, $endDate->year) - ), - 'end_date' => $endDate->format('Y-m-d'), - 'offset' => $offset, - ]); + $mosaic = $project->createOrUpdateMosaic($endDate, $offset); return new self($mosaic); } diff --git a/laravel_app/app/Livewire/Projects/MosaicManager.php b/laravel_app/app/Livewire/Projects/MosaicManager.php index b4591bb..24e26e6 100644 --- a/laravel_app/app/Livewire/Projects/MosaicManager.php +++ b/laravel_app/app/Livewire/Projects/MosaicManager.php @@ -35,7 +35,7 @@ public function saveMosaic() ]); $mosaic = $this->project->mosaics()->updateOrCreate([ - 'name' => sprintf('Week %s, %s', $this->formData['week'], $this->formData['year']), + 'name' => sprintf('Week %s, %s', str_pad($this->formData['week'], 2, '0', STR_PAD_LEFT), $this->formData['year']), 'year' => $this->formData['year'], 'week' => $this->formData['week'], ], [ diff --git a/laravel_app/app/Models/Project.php b/laravel_app/app/Models/Project.php index 075a279..114ac9e 100644 --- a/laravel_app/app/Models/Project.php +++ b/laravel_app/app/Models/Project.php @@ -565,4 +565,24 @@ public function createAllMosaicsInDatabaseAndUpdateStatusForAllDownloadedImages( }) ->unique(); } + + public function createOrUpdateMosaic(Carbon $date, $offset) + { + $lpadWeek = str_pad($date->isoWeek(), 2, '0', STR_PAD_LEFT); + $name = sprintf('Week_%s_%s', $lpadWeek, $date->isoWeekYear()); + return $this->mosaics()->updateOrCreate( + [ + 'name' => $name, + ], + [ + 'name' => $name, + 'path' => sprintf('%s/%s/%s', + $this->download_path, + 'mosaics', + sprintf('week_%s_%s.tif', $lpadWeek, $date->isoWeekYear()) + ), + 'end_date' => $date->format('Y-m-d'), + 'offset' => $offset, + ]); + } }