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