feat: add previous configuration handling for user selections in quotes

- Implemented session storage management for the last configuration choices made by the user.
- Added functionality to prompt users when changing models to retain their previous selections.
- Introduced methods to apply previous choices to the newly loaded model, including finishes, handles, glass types, and options.
- Enhanced user experience by ensuring selections are automatically applied where applicable.
This commit is contained in:
2026-10-19 19:49:44 +02:00
parent 863e6ca920
commit 06617a985a
197 changed files with 4892 additions and 400 deletions
@@ -58,6 +58,38 @@ class CatalogoAdminTest extends TestCase
->assertCanNotSeeTableRecords([$modelloAltro]);
}
public function test_ordine_del_file_con_i_disattivi_in_fondo(): void
{
$codici = fn () => Modello::orderBy('ordine')->pluck('codice')->all();
// Ordine di OrdineSerramenti per gli attivi, poi i 4 disattivi nello stesso ordine.
$this->assertSame(['finestra_1_anta', 'finestra_2_ante', 'finestra_3_ante'], array_slice($codici(), 0, 3));
$this->assertSame(
['scorrevole_hst_4_ante', 'scorrevole_sf_3_ante', 'scorrevole_sf_4_ante', 'traslante_scorrevole_1_anta_f'],
array_slice($codici(), -4)
);
// Disattivando un modello passa nel gruppo in fondo (dopo i 25 attivi rimasti),
// mantenendo l'ordine relativo con gli altri disattivi; riattivandolo resta
// ultimo degli attivi, da riposizionare con "Riordina".
$bilico = Modello::where('codice', 'bilico')->firstOrFail();
Livewire::test(ListModelli::class)->call('updateTableColumnState', 'attivo', $bilico->getKey(), false);
$this->assertSame('celino', $codici()[24]);
$this->assertSame(['bilico', 'scorrevole_hst_4_ante'], array_slice($codici(), 25, 2));
$bilico->refresh()->update(['attivo' => true]);
$this->assertSame(['celino', 'bilico', 'scorrevole_hst_4_ante'], array_slice($codici(), 24, 3));
// In tabella i disattivi stanno in fondo anche se l'ordine salvato li metterebbe in mezzo.
Modello::where('codice', 'scorrevole_sf_3_ante')->update(['ordine' => 2]);
Livewire::test(ListModelli::class)
->set('tableRecordsPerPage', 50)
->assertCanSeeTableRecords(
Modello::orderByDesc('attivo')->orderBy('ordine')->get(),
inOrder: true
);
}
public function test_un_modello_attivo_richiede_la_configurazione_3d(): void
{
$sistema = Modello::firstOrFail()->sistema_id;