diff --git a/app/Console/Commands/ImportGesconFullPipeline.php b/app/Console/Commands/ImportGesconFullPipeline.php index 0668aba..4cad87b 100755 --- a/app/Console/Commands/ImportGesconFullPipeline.php +++ b/app/Console/Commands/ImportGesconFullPipeline.php @@ -8135,7 +8135,7 @@ private function loadLegacyComproprietariHistoryRows(object $row, ?string $legac return []; } - $startCondId = $stableCondId !== null && $stableCondId !== '' ? $stableCondId : ($codCond !== '' ? $codCond : null); + $startCondId = $stableCondId !== null && $stableCondId !== '' ? $stableCondId : null; $linkedCondIds = []; if ($startCondId !== null) { $linkedCondIds = $this->resolveLinkedLegacyCondIds($codStabile, $startCondId); diff --git a/app/Filament/Pages/SuperAdmin/Amministratori.php b/app/Filament/Pages/SuperAdmin/Amministratori.php index c28214c..564fa64 100755 --- a/app/Filament/Pages/SuperAdmin/Amministratori.php +++ b/app/Filament/Pages/SuperAdmin/Amministratori.php @@ -197,6 +197,39 @@ public function resetPasswordSelected(): void } } + public function spostaStabile(int $stabileId, int $nuovoAmministratoreId): void + { + /** @var User|null $user */ + $user = Auth::user(); + if (! $user || ! $user->hasRole('super-admin')) { + throw new \RuntimeException('Azione riservata al SuperAdmin.'); + } + + $stabile = Stabile::query()->find($stabileId); + $nuovoAmm = Amministratore::query()->find($nuovoAmministratoreId); + + if (! $stabile || ! $nuovoAmm) { + \Filament\Notifications\Notification::make() + ->title('Errore Trasferimento') + ->body('Stabile o Amministratore di destinazione non trovato.') + ->danger() + ->send(); + return; + } + + $oldAmmId = $stabile->amministratore_id; + $stabile->update([ + 'amministratore_id' => $nuovoAmm->id, + 'cod_fisc_amministratore' => $nuovoAmm->codice_fiscale_studio ?? $nuovoAmm->partita_iva ?? $stabile->cod_fisc_amministratore, + ]); + + \Filament\Notifications\Notification::make() + ->title('Stabile Trasferito') + ->body("Lo stabile '{$stabile->denominazione}' (Cod. {$stabile->codice_stabile}) รจ stato trasferito con successo dallo Studio #{$oldAmmId} allo Studio #{$nuovoAmm->id} ({$nuovoAmm->denominazione_studio}).") + ->success() + ->send(); + } + protected function getTableQuery(): Builder { return Amministratore::query()->withCount('stabili'); diff --git a/resources/views/filament/pages/super-admin/amministratori.blade.php b/resources/views/filament/pages/super-admin/amministratori.blade.php index bfd9086..a566684 100644 --- a/resources/views/filament/pages/super-admin/amministratori.blade.php +++ b/resources/views/filament/pages/super-admin/amministratori.blade.php @@ -232,20 +232,31 @@ class="inline-flex items-center gap-1 rounded-lg bg-amber-500 px-4 py-2 text-xs