- PrestazioniDopera2 (Attributi+Metodi setter/getter) Aggiunti gli attributi richiesti alla classe BeniDiConsumo2 Implementate le politiche di sconto generiche per gli articoli con scadenza nell'ultima settimana Implementata scadenza specifica per le Cene.
140 lines
3.7 KiB
Java
140 lines
3.7 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.45
|
|
*/
|
|
public class Vacanze2 extends Utilizzabile2 implements Utilizzabile, Serializable{
|
|
|
|
/**
|
|
* Costruttore per inizialiazzare una Vacanza
|
|
*
|
|
* @param idViaggio
|
|
* @param localitaViaggio
|
|
* @param dataPartenzaViaggio
|
|
* @param scadenzaOfferta
|
|
* @param prezzoPSingola
|
|
*/
|
|
public Vacanze2(int idViaggio, String localitaViaggio, GregorianCalendar dataPartenzaViaggio, GregorianCalendar scadenzaOfferta, double prezzoPSingola){
|
|
this.idViaggio = idViaggio;
|
|
this.localitaViaggio = localitaViaggio;
|
|
this.dataPartenzaViaggio = dataPartenzaViaggio;
|
|
this.scadenzaOfferta = scadenzaOfferta;
|
|
this.prezzoPSingola = prezzoPSingola;
|
|
}
|
|
|
|
@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
|
|
return false;
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* @return - id del viaggio
|
|
*/
|
|
public int getIdViaggio() {
|
|
return idViaggio;
|
|
}
|
|
|
|
/**
|
|
* @return - localita' del viaggio
|
|
*/
|
|
public String getLocalitaViaggio() {
|
|
return localitaViaggio;
|
|
}
|
|
|
|
/**
|
|
* @return - data di partenza
|
|
*/
|
|
public GregorianCalendar getDataPartenzaViaggio() {
|
|
return dataPartenzaViaggio;
|
|
}
|
|
|
|
/**
|
|
* @return - data di scadenza dell'offerta
|
|
*/
|
|
public GregorianCalendar getScadenzaOfferta() {
|
|
return scadenzaOfferta;
|
|
}
|
|
|
|
/**
|
|
* @return - il prezzo per singola persona
|
|
*/
|
|
public double getPrezzoPSingola() {
|
|
return prezzoPSingola;
|
|
}
|
|
|
|
/**
|
|
* @return - il numero di viaggi venduti
|
|
*/
|
|
public int getViaggiVenduti() {
|
|
return viaggiVenduti;
|
|
}
|
|
|
|
/**
|
|
* @param localitaViaggio - setta la localit' del viaggio
|
|
*/
|
|
public void setLocalitaViaggio(String localitaViaggio) {
|
|
this.localitaViaggio = localitaViaggio;
|
|
}
|
|
|
|
/**
|
|
* @param dataPartenzaViaggio - setta la data di patenza del viaggio
|
|
*/
|
|
public void setDataPartenzaViaggio(GregorianCalendar dataPartenzaViaggio) {
|
|
this.dataPartenzaViaggio = dataPartenzaViaggio;
|
|
}
|
|
|
|
/**
|
|
* @param scadenzaOfferta - setta la data di scadenza dell'offerta della vacanza
|
|
*/
|
|
public void setScadenzaOfferta(GregorianCalendar scadenzaOfferta) {
|
|
this.scadenzaOfferta = scadenzaOfferta;
|
|
}
|
|
|
|
/**
|
|
* @param prezzoPSingola - setta il prezzo per singola persona
|
|
*/
|
|
public void setPrezzoPSingola(double prezzoPSingola) {
|
|
this.prezzoPSingola = prezzoPSingola;
|
|
}
|
|
|
|
/**
|
|
* Questo metodo incrementa, dopo ogni acquisto, il numero di viaggi venduti
|
|
*/
|
|
public void setViaggiVenduti()
|
|
{
|
|
viaggiVenduti++;
|
|
}
|
|
|
|
@Override
|
|
public double get_prezzo_scontato() {
|
|
GregorianCalendar dataOdierna = new GregorianCalendar(2008, 11, 18);
|
|
|
|
long milliseconds1 = dataOdierna.getTimeInMillis();
|
|
long milliseconds2 = scadenzaOfferta.getTimeInMillis();
|
|
|
|
long diff = milliseconds2 - milliseconds1;
|
|
long diffGiorni = diff / (24 * 60 * 60 * 1000); //differenza in giorni
|
|
|
|
if( diffGiorni>=7 )
|
|
return prezzoPSingola*0.10; //Prezzo scontato del 10%
|
|
else
|
|
return prezzoPSingola; //Nessuno sconto applicabile
|
|
}
|
|
|
|
private int idViaggio;
|
|
private String localitaViaggio;
|
|
private GregorianCalendar dataPartenzaViaggio;
|
|
private GregorianCalendar scadenzaOfferta;
|
|
private double prezzoPSingola;
|
|
private int viaggiVenduti;
|
|
|
|
}
|