188 lines
5.2 KiB
Java
188 lines
5.2 KiB
Java
package it.unisa.info13d.Articoli;
|
||
|
||
import java.io.Serializable;
|
||
import java.util.GregorianCalendar;
|
||
|
||
/**
|
||
* Created with MONSTER.
|
||
* User: xgiovio
|
||
* Date: 16/12/13
|
||
* Time: 18.47
|
||
*/
|
||
|
||
/**
|
||
*
|
||
* Classe che rappresenta una cena all'interno del catalogo.
|
||
*
|
||
*/
|
||
public class CeneInRistoranti2 extends Utilizzabile2 implements Serializable{
|
||
|
||
/**
|
||
*
|
||
* @param idCena - l'id della cena
|
||
* @param nomeRistorante - il ristorante in cui usufruire dell'offerta
|
||
* @param luogo - Ubicazione del ristorante
|
||
* @param descrizione_cena - descrizione della cena (cosa viene offerto dal ristorante)
|
||
* @param costoPerPersona - costo per singola persona
|
||
* @param dataScadenzaOffertaCena - scadenza dell'offerta
|
||
* @param numCenedaVendere - offerte disponibile per la cena
|
||
*/
|
||
|
||
public CeneInRistoranti2(int idCena, String nomeRistorante, String luogo, String descrizione_cena, double costoPerPersona, GregorianCalendar dataScadenzaOffertaCena, int numCenedaVendere){
|
||
this.idCena=idCena;
|
||
this.nomeRistorante=nomeRistorante;
|
||
this.luogo=luogo;
|
||
this.descrizione_cena=descrizione_cena;
|
||
this.costoPerPersona=costoPerPersona;
|
||
this.dataScadenzaOffertaCena=dataScadenzaOffertaCena;
|
||
this.numCenedaVendere=numCenedaVendere;
|
||
}
|
||
|
||
@Override
|
||
public boolean eAcquistabile() {
|
||
if((dataScadenzaOffertaCena.before(new GregorianCalendar())) && (numCenedaVendere>ceneVendute))
|
||
return false;
|
||
return true;
|
||
}
|
||
|
||
/**
|
||
* @return - l'id della cena
|
||
*/
|
||
public int getIdCena() {
|
||
return idCena;
|
||
}
|
||
|
||
/**
|
||
* @return - in nome del ristorante
|
||
*/
|
||
public String getNomeRistorante() {
|
||
return nomeRistorante;
|
||
}
|
||
|
||
/**
|
||
* @return - l'ubicazione del ristorante
|
||
*/
|
||
public String getLuogo() {
|
||
return luogo;
|
||
}
|
||
|
||
/**
|
||
* @return - descrizione della cena
|
||
*/
|
||
public String getDescrizione_cena() {
|
||
return descrizione_cena;
|
||
}
|
||
|
||
/**
|
||
* @return - il costo per ogni singola persona
|
||
*/
|
||
public double getCostoPerPersona() {
|
||
return costoPerPersona;
|
||
}
|
||
|
||
/**
|
||
* @return - data di scadenza dell'offerta
|
||
*/
|
||
public GregorianCalendar getDataScadenzaOffertaCena() {
|
||
return dataScadenzaOffertaCena;
|
||
}
|
||
|
||
/**
|
||
* @return - il numero di cene ancora disponibili per la vendita
|
||
*/
|
||
public int getNumCenedaVendere() {
|
||
return numCenedaVendere;
|
||
}
|
||
|
||
/**
|
||
* @return - il numero di cene vendute
|
||
*/
|
||
public int getCeneVendute() {
|
||
return ceneVendute;
|
||
}
|
||
|
||
/**
|
||
* @param nomeRistorante - setta il nome del ristorante
|
||
*/
|
||
public void setNomeRistorante(String nomeRistorante) {
|
||
this.nomeRistorante = nomeRistorante;
|
||
}
|
||
|
||
/**
|
||
* @param luogo - setta il l'ubicazione del ristorante
|
||
*/
|
||
public void setLuogo(String luogo) {
|
||
this.luogo = luogo;
|
||
}
|
||
|
||
/**
|
||
* @param descrizione_cena - setta la descrizione della cena (Esempio: pizza margherita, patate e dolce)
|
||
*/
|
||
public void setDescrizione_cena(String descrizione_cena) {
|
||
this.descrizione_cena = descrizione_cena;
|
||
}
|
||
|
||
/**
|
||
* @param costoPerPersona - setta il costo per singola persona
|
||
*/
|
||
public void setCostoPerPersona(double costoPerPersona) {
|
||
this.costoPerPersona = costoPerPersona;
|
||
}
|
||
|
||
/**
|
||
* @param dataScadenzaOffertaCena - setta la data di scadenza per l'offerta
|
||
*/
|
||
public void setDataScadenzaOffertaCena(GregorianCalendar dataScadenzaOffertaCena) {
|
||
this.dataScadenzaOffertaCena = dataScadenzaOffertaCena;
|
||
}
|
||
|
||
/**
|
||
* @param numCenedaVendere - setta il numero di cene da vendere
|
||
*/
|
||
public void setNumCenedaVendere(int numCenedaVendere) {
|
||
this.numCenedaVendere = numCenedaVendere;
|
||
}
|
||
|
||
/**
|
||
* Questo metodo all'atto dell'acquisto da parte di un utente, decrementa le cene da vendere ed incrementa quelle vendute
|
||
*/
|
||
public void setCeneVendute()
|
||
{
|
||
numCenedaVendere--;
|
||
ceneVendute++;
|
||
}
|
||
|
||
@Override
|
||
/**
|
||
* Questo metodo stabilisce se <20> possibile applicare o meno uno sconto alle cene.
|
||
* @return Restitisce il prezzo originale se la politica di socnto non <20> applicabile, altrienti restituisce il prezzo scontato del 10%.
|
||
*/
|
||
public double get_prezzo_scontato() {
|
||
GregorianCalendar dataOdierna = new GregorianCalendar();
|
||
|
||
long milliseconds1 = dataOdierna.getTimeInMillis();
|
||
long milliseconds2 = dataScadenzaOffertaCena.getTimeInMillis();
|
||
|
||
long diff = milliseconds2 - milliseconds1;
|
||
long diffGiorni = diff / (24 * 60 * 60 * 1000); //differenza in giorni
|
||
|
||
if( diffGiorni<=7 )
|
||
{
|
||
if( ceneVendute > ( numCenedaVendere/2 ) )
|
||
return costoPerPersona - (costoPerPersona* ( 0.1 )) - (costoPerPersona* ( 0.1 )) ; //generico sconto ultima sett + se 50% vendute
|
||
else
|
||
return costoPerPersona - (costoPerPersona * ( 0.1 )); //generico sconto ultima sett
|
||
}
|
||
else
|
||
return costoPerPersona;
|
||
}
|
||
|
||
private int idCena;
|
||
private String nomeRistorante;
|
||
private String luogo;
|
||
private String descrizione_cena;
|
||
private double costoPerPersona;
|
||
private GregorianCalendar dataScadenzaOffertaCena;
|
||
private int numCenedaVendere;
|
||
private int ceneVendute;
|
||
} |