-
Notifications
You must be signed in to change notification settings - Fork 0
/
MateriaPrima.cpp
112 lines (86 loc) · 2.9 KB
/
MateriaPrima.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
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
#include "MateriaPrima.hpp"
#include <sstream>
using namespace std;
MateriaPrima::MateriaPrima(){
this->LoteAtual = 0;
}
string MateriaPrima::GetNome() {
return this->Nome;
}
float MateriaPrima::GetEstoqueAtual() {
return this->EstoqueAtual;
}
float MateriaPrima::GetEstoqueMinimo() {
return this->EstoqueMinimo;
}
list<Lote> MateriaPrima::GetLotes() {
return this->Lotes;
}
float MateriaPrima::GetMedida(){
return this->Medida;
}
string MateriaPrima::GetUnidadeMedida(){
return this->UnidadeMedida;
}
float MateriaPrima::GetLoteAtual(){
return this->LoteAtual;
}
void MateriaPrima::SetLoteAtual(){
this->LoteAtual++;
}
void MateriaPrima::SetNome(string Nome) {
this->Nome = Nome;
}
void MateriaPrima::SetLotes(float Quantidade, Date DataProducao, float ValorDeCompra){
SetLoteAtual();
Lote NovoLote(Quantidade, DataProducao, GetLoteAtual(), ValorDeCompra);
this->Lotes.push_back(NovoLote);
}
void MateriaPrima::SetEstoqueAtual(float EstoqueAtual) {
this->EstoqueAtual += EstoqueAtual;
}
void MateriaPrima::SetEstoqueMinimo(string EstoqueMinimo) {
string estoqueMinimoQtd = "";
char cEstoqueMinimo[EstoqueMinimo.length()];
float valorQtd = 0;
strcpy (cEstoqueMinimo, EstoqueMinimo.c_str());
for(int i = 0, j = -1; i < EstoqueMinimo.length(); i++){
if(cEstoqueMinimo[i] == ' '){
j++;
i++;
}
if(j > -1) estoqueMinimoQtd += cEstoqueMinimo[i];
else {
valorQtd *= 10;
valorQtd += (float) cEstoqueMinimo[i] - 48;
}
}
//cout << "ESTOQUE: " << valorQtd << estoqueMinimoQtd << endl;
if(estoqueMinimoQtd == "cm2" || estoqueMinimoQtd == "cm" || estoqueMinimoQtd == "g" || estoqueMinimoQtd == "unidades") this->EstoqueMinimo = valorQtd;
else if(estoqueMinimoQtd == "m2") this->EstoqueMinimo = valorQtd * 10000.0;
else if(estoqueMinimoQtd == "m") this->EstoqueMinimo = valorQtd * 100.0;
else if(estoqueMinimoQtd == "kg" || estoqueMinimoQtd == "Kg") this->EstoqueMinimo = valorQtd * 1000.0;
//cout << this->EstoqueMinimo << "\n\n";
}
void MateriaPrima::SetMedida(string Medida) {
string medidaQtd = "";
char cMedida[Medida.length()];
float valorQtd = 0;
strcpy (cMedida, Medida.c_str());
for(int i = 0, j = -1; i < Medida.length(); i++){
if(cMedida[i] == ' '){
j++;
i++;
}
if(j > -1) medidaQtd += cMedida[i];
else {
valorQtd *= 10;
valorQtd += (float) cMedida[i] - 48;
}
}
this->UnidadeMedida = medidaQtd;
if(medidaQtd == "cm2" || medidaQtd == "cm" || medidaQtd == "g" || medidaQtd == "unidades") this->Medida = valorQtd;
else if(medidaQtd == "m2") this->Medida = valorQtd * 10000.0;
else if(medidaQtd == "m") this->Medida = valorQtd * 100.0;
else if(medidaQtd == "kg" || medidaQtd == "Kg") this->Medida = valorQtd * 1000.0;
}