diff --git a/it/unisa/info13d/Articoli/CeneInRistoranti.java b/it/unisa/info13d/Articoli/CeneInRistoranti.java index 3a7a954..0fc6b39 100644 --- a/it/unisa/info13d/Articoli/CeneInRistoranti.java +++ b/it/unisa/info13d/Articoli/CeneInRistoranti.java @@ -169,9 +169,9 @@ public class CeneInRistoranti extends Utilizzabile implements Serializable{ if( diffGiorni<=7 ) { if( ceneVendute > ( numCenedaVendere/2 ) ) - return costoPerPersona - (costoPerPersona* ( 0.1 )) - (costoPerPersona* ( 0.1 )) ; //generico sconto ultima sett + se 50% vendute + return costoPerPersona - (costoPerPersona* ( Global.getSconto_ultima_settimana() )) - (costoPerPersona* ( Global.getSconto_cene_sup_50() )) ; //generico sconto ultima sett + se 50% vendute else - return costoPerPersona - (costoPerPersona * ( 0.1 )); //generico sconto ultima sett + return costoPerPersona - (costoPerPersona * ( Global.getSconto_ultima_settimana() )); //generico sconto ultima sett } else return costoPerPersona; diff --git a/it/unisa/info13d/Articoli/Global.java b/it/unisa/info13d/Articoli/Global.java index 0949af0..a004350 100644 --- a/it/unisa/info13d/Articoli/Global.java +++ b/it/unisa/info13d/Articoli/Global.java @@ -50,6 +50,14 @@ public class Global { sconto_per_min_num_articoli = sconto; } + public static void setSconto_ultima_settimana(double sconto_ultima_settimana) { + Global.sconto_ultima_settimana = sconto_ultima_settimana; + } + + public static void setSconto_cene_sup_50(double sconto_cene_sup_50) { + Global.sconto_cene_sup_50 = sconto_cene_sup_50; + } + public static int getMin_num_articoli_per_sconto() { return min_num_articoli_per_sconto; } @@ -58,9 +66,20 @@ public class Global { return sconto_per_min_num_articoli; } + public static double getSconto_ultima_settimana() { + return sconto_ultima_settimana; + } + + public static double getSconto_cene_sup_50() { + return sconto_cene_sup_50; + } + private static int min_num_articoli_per_sconto = 0; private static double sconto_per_min_num_articoli = 0; + private static double sconto_ultima_settimana = 0; + private static double sconto_cene_sup_50 = 0; + private static int general_counter; diff --git a/it/unisa/info13d/Articoli/Vacanze.java b/it/unisa/info13d/Articoli/Vacanze.java index ebd2278..c71e31e 100644 --- a/it/unisa/info13d/Articoli/Vacanze.java +++ b/it/unisa/info13d/Articoli/Vacanze.java @@ -30,7 +30,7 @@ public class Vacanze extends Utilizzabile implements Serializable{ @Override public boolean eAcquistabile() { - if(scadenzaOfferta.before(new GregorianCalendar())) //L'offerta della vacanza scade se la data sua scadenza e successiva a quella della data odierna + if(scadenzaOfferta.before(new GregorianCalendar()) || scadenzaOfferta.after(dataPartenzaViaggio) ) //L'offerta della vacanza scade se la data sua scadenza e successiva a quella della data odierna return false; return true; } @@ -124,7 +124,7 @@ public class Vacanze extends Utilizzabile implements Serializable{ long diffGiorni = diff / (24 * 60 * 60 * 1000); //differenza in giorni if( diffGiorni<=7 ) - return prezzoPSingola - (prezzoPSingola*0.10); //Prezzo scontato + return prezzoPSingola - (prezzoPSingola * Global.getSconto_ultima_settimana() ); //Prezzo scontato else return prezzoPSingola; //Nessuno sconto applicabile } diff --git a/it/unisa/info13d/GestioneCatalogo/AdminSession.java b/it/unisa/info13d/GestioneCatalogo/AdminSession.java index c99f6b9..fa800bd 100644 --- a/it/unisa/info13d/GestioneCatalogo/AdminSession.java +++ b/it/unisa/info13d/GestioneCatalogo/AdminSession.java @@ -46,10 +46,10 @@ public class AdminSession { switch(sceltaMenu) { case "1": - catalogo.nuovoProdotto(); + //catalogo.nuovoProdotto(); break; case "2": - catalogo.cancellaProdotto(); + //catalogo.cancellaProdotto(); break; case "3": //catalogo.offerteAttive(username); @@ -58,7 +58,7 @@ public class AdminSession { //catalogo.offerteScadute(username); break; case "5": - r.reshow = false; + // r.reshow = false; break; } diff --git a/it/unisa/info13d/GestioneCatalogo/Catalogo.java b/it/unisa/info13d/GestioneCatalogo/Catalogo.java index d91c438..03f1c3b 100644 --- a/it/unisa/info13d/GestioneCatalogo/Catalogo.java +++ b/it/unisa/info13d/GestioneCatalogo/Catalogo.java @@ -88,99 +88,122 @@ public class Catalogo{ * @throws ClassNotFoundException * @throws FileNotFoundException */ - public void nuovoProdotto() throws ParseException, FileNotFoundException, ClassNotFoundException, IOException + public void nuovoProdottoVacanza(String in_localita, String in_data_start, String in_data_end, String in_prezzo) throws ParseException, FileNotFoundException, ClassNotFoundException, IOException { - System.out.println("--------- Aggiunta nuovo Prodotto ----------"); - System.out.println("1 --> Vacanza"); - System.out.println("2 --> Cena"); - System.out.println("3 --> Bene di consumo "); - - String sceltaMenu; - System.out.print("Prodotto: "); - Scanner inputData = new Scanner(System.in); - sceltaMenu = inputData.nextLine(); - //Controllo input. La scelta deve essere obbligatoriamente compresa tra 1 e 4 - for ( ; !(sceltaMenu.equals("1"))&&!(sceltaMenu.equals("2"))&&!(sceltaMenu.equals("3")) ; ){ - System.out.println("Scelta Errata. Riprovare"); - System.out.print("Prodotto: "); - sceltaMenu = inputData.nextLine(); - } - - switch(sceltaMenu) - { - case "1": - System.out.println("---------- Nuova Offerta Vacanza ----------"); - System.out.print("Localita: "); - String localita = inputData.nextLine(); + + + //System.out.println("---------- Nuova Offerta Vacanza ----------"); + //System.out.print("Localita: "); + String localita = in_localita; - System.out.print("Data Partenza (GG/MM/AAAA): "); - String data = inputData.nextLine(); + //System.out.print("Data Partenza (GG/MM/AAAA): "); + String data = in_data_start; String temp[]; String marcatore="/"; temp = data.split(marcatore); GregorianCalendar dataPartenza = new GregorianCalendar((Integer.parseInt(temp[2])),(Integer.parseInt(temp[1]))-1,(Integer.parseInt(temp[0]))); - System.out.print("Data Scadenza offerta (GG/MM/AAAA): "); - String data2 = inputData.nextLine(); + //System.out.print("Data Scadenza offerta (GG/MM/AAAA): "); + String data2 = in_data_end; String temp2[]; temp2 = data2.split(marcatore); GregorianCalendar dataScad = new GregorianCalendar((Integer.parseInt(temp2[2])),(Integer.parseInt(temp2[1]))-1,(Integer.parseInt(temp2[0]))); - System.out.print("Prezzo singola persona: "); - String prezzo = inputData.nextLine(); + //System.out.print("Prezzo singola persona: "); + String prezzo = in_prezzo; double prezzoPSing = Double.parseDouble(prezzo); catalogoOfferte.add(new Vacanze(Global.get_next_id(), localita, dataPartenza, dataScad, prezzoPSing)); store_data(); - break; - case "2": - System.out.println("---------- Nuova Offerta Cena ----------"); - System.out.print("Ristorante: "); - String ristorante = inputData.nextLine(); - - System.out.print("Localita: "); - String localitaCena = inputData.nextLine(); - - System.out.print("Descrizione: "); - String descrizioneCena = inputData.nextLine(); - - System.out.print("Costo a Persona: "); - String prezzoCena = inputData.nextLine(); - double prezzoPSingCena = Double.parseDouble(prezzoCena); - - System.out.print("Data Scadenza offerta (GG/MM/AAAA): "); - String data3 = inputData.nextLine(); - String temp3[]; - String marcatore2="/"; - temp3 = data3.split(marcatore2); - GregorianCalendar dataScadCena = new GregorianCalendar((Integer.parseInt(temp3[2])),(Integer.parseInt(temp3[1]))-1,(Integer.parseInt(temp3[0]))); - - System.out.print("Cene da Vendere: "); - String nCene = inputData.nextLine(); - int ceneDaVendere = Integer.parseInt(nCene); - - catalogoOfferte.add(new CeneInRistoranti(Global.get_next_id(), ristorante, localitaCena, descrizioneCena, prezzoPSingCena, dataScadCena, ceneDaVendere)); - store_data(); - break; - case "3": - System.out.println("---------- Nuova Offerta Bene ----------"); - System.out.print("Descrizione: "); - String descrizioneBene = inputData.nextLine(); - - System.out.print("Prezzo Bene: "); - String prezzoBene = inputData.nextLine(); - int prezzo_bene = Integer.parseInt(prezzoBene); - - System.out.print("Quantita in magazzino: "); - String qntMag = inputData.nextLine(); - int qnt_mag = Integer.parseInt(prezzoBene); - - catalogoOfferte.add(new BeniDiConsumo(Global.get_next_id(), descrizioneBene, prezzo_bene, qnt_mag,"fornitore",5)); - store_data(); - break; - } + IdCounter.save_counter(); } + public void nuovoProdottoCena(String in_ristorante, String in_localita, String in_description, String in_prezzo, String in_data_scad, String in_cene_da_vend) throws ParseException, FileNotFoundException, ClassNotFoundException, IOException + { + + + //System.out.println("---------- Nuova Offerta Cena ----------"); + //System.out.print("Ristorante: "); + String ristorante = in_ristorante; + + //System.out.print("Localita: "); + String localitaCena = in_localita; + + //System.out.print("Descrizione: "); + String descrizioneCena = in_description; + + //System.out.print("Costo a Persona: "); + String prezzoCena = in_prezzo; + double prezzoPSingCena = Double.parseDouble(prezzoCena); + + //System.out.print("Data Scadenza offerta (GG/MM/AAAA): "); + String data3 = in_data_scad; + String temp3[]; + String marcatore2="/"; + temp3 = data3.split(marcatore2); + GregorianCalendar dataScadCena = new GregorianCalendar((Integer.parseInt(temp3[2])),(Integer.parseInt(temp3[1]))-1,(Integer.parseInt(temp3[0]))); + + //System.out.print("Cene da Vendere: "); + String nCene = in_cene_da_vend; + int ceneDaVendere = Integer.parseInt(nCene); + + catalogoOfferte.add(new CeneInRistoranti(Global.get_next_id(), ristorante, localitaCena, descrizioneCena, prezzoPSingCena, dataScadCena, ceneDaVendere)); + store_data(); + + IdCounter.save_counter(); + } + public void nuovoProdottoBene(String in_descrizione, String in_prezzo, String in_quantita, String in_fornitore, String in_giudizio) throws ParseException, FileNotFoundException, ClassNotFoundException, IOException + { + + + //System.out.println("---------- Nuova Offerta Bene ----------"); + //System.out.print("Descrizione: "); + String descrizioneBene = in_descrizione; + + //System.out.print("Prezzo Bene: "); + String prezzoBene = in_prezzo; + int prezzo_bene = Integer.parseInt(prezzoBene); + + //System.out.print("Quantita in magazzino: "); + String qntMag = in_quantita; + int qnt_mag = Integer.parseInt(prezzoBene); + + String fornitore = in_fornitore; + + String giudizio = in_giudizio; + int giud_int = Integer.parseInt(giudizio); + + + catalogoOfferte.add(new BeniDiConsumo(Global.get_next_id(), descrizioneBene, prezzo_bene, qnt_mag,fornitore,giud_int)); + store_data(); + + IdCounter.save_counter(); + } + public void nuovoProdottoPrestazione(String in_localita, String in_descrizione, String in_fornitore, String in_giudizio, String in_prezzo) throws ParseException, FileNotFoundException, ClassNotFoundException, IOException + { + + + + + //System.out.println("---------- Nuova Offerta Prestazione ----------"); + + String localita = in_localita; + String descrizione = in_descrizione; + String fornitore = in_fornitore; + + + String giudizio = in_giudizio; + int giudizio_int = Integer.parseInt(giudizio); + + + String prezzo = in_prezzo; + double prezzo_d = Double.parseDouble(prezzo); + + catalogoOfferte.add(new PrestazioniDopera(Global.get_next_id(), localita,descrizione,fornitore,giudizio_int,prezzo_d)); + store_data(); + + IdCounter.save_counter(); + } /** * Questo metodo permette la cancellazione di un prodotto dal catalogo @@ -188,55 +211,45 @@ public class Catalogo{ * @throws ClassNotFoundException * @throws IOException */ - public void cancellaProdotto() throws FileNotFoundException, ClassNotFoundException, IOException + public boolean cancellaProdotto(String id) throws FileNotFoundException, ClassNotFoundException, IOException { - System.out.println("------ Lista Prodotti -----\n--"); - for(Utilizzabile deal: catalogoOfferte) - { - if(deal instanceof Vacanze) - { - Vacanze dealVacanza = (Vacanze)deal; - //visualizzaVacanza(dealVacanza); - - } - else if(deal instanceof BeniDiConsumo) - { - BeniDiConsumo dealBene = (BeniDiConsumo)deal; - //visualizzaBene(dealBene); - } - else if(deal instanceof CeneInRistoranti) - { - CeneInRistoranti dealCena = (CeneInRistoranti)deal; - //visualizzaCena(dealCena); - } - } + //System.out.println("------ Lista Prodotti -----\n--"); + - System.out.print("Elimina prodotto [Inserisci id]: "); - Scanner inputData = new Scanner(System.in); - String id = inputData.nextLine(); + //System.out.print("Elimina prodotto [Inserisci id]: "); + //Scanner inputData = new Scanner(System.in); + int idDel = Integer.parseInt(id); - System.out.println(idDel); + //System.out.println(idDel); + for(Utilizzabile deal: catalogoOfferte) { if(deal instanceof Vacanze && ((Vacanze)deal).getIdViaggio()==idDel) { catalogoOfferte.remove(deal); store_data(); - break; + return true; } if(deal instanceof BeniDiConsumo && ((BeniDiConsumo) deal).getIdBene()==idDel) { catalogoOfferte.remove(deal); store_data(); - break; + return true; } if(deal instanceof CeneInRistoranti && ((CeneInRistoranti) deal).getIdCena()==idDel) { catalogoOfferte.remove(deal); store_data(); - break; + return true; } - } + if(deal instanceof PrestazioniDopera && ((PrestazioniDopera)deal).getIdPrOpera()==idDel) + { + catalogoOfferte.remove(deal); + store_data(); + return true; + } + } + return false; } /** @@ -1949,7 +1962,8 @@ public class Catalogo{ } } - loggedUser.setBalance(loggedUser.getBalance() - totale); + loggedUser.setBalance(-totale); + Carrello.clear(); Access.replace_data(user, loggedUser); store_data(); @@ -2092,7 +2106,7 @@ public class Catalogo{ int giornoP = partenza.get(Calendar.DAY_OF_MONTH); int meseP = partenza.get(Calendar.MONTH); int annoP = partenza.get(Calendar.YEAR); - area_storico.append("| deal: " + record.getDescription() + "| Data Acquisto: " + giornoP + "/" + (meseP + 1) + "/" + annoP + "| Prezzo: " + record.getPrezzo() + "\n"); + area_storico.append("Deal: " + record.getDescription() + "| Data Acquisto: " + giornoP + "/" + (meseP + 1) + "/" + annoP + "| Prezzo: " + record.getPrezzo() + "\n"); } } @@ -2114,7 +2128,7 @@ public class Catalogo{ int meseS = scadenza.get(Calendar.MONTH); int annoS = scadenza.get(Calendar.YEAR); - show.append("#Vacanza-"+dealVacanza.getIdViaggio()+"# Scadenza: "+giornoS+"/"+(meseS+1)+"/"+annoS+"| Localita: "+dealVacanza.getLocalitaViaggio()+"| Partenza: "+giornoP+"/"+(meseP+1)+"/"+annoP+"| Prezzo Pers. Singola: "+dealVacanza.getPrezzoPSingola()+"\n--"); + show.append("#Vacanza-"+dealVacanza.getIdViaggio()+"# Scadenza: "+giornoS+"/"+(meseS+1)+"/"+annoS+"| Localita: "+dealVacanza.getLocalitaViaggio()+"| Partenza: "+giornoP+"/"+(meseP+1)+"/"+annoP+"| Prezzo Pers. Singola: "+dealVacanza.getPrezzoPSingola()+"\n"); } /** @@ -2125,12 +2139,12 @@ public class Catalogo{ public void visualizzaBene(BeniDiConsumo dealBene, JTextArea show) { - show.append("#Articolo-" + dealBene.getIdBene() + "# Descrizione: " + dealBene.getDescrizioneBene() + " Prezzo: " + dealBene.getPrezzoBene() + "| Quantita in magazzino: " + dealBene.getBeniInStock() + "| Fornitore: " + dealBene.getFornitore() + "| Giudizio: +" + dealBene.getGiudizioFornitore() + "\n--"); + show.append("#Articolo-" + dealBene.getIdBene() + "# Descrizione: " + dealBene.getDescrizioneBene() + " Prezzo: " + dealBene.getPrezzoBene() + "| Quantita in magazzino: " + dealBene.getBeniInStock() + "| Fornitore: " + dealBene.getFornitore() + "| Giudizio: +" + dealBene.getGiudizioFornitore() + "\n"); } public void visualizzaPrestazione(PrestazioniDopera deal, JTextArea show) { - show.append("#Articolo-" + deal.getIdPrOpera() + "# Descrizione: " + deal.getDescrizione() + " Prezzo: " + deal.getPrezzoPrestazione() + "| Fornitore: " + deal.getFornitore() + "| Giudizio: +" + deal.getGiudizioFornitore() + "\n--"); + show.append("#Articolo-" + deal.getIdPrOpera() + "# Descrizione: " + deal.getDescrizione() + " Prezzo: " + deal.getPrezzoPrestazione() + "| Fornitore: " + deal.getFornitore() + "| Giudizio: +" + deal.getGiudizioFornitore() + "\n"); } @@ -2145,7 +2159,7 @@ public class Catalogo{ int giornoSC = scadenzaCena.get(Calendar.DAY_OF_MONTH); int meseSC = scadenzaCena.get(Calendar.MONTH); int annoSC = scadenzaCena.get(Calendar.YEAR); - show.append("#Cena-" + dealCena.getIdCena() + "# Scadenza:" + giornoSC + "/" + (meseSC + 1) + "/" + annoSC + "| Ristorante: " + dealCena.getNomeRistorante() + "| Indirizzo: " + dealCena.getLuogo() + "| Descrizione: " + dealCena.getDescrizione_cena() + "| Costo: " + dealCena.getCostoPerPersona() + "| Disponibilita:" + dealCena.getNumCenedaVendere() + "cene" + "\n--"); + show.append("#Cena-" + dealCena.getIdCena() + "# Scadenza:" + giornoSC + "/" + (meseSC + 1) + "/" + annoSC + "| Ristorante: " + dealCena.getNomeRistorante() + "| Indirizzo: " + dealCena.getLuogo() + "| Descrizione: " + dealCena.getDescrizione_cena() + "| Costo: " + dealCena.getCostoPerPersona() + "| Disponibilita:" + dealCena.getNumCenedaVendere() + "cene" + "\n"); } /** diff --git a/it/unisa/info13d/Gui/AdminInterface.java b/it/unisa/info13d/Gui/AdminInterface.java index c20b31e..0028d3e 100644 --- a/it/unisa/info13d/Gui/AdminInterface.java +++ b/it/unisa/info13d/Gui/AdminInterface.java @@ -1,5 +1,6 @@ package it.unisa.info13d.Gui; +import it.unisa.info13d.Articoli.Global; import it.unisa.info13d.Articoli.Utilizzabile; import it.unisa.info13d.GestioneCatalogo.Catalogo; import it.unisa.info13d.Login.Access; @@ -11,6 +12,7 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.FileNotFoundException; import java.io.IOException; +import java.text.ParseException; import java.util.ArrayList; import java.util.GregorianCalendar; @@ -110,11 +112,11 @@ public class AdminInterface extends JFrame{ } //action listner added at offers declaration - JMenuItem tutti_gli_articoli_attivi_costo = new JMenuItem("Tutti gli articoli Attivi per Costo"); - class tutti_gli_articoli_attivi_costo_action implements ActionListener { + JMenuItem tutti_gli_articoli_attivi_data = new JMenuItem("Tutti gli articoli Attivi per Data"); + class tutti_gli_articoli_attivi_data_action implements ActionListener { - public tutti_gli_articoli_attivi_costo_action (AdminInterface in_location, JTextArea in_offers,String in_choice){ + public tutti_gli_articoli_attivi_data_action (AdminInterface in_location, JTextArea in_offers,String in_choice){ location= in_location; offers = in_offers; choice = in_choice; @@ -171,8 +173,215 @@ public class AdminInterface extends JFrame{ JMenu politicamenu = new JMenu("Politiche Sconto"); JMenuItem sconto_totale_articoli = new JMenuItem("Sconto sul Totale Articoli"); + class sconto_totale_articoli_action implements ActionListener { + + + public sconto_totale_articoli_action (AdminInterface in_location){ + location= in_location; + + } + + @Override + public void actionPerformed(ActionEvent e) { + + + + + JPanel showInput = new JPanel(); + JLabel field1l = new JLabel("Numero Articoli"); + JTextField field1 = new JTextField(10); + field1.setText("3"); + JLabel field2l = new JLabel("Sconto 0-1"); + JTextField field2 = new JTextField(10); + field2.setText("0.1"); + showInput.add(field1l); + showInput.add(field1); + showInput.add(field2l); + showInput.add(field2); + JOptionPane.showMessageDialog(location, showInput); + + String data = field1.getText(); + int num_articoli = Integer.parseInt(data); + + + String data2 = field2.getText(); + double sconto = Double.parseDouble(data2); + + + Global.set_sconto_min_articoli(num_articoli,sconto); + + + + + } + + private AdminInterface location; + + } + sconto_totale_articoli.addActionListener(new sconto_totale_articoli_action(this)); + JMenuItem rimuovi_sconto_totale_articoli = new JMenuItem("Rimuovi Sconto sul Totale Articoli"); + class rimuovi_sconto_totale_articoli_action implements ActionListener { + + + public rimuovi_sconto_totale_articoli_action (AdminInterface in_location){ + location= in_location; + + } + + @Override + public void actionPerformed(ActionEvent e) { + + + + + Global.set_sconto_min_articoli(0,0); + + + + + } + + private AdminInterface location; + + } + rimuovi_sconto_totale_articoli.addActionListener(new rimuovi_sconto_totale_articoli_action(this)); + + JMenuItem sconto_articoli_ultima_settimana = new JMenuItem("Sconto su Articoli Ultima Settimana"); + class sconto_articoli_ultima_settimana_action implements ActionListener { + + + public sconto_articoli_ultima_settimana_action (AdminInterface in_location){ + location= in_location; + + } + + @Override + public void actionPerformed(ActionEvent e) { + + + + + JPanel showInput = new JPanel(); + JLabel field2l = new JLabel("Sconto Articoli Ultima Settimana 0-1"); + JTextField field2 = new JTextField(10); + field2.setText("0.1"); + showInput.add(field2l); + showInput.add(field2); + JOptionPane.showMessageDialog(location, showInput); + + String data2 = field2.getText(); + double sconto = Double.parseDouble(data2); + + + Global.setSconto_ultima_settimana(sconto); + + + + + } + + private AdminInterface location; + + } + sconto_articoli_ultima_settimana.addActionListener(new sconto_articoli_ultima_settimana_action(this)); + JMenuItem rimuovi_sconto_articoli_ultima_settimana = new JMenuItem("Rimuovi Sconto su Articoli Ultima Settimana"); + class rimuovi_sconto_articoli_ultima_settimana_action implements ActionListener { + + + public rimuovi_sconto_articoli_ultima_settimana_action (AdminInterface in_location){ + location= in_location; + + } + + @Override + public void actionPerformed(ActionEvent e) { + + + + + + + Global.setSconto_ultima_settimana(0); + + + + + } + + private AdminInterface location; + + } + rimuovi_sconto_articoli_ultima_settimana.addActionListener(new rimuovi_sconto_articoli_ultima_settimana_action(this)); + JMenuItem sconto_cene_50_ultima_settimana = new JMenuItem("Sconto per >50% Cene Vendute Ultima Settimana"); + class sconto_cene_50_ultima_settimana_action implements ActionListener { + + + public sconto_cene_50_ultima_settimana_action (AdminInterface in_location){ + location= in_location; + + } + + @Override + public void actionPerformed(ActionEvent e) { + + + + + JPanel showInput = new JPanel(); + JLabel field2l = new JLabel("Sconto 0-1"); + JTextField field2 = new JTextField(10); + field2.setText("0.1"); + showInput.add(field2l); + showInput.add(field2); + JOptionPane.showMessageDialog(location, showInput); + + String data2 = field2.getText(); + double sconto = Double.parseDouble(data2); + + + Global.setSconto_cene_sup_50(sconto); + + + + + } + + private AdminInterface location; + + } + sconto_cene_50_ultima_settimana.addActionListener(new sconto_cene_50_ultima_settimana_action(this)); + JMenuItem rimuovi_sconto_cene_50_ultima_settimana = new JMenuItem("Rimuovi Sconto per >50% Cene Vendute Ultima Settimana"); + class rimuovi_sconto_cene_50_ultima_settimana_action implements ActionListener { + + + public rimuovi_sconto_cene_50_ultima_settimana_action (AdminInterface in_location){ + location= in_location; + + } + + @Override + public void actionPerformed(ActionEvent e) { + + + + + + + Global.setSconto_cene_sup_50(0); + + + + + } + + private AdminInterface location; + + } + rimuovi_sconto_cene_50_ultima_settimana.addActionListener(new rimuovi_sconto_cene_50_ultima_settimana_action(this)); + + mainmenu.add(filemenu); @@ -183,14 +392,17 @@ public class AdminInterface extends JFrame{ filemenu.add(quit_menu_item); searchmenu.add(tutti_gli_articoli_attivi_id); - searchmenu.add(tutti_gli_articoli_attivi_costo); + searchmenu.add(tutti_gli_articoli_attivi_data); searchmenu.add(tutti_gli_articoli_scaduti); politicamenu.add(sconto_totale_articoli); + politicamenu.add(rimuovi_sconto_totale_articoli); politicamenu.add(sconto_articoli_ultima_settimana); + politicamenu.add(rimuovi_sconto_articoli_ultima_settimana); politicamenu.add(sconto_cene_50_ultima_settimana); + politicamenu.add(rimuovi_sconto_cene_50_ultima_settimana); @@ -199,9 +411,294 @@ public class AdminInterface extends JFrame{ JLabel add_product_label = new JLabel("Aggiungi un nuovo Prodotto" ); add_product_label.setPreferredSize(new Dimension(180,60)); JButton aggiungi_bene = new JButton("Bene"); + class aggiungi_bene_action implements ActionListener { + + + public aggiungi_bene_action (AdminInterface in_location, JTextArea in_offers){ + location= in_location; + offers = in_offers; + + } + + @Override + public void actionPerformed(ActionEvent e) { + + try{ + + + JPanel showInput = new JPanel(); + showInput.setLayout(new GridLayout(0,2)); + + JLabel descrizionel = new JLabel("Descrizione"); + JTextField descrizione = new JTextField(15); + + JLabel prezzol = new JLabel("Prezzo"); + JTextField prezzo = new JTextField(15); + + JLabel quantital = new JLabel("Quantita"); + JTextField quantita = new JTextField(15); + + JLabel fornitorel = new JLabel("Fornitore"); + JTextField fornitore = new JTextField(15); + + JLabel giudiziol = new JLabel("Giudizio"); + JTextField giudizio = new JTextField(15); + + + + showInput.add(descrizionel); + showInput.add(descrizione); + showInput.add(prezzol); + showInput.add(prezzo); + showInput.add(quantital); + showInput.add(quantita); + showInput.add(fornitorel); + showInput.add(fornitore); + showInput.add(giudiziol); + showInput.add(giudizio); + + + JOptionPane.showMessageDialog(location, showInput); + + + load_catalogo.nuovoProdottoBene(descrizione.getText(),prezzo.getText(),quantita.getText(),fornitore.getText(),giudizio.getText()); + offers.setText(""); + load_catalogo.offerteAttive(login_data.getUsername(),offers,"0"); + + } + + catch (FileNotFoundException err){} + catch (IOException err){} + catch (ClassNotFoundException err){} + catch (ParseException err){} + + + } + + private AdminInterface location; + private JTextArea offers; + + } + + JButton aggiungi_cena = new JButton("Cena"); + class aggiungi_cena_action implements ActionListener { + + + public aggiungi_cena_action (AdminInterface in_location, JTextArea in_offers){ + location= in_location; + offers = in_offers; + + + } + + @Override + public void actionPerformed(ActionEvent e) { + + try{ + + + JPanel showInput = new JPanel(); + showInput.setLayout(new GridLayout(0,2)); + + JLabel ristorantel = new JLabel("Ristorante"); + JTextField ristorante = new JTextField(15); + + JLabel localital = new JLabel("Localita"); + JTextField localita = new JTextField(15); + + JLabel descrizionel = new JLabel("Descrizione"); + JTextField descrizione = new JTextField(15); + + JLabel prezzol = new JLabel("Prezzo"); + JTextField prezzo = new JTextField(15); + + JLabel scadenzal = new JLabel("Scadenza"); + JTextField scadenza = new JTextField(15); + scadenza.setText("GG/MM/AAAA"); + + JLabel cenedavendl = new JLabel("Cene Da Vendere"); + JTextField cenedavend = new JTextField(15); + + + + + + showInput.add(ristorantel); + showInput.add(ristorante); + showInput.add(localital); + showInput.add(localita); + showInput.add(descrizionel); + showInput.add(descrizione); + showInput.add(prezzol); + showInput.add(prezzo); + showInput.add(scadenzal); + showInput.add(scadenza); + showInput.add(cenedavendl); + showInput.add(cenedavend); + + + JOptionPane.showMessageDialog(location, showInput); + + + load_catalogo.nuovoProdottoCena(ristorante.getText(), localita.getText(), descrizione.getText(), prezzo.getText(), scadenza.getText(), cenedavend.getText()); + offers.setText(""); + load_catalogo.offerteAttive(login_data.getUsername(),offers,"0"); + } + + catch (FileNotFoundException err){} + catch (IOException err){} + catch (ClassNotFoundException err){} + catch (ParseException err){} + + + } + + private AdminInterface location; + private JTextArea offers; + + } + JButton aggiungi_vacanza = new JButton("Viaggio"); + class aggiungi_vacanza_action implements ActionListener { + + + public aggiungi_vacanza_action (AdminInterface in_location, JTextArea in_offers){ + location= in_location; + offers = in_offers; + + } + + @Override + public void actionPerformed(ActionEvent e) { + + try{ + + + JPanel showInput = new JPanel(); + showInput.setLayout(new GridLayout(0,2)); + + JLabel localital = new JLabel("Localita"); + JTextField localita = new JTextField(15); + + JLabel datastartl = new JLabel("Data Partenza"); + JTextField datastart = new JTextField(15); + + JLabel dataendl = new JLabel("Data Fine Offerta"); + JTextField dataend = new JTextField(15); + + JLabel prezzol = new JLabel("Prezzo"); + JTextField prezzo = new JTextField(15); + + + + + + showInput.add(localital); + showInput.add(localita); + showInput.add(datastartl); + showInput.add(datastart); + showInput.add(dataendl); + showInput.add(dataend); + showInput.add(prezzol); + showInput.add(prezzo); + + + JOptionPane.showMessageDialog(location, showInput); + + + load_catalogo.nuovoProdottoVacanza(localita.getText(), datastart.getText(), dataend.getText(), prezzo.getText()); + offers.setText(""); + load_catalogo.offerteAttive(login_data.getUsername(),offers,"0"); + + } + + catch (FileNotFoundException err){} + catch (IOException err){} + catch (ClassNotFoundException err){} + catch (ParseException err){} + + + } + + private AdminInterface location; + private JTextArea offers; + + } + JButton aggiungi_prestazione = new JButton("Prestazione"); + class aggiungi_prestazione_action implements ActionListener { + + + public aggiungi_prestazione_action (AdminInterface in_location,JTextArea in_offers){ + location= in_location; + offers = in_offers; + + } + + @Override + public void actionPerformed(ActionEvent e) { + + try{ + + + JPanel showInput = new JPanel(); + showInput.setLayout(new GridLayout(0,2)); + + JLabel localital = new JLabel("Localita"); + JTextField localita = new JTextField(15); + + JLabel descrizionel = new JLabel("Descrizione"); + JTextField descrizione = new JTextField(15); + + JLabel fornitorel = new JLabel("Fornitore"); + JTextField fornitore = new JTextField(15); + + JLabel giudiziol = new JLabel("Giudizio"); + JTextField giudizio = new JTextField(15); + + JLabel prezzol = new JLabel("Prezzo"); + JTextField prezzo = new JTextField(15); + + + + + + showInput.add(localital); + showInput.add(localita); + showInput.add(descrizionel); + showInput.add(descrizione); + showInput.add(fornitorel); + showInput.add(fornitore); + showInput.add(giudiziol); + showInput.add(giudizio); + showInput.add(prezzol); + showInput.add(prezzo); + + + JOptionPane.showMessageDialog(location, showInput); + + + load_catalogo.nuovoProdottoPrestazione(localita.getText(), descrizione.getText(), fornitore.getText(), giudizio.getText(), prezzo.getText()); + offers.setText(""); + load_catalogo.offerteAttive(login_data.getUsername(),offers,"0"); + + } + + catch (FileNotFoundException err){} + catch (IOException err){} + catch (ClassNotFoundException err){} + catch (ParseException err){} + + + } + + private AdminInterface location; + private JTextArea offers; + + } + + AggiungiProdottiPanel.add(add_product_label); @@ -228,13 +725,20 @@ public class AdminInterface extends JFrame{ JTextArea offers = new JTextArea(500,200); + JScrollPane scrollarea = new JScrollPane(offers); offers.setText("Utilizza il menu Cerca per popolare questa lista"); - mainWindow.add(offers,BorderLayout.CENTER); + mainWindow.add(scrollarea,BorderLayout.CENTER); tutti_gli_articoli_attivi_id.addActionListener(new tutti_gli_articoli_attivi_id_action(this,offers,"0")); - tutti_gli_articoli_attivi_costo.addActionListener(new tutti_gli_articoli_attivi_costo_action(this,offers,"1")); + tutti_gli_articoli_attivi_data.addActionListener(new tutti_gli_articoli_attivi_data_action(this,offers,"1")); tutti_gli_articoli_scaduti.addActionListener(new tutti_gli_articoli_scaduti_action(this,offers)); + aggiungi_bene.addActionListener(new aggiungi_bene_action(this,offers)); + aggiungi_cena.addActionListener(new aggiungi_cena_action(this,offers)); + aggiungi_vacanza.addActionListener(new aggiungi_vacanza_action(this,offers)); + aggiungi_prestazione.addActionListener(new aggiungi_prestazione_action(this,offers)); + + JPanel acquista_panel = new JPanel(); @@ -245,36 +749,34 @@ public class AdminInterface extends JFrame{ /////old class to replace with rimuovi prodotto - class aggiungi_al_carrello_action implements ActionListener { + class rimuovi_prodotto_action implements ActionListener { - public aggiungi_al_carrello_action (AdminInterface in_location, JTextField in_id, JTextArea in_offers, JLabel in_count){ + public rimuovi_prodotto_action (AdminInterface in_location, JTextField in_id, JTextArea in_offers ){ id = in_id; location= in_location; offers = in_offers; - count = in_count; + } @Override public void actionPerformed(ActionEvent e) { try{ - if (offers.getText().isEmpty()){ - JOptionPane.showMessageDialog(location, - "Dovresti prima aggiornare l'elenco delle offerte attive ", - "Error", - JOptionPane.ERROR_MESSAGE); - } else{ if (Integer.parseInt(id.getText()) >= 0 ){ - int found = load_catalogo.search_product_id(login_data.getUsername(),id.getText()); - if (found > -1){ - Carrello.add(load_catalogo.getCatalogo().get(found)); - count.setText(" Corrello: " + Carrello.size() + " Prodotti"); + boolean found = load_catalogo.cancellaProdotto(id.getText()); + if (found ){ + JOptionPane.showMessageDialog(location, + "Prodotto Rimosso ", + "Completato", + JOptionPane.INFORMATION_MESSAGE); + offers.setText(""); + load_catalogo.offerteAttive(login_data.getUsername(),offers,"0"); }else{ JOptionPane.showMessageDialog(location, - "Impossibile aggiungere il prodotto indicato ", + "Impossibile rimuovere il prodotto indicato ", "Error", JOptionPane.ERROR_MESSAGE); } @@ -288,7 +790,7 @@ public class AdminInterface extends JFrame{ } - } + } catch (FileNotFoundException err){} catch (IOException err){} @@ -315,9 +817,9 @@ public class AdminInterface extends JFrame{ private JTextField id; private AdminInterface location; private JTextArea offers; - private JLabel count; + } - rimuovi_prodotto.addActionListener(new aggiungi_al_carrello_action(this,id,offers,idlabel)); + rimuovi_prodotto.addActionListener(new rimuovi_prodotto_action(this,id,offers)); diff --git a/it/unisa/info13d/Gui/LoginWindow.java b/it/unisa/info13d/Gui/LoginWindow.java index 2974a48..05ae857 100644 --- a/it/unisa/info13d/Gui/LoginWindow.java +++ b/it/unisa/info13d/Gui/LoginWindow.java @@ -3,6 +3,7 @@ package it.unisa.info13d.Gui; import it.unisa.info13d.Login.Access; import it.unisa.info13d.Login.LoginData; import it.unisa.info13d.GestioneCatalogo.*; +import it.unisa.info13d.Utility.IdCounter; import javax.swing.*; import java.awt.*; @@ -85,6 +86,7 @@ public class LoginWindow extends JFrame { try{ if (Access.search_username(name.getText(),String.valueOf(password.getPassword()))){ LoginData login = new LoginData(name.getText(),String.valueOf(password.getPassword()),location.getText(),action); + IdCounter.restore_counter(); Catalogo load_catalogo = new Catalogo(); if (login.getType().equals("Admin")){ actual.setVisible(false); diff --git a/it/unisa/info13d/Gui/UserInterface.java b/it/unisa/info13d/Gui/UserInterface.java index 2b0c78f..a04cf6d 100644 --- a/it/unisa/info13d/Gui/UserInterface.java +++ b/it/unisa/info13d/Gui/UserInterface.java @@ -216,10 +216,11 @@ public class UserInterface extends JFrame{ JPanel show_storico = new JPanel(); - JTextArea area_storico = new JTextArea(10,15); + JTextArea area_storico = new JTextArea(10,45); + JScrollPane scrollarea = new JScrollPane(area_storico); - show_storico.add(area_storico); + show_storico.add(scrollarea); load_catalogo.visualizzaStorico(login_data.getUsername(),"1",area_storico); JOptionPane.showMessageDialog(location, show_storico); @@ -255,10 +256,11 @@ public class UserInterface extends JFrame{ JPanel show_storico = new JPanel(); - JTextArea area_storico = new JTextArea(10,15); + JTextArea area_storico = new JTextArea(10,45); + JScrollPane scrollarea = new JScrollPane(area_storico); - show_storico.add(area_storico); + show_storico.add(scrollarea); load_catalogo.visualizzaStorico(login_data.getUsername(),"2",area_storico); JOptionPane.showMessageDialog(location, show_storico); @@ -366,8 +368,9 @@ public class UserInterface extends JFrame{ JTextArea offers = new JTextArea(500,200); + JScrollPane scrollarea = new JScrollPane(offers); offers.setText("Utilizza il menu Cerca per popolare questa lista"); - mainWindow.add(offers,BorderLayout.CENTER); + mainWindow.add(scrollarea,BorderLayout.CENTER); tutti_gli_articoli_attivi.addActionListener(new tutti_gli_articoli_attivi_action(this,offers)); articoli_con_scadenza_menu_item.addActionListener(new tutti_gli_articoli_con_scadenza_action(this,offers)); articoli_senza_scadenza_menu_item.addActionListener(new tutti_gli_articoli_senza_scadenza_action(this,offers));