Refactoring
This commit is contained in:
@@ -35,6 +35,7 @@ public class FatturaScontrini {
|
|||||||
static final String PATH_PROGRAM_DATA = "./src/fatturascontrini/programData.txt";
|
static final String PATH_PROGRAM_DATA = "./src/fatturascontrini/programData.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 final String ERRORE_FILE = "Errore nella lettura del file: ";
|
||||||
|
static final String ERRORE_MENU_VUOTO = "Errore: il menu è vuoto.";
|
||||||
static int codiceScontrino = getCodice(0);
|
static int codiceScontrino = getCodice(0);
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
@@ -58,7 +59,7 @@ public class FatturaScontrini {
|
|||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if (getFileSize(PATH_MENU) < 1) {
|
if (getFileSize(PATH_MENU) < 1) {
|
||||||
System.out.println("Errore: il menu è vuoto.");
|
System.out.println();
|
||||||
} else {
|
} else {
|
||||||
stampaMenu();
|
stampaMenu();
|
||||||
}
|
}
|
||||||
@@ -66,7 +67,7 @@ public class FatturaScontrini {
|
|||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (getFileSize(PATH_MENU) < 1) {
|
if (getFileSize(PATH_MENU) < 1) {
|
||||||
System.out.println("Errore: il menu è vuoto.");
|
System.out.println(ERRORE_MENU_VUOTO);
|
||||||
} else {
|
} else {
|
||||||
ordinazione = placeOrdinazione(ordinazione);
|
ordinazione = placeOrdinazione(ordinazione);
|
||||||
}
|
}
|
||||||
@@ -127,7 +128,7 @@ public class FatturaScontrini {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static ArrayList<int[]> ordinazione() {
|
static ArrayList<int[]> ordinazione() {
|
||||||
ArrayList<int[]> ritorno = new ArrayList<>();
|
ArrayList<int[]> ordinazione = new ArrayList<>();
|
||||||
boolean exit;
|
boolean exit;
|
||||||
boolean error;
|
boolean error;
|
||||||
boolean isDuplicate = false;
|
boolean isDuplicate = false;
|
||||||
@@ -137,13 +138,13 @@ public class FatturaScontrini {
|
|||||||
exit = true;
|
exit = true;
|
||||||
int[] ordine = { selezioneMenu(), quantita() };
|
int[] ordine = { selezioneMenu(), quantita() };
|
||||||
|
|
||||||
isDuplicate = isOrdinazioneDuplicata(ritorno, ordine);
|
isDuplicate = isOrdinazioneDuplicata(ordinazione, ordine);
|
||||||
|
|
||||||
if (!isDuplicate) {
|
if (!isDuplicate) {
|
||||||
ritorno.add(ordine);
|
ordinazione.add(ordine);
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println(ordinazioneToString(ritorno));
|
System.out.println(ordinazioneToString(ordinazione));
|
||||||
|
|
||||||
do {
|
do {
|
||||||
error = false;
|
error = false;
|
||||||
@@ -151,12 +152,12 @@ public class FatturaScontrini {
|
|||||||
scelta = sc.nextLine().trim().toLowerCase();
|
scelta = sc.nextLine().trim().toLowerCase();
|
||||||
switch (scelta) {
|
switch (scelta) {
|
||||||
case "s":
|
case "s":
|
||||||
ritorno = cancellaInOrdinazione(ritorno);
|
ordinazione = cancellaInOrdinazione(ordinazione);
|
||||||
exit = false;
|
exit = false;
|
||||||
break;
|
break;
|
||||||
case "n":
|
case "n":
|
||||||
System.out.println("Stampa dello scontrino. . .");
|
System.out.println("Stampa dello scontrino. . .");
|
||||||
pagare(ritorno);
|
pagare(ordinazione);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
System.out.println(ERRORE_DEFAULT);
|
System.out.println(ERRORE_DEFAULT);
|
||||||
@@ -167,12 +168,12 @@ public class FatturaScontrini {
|
|||||||
} while (error);
|
} while (error);
|
||||||
} while (!exit);
|
} while (!exit);
|
||||||
|
|
||||||
return ritorno;
|
return ordinazione;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int selezioneMenu() {
|
static int selezioneMenu() {
|
||||||
boolean error;
|
boolean error;
|
||||||
int ritorno = -1;
|
int voceSelezionata = -1;
|
||||||
do {
|
do {
|
||||||
error = false;
|
error = false;
|
||||||
|
|
||||||
@@ -181,10 +182,10 @@ public class FatturaScontrini {
|
|||||||
System.out.print("Scelta: ");
|
System.out.print("Scelta: ");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ritorno = sc.nextInt();
|
voceSelezionata = sc.nextInt();
|
||||||
sc.nextLine();
|
sc.nextLine();
|
||||||
|
|
||||||
if (ritorno < 0 || ritorno >= getFileSize(PATH_MENU)) {
|
if (voceSelezionata < 0 || voceSelezionata >= getFileSize(PATH_MENU)) {
|
||||||
System.out.println(ERRORE_DEFAULT);
|
System.out.println(ERRORE_DEFAULT);
|
||||||
pausa();
|
pausa();
|
||||||
error = true;
|
error = true;
|
||||||
@@ -196,7 +197,7 @@ public class FatturaScontrini {
|
|||||||
}
|
}
|
||||||
} while (error);
|
} while (error);
|
||||||
|
|
||||||
return ritorno;
|
return voceSelezionata;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void stampaMenu() {
|
static void stampaMenu() {
|
||||||
@@ -215,33 +216,33 @@ public class FatturaScontrini {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int getFileSize(String path) {
|
static int getFileSize(String path) {
|
||||||
int i = 0;
|
int dimensioneFile = 0;
|
||||||
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
|
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
|
||||||
String riga = br.readLine();
|
String riga = br.readLine();
|
||||||
|
|
||||||
while (riga != null) {
|
while (riga != null) {
|
||||||
i++;
|
dimensioneFile++;
|
||||||
riga = br.readLine();
|
riga = br.readLine();
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println(ERRORE_FILE + e.getMessage());
|
System.out.println(ERRORE_FILE + e.getMessage());
|
||||||
}
|
}
|
||||||
return i;
|
return dimensioneFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int quantita() {
|
static int quantita() {
|
||||||
boolean error;
|
boolean error;
|
||||||
int ritorno = -1;
|
int quantita = -1;
|
||||||
do {
|
do {
|
||||||
error = false;
|
error = false;
|
||||||
|
|
||||||
System.out.print("Inserire la quantità da acquistare: ");
|
System.out.print("Inserire la quantità da acquistare: ");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ritorno = sc.nextInt();
|
quantita = sc.nextInt();
|
||||||
sc.nextLine();
|
sc.nextLine();
|
||||||
|
|
||||||
if (ritorno <= 0) {
|
if (quantita <= 0) {
|
||||||
System.out.println("Errore: non è possibile selezionare una quantità minore di zero.");
|
System.out.println("Errore: non è possibile selezionare una quantità minore di zero.");
|
||||||
pausa();
|
pausa();
|
||||||
error = true;
|
error = true;
|
||||||
@@ -253,17 +254,17 @@ public class FatturaScontrini {
|
|||||||
}
|
}
|
||||||
} while (error);
|
} while (error);
|
||||||
|
|
||||||
return ritorno;
|
return quantita;
|
||||||
}
|
}
|
||||||
|
|
||||||
static boolean isOrdinazioneDuplicata(ArrayList<int[]> ordinazione, int[] ordine) {
|
static boolean isOrdinazioneDuplicata(ArrayList<int[]> ordinazione, int[] ordine) {
|
||||||
boolean ritorno = false;
|
boolean isOrdinazioneDuplicata = false;
|
||||||
boolean error;
|
boolean error;
|
||||||
String scelta;
|
String scelta;
|
||||||
|
|
||||||
for (int[] ordini : ordinazione) {
|
for (int[] ordini : ordinazione) {
|
||||||
if (ordini[0] == ordine[0]) {
|
if (ordini[0] == ordine[0]) {
|
||||||
ritorno = true;
|
isOrdinazioneDuplicata = true;
|
||||||
do {
|
do {
|
||||||
error = false;
|
error = false;
|
||||||
System.out
|
System.out
|
||||||
@@ -287,7 +288,7 @@ public class FatturaScontrini {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return ritorno;
|
return isOrdinazioneDuplicata;
|
||||||
}
|
}
|
||||||
|
|
||||||
static String ordinazioneToString(ArrayList<int[]> ordinazione) {
|
static String ordinazioneToString(ArrayList<int[]> ordinazione) {
|
||||||
@@ -322,19 +323,19 @@ public class FatturaScontrini {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static String[][] tabellaNomePrezzo() {
|
static String[][] tabellaNomePrezzo() {
|
||||||
String[][] ritorno = new String[2][getFileSize(PATH_MENU)];
|
String[][] tabellaNomePrezzo = new String[2][getFileSize(PATH_MENU)];
|
||||||
try (BufferedReader br = new BufferedReader(new FileReader(PATH_MENU))) {
|
try (BufferedReader br = new BufferedReader(new FileReader(PATH_MENU))) {
|
||||||
String riga = br.readLine();
|
String riga = br.readLine();
|
||||||
|
|
||||||
for (int i = 0; i < getFileSize(PATH_MENU); i++) {
|
for (int i = 0; i < getFileSize(PATH_MENU); i++) {
|
||||||
ritorno[0][i] = riga.split(":")[0];
|
tabellaNomePrezzo[0][i] = riga.split(":")[0];
|
||||||
ritorno[1][i] = riga.split(":")[1].trim();
|
tabellaNomePrezzo[1][i] = riga.split(":")[1].trim();
|
||||||
riga = br.readLine();
|
riga = br.readLine();
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println(ERRORE_FILE + e.getMessage());
|
System.out.println(ERRORE_FILE + e.getMessage());
|
||||||
}
|
}
|
||||||
return ritorno;
|
return tabellaNomePrezzo;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ArrayList<int[]> cancellaInOrdinazione(ArrayList<int[]> ordinazione) {
|
static ArrayList<int[]> cancellaInOrdinazione(ArrayList<int[]> ordinazione) {
|
||||||
@@ -480,7 +481,7 @@ public class FatturaScontrini {
|
|||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if (getFileSize(PATH_MENU) < 1) {
|
if (getFileSize(PATH_MENU) < 1) {
|
||||||
System.out.println("Errore: il menu è vuoto.");
|
System.out.println(ERRORE_MENU_VUOTO);
|
||||||
} else {
|
} else {
|
||||||
stampaMenu();
|
stampaMenu();
|
||||||
}
|
}
|
||||||
@@ -493,7 +494,7 @@ public class FatturaScontrini {
|
|||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if (getFileSize(PATH_MENU) < 1) {
|
if (getFileSize(PATH_MENU) < 1) {
|
||||||
System.out.println("Errore: il menu è vuoto.");
|
System.out.println(ERRORE_MENU_VUOTO);
|
||||||
} else {
|
} else {
|
||||||
rimuoviVoceMenu();
|
rimuoviVoceMenu();
|
||||||
System.out.println("Piatto rimosso con successo.");
|
System.out.println("Piatto rimosso con successo.");
|
||||||
@@ -618,17 +619,17 @@ public class FatturaScontrini {
|
|||||||
|
|
||||||
static double prezzo() {
|
static double prezzo() {
|
||||||
boolean error;
|
boolean error;
|
||||||
double ritorno = -1;
|
double prezzo = -1;
|
||||||
do {
|
do {
|
||||||
error = false;
|
error = false;
|
||||||
|
|
||||||
System.out.print("Inserire il prezzo da acquistare: ");
|
System.out.print("Inserire il prezzo da acquistare: ");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ritorno = sc.nextDouble();
|
prezzo = sc.nextDouble();
|
||||||
sc.nextLine();
|
sc.nextLine();
|
||||||
|
|
||||||
if (ritorno <= 0) {
|
if (prezzo <= 0) {
|
||||||
System.out.println("Errore: non è possibile impostare un prezzo minore di zero.");
|
System.out.println("Errore: non è possibile impostare un prezzo minore di zero.");
|
||||||
pausa();
|
pausa();
|
||||||
error = true;
|
error = true;
|
||||||
@@ -640,7 +641,7 @@ public class FatturaScontrini {
|
|||||||
}
|
}
|
||||||
} while (error);
|
} while (error);
|
||||||
|
|
||||||
return ritorno;
|
return prezzo;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rimuoviVoceMenu() {
|
static void rimuoviVoceMenu() {
|
||||||
@@ -663,19 +664,19 @@ public class FatturaScontrini {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static ArrayList<String> fileToStringArray(String path) {
|
static ArrayList<String> fileToStringArray(String path) {
|
||||||
ArrayList<String> ritorno = new ArrayList<>();
|
ArrayList<String> fileAsStringArray = new ArrayList<>();
|
||||||
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
|
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
|
||||||
String riga = br.readLine();
|
String riga = br.readLine();
|
||||||
|
|
||||||
while (riga != null) {
|
while (riga != null) {
|
||||||
ritorno.add(riga);
|
fileAsStringArray.add(riga);
|
||||||
riga = br.readLine();
|
riga = br.readLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println(ERRORE_FILE + e.getMessage());
|
System.out.println(ERRORE_FILE + e.getMessage());
|
||||||
}
|
}
|
||||||
return ritorno;
|
return fileAsStringArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void fattura() {
|
static void fattura() {
|
||||||
@@ -714,35 +715,35 @@ public class FatturaScontrini {
|
|||||||
|
|
||||||
static ArrayList<File> trovaScontriniPerData(String data) {
|
static ArrayList<File> trovaScontriniPerData(String data) {
|
||||||
ArrayList<File> scontrini = trovaScontrini();
|
ArrayList<File> scontrini = trovaScontrini();
|
||||||
ArrayList<File> ritorno = new ArrayList<>();
|
ArrayList<File> listaScontriniPerData = new ArrayList<>();
|
||||||
|
|
||||||
for (File scontrino : scontrini) {
|
for (File scontrino : scontrini) {
|
||||||
if (scontrino.getName().contains(data)) {
|
if (scontrino.getName().contains(data)) {
|
||||||
ritorno.add(scontrino);
|
listaScontriniPerData.add(scontrino);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ritorno;
|
return listaScontriniPerData;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ArrayList<File> trovaScontrini() {
|
static ArrayList<File> trovaScontrini() {
|
||||||
ArrayList<File> ritorno = new ArrayList<>();
|
ArrayList<File> listaScontrini = new ArrayList<>();
|
||||||
File cartellaScontrini = new File(PATH_SCONTRINI);
|
File cartellaScontrini = new File(PATH_SCONTRINI);
|
||||||
File[] listaFile = cartellaScontrini.listFiles();
|
File[] listaFile = cartellaScontrini.listFiles();
|
||||||
if (listaFile != null) {
|
if (listaFile != null) {
|
||||||
for (int i = 0; i < listaFile.length; i++) {
|
for (int i = 0; i < listaFile.length; i++) {
|
||||||
if (listaFile[i].isFile() &&
|
if (listaFile[i].isFile() &&
|
||||||
listaFile[i].getName().split("_")[0].equals("scontrino")) {
|
listaFile[i].getName().split("_")[0].equals("scontrino")) {
|
||||||
ritorno.add(listaFile[i]);
|
listaScontrini.add(listaFile[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ritorno;
|
return listaScontrini;
|
||||||
}
|
}
|
||||||
|
|
||||||
static double calcolaTotaleScontrini(ArrayList<File> scontrini) {
|
static double calcolaTotaleScontrini(ArrayList<File> scontrini) {
|
||||||
double ritorno = 0;
|
double totaleScontrini = 0;
|
||||||
for (File scontrino : scontrini) {
|
for (File scontrino : scontrini) {
|
||||||
try (BufferedReader br = new BufferedReader(new FileReader(scontrino))) {
|
try (BufferedReader br = new BufferedReader(new FileReader(scontrino))) {
|
||||||
String riga = br.readLine();
|
String riga = br.readLine();
|
||||||
@@ -751,12 +752,12 @@ public class FatturaScontrini {
|
|||||||
riga = br.readLine();
|
riga = br.readLine();
|
||||||
} while (!riga.contains("Totale: "));
|
} while (!riga.contains("Totale: "));
|
||||||
|
|
||||||
ritorno += Double.parseDouble(riga.split(":")[1]);
|
totaleScontrini += Double.parseDouble(riga.split(":")[1]);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println(ERRORE_FILE + e.getMessage());
|
System.out.println(ERRORE_FILE + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ritorno;
|
return totaleScontrini;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void stampaFattura(Fattura fattura, String data) {
|
static void stampaFattura(Fattura fattura, String data) {
|
||||||
|
|||||||
Reference in New Issue
Block a user