diff --git a/src/listaspesa/listaSpesa.java b/src/listaspesa/listaSpesa.java index 9861f95..fcc78b5 100644 --- a/src/listaspesa/listaSpesa.java +++ b/src/listaspesa/listaSpesa.java @@ -83,36 +83,41 @@ public class listaSpesa { pausa(); break; case 2: - do { - try { - error = false; - System.out.print("Quanti prodotti inserire? "); - dimensioneScontrino = sc.nextInt(); - sc.nextLine(); - if (dimensioneScontrino <= 0) { - System.out.println("Errore: è necessario inserire almeno un prodotto."); + if (magazzino != null) { + do { + try { + error = false; + System.out.print("Quanti prodotti inserire? "); + dimensioneScontrino = sc.nextInt(); + sc.nextLine(); + if (dimensioneScontrino <= 0) { + System.out.println("Errore: è necessario inserire almeno un prodotto."); + pausa(); + error = true; + } + } catch (InputMismatchException e) { + System.out.println("Errore: numero non valido."); pausa(); error = true; } - } catch (InputMismatchException e) { - System.out.println("Errore: numero non valido."); - pausa(); - error = true; - } - } while (error); + } while (error); - if (scontrino == null) { - scontrino = new Prodotto[dimensioneScontrino]; + if (scontrino == null) { + scontrino = new Prodotto[dimensioneScontrino]; - for (int i = 0; i < dimensioneScontrino; i++) { - inserisciDatiScontrino(); + for (int i = 0; i < dimensioneScontrino; i++) { + inserisciDatiScontrino(); + } + } else { + scontrino = Arrays.copyOf(scontrino, scontrino.length + dimensioneScontrino, + scontrino.getClass()); + for (int i = scontrino.length - dimensioneScontrino; i < scontrino.length; i++) { + inserisciDatiScontrino(); + } } } else { - scontrino = Arrays.copyOf(scontrino, scontrino.length + dimensioneScontrino, - scontrino.getClass()); - for (int i = scontrino.length - dimensioneScontrino; i < scontrino.length; i++) { - inserisciDatiScontrino(); - } + System.out.println( + "Errore: è necessario popolare il magazzino prima di poter creare lo scontrino."); } pausa(); break; @@ -211,7 +216,7 @@ public class listaSpesa { if (scelta.equals("y") || scelta.equals("s")) { isAlimentare = true; - + do { error = false; try { @@ -347,14 +352,17 @@ public class listaSpesa { } while (error); - if (prodottoTrovato.checkQtaDisponibile(useNomeProdotto ? nomeODescrizione : prodottoTrovato.getNome(), qta) != 0) { - if (qta <= prodottoTrovato.checkQtaDisponibile(useNomeProdotto ? nomeODescrizione : prodottoTrovato.getNome(), qta)) { + if (prodottoTrovato.checkQtaDisponibile( + useNomeProdotto ? nomeODescrizione : prodottoTrovato.getNome(), qta) != 0) { + if (qta <= prodottoTrovato.checkQtaDisponibile( + useNomeProdotto ? nomeODescrizione : prodottoTrovato.getNome(), qta)) { if (prodottoTrovato.getQta() - qta == 0) { System.out.println("Attenzione: il prodotto è stato finito."); scontrino[trovaPosizioneLibera(scontrino)] = prodottoTrovato; magazzino[trovaProdottoInMagazzino(prodottoTrovato)] = null; } else { - prodottoTrovato.updQtaMagazzino(useNomeProdotto ? nomeODescrizione : prodottoTrovato.getNome(), + prodottoTrovato.updQtaMagazzino( + useNomeProdotto ? nomeODescrizione : prodottoTrovato.getNome(), prodottoTrovato.getQta() - qta); } exit = true;