Migliorie

This commit is contained in:
La Programmatrice Verde 2025-10-21 21:26:32 +02:00
parent 38d850ccc8
commit 597612352a
3 changed files with 32 additions and 16 deletions

View File

@ -30,7 +30,13 @@ public class Alimentare extends Prodotto {
}
public void rimuoviProdottoScaduto(){
public void rimuoviProdottoScaduto() {
if (this.checkDataScadenza()) {
this.invalida();
}
}
public void invalida() {
super.invalida();
}
}

View File

@ -35,7 +35,7 @@ public class Prodotto {
public float checkQtaDisponibile(String nome, float qtaDaComprare) {
float ritorno;
if (!this.nome.equals(nome)) {
ritorno = 0; // oppure potresti lanciare un'eccezione
ritorno = 0;
}
if (this.qta >= qtaDaComprare) {
@ -47,8 +47,10 @@ public class Prodotto {
return ritorno;
}
public void updQtaMagazzino(String nome, float qtaFinale) {
public void updQtaMagazzino(String nome, float qtaFinale) { // decreaseQuantity
if (this.nome.equals(nome)) {
this.qta = qtaFinale;
}
}
public void applicaSconto() {
@ -59,10 +61,6 @@ public class Prodotto {
return this.qta;
}
public void decreaseQuantity(float p_qta) {
this.qta -= p_qta;
}
public String getNome() {
return this.nome;
}
@ -70,4 +68,8 @@ public class Prodotto {
public float getPrezzo() {
return this.prezzo;
}
public void invalida() {
this.nome = null;
}
}

View File

@ -21,9 +21,9 @@ public class listaSpesa {
*/
static Scanner sc = new Scanner(System.in);
static Prodotto magazzino[];
static Prodotto scontrino[];
static int dimensioneMagazzino = 0, dimensioneScontrino = 0, indiceMagazzino = 0, indiceScontrino = 0;
static Prodotto magazzino[] = null;
static Prodotto scontrino[] = null;
static int dimensioneMagazzino = 0, dimensioneScontrino = 0;
static String datePattern = "dd/MM/yyyy";
static SimpleDateFormat sdf = new SimpleDateFormat(datePattern);
@ -53,13 +53,21 @@ public class listaSpesa {
magazzino = new Prodotto[dimensioneMagazzino];
for (int i = 0; i < dimensioneMagazzino; i++, indiceMagazzino++) {
for (int i = 0; i < dimensioneMagazzino; i++) {
inserisciProdotto();
}
pausa();
break;
case 2:
System.out.print("Quanti prodotti inserire? ");
dimensioneScontrino = sc.nextInt();
sc.nextLine();
scontrino = new Prodotto[dimensioneScontrino];
for (int i = 0; i < dimensioneScontrino; i++) {
inserisciProdotto();
}
pausa();
break;
case 3:
@ -194,7 +202,7 @@ public class listaSpesa {
prodotto = new NonAlimentare(nome, prezzo, qta, scontoFidelityCard, tipoMateriale, descrizione);
}
if (trovaProdottoInMagazzino(prodotto) != -1) {
magazzino[indiceMagazzino] = prodotto;
magazzino[trovaPosizioneLibera(magazzino)] = prodotto;
} else {
System.out.println("Errore: il prodotto esiste già nel magazzino.");
pausa();
@ -285,11 +293,11 @@ public class listaSpesa {
if (prodottoTrovato.checkQtaDisponibile(nomeODescrizione, qta) != 0) {
if (qta <= prodottoTrovato.checkQtaDisponibile(nomeODescrizione, qta)) {
if (prodottoTrovato.getQta() - qta == 0) {
System.out.println("Il prodotto è stato finito.");
System.out.println("Attenzione: il prodotto è stato finito.");
scontrino[trovaPosizioneLibera(scontrino)] = prodottoTrovato;
magazzino[trovaProdottoInMagazzino(prodottoTrovato)] = null;
} else {
prodottoTrovato.decreaseQuantity(qta);
prodottoTrovato.updQtaMagazzino(nomeODescrizione, prodottoTrovato.getQta() - qta);
}
exit = true;