Aggiunto l'ordine sulla visualizzazione delle offerte per admin e user

This commit is contained in:
2013-12-18 20:01:28 +01:00
parent 361d1bd8f4
commit b43016364a
2 changed files with 383 additions and 41 deletions

View File

@@ -1,6 +1,7 @@
package it.unisa.info13d.Articoli;
import java.io.Serializable;
import java.util.GregorianCalendar;
/**
* Created with MONSTER.
@@ -65,6 +66,10 @@ public class BeniDiConsumo implements Utilizzabile, Serializable{
this.beniInStock = beniInStock;
}
public GregorianCalendar getScadenza() {
return scadenza;
}
public void setBeniVenduti() {
beniInStock--;
beniVenduti++;
@@ -75,4 +80,5 @@ public class BeniDiConsumo implements Utilizzabile, Serializable{
private double prezzoBene;
private int beniInStock; //Numero totale di prodotti da vendere
private int beniVenduti; //Numero di prodotti venduti
private GregorianCalendar scadenza = new GregorianCalendar(99999,0,1);
}

View File

@@ -1,4 +1,5 @@
package it.unisa.info13d.GestioneCatalogo;
import java.util.*;
import it.unisa.info13d.Articoli.BeniDiConsumo;
import it.unisa.info13d.Articoli.CeneInRistoranti;
@@ -24,11 +25,7 @@ import java.io.ObjectOutputStream;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
/**
* Created with PC-STATION.
* User: lebon
@@ -237,6 +234,82 @@ public class Catalogo{
}
}
public void print_cat_admin (ArrayList<Utilizzabile> a){
for(Utilizzabile deal: a)
{
if(deal instanceof Vacanze)
{
Vacanze dealVacanza = (Vacanze)deal;
if((dealVacanza.eAcquistabile()))
{
visualizzaVacanza(dealVacanza);
}
continue;
}
if(deal instanceof BeniDiConsumo)
{
BeniDiConsumo dealBene = (BeniDiConsumo)deal;
if((dealBene.eAcquistabile()))
{
visualizzaBene(dealBene);
}
continue;
}
if(deal instanceof CeneInRistoranti)
{
CeneInRistoranti dealCena = (CeneInRistoranti)deal;
if((dealCena.eAcquistabile()))
{
visualizzaCena(dealCena);
}
continue;
}
}
}
public void print_cat_user (ArrayList<Utilizzabile> a, String location_user_to_compare){
for(Utilizzabile deal: a)
{
if(deal instanceof Vacanze)
{
Vacanze dealVacanza = (Vacanze)deal;
if((dealVacanza.eAcquistabile()))
{
visualizzaVacanza(dealVacanza);
}
continue;
}
if(deal instanceof BeniDiConsumo)
{
BeniDiConsumo dealBene = (BeniDiConsumo)deal;
if((dealBene.eAcquistabile()))
{
visualizzaBene(dealBene);
}
continue;
}
if(deal instanceof CeneInRistoranti)
{
CeneInRistoranti dealCena = (CeneInRistoranti)deal;
if((dealCena.eAcquistabile() && dealCena.getLuogo().equals(location_user_to_compare )))
{
visualizzaCena(dealCena);
}
continue;
}
}
}
protected long convert_calendar_to_int (GregorianCalendar in){
return in.getTimeInMillis();
}
/**
* Questo metodo visualizza le offerte attive del catalogo
* @throws IOException
@@ -248,40 +321,303 @@ public class Catalogo{
Entry loggedUser = Access.get_user_data(user);
if(!(loggedUser.getType()))
{
//DO SOMETHING !
}
Scanner reader = new Scanner(System.in);
for(Utilizzabile deal: catalogoOfferte)
{
if(deal instanceof Vacanze)
{
Vacanze dealVacanza = (Vacanze)deal;
if((dealVacanza.eAcquistabile()))
{
visualizzaVacanza(dealVacanza);
}
continue;
}
if(deal instanceof BeniDiConsumo)
{
BeniDiConsumo dealBene = (BeniDiConsumo)deal;
if((dealBene.eAcquistabile()))
{
visualizzaBene(dealBene);
}
continue;
}
if(deal instanceof CeneInRistoranti)
{
CeneInRistoranti dealCena = (CeneInRistoranti)deal;
if((dealCena.eAcquistabile()))
{
visualizzaCena(dealCena);
}
continue;
}
}
System.out.println("1 --> Ordina Per Data di Scadenza");
System.out.println("2 --> Ordina Per ID");
String choice;
choice = reader.nextLine();
for ( ; !(choice.equals("1")) && !(choice.equals("2")) ;){
System.out.println("Scelta Errata. Riprovare");
choice = reader.nextLine();
}
if (choice.equals("1")){
class CompareDataScadenza implements Comparator<Utilizzabile> {
@Override
public int compare(Utilizzabile e1, Utilizzabile e2) {
if (e1 instanceof BeniDiConsumo){
//beni vs
if (e2 instanceof Vacanze){
//beni vs vacanze
if (((BeniDiConsumo)e1).getScadenza().getTimeInMillis() < ((Vacanze)e2).getScadenzaOfferta().getTimeInMillis())
return -1;
return 1;
}else{
if (e2 instanceof BeniDiConsumo){
//bene vs //bene
if (((BeniDiConsumo)e1).getScadenza().getTimeInMillis() < ((BeniDiConsumo)e2).getScadenza().getTimeInMillis())
return -1;
return 1;
}else{
//bene vs cena
if (((BeniDiConsumo)e1).getScadenza().getTimeInMillis() < ((CeneInRistoranti)e2).getDataScadenzaOffertaCena().getTimeInMillis())
return -1;
return 1;
}
}
}else{
if (e1 instanceof Vacanze){
//vacanze vs
if (e2 instanceof BeniDiConsumo){
//vacanze vs bene
if (((Vacanze)e1).getScadenzaOfferta().getTimeInMillis() < ((BeniDiConsumo)e2).getScadenza().getTimeInMillis())
return -1;
return 1;
}else{
if (e2 instanceof Vacanze){
//vacabnza vs vacanza
if (((Vacanze)e1).getScadenzaOfferta().getTimeInMillis() < ((Vacanze)e2).getScadenzaOfferta().getTimeInMillis())
return -1;
return 1;
}else{
//vacanza vs cena
if (((Vacanze)e1).getScadenzaOfferta().getTimeInMillis() < ((CeneInRistoranti)e2).getDataScadenzaOffertaCena().getTimeInMillis())
return -1;
return 1;
}
}
}else{
//Cene vs
if (e2 instanceof Vacanze){
//cena vs vacanza
if (((CeneInRistoranti)e1).getDataScadenzaOffertaCena().getTimeInMillis() < ((Vacanze)e2).getScadenzaOfferta().getTimeInMillis())
return -1;
return 1;
}else{
if (e2 instanceof CeneInRistoranti){
//cena vs cena
if (((CeneInRistoranti)e1).getDataScadenzaOffertaCena().getTimeInMillis() < ((CeneInRistoranti)e2).getDataScadenzaOffertaCena().getTimeInMillis())
return -1;
return 1;
}else{
//cena vs bene
if (((CeneInRistoranti)e1).getDataScadenzaOffertaCena().getTimeInMillis() < ((BeniDiConsumo)e2).getScadenza().getTimeInMillis())
return -1;
return 1;
}
}
}
}
}
}
Collections.sort(catalogoOfferte,new CompareDataScadenza());
print_cat_admin (catalogoOfferte);
}else{
class CompareID implements Comparator<Utilizzabile> {
@Override
public int compare(Utilizzabile e1, Utilizzabile e2) {
if (e1 instanceof BeniDiConsumo){
//beni vs
if (e2 instanceof Vacanze){
//beni vs vacanze
if (((BeniDiConsumo)e1).getIdBene() < ((Vacanze)e2).getIdViaggio())
return -1;
return 1;
}else{
if (e2 instanceof BeniDiConsumo){
//bene vs //bene
if (((BeniDiConsumo)e1).getIdBene() < ((BeniDiConsumo)e2).getIdBene())
return -1;
return 1;
}else{
//bene vs cena
if (((BeniDiConsumo)e1).getIdBene() < ((CeneInRistoranti)e2).getIdCena())
return -1;
return 1;
}
}
}else{
if (e1 instanceof Vacanze){
//vacanze vs
if (e2 instanceof BeniDiConsumo){
//vacanze vs bene
if (((Vacanze)e1).getIdViaggio() < ((BeniDiConsumo)e2).getIdBene())
return -1;
return 1;
}else{
if (e2 instanceof Vacanze){
//vacabnza vs vacanza
if (((Vacanze)e1).getIdViaggio() < ((Vacanze)e2).getIdViaggio())
return -1;
return 1;
}else{
//vacanza vs cena
if (((Vacanze)e1).getIdViaggio() < ((CeneInRistoranti)e2).getIdCena())
return -1;
return 1;
}
}
}else{
//Cene vs
if (e2 instanceof Vacanze){
//cena vs vacanza
if (((CeneInRistoranti)e1).getIdCena() < ((Vacanze)e2).getIdViaggio())
return -1;
return 1;
}else{
if (e2 instanceof CeneInRistoranti){
//cena vs cena
if (((CeneInRistoranti)e1).getIdCena() < ((CeneInRistoranti)e2).getIdCena())
return -1;
return 1;
}else{
//cena vs bene
if (((CeneInRistoranti)e1).getIdCena() < ((BeniDiConsumo)e2).getIdBene())
return -1;
return 1;
}
}
}
}
}
}
Collections.sort(catalogoOfferte,new CompareID());
print_cat_admin (catalogoOfferte);
}
} else{
class CompareIDUser implements Comparator<Utilizzabile> {
@Override
public int compare(Utilizzabile e1, Utilizzabile e2) {
if (e1 instanceof BeniDiConsumo){
//beni vs
if (e2 instanceof Vacanze){
//beni vs vacanze
if (((BeniDiConsumo)e1).getIdBene() < ((Vacanze)e1).getIdViaggio())
return -1;
return 1;
}else{
if (e2 instanceof BeniDiConsumo){
//bene vs //bene
if (((BeniDiConsumo)e1).getIdBene() < ((BeniDiConsumo)e1).getIdBene())
return -1;
return 1;
}else{
//bene vs cena
if (((BeniDiConsumo)e1).getIdBene() < ((CeneInRistoranti)e1).getIdCena())
return -1;
return 1;
}
}
}else{
if (e1 instanceof Vacanze){
//vacanze vs
if (e2 instanceof BeniDiConsumo){
//vacanze vs bene
if (((Vacanze)e1).getIdViaggio() < ((BeniDiConsumo)e1).getIdBene())
return -1;
return 1;
}else{
if (e2 instanceof Vacanze){
//vacabnza vs vacanza
if (((Vacanze)e1).getIdViaggio() < ((Vacanze)e1).getIdViaggio())
return -1;
return 1;
}else{
//vacanza vs cena
if (((Vacanze)e1).getIdViaggio() < ((CeneInRistoranti)e1).getIdCena())
return -1;
return 1;
}
}
}else{
//Cene vs
if (e2 instanceof Vacanze){
//cena vs vacanza
if (((CeneInRistoranti)e1).getIdCena() < ((Vacanze)e1).getIdViaggio())
return -1;
return 1;
}else{
if (e2 instanceof CeneInRistoranti){
//cena vs cena
if (((CeneInRistoranti)e1).getIdCena() < ((CeneInRistoranti)e1).getIdCena())
return -1;
return 1;
}else{
//cena vs bene
if (((CeneInRistoranti)e1).getIdCena() < ((BeniDiConsumo)e1).getIdBene())
return -1;
return 1;
}
}
}
}
}
}
Collections.sort(catalogoOfferte,new CompareIDUser());
print_cat_user(catalogoOfferte,loggedUser.getLocation());
}
}
/**