Creazione Classi:

- 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.
This commit is contained in:
Simone Argenziano
2014-01-10 21:29:56 +01:00
parent f35c37ae4e
commit d311e18b12
5 changed files with 553 additions and 0 deletions

View File

@@ -0,0 +1,140 @@
package it.unisa.info13d.Articoli;
import java.io.Serializable;
import java.util.GregorianCalendar;
/**
* Created with MONSTER.
* User: xgiovio
* Date: 16/12/13
* Time: 18.46
*/
/**
*
* Classe che rappresenta un bene di consumo all'interno del catalogo.
*
*/
public class BeniDiConsumo2 extends Utilizzabile2 implements Utilizzabile, Serializable {
/**
* Costruttore che inizializza i valori del bene di consumo
*
* @param idBene
* @param descrizioneBene
* @param prezzoBene
* @param beniInStock
*/
public BeniDiConsumo2 ( int idBene, String descrizioneBene, double prezzoBene, int beniInStock ){
this.idBene=idBene;
this.descrizioneBene=descrizioneBene;
this.prezzoBene=prezzoBene;
this.beniInStock=beniInStock;
}
@Override
public boolean eAcquistabile() {
if(beniVenduti<beniInStock)
return true;
return false;
}
/**
* @return - id bene
*/
public int getIdBene() {
return idBene;
}
/**
* @return - descrizione bene
*/
public String getDescrizioneBene() {
return descrizioneBene;
}
/**
* @return - prezzo del bene
*/
public double getPrezzoBene() {
return prezzoBene;
}
/**
* @return - la quantita dei beni da vendere
*/
public int getBeniInStock() {
return beniInStock;
}
/**
* @return - numero di oggetti venduti
*/
public int getBeniVenduti() {
return beniVenduti;
}
/**
* @param descrizioneBene - descrizione del bene
*/
public void setDescrizioneBene(String descrizioneBene) {
this.descrizioneBene = descrizioneBene;
}
/**
* @param prezzoBene - prezzo del bene
*/
public void setPrezzoBene(double prezzoBene) {
this.prezzoBene = prezzoBene;
}
/**
* @param beniInStock - quantita' del bene disponibile per la vendita
*/
public void setBeniInStock(int beniInStock) {
this.beniInStock = beniInStock;
}
/**
* @return - la scadenza del bene (viene considerata una data a lungo termine)
*/
public GregorianCalendar getScadenza() {
return scadenza;
}
/**
* Questo metodo setta i beni venduti, decrementa la quantita in magazzino e incrementa il numero di oggeti venduti
*/
public void setBeniVenduti() {
beniInStock--;
beniVenduti++;
}
@Override
public double get_prezzo_scontato() {
GregorianCalendar dataOdierna = new GregorianCalendar(2008, 11, 18);
long milliseconds1 = dataOdierna.getTimeInMillis();
long milliseconds2 = scadenza.getTimeInMillis();
long diff = milliseconds2 - milliseconds1;
long diffGiorni = diff / (24 * 60 * 60 * 1000); //differenza in giorni
if( diffGiorni>=7 )
return prezzoBene*0.10; //Prezzo scontato del 10%
else
return prezzoBene; //Nessuno sconto applicabile
}
private int idBene;
private int beniInStock; //Numero totale di prodotti da vendere
private int beniVenduti; //Numero di prodotti venduti
private double prezzoBene;
private double giudizioFornitore; //Giudizio sul fornitore che varia da 1 a 5
private GregorianCalendar scadenza = new GregorianCalendar(99999,0,1);
private String fornitore;
private String descrizioneBene;
}

View File

@@ -0,0 +1,188 @@
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 Utilizzabile, 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(2008, 11, 18);
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 * ( 0.2 ); //il prezzo viene scontato del 20% (10%+10%)
else
return costoPerPersona * ( 0.1 ); //il prezzo viene scontato del 10%
}
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;
}

View File

@@ -0,0 +1,82 @@
package it.unisa.info13d.Articoli;
public class PrestazioniDopera2 extends Utilizzabile2{
@Override
public boolean eAcquistabile() {
// TODO Auto-generated method stub
return false;
}
@Override
public double get_prezzo_scontato() {
return 0;
}
public int getIdPrOpera() {
return idPrOpera;
}
public void setIdPrOpera(int idPrOpera) {
this.idPrOpera = idPrOpera;
}
public int getGiudizioFornitore() {
return giudizioFornitore;
}
public void setGiudizioFornitore(int giudizioFornitore) {
this.giudizioFornitore = giudizioFornitore;
}
public int getPrestazioniVendute() {
return prestazioniVendute;
}
public void setPrestazioniVendute(int prestazioniVendute) {
this.prestazioniVendute = prestazioniVendute;
}
public double getPrezzoPrestazione() {
return prezzoPrestazione;
}
public void setPrezzoPrestazione(double prezzoPrestazione) {
this.prezzoPrestazione = prezzoPrestazione;
}
public String getLocalita() {
return Localita;
}
public void setLocalita(String localita) {
Localita = localita;
}
public String getDescrizione() {
return Descrizione;
}
public void setDescrizione(String descrizione) {
Descrizione = descrizione;
}
public String getFornitore() {
return Fornitore;
}
public void setFornitore(String fornitore) {
Fornitore = fornitore;
}
private int idPrOpera;
private int giudizioFornitore;
private int prestazioniVendute;
private double prezzoPrestazione;
private String Localita;
private String Descrizione;
private String Fornitore;
}

View File

@@ -11,6 +11,10 @@ package it.unisa.info13d.Articoli;
public abstract class Utilizzabile2 {
public abstract boolean eAcquistabile();
/**
*
* @return metodo per l'applicazione delle politiche di sconto relative ad un articolo.
*/
public abstract double get_prezzo_scontato();

View File

@@ -0,0 +1,139 @@
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;
}