Refactoring
This commit is contained in:
@@ -9,7 +9,6 @@ import java.io.BufferedWriter;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.Buffer;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
@@ -30,14 +29,12 @@ public class FatturaScontrini {
|
||||
static Scanner sc = new Scanner(System.in);
|
||||
static final String PATH_MENU = "./src/fatturascontrini/menu.txt";
|
||||
static final String ERRORE_DEFAULT = "Errore: opzione non valida.";
|
||||
static final String ERRORE_FILE = "Errore nella lettura del file: ";
|
||||
static int codiceScontrino = 0;
|
||||
|
||||
public static void main(String[] args) {
|
||||
int scelta = -1;
|
||||
ArrayList<int[]> ordinazione = null;
|
||||
boolean ordinazioneEffettuata = false;
|
||||
String sceltaSiNo;
|
||||
boolean error;
|
||||
|
||||
do {
|
||||
System.out.println("Scegliere un'opzione:");
|
||||
@@ -55,36 +52,11 @@ public class FatturaScontrini {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
if (ordinazioneEffettuata) {
|
||||
do {
|
||||
error = false;
|
||||
System.out.print(
|
||||
"Attenzione: verrà sovrascritta la precedente ordinazione. Continuare? [S/N] ");
|
||||
sceltaSiNo = sc.nextLine().trim().toLowerCase();
|
||||
switch (sceltaSiNo) {
|
||||
case "s":
|
||||
ordinazione = ordinazione();
|
||||
System.out.println("Ordinazione effettuata con successo.");
|
||||
break;
|
||||
case "n":
|
||||
System.out.println("L'ordinazione non è stata modificata.");
|
||||
break;
|
||||
default:
|
||||
System.out.println(ERRORE_DEFAULT);
|
||||
pausa();
|
||||
error = true;
|
||||
break;
|
||||
}
|
||||
} while (error);
|
||||
} else {
|
||||
ordinazione = ordinazione();
|
||||
ordinazioneEffettuata = true;
|
||||
System.out.println("Ordinazione effettuata con successo.");
|
||||
}
|
||||
ordinazione = placeOrdinazione(ordinazione);
|
||||
pausa();
|
||||
break;
|
||||
case 2:
|
||||
if (ordinazioneEffettuata) {
|
||||
if (ordinazione != null) {
|
||||
pagare(ordinazione);
|
||||
} else {
|
||||
System.out.println(
|
||||
@@ -113,19 +85,85 @@ public class FatturaScontrini {
|
||||
sc.nextLine();
|
||||
}
|
||||
|
||||
static ArrayList<int[]> placeOrdinazione(ArrayList<int[]> ordinazione) {
|
||||
boolean error;
|
||||
String scelta;
|
||||
|
||||
if (ordinazione != null) {
|
||||
do {
|
||||
error = false;
|
||||
System.out.print(
|
||||
"Attenzione: verrà sovrascritta la precedente ordinazione. Continuare? [S/N] ");
|
||||
scelta = sc.nextLine().trim().toLowerCase();
|
||||
switch (scelta) {
|
||||
case "s":
|
||||
ordinazione = ordinazione();
|
||||
System.out.println("Ordinazione effettuata con successo.");
|
||||
break;
|
||||
case "n":
|
||||
System.out.println("L'ordinazione non è stata modificata.");
|
||||
break;
|
||||
default:
|
||||
System.out.println(ERRORE_DEFAULT);
|
||||
pausa();
|
||||
error = true;
|
||||
break;
|
||||
}
|
||||
} while (error);
|
||||
} else {
|
||||
ordinazione = ordinazione();
|
||||
System.out.println("Ordinazione effettuata con successo.");
|
||||
}
|
||||
|
||||
return ordinazione;
|
||||
}
|
||||
|
||||
static ArrayList<int[]> ordinazione() {
|
||||
ArrayList<int[]> ritorno = new ArrayList<>();
|
||||
boolean exit = true;
|
||||
boolean exit;
|
||||
boolean error;
|
||||
boolean isDuplicate = false;
|
||||
String scelta;
|
||||
do {
|
||||
if (exit) {
|
||||
exit = false;
|
||||
exit = true;
|
||||
int[] ordine = { selezioneMenu(), quantita() };
|
||||
for (int[] ordini : ritorno) {
|
||||
|
||||
isDuplicate = isOrdinazioneDuplicata(ritorno, ordine);
|
||||
|
||||
if (!isDuplicate) {
|
||||
ritorno.add(ordine);
|
||||
}
|
||||
|
||||
do {
|
||||
error = false;
|
||||
System.out.print("Inserire un altra ordinazione? [S/N] ");
|
||||
scelta = sc.nextLine().trim().toLowerCase();
|
||||
switch (scelta) {
|
||||
case "s":
|
||||
exit = false;
|
||||
break;
|
||||
case "n":
|
||||
break;
|
||||
default:
|
||||
System.out.println(ERRORE_DEFAULT);
|
||||
pausa();
|
||||
error = true;
|
||||
break;
|
||||
}
|
||||
} while (error);
|
||||
} while (!exit);
|
||||
|
||||
return ritorno;
|
||||
}
|
||||
|
||||
static boolean isOrdinazioneDuplicata(ArrayList<int[]> ordinazione, int[] ordine) {
|
||||
boolean ritorno = false;
|
||||
boolean error;
|
||||
String scelta;
|
||||
|
||||
for (int[] ordini : ordinazione) {
|
||||
if (ordini[0] == ordine[0]) {
|
||||
isDuplicate = true;
|
||||
ritorno = true;
|
||||
do {
|
||||
error = false;
|
||||
System.out
|
||||
@@ -134,7 +172,7 @@ public class FatturaScontrini {
|
||||
scelta = sc.nextLine().trim().toLowerCase();
|
||||
switch (scelta) {
|
||||
case "s":
|
||||
ritorno.get(ritorno.indexOf(ordini))[1] = ordine[1];
|
||||
ordinazione.get(ordinazione.indexOf(ordini))[1] = ordine[1];
|
||||
break;
|
||||
case "n":
|
||||
System.out.println("L'ordinazione non è stata modificata.");
|
||||
@@ -149,31 +187,6 @@ public class FatturaScontrini {
|
||||
}
|
||||
|
||||
}
|
||||
if (!isDuplicate) {
|
||||
ritorno.add(ordine);
|
||||
}
|
||||
|
||||
do {
|
||||
error = false;
|
||||
System.out.print("Inserire un altra ordinazione? [S/N] ");
|
||||
scelta = sc.nextLine().trim().toLowerCase();
|
||||
switch (scelta) {
|
||||
case "s":
|
||||
exit = true;
|
||||
break;
|
||||
case "n":
|
||||
break;
|
||||
default:
|
||||
System.out.println(ERRORE_DEFAULT);
|
||||
pausa();
|
||||
error = true;
|
||||
break;
|
||||
}
|
||||
} while (error);
|
||||
// controllo se c'è già e aggiorno la quantità
|
||||
}
|
||||
} while (exit);
|
||||
|
||||
return ritorno;
|
||||
}
|
||||
|
||||
@@ -189,7 +202,7 @@ public class FatturaScontrini {
|
||||
riga = br.readLine();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.out.println("Errore nella lettura del file: " + e.getMessage());
|
||||
System.out.println(ERRORE_FILE + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,7 +216,7 @@ public class FatturaScontrini {
|
||||
riga = br.readLine();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.out.println("Errore nella lettura del file: " + e.getMessage());
|
||||
System.out.println(ERRORE_FILE + e.getMessage());
|
||||
}
|
||||
return i;
|
||||
}
|
||||
@@ -325,7 +338,7 @@ public class FatturaScontrini {
|
||||
riga = br.readLine();
|
||||
} // crea tabella nome e prezzo
|
||||
} catch (IOException e) {
|
||||
System.out.println("Errore nella lettura del file: " + e.getMessage());
|
||||
System.out.println(ERRORE_FILE + e.getMessage());
|
||||
}
|
||||
return ritorno;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user