From ece2c2f2c20f0575827478f945c89c479fb6d3ee Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Wed, 22 Oct 2025 20:53:12 +0200 Subject: [PATCH] Fix aggiunta elemento a scontrino --- src/listaspesa/Alimentare.java | 5 +++++ src/listaspesa/NonAlimentare.java | 5 +++++ src/listaspesa/Prodotto.java | 8 ++++++++ src/listaspesa/listaSpesa.java | 4 ++++ 4 files changed, 22 insertions(+) diff --git a/src/listaspesa/Alimentare.java b/src/listaspesa/Alimentare.java index 7e9b369..c7e957f 100644 --- a/src/listaspesa/Alimentare.java +++ b/src/listaspesa/Alimentare.java @@ -17,6 +17,11 @@ public class Alimentare extends Prodotto { super(p_nome, p_prezzo, p_qta, p_scontoFidelityCard, p_descrizione); this.dataScadenza = p_dataScadenza; } + + public Alimentare(Alimentare p_Alimentare) { + super(p_Alimentare); + this.dataScadenza = p_Alimentare.dataScadenza; + } public void stampaDati() { super.stampaDati(); diff --git a/src/listaspesa/NonAlimentare.java b/src/listaspesa/NonAlimentare.java index 253a6d2..eacebf5 100644 --- a/src/listaspesa/NonAlimentare.java +++ b/src/listaspesa/NonAlimentare.java @@ -16,6 +16,11 @@ public class NonAlimentare extends Prodotto { super(p_nome, p_prezzo, p_qta, p_scontoFidelityCard, p_descrizione); this.tipoMateriale = p_tipoMateriale; } + + public NonAlimentare(NonAlimentare p_NonAlimentare) { + super(p_NonAlimentare); + this.tipoMateriale = p_NonAlimentare.tipoMateriale; + } public void stampaDati() { super.stampaDati(); System.out.println("Tipo materiale: " + tipoMateriale); diff --git a/src/listaspesa/Prodotto.java b/src/listaspesa/Prodotto.java index 77de2d9..f027fb4 100644 --- a/src/listaspesa/Prodotto.java +++ b/src/listaspesa/Prodotto.java @@ -24,6 +24,14 @@ public class Prodotto { this.descrizione = p_descrizione; } + public Prodotto(Prodotto p_Prodotto) { //copyProdotto, ma è costruttore quindi il nome rimane così + this.nome = p_Prodotto.nome; + this.prezzo = p_Prodotto.prezzo; + this.qta = p_Prodotto.qta; + this.scontoFidelityCard = p_Prodotto.scontoFidelityCard; + this.descrizione = p_Prodotto.descrizione; + } + public void stampaDati() { System.out.println("Nome prodotto: " + this.nome); System.out.println("Prezzo prodotto: " + this.prezzo); diff --git a/src/listaspesa/listaSpesa.java b/src/listaspesa/listaSpesa.java index 95fc820..358d16e 100644 --- a/src/listaspesa/listaSpesa.java +++ b/src/listaspesa/listaSpesa.java @@ -361,9 +361,13 @@ public class listaSpesa { scontrino[trovaPosizioneLibera(scontrino)] = prodottoTrovato; magazzino[trovaProdottoInMagazzino(prodottoTrovato)] = null; } else { + int posizioneScontrino = trovaPosizioneLibera(scontrino); prodottoTrovato.updQtaMagazzino( useNomeProdotto ? nomeODescrizione : prodottoTrovato.getNome(), prodottoTrovato.getQta() - qta); + scontrino[posizioneScontrino] = isAlimentare ? new Alimentare((Alimentare)prodottoTrovato) : new NonAlimentare((NonAlimentare)prodottoTrovato); + scontrino[posizioneScontrino].updQtaMagazzino( + useNomeProdotto ? nomeODescrizione : prodottoTrovato.getNome(), qta); } exit = true;