Implementato il Login/Registrazione via GUI. Quasi completato la GUI lato utente. Manca la visualizzazione degli articoli con e senza scadenza con limiti (implementati ma senza actionlistner) e il visualizzo storico.

Da fixare anche il comparatore tra oggetti per la visualizzazione ordinata, bisogna aggiungere la classa prestazioni dopera.
This commit is contained in:
2014-01-20 03:35:35 +01:00
parent e6361620a2
commit 92a0837b1c
14 changed files with 991 additions and 189 deletions

View File

@@ -52,7 +52,7 @@ public class AdminSession {
catalogo.cancellaProdotto();
break;
case "3":
catalogo.offerteAttive(username);
//catalogo.offerteAttive(username);
break;
case "4":
catalogo.offerteScadute(username);

View File

@@ -2,6 +2,7 @@ package it.unisa.info13d.GestioneCatalogo;
import java.util.*;
import it.unisa.info13d.Articoli.*;
import it.unisa.info13d.Gui.UserInterface;
import it.unisa.info13d.Login.Access;
import it.unisa.info13d.Login.Entry;
import it.unisa.info13d.Utility.IdCounter;
@@ -11,6 +12,7 @@ import it.unisa.info13d.Login.LoggedUser;
import it.unisa.info13d.Login.LoginData;
import it.unisa.info13d.Login.StoricoItem;
import javax.swing.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -173,7 +175,7 @@ public class Catalogo{
String qntMag = inputData.nextLine();
int qnt_mag = Integer.parseInt(prezzoBene);
catalogoOfferte.add(new BeniDiConsumo(Global.get_next_id(), descrizioneBene, prezzo_bene, qnt_mag));
catalogoOfferte.add(new BeniDiConsumo(Global.get_next_id(), descrizioneBene, prezzo_bene, qnt_mag,"fornitore",5));
store_data();
break;
}
@@ -194,18 +196,18 @@ public class Catalogo{
if(deal instanceof Vacanze)
{
Vacanze dealVacanza = (Vacanze)deal;
visualizzaVacanza(dealVacanza);
//visualizzaVacanza(dealVacanza);
}
else if(deal instanceof BeniDiConsumo)
{
BeniDiConsumo dealBene = (BeniDiConsumo)deal;
visualizzaBene(dealBene);
//visualizzaBene(dealBene);
}
else if(deal instanceof CeneInRistoranti)
{
CeneInRistoranti dealCena = (CeneInRistoranti)deal;
visualizzaCena(dealCena);
//visualizzaCena(dealCena);
}
}
@@ -243,7 +245,7 @@ public class Catalogo{
*
* @param a
*/
public void print_cat_admin (ArrayList<Utilizzabile> a){
public void print_cat_admin (ArrayList<Utilizzabile> a,JTextArea show_offers){
for(Utilizzabile deal: a)
{
if(deal instanceof Vacanze)
@@ -251,7 +253,7 @@ public class Catalogo{
Vacanze dealVacanza = (Vacanze)deal;
if((dealVacanza.eAcquistabile()))
{
visualizzaVacanza(dealVacanza);
visualizzaVacanza(dealVacanza, show_offers);
}
continue;
}
@@ -260,7 +262,7 @@ public class Catalogo{
BeniDiConsumo dealBene = (BeniDiConsumo)deal;
if((dealBene.eAcquistabile()))
{
visualizzaBene(dealBene);
visualizzaBene(dealBene,show_offers);
}
continue;
}
@@ -270,7 +272,16 @@ public class Catalogo{
if((dealCena.eAcquistabile()))
{
visualizzaCena(dealCena);
visualizzaCena(dealCena,show_offers);
}
continue;
}
if(deal instanceof PrestazioniDopera)
{
PrestazioniDopera dealP = (PrestazioniDopera)deal;
if((deal.eAcquistabile()))
{
visualizzaPrestazione(dealP,show_offers);
}
continue;
}
@@ -283,7 +294,7 @@ public class Catalogo{
* @param a
* @param location_user_to_compare
*/
public void print_cat_user (ArrayList<Utilizzabile> a, String location_user_to_compare){
public void print_cat_user (ArrayList<Utilizzabile> a, String location_user_to_compare, JTextArea show_offers){
for(Utilizzabile deal: a)
{
if(deal instanceof Vacanze)
@@ -291,7 +302,7 @@ public class Catalogo{
Vacanze dealVacanza = (Vacanze)deal;
if((dealVacanza.eAcquistabile()))
{
visualizzaVacanza(dealVacanza);
visualizzaVacanza(dealVacanza,show_offers);
}
continue;
}
@@ -300,7 +311,7 @@ public class Catalogo{
BeniDiConsumo dealBene = (BeniDiConsumo)deal;
if((dealBene.eAcquistabile()))
{
visualizzaBene(dealBene);
visualizzaBene(dealBene,show_offers);
}
continue;
}
@@ -310,7 +321,16 @@ public class Catalogo{
if((dealCena.eAcquistabile() && dealCena.getLuogo().equals(location_user_to_compare )))
{
visualizzaCena(dealCena);
visualizzaCena(dealCena,show_offers);
}
continue;
}
if(deal instanceof PrestazioniDopera)
{
PrestazioniDopera dealP = (PrestazioniDopera)deal;
if((deal.eAcquistabile()))
{
visualizzaPrestazione(dealP, show_offers);
}
continue;
}
@@ -336,7 +356,7 @@ public class Catalogo{
* @throws ClassNotFoundException
* @throws IOException
*/
public void offerteAttive(String user) throws FileNotFoundException, ClassNotFoundException, IOException
public void offerteAttive(String user, JTextArea show_offers) throws FileNotFoundException, ClassNotFoundException, IOException
{
Entry loggedUser = Access.get_user_data(user);
if(!(loggedUser.getType()))
@@ -447,7 +467,7 @@ public class Catalogo{
}
Collections.sort(catalogoOfferte,new CompareDataScadenza());
print_cat_admin (catalogoOfferte);
print_cat_admin (catalogoOfferte,show_offers);
}else{
class CompareID implements Comparator<Utilizzabile> {
@@ -540,7 +560,7 @@ public class Catalogo{
Collections.sort(catalogoOfferte,new CompareID());
print_cat_admin (catalogoOfferte);
print_cat_admin (catalogoOfferte,show_offers);
}
@@ -637,7 +657,7 @@ public class Catalogo{
Collections.sort(catalogoOfferte,new CompareIDUser());
print_cat_user(catalogoOfferte,loggedUser.getLocation());
print_cat_user(catalogoOfferte,loggedUser.getLocation(),show_offers);
}
}
@@ -657,17 +677,17 @@ public class Catalogo{
if(deal instanceof Vacanze)
{
Vacanze dealVacanza = (Vacanze)deal;
if(!(dealVacanza.eAcquistabile())) {visualizzaVacanza(dealVacanza);continue;}
//if(!(dealVacanza.eAcquistabile())) {visualizzaVacanza(dealVacanza);continue;}
}
if(deal instanceof BeniDiConsumo)
{
BeniDiConsumo dealBene = (BeniDiConsumo)deal;
if(!(dealBene.eAcquistabile())) {visualizzaBene(dealBene);continue;}
//if(!(dealBene.eAcquistabile())) {visualizzaBene(dealBene);continue;}
}
if(deal instanceof CeneInRistoranti)
{
CeneInRistoranti dealCena = (CeneInRistoranti)deal;
if(!(dealCena.eAcquistabile())) {visualizzaCena(dealCena);continue;}
//if(!(dealCena.eAcquistabile())) {visualizzaCena(dealCena);continue;}
}
}
}
@@ -678,17 +698,13 @@ public class Catalogo{
* @throws ClassNotFoundException
* @throws IOException
*/
public void aggiungiCredito(String user) throws FileNotFoundException, ClassNotFoundException, IOException
public void aggiungiCredito(String user, String in_double) throws FileNotFoundException, ClassNotFoundException, IOException
{
Entry loggedUser = Access.get_user_data(user);
System.out.println("----- Acquisto Credito -----");
System.out.println("Saldo Attuale:"+ loggedUser.getBalance());
System.out.println("Aggiungi importo da ricaricare:");
Scanner inputData = new Scanner(System.in);
String euro = inputData.nextLine();
String euro = in_double;
loggedUser.setBalance(Double.parseDouble(euro));
Access.replace_data(user, loggedUser);
System.out.println("Saldo attuale: "+loggedUser.getBalance());
}
/**
@@ -699,90 +715,175 @@ public class Catalogo{
* @throws ClassNotFoundException
* @throws IOException
*/
public void acquistaProdotto(String user) throws FileNotFoundException, ClassNotFoundException, IOException
public boolean acquistaProdotti(String user, ArrayList<Utilizzabile> Carrello) throws FileNotFoundException, ClassNotFoundException, IOException
{
Entry loggedUser = Access.get_user_data(user);
System.out.println("----- Shop ----");
System.out.println("### Prodotti ###");
offerteAttive(user);
System.out.println("Offerta da acquistare[inserisci id]: ");
Scanner inputData = new Scanner(System.in);
String idProd = inputData.nextLine();
int idDel = Integer.parseInt(idProd);
boolean trovato=false;
ArrayList<StoricoItem> storico = loggedUser.getStorico();
double totale = 0;
for(Utilizzabile dealsc: catalogoOfferte)
for(Utilizzabile dealsc: Carrello)
{
if((dealsc instanceof Vacanze) && ((Vacanze)dealsc).getIdViaggio()==idDel)
if(dealsc instanceof Vacanze)
{
Vacanze dealVacanza = (Vacanze)dealsc;
if(dealVacanza.eAcquistabile() && loggedUser.getBalance()>=dealVacanza.getPrezzoPSingola())
{
trovato=true;
storico.add(new StoricoItem("Viaggio: "+dealVacanza.getLocalitaViaggio(), new GregorianCalendar() ,dealVacanza.getPrezzoPSingola()));
dealVacanza.setViaggiVenduti();
loggedUser.setBalance((dealVacanza.getPrezzoPSingola() * (-1)));
store_data();
Access.replace_data(user, loggedUser);
System.out.println("************************************\nAcquisto completato con successo! \n************************************\nSaldo Attuale:" + loggedUser.getBalance());
}
else
{
System.out.println("Il prodotto non e' acquistabile e/o Credito insufficiente, ricaricare");
trovato=true;
break;
}
totale += dealVacanza.get_prezzo_scontato();
}
if((dealsc instanceof BeniDiConsumo) && ((BeniDiConsumo) dealsc).getIdBene()==idDel)
if(dealsc instanceof BeniDiConsumo)
{
BeniDiConsumo dealBene = (BeniDiConsumo)dealsc;
if(dealBene.eAcquistabile() && loggedUser.getBalance()>=dealBene.getPrezzoBene())
{
trovato=true;
storico.add(new StoricoItem("Prodotto: "+dealBene.getDescrizioneBene(), new GregorianCalendar() ,dealBene.getPrezzoBene()));
dealBene.setBeniVenduti();
loggedUser.setBalance((dealBene.getPrezzoBene() * (-1)));
Access.replace_data(user, loggedUser);
store_data();
System.out.println("************************************\nAcquisto completato con successo! \n************************************\nSaldo Attuale:" + loggedUser.getBalance());
}
else
{
System.out.println("Il prodotto non e' acquistabile e/o Credito insufficiente, ricaricare");
trovato=true;
break;
}
totale += dealBene.get_prezzo_scontato();
}
if( (dealsc instanceof CeneInRistoranti) && ((CeneInRistoranti) dealsc).getIdCena()==idDel)
if( dealsc instanceof CeneInRistoranti)
{
CeneInRistoranti dealCena = (CeneInRistoranti)dealsc;
if(dealCena.eAcquistabile() && loggedUser.getBalance()>=dealCena.getCostoPerPersona())
{
trovato=true;
storico.add(new StoricoItem("Cena ristorante "+dealCena.getNomeRistorante()+" "+dealCena.getDescrizione_cena(), new GregorianCalendar() ,dealCena.getCostoPerPersona()));
dealCena.setCeneVendute();
loggedUser.setBalance((dealCena.getCostoPerPersona() * (-1)));
Access.replace_data(user, loggedUser);
store_data();
System.out.println("*************************************\nAcquisto completato con successo! \n************************************\nSaldo Attuale:" + loggedUser.getBalance());
}
else
{
System.out.println("Il prodotto non e' acquistabile e/o Credito insufficiente, ricaricare");
trovato=true;
break;
}
totale += dealCena.get_prezzo_scontato();
}
if( dealsc instanceof PrestazioniDopera)
{
PrestazioniDopera deal = (PrestazioniDopera)dealsc;
totale += deal.get_prezzo_scontato();
}
}
if(!trovato) System.out.println("### Prodotto non presente nel catalogo");
}
/**
if (Carrello.size() >= Global.getMin_num_articoli_per_sconto()){
totale = totale - (totale * Global.getSconto_per_min_num_articoli());
}
if (totale <= loggedUser.getBalance()){
for(Utilizzabile dealsc: Carrello)
{
if(dealsc instanceof Vacanze)
{
Vacanze dealVacanza = (Vacanze)dealsc;
storico.add(new StoricoItem("Viaggio: "+dealVacanza.getLocalitaViaggio(), new GregorianCalendar() ,dealVacanza.get_prezzo_scontato()));
dealVacanza.setViaggiVenduti();
store_data();
Access.replace_data(user, loggedUser);
}
if(dealsc instanceof BeniDiConsumo)
{
BeniDiConsumo dealBene = (BeniDiConsumo)dealsc;
storico.add(new StoricoItem("Prodotto: "+dealBene.getDescrizioneBene(), new GregorianCalendar() ,dealBene.get_prezzo_scontato()));
dealBene.setBeniVenduti();
Access.replace_data(user, loggedUser);
store_data();
}
if (dealsc instanceof CeneInRistoranti)
{
CeneInRistoranti dealCena = (CeneInRistoranti)dealsc;
storico.add(new StoricoItem("Cena ristorante "+dealCena.getNomeRistorante()+" "+dealCena.getDescrizione_cena(), new GregorianCalendar() ,dealCena.get_prezzo_scontato()));
dealCena.setCeneVendute();
Access.replace_data(user, loggedUser);
store_data();
}
if (dealsc instanceof PrestazioniDopera)
{
PrestazioniDopera deal = (PrestazioniDopera)dealsc;
storico.add(new StoricoItem("Prestazione d'opera "+deal.getDescrizione(), new GregorianCalendar() ,deal.get_prezzo_scontato()));
deal.setPrestazioniVendute();
Access.replace_data(user, loggedUser);
store_data();
}
}
loggedUser.setBalance(loggedUser.getBalance() - totale);
Access.replace_data(user, loggedUser);
store_data();
return true;
}else{
return false;
}
}
public int search_product_id(String user, String in_id) throws FileNotFoundException, ClassNotFoundException, IOException
{
Entry loggedUser = Access.get_user_data(user);
//System.out.println("----- Shop ----");
//System.out.println("### Prodotti ###");
//System.out.println("Offerta da acquistare[inserisci id]: ");
String idProd = in_id;
int idDel = Integer.parseInt(idProd);
int trovato = -1;
for( int i= 0; i< catalogoOfferte.size() ;i++)
{
Utilizzabile dealsc = catalogoOfferte.get(i);
if((dealsc instanceof Vacanze) && ((Vacanze)dealsc).getIdViaggio()==idDel)
{
Vacanze dealVacanza = (Vacanze)dealsc;
if(dealVacanza.eAcquistabile() )
{
trovato=i;
}
else
{
break;
}
}
if((dealsc instanceof BeniDiConsumo) && ((BeniDiConsumo) dealsc).getIdBene()==idDel)
{
BeniDiConsumo dealBene = (BeniDiConsumo)dealsc;
if(dealBene.eAcquistabile() )
{
trovato=i;
}
else
{
break;
}
}
if( (dealsc instanceof CeneInRistoranti) && ((CeneInRistoranti) dealsc).getIdCena()==idDel)
{
CeneInRistoranti dealCena = (CeneInRistoranti)dealsc;
if(dealCena.eAcquistabile() )
{
trovato=i;
}
else
{
break;
}
}
if( (dealsc instanceof PrestazioniDopera) && ((PrestazioniDopera) dealsc).getIdPrOpera()==idDel)
{
PrestazioniDopera deal = (PrestazioniDopera)dealsc;
if(deal.eAcquistabile() )
{
trovato=i;
}
else
{
break;
}
}
}
return trovato;
}
/**
* Questo metodo visualizza lo storico degli ordini effettuati dall'utente. rende possibile l'ordinamento in base alla data di scadenza o per prezzo.
*
* @param user
@@ -861,7 +962,7 @@ public class Catalogo{
*
* @param dealVacanza - oggetto di tipo Vacanze che rappresenta l'offerta della Vacanza da visualizzare
*/
public void visualizzaVacanza(Vacanze dealVacanza)
public void visualizzaVacanza(Vacanze dealVacanza, JTextArea show)
{
GregorianCalendar partenza = dealVacanza.getDataPartenzaViaggio();
int giornoP = partenza.get(Calendar.DAY_OF_MONTH);
@@ -872,7 +973,7 @@ public class Catalogo{
int meseS = scadenza.get(Calendar.MONTH);
int annoS = scadenza.get(Calendar.YEAR);
System.out.println("#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--");
}
/**
@@ -881,24 +982,29 @@ public class Catalogo{
* @param dealBene - oggetto di tipo beniDiConsumo che rappresenta l'offerta del bene da visualizzare
*/
public void visualizzaBene(BeniDiConsumo dealBene)
public void visualizzaBene(BeniDiConsumo dealBene, JTextArea show)
{
System.out.println("#Articolo-"+dealBene.getIdBene()+"# Descrizione: "+dealBene.getDescrizioneBene()+" Prezzo: "+dealBene.getPrezzoBene()+"| Quantita in magazzino: "+dealBene.getBeniInStock()+"\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--");
}
/**
*
* Questo metodo visualizza una cena, descrivendone i suoi dati.
* @param dealCena - oggetto di tipo CeneInRistoranti che rappresenta l'offerta della cena da visualizzare
*/
public void visualizzaCena(CeneInRistoranti dealCena)
public void visualizzaCena(CeneInRistoranti dealCena, JTextArea show)
{
GregorianCalendar scadenzaCena = dealCena.getDataScadenzaOffertaCena();
int giornoSC = scadenzaCena.get(Calendar.DAY_OF_MONTH);
int meseSC = scadenzaCena.get(Calendar.MONTH);
int annoSC = scadenzaCena.get(Calendar.YEAR);
System.out.println("#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--");
}
/**

View File

@@ -46,19 +46,19 @@ public class ClientSession {
switch(sceltaMenu)
{
case "1":
catalogo.aggiungiCredito(username);
//catalogo.aggiungiCredito(username);
break;
case "2":
catalogo.offerteAttive(username);
//catalogo.offerteAttive(username);
break;
case "3":
catalogo.acquistaProdotto(username);
//catalogo.acquistaProdotto(username);
break;
case "4":
catalogo.visualizzaStorico(username);
break;
case "5":
r.reshow = false;
// r.reshow = false;
break;
}
}