-
Notifications
You must be signed in to change notification settings - Fork 0
/
Noleggio.java
209 lines (165 loc) · 5.9 KB
/
Noleggio.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package A4R;
/**
*
* @author Phoenix
*/
import java.time.LocalDate;
import java.time.Period;
public class Noleggio extends Ordine {
public Noleggio(Utente utente, VeicoloNoleggiabile veicoloNoleggiabile, String luogoRitiro) {
super();
this.utente = utente;
this.veicoloNoleggiabile = veicoloNoleggiabile;
this.luogoRitiro = luogoRitiro;
this.setTipologiaOrdine("Noleggio");
}
private LocalDate inizio;
private LocalDate fine;
private int durataNoleggio;
private Utente utente;
private Concessionario concessionario;
private MetodoPagamentoAdapter metodoPagamentoAdapter;
private int scontoPremium;
private int prezzoGiornaliero;
private int scontoConcessionario;
private int prezzoBase;
public int calcolaDurata(LocalDate inizio, LocalDate fine) {
//Ritorna > 0 se fine è cronologicamente successivo a inizio
return (Period.between(inizio, fine).getDays());
}
public float calcoloTotaleNoleggio(int prezzoGiornaliero, int durataNoleggio, int IVA, int commissioneA4R, float commissionePagamento, int scontoPremium, int scontoA4R, int scontoConcessionario) {
prezzoBase = veicoloNoleggiabile.getPrezzoBase();
if (prezzoBase != 0) {
return ((prezzoGiornaliero * durataNoleggio) + ((prezzoBase * IVA) / 100) + commissioneA4R + commissionePagamento - ((prezzoBase * scontoPremium) / 100) - ((prezzoBase * scontoA4R) / 100) - ((prezzoBase * scontoConcessionario) / 100));
}
return 0;
}
@Override
public void aggiornaAcquisto(LocalDate dataAcquisto) {
}
@Override
public void aggiornaCostoSpedizione(String luogoRitiro) {
this.costoSpedizione = 0;
}
@Override
public float impostaOrdine(MetodoPagamentoAdapter metodoPagamentoAdapter) {
scontoPremium = utente.getScontoPremium();
prezzoGiornaliero = veicoloNoleggiabile.getPrezzoGiornaliero();
scontoConcessionario = concessionario.getScontoConcessionario();
commissionePagamento = metodoPagamentoAdapter.getCommissioniPagamento();
return prezzoFinale = calcoloTotaleNoleggio(prezzoGiornaliero, durataNoleggio, IVA, commissioneA4R, commissionePagamento, scontoPremium, scontoA4R, scontoConcessionario);
}
@Override
public float calcoloTotaleAcquisto(int prezzoBase, int IVA, float tasseDogane, int commissioneA4R, float commissionePagamento, float costoSpedizione, int scontoPremium, int scontoA4R, int scontoConcessionario, int prezzoOptional) {
return 0;
}
@Override
public void aggiornaTasseDogane(String luogoRitiro) {
this.tasseDogane = 0;
}
@Override
public void scegliLuogoRitiro(String luogoRitiro) {
this.luogoRitiro = luogoRitiro;
}
//Getter/Setter
public LocalDate getInizio() {
return inizio;
}
public void setInizio(LocalDate inizio) {
this.inizio = inizio;
}
public LocalDate getFine() {
return fine;
}
public void setFine(LocalDate fine) {
this.fine = fine;
}
public int getPrezzoBase() {
return prezzoBase;
}
public void setPrezzoBase(int prezzoBase) {
this.prezzoBase = prezzoBase;
}
public int getIva() {
return IVA;
}
public float getCommissionePagamento() {
return commissionePagamento;
}
public void setCommissionePagamento(float commissionePagamento) {
this.commissionePagamento = commissionePagamento;
}
public int getPrezzoGiornaliero() {
return prezzoGiornaliero;
}
public void setPrezzoGiornaliero(int prezzoGiornaliero) {
this.prezzoGiornaliero = prezzoGiornaliero;
}
public int getScontoPremium() {
return scontoPremium;
}
public int getScontoA4R() {
return scontoA4R;
}
public void setScontoA4R(int scontoA4R) {
this.scontoA4R = scontoA4R;
}
public int getScontoConcessionario() {
return scontoConcessionario;
}
public int getCommissioneA4R() {
return commissioneA4R;
}
public int getDurataNoleggio() {
return durataNoleggio;
}
public void setDurataNoleggio(int durataNoleggio) {
this.durataNoleggio = durataNoleggio;
}
public Utente getUtente() {
return utente;
}
public void setUtente(Utente utente) {
this.utente = utente;
}
public String getLuogoRitiro() {
return luogoRitiro;
}
public void setLuogoRitiro(String luogoRitiro) {
this.luogoRitiro = luogoRitiro;
}
public float getTasseDogane() {
return tasseDogane;
}
public void setTasseDogane(float tasseDogane) {
this.tasseDogane = tasseDogane;
}
public float getCostoSpedizione() {
return costoSpedizione;
}
public void setCostoSpedizione(float costoSpedizione) {
this.costoSpedizione = costoSpedizione;
}
public float getPrezzoFinale() {
return prezzoFinale;
}
public void setPrezzoFinale(float prezzoFinale) {
this.prezzoFinale = prezzoFinale;
}
public VeicoloNoleggiabile getVeicoloNoleggiabile() {
return veicoloNoleggiabile;
}
public void setVeicoloNoleggiabile(VeicoloNoleggiabile veicoloNoleggiabile) {
this.veicoloNoleggiabile = veicoloNoleggiabile;
}
public Concessionario getConcessionario() {
return concessionario;
}
public void setConcessionario(Concessionario concessionario) {
this.concessionario = concessionario;
}
}