This commit is contained in:
2025-11-29 16:08:11 +01:00
parent cedcc503fa
commit 1ca759add5

View File

@@ -46,12 +46,44 @@ XX. **Nome Problema (FIX/IMPLEMENTATO DATA):** - **Problema:** Descrizione breve
## Quick Start - Session Recovery
**Ultima sessione:** 30 Novembre 2025
**Ultima sessione:** 29 Novembre 2025 (pomeriggio)
**Stato progetto:** Migrazione Oracle APEX → .NET + React TypeScript in corso
**Lavoro completato nell'ultima sessione:**
- **FIX: Campo Codice Readonly e Codice Alternativo** - COMPLETATO
- **Obiettivo:** Il campo "Codice" deve essere sempre auto-generato (non modificabile), aggiungere campo "Codice Alternativo" opzionale
- **Backend modificato:**
- `WarehouseArticle.cs` - Aggiunto `AlternativeCode`
- `WarehouseLocation.cs` - Aggiunto `AlternativeCode`
- `WarehouseArticleCategory.cs` - Aggiunto `AlternativeCode`
- `Cliente.cs` - Aggiunto `Codice` e `CodiceAlternativo`
- `Articolo.cs` - Aggiunto `CodiceAlternativo`
- `AutoCodeService.cs` - Aggiornato per gestire unicità `Cliente.Codice`
- `ClientiController.cs` - Auto-generazione codice alla creazione
- `ArticoliController.cs` - Auto-generazione codice alla creazione
- `WarehouseArticlesController.cs` - Fix DTOs per rimuovere `Code` obbligatorio:
- `CreateArticleDto` - Rimosso `Code`, aggiunto `AlternativeCode`
- `UpdateArticleDto` - Rimosso `Code`, aggiunto `AlternativeCode`
- `ArticleDto` - Aggiunto `AlternativeCode`
- `MapFromDto` - Rimossa assegnazione Code (generato da service)
- `UpdateFromDto` - Rimossa modifica Code (immutabile)
- Migration `AddAlternativeCodeFields` creata e applicata
- **Frontend modificato:**
- `frontend/src/modules/warehouse/types/index.ts` - Aggiunto `alternativeCode` ai DTOs
- `frontend/src/types/index.ts` - Aggiunto `codice` e `codiceAlternativo` a Cliente/Articolo
- `ArticleFormPage.tsx` - Campo Codice readonly con "(Generato al salvataggio)"
- `WarehouseLocationsPage.tsx` - Campo Codice readonly
- `ArticoliPage.tsx` - Campo Codice readonly
- `ClientiPage.tsx` - Campo Codice readonly
- **Comportamento UI:**
- In creazione: campo Codice mostra "(Generato al salvataggio)" in corsivo
- In modifica: campo Codice mostra il valore reale, sempre disabled
- Campo "Codice Alternativo" sempre modificabile (opzionale)
**Lavoro completato nelle sessioni precedenti (30 Novembre 2025):**
- **NUOVA FEATURE: Sistema Codici Automatici Configurabili** - COMPLETATO
- **Obiettivo:** Sistema admin per configurare la generazione automatica di codici (articoli, magazzini, movimenti, ecc.)
- **Backend implementato:**
@@ -2025,3 +2057,21 @@ public interface IWarehouseService
if (code != null)
article.Code = code;
```
36. **Campo Codice Readonly e Codice Alternativo (FIX 29/11/2025 pomeriggio):**
- **Problema:** Errore 400 Bad Request "The Code field is required" quando si creava un nuovo articolo di magazzino
- **Causa:** Il `CreateArticleDto` nel backend richiedeva il campo `Code` come obbligatorio, ma il frontend non lo inviava (correttamente, perché dovrebbe essere auto-generato)
- **Soluzione:**
- Backend: Modificato `CreateArticleDto` per rimuovere `Code` e aggiungere `AlternativeCode` opzionale
- Backend: Modificato `UpdateArticleDto` per rimuovere `Code` e aggiungere `AlternativeCode`
- Backend: Aggiunto `AlternativeCode` ad `ArticleDto` per la risposta
- Backend: Aggiornato `MapFromDto` per non settare `Code` (viene generato da `WarehouseService.CreateArticleAsync`)
- Backend: Aggiornato `UpdateFromDto` per non modificare `Code` (immutabile dopo creazione)
- Backend: Aggiornato `MapToDto` per includere `AlternativeCode`
- Frontend: I tipi erano già corretti, il form già mostrava "(Generato al salvataggio)"
- **File modificati:**
- `src/Apollinare.API/Modules/Warehouse/Controllers/WarehouseArticlesController.cs`
- **Comportamento risultante:**
- Creazione: `Code` generato automaticamente (es. `WA000001`), `AlternativeCode` opzionale
- Modifica: `Code` non modificabile, `AlternativeCode` modificabile
- UI: Campo Codice sempre disabled, mostra placeholder in creazione