Refactoring

This commit is contained in:
La Programmatrice Verde
2025-11-26 00:09:08 +01:00
parent 11050bf805
commit 3b998a981d

View File

@@ -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) {