Class GDMController
Questo componente gestisce tutte le operazioni relative all'inventario prodotti all'interno del contesto multi-tenant. Fornisce funzionalità per il caricamento iniziale dei prodotti, l'aggiornamento delle giacenze (acquisti/vendite) e la categorizzazione degli articoli.
Estende ModuloController (ID Modulo: 6) per garantire che solo le aziende con il modulo attivo
e gli utenti con i permessi necessari possano accedere alle risorse.
- Since:
- 1.3.0
- Version:
- 2.4.0
- Author:
- Modulink Team
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final CustomUserDetailsServiceprivate final ProdottoService -
Constructor Summary
ConstructorsConstructorDescriptionGDMController(ProdottoService prodottoService, CustomUserDetailsService customUserDetailsService, ModuloService moduloService) Costruttore per l'iniezione delle dipendenze. -
Method Summary
Modifier and TypeMethodDescriptionIncrementa la giacenza di un prodotto (operazione di carico/acquisto).addProduct(Principal principal, org.springframework.ui.Model model, @Valid NewProdottoForm newProdottoForm, org.springframework.validation.BindingResult bindingResult) Aggiunge un nuovo prodotto al magazzino aziendale.dashboardDispatcher(Principal principal, org.springframework.ui.Model model) Visualizza la pagina principale di gestione prodotti.voiddisinstallaModulo(AziendaEntity azienda) Gestisce la pulizia dei dati in caso di disinstallazione del modulo GDM.getCategories(Principal principal) Recupera l'elenco univoco delle categorie prodotti utilizzate dall'azienda.removeProduct(Principal principal, org.springframework.ui.Model model, int id_prodotto) Rimuove un prodotto dal magazzino.updateProduct(Principal principal, org.springframework.ui.Model model, @Valid UpdateProdottoForm updateProdottoForm, org.springframework.validation.BindingResult bindingResult) Aggiorna i dati anagrafici e tecnici di un prodotto esistente.Decrementa la giacenza di un prodotto (operazione di scarico/vendita).Methods inherited from class ModuloController
getId, isAccessibleModulo, setId
-
Field Details
-
prodottoService
-
customUserDetailsService
-
-
Constructor Details
-
GDMController
public GDMController(ProdottoService prodottoService, CustomUserDetailsService customUserDetailsService, ModuloService moduloService) Costruttore per l'iniezione delle dipendenze.- Parameters:
prodottoService- Servizio per la manipolazione dell'entità Prodotto.customUserDetailsService- Servizio per il recupero dell'utente loggato.moduloService- Servizio base per la gestione dei moduli.- Since:
- 1.3.0
-
-
Method Details
-
dashboardDispatcher
@GetMapping({"/dashboard/gdm","/dashboard/gdm/"}) public String dashboardDispatcher(Principal principal, org.springframework.ui.Model model) Visualizza la pagina principale di gestione prodotti.Carica l'elenco completo dei prodotti appartenenti esclusivamente all'azienda dell'utente corrente.
- Parameters:
principal- Identità dell'utente.model- Modello UI per il passaggio dei prodotti alla vista.- Returns:
- Nome della vista "moduli/gdm/GestioneProdotti" o redirect.
- Since:
- 1.3.0
-
getCategories
@PostMapping({"/dashboard/gdm/get-categories","/dashboard/gdm/get-categories/"}) public Object getCategories(Principal principal) Recupera l'elenco univoco delle categorie prodotti utilizzate dall'azienda.- Parameters:
principal- Identità dell'utente.- Returns:
- Lista di stringhe rappresentanti le categorie o redirect.
- Since:
- 1.3.5
-
addProduct
@PostMapping({"/dashboard/gdm/add-product","/dashboard/gdm/add-product/"}) public String addProduct(Principal principal, org.springframework.ui.Model model, @Valid @ModelAttribute("newProdottoForm") @Valid NewProdottoForm newProdottoForm, org.springframework.validation.BindingResult bindingResult) Aggiunge un nuovo prodotto al magazzino aziendale.Esegue validazioni di integrità sui campi numerici (quantità e prezzo devono essere positivi) prima di persistere l'entità.
- Parameters:
principal- Identità dell'utente.model- Modello UI.newProdottoForm- DTO con i dati del nuovo prodotto.bindingResult- Risultati della validazione.- Returns:
- Redirect alla dashboard GDM con feedback di successo o errore.
- Since:
- 1.3.0
-
removeProduct
@PostMapping({"/dashboard/gdm/remove-product","/dashboard/gdm/remove-product/"}) public String removeProduct(Principal principal, org.springframework.ui.Model model, @RequestParam("id_prodotto") int id_prodotto) Rimuove un prodotto dal magazzino.- Parameters:
principal- Identità dell'utente.model- Modello UI.id_prodotto- Identificativo del prodotto da eliminare.- Returns:
- Redirect alla dashboard GDM.
- Since:
- 1.3.0
-
updateProduct
@PostMapping({"/dashboard/gdm/update-product","/dashboard/gdm/update-product/"}) public String updateProduct(Principal principal, org.springframework.ui.Model model, @Valid @ModelAttribute("updateProdottoForm") @Valid UpdateProdottoForm updateProdottoForm, org.springframework.validation.BindingResult bindingResult) Aggiorna i dati anagrafici e tecnici di un prodotto esistente.- Parameters:
principal- Identità dell'utente.model- Modello UI.updateProdottoForm- DTO con i dati aggiornati del prodotto.bindingResult- Risultati della validazione.- Returns:
- Redirect alla dashboard GDM.
- Since:
- 1.3.0
-
acquista
@PostMapping({"/dashboard/gdm/buy","/dashboard/gdm/buy/"}) public String acquista(Principal principal, @RequestParam int idProdotto, @RequestParam int quantita) Incrementa la giacenza di un prodotto (operazione di carico/acquisto).- Parameters:
principal- Identità dell'utente.idProdotto- Identificativo del prodotto.quantita- Numero di unità da aggiungere.- Returns:
- Redirect alla dashboard GDM con riepilogo valore acquisto.
- Since:
- 1.4.0
-
vendita
@PostMapping({"/dashboard/gdm/sell","/dashboard/gdm/sell/"}) public String vendita(Principal principal, @RequestParam int idProdotto, @RequestParam int quantita) Decrementa la giacenza di un prodotto (operazione di scarico/vendita).Verifica preventivamente che la quantità disponibile sia sufficiente per coprire la vendita.
- Parameters:
principal- Identità dell'utente.idProdotto- Identificativo del prodotto.quantita- Numero di unità da rimuovere.- Returns:
- Redirect alla dashboard GDM con riepilogo valore vendita.
- Since:
- 1.4.0
-
disinstallaModulo
Gestisce la pulizia dei dati in caso di disinstallazione del modulo GDM. Rimuove tutti i record della tabella Prodotti associati all'azienda specificata.- Specified by:
disinstallaModuloin classModuloController- Parameters:
azienda- L'azienda che disinstalla il modulo.- Since:
- 1.3.0
-