-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbolletta.cpp
50 lines (38 loc) · 1.58 KB
/
bolletta.cpp
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
#include "bolletta.h"
Bolletta::Bolletta(const std::string & nome, float importo, const Data &dataLimite, Inquilino *incaricato, bool svolto):
Incarico(nome,incaricato,svolto), Pagamento(importo), _dataLimite(dataLimite) {}
void Bolletta::setDataLimite(const Data& dataLimite)
{
_dataLimite=dataLimite;
}
Bolletta* Bolletta::clone() const {return new Bolletta(*this);}
bool Bolletta::posponi(const Data& d) const
{
return d < _dataLimite && Incarico::posponi(d);
}
std::string Bolletta::getLabel() const {return "Bolletta";}
void Bolletta::exportXml(QXmlStreamWriter & xmlOutput,string data) const
{
xmlOutput.writeStartElement(QString::fromStdString("BOLLETTA"));
Pagamento::exportXml(xmlOutput,data);
xmlOutput.writeTextElement("dataLimite", QString::fromStdString(_dataLimite.dataToString()));
xmlOutput.writeEndElement();
}
std::string Bolletta::generaNota() const
{
return "BOLLETTA\n\n"
+ Incarico::generaNota()+"\n"+ Pagamento::generaNota() + "\nPunteggio: "+std::to_string(calcolaPunteggio())+" punti \n" +
"Data limite: " + _dataLimite.dataToString()
+ "\n\n" + "A pagare e morire si fa sempre in tempo!";
}
void Bolletta::importXml(QXmlStreamReader & xmlInput, vector<string> & parametri)
{
Pagamento::importXml(xmlInput,parametri);
string dataLimite;
assignWithXml(xmlInput, "dataLimite", dataLimite);
Data diPartenza=parametri[10];
Data daRaggiungere(dataLimite);
int scostamento=Data(diPartenza).differenza(dataLimite);
parametri[9]=std::to_string(scostamento);
parametri[1]="Bolletta";
}