bool compareProdutos(Produto pa, Produto pB) // o mesmo que compareNames so que para produtos { if (pa.getNome() < pB.getNome()) { return true; } else return false; }
void Negocios_Estoque::ExcluirProduto(std::string nomeProduto){ Produto Produto; try{ Produto.ExcluirProduto(nomeProduto); }catch(ErroEstoque &exp){ throw(ErroNegocios_Estoque(exp.what())); } }
Carrinho::Carrinho(){ produtos = new Pilha<Produto*>(); int qtd = (rand() % 100) + 2; for(int i = 0; i < qtd; i++){ Produto* produto = new Produto(); valorTotalDeCompras += produto->getValor(); produtos->add(produto); } }
void Negocios_Estoque::AtualizaQuantProduto(std::string produto, int novaQuant){ Produto Produto; try{ Produto.AtualizaQuantProduto(produto, novaQuant); }catch(ErroEstoque &exp){ throw(ErroNegocios_Estoque(exp.what())); } }
int Negocios_Estoque::CalculaQuant(std::string nomeProduto, int quantretirada){ std::list<Produto> listAuxProd; Produto Produto; try{ Produto.BuscarProduto(listAuxProd, nomeProduto); }catch(ErroEstoque &exp){ ErroNegocios_Estoque(exp.what() + ">Erro ao cacular quantidade retirada"); } return listAuxProd.front().getQuantidade() - quantretirada; }
void LerCompras(string arquivo, Maps *mapas) { vector<vector<string> > dados = Ler(arquivo.c_str()); for(vector<string>& data : dados) { if(data.empty()) continue; Fornecedor *forn = mapas->fornecedorId(atoi(data.at(1).c_str())); Produto *prod = mapas->produtoId(atoi(data.at(3).c_str())); int quant = atoi(data.at(4).c_str()); prod->setEstoqueAtual(quant); forn->setDivida(quant * prod->getCusto()); } return; }
void Venda::calc_lucro_receita(map<int, Venda> mapa_v, map<int, Produto> mapa_p, Produto& p) { double lucro = 0; double receita = 0; for(auto& v : mapa_v) { if(p.get_codigo() == (v.second).get_produto()) { lucro = lucro + (v.second).lucro(mapa_p); receita = receita + (v.second).receita(mapa_p); } } p.set_lucro_receita(lucro, receita); }
void Negocios_Estoque::RetiraQuantProduto(std::string nomeProduto, int quant){ Produto Produto; float media; int novaquant; try{ media = this->CalculaMedia(nomeProduto, quant); novaquant = this->CalculaQuant(nomeProduto, quant); Produto.RetiraQuantProduto(nomeProduto, novaquant, media); }catch(ErroNegocios_Estoque &exp){ }catch(ErroEstoque &exp){ throw(ErroNegocios_Estoque(exp.what())); } }
bool Prod_validade::produto_c_validade(Produto prod) { int dias = prod.get_dias_embalado(); if (dias <= VALIDADE) return true; else return false; }
float Negocios_Estoque::CalculaMedia(std::string nomeProduto, int quant){ std::list<Produto> listAuxProd; Produto Produto; try{ Produto.BuscarProduto(listAuxProd, nomeProduto); }catch(ErroEstoque &exp){ ErroNegocios_Estoque(exp.what() + ">Erro ao cacular media de consumo"); } return (listAuxProd.front().getMedia() + quant)/2; }
void Produto_ant::insere(Produto & p){ HASH_PRODS::iterator it = tab_produtos.find(p); while(it != tab_produtos.end()){ if((*it) != p && p.get_dias_embalado() >= DOIS_ANOS) tab_produtos.insert(p); it++; } }
void Negocios_Estoque::BuscarProduto(std::list<Produto> &listProduto, std::string nomeProduto){ Produto Prod; std::list<Produto> listAuxProd; try{ Prod.BuscarProduto(listAuxProd, nomeProduto); }catch(ErroEstoque &exp){ throw(ErroNegocios_Estoque(exp.what())); } if(!listAuxProd.empty()){ listAuxProd.front().setDias(this->CalculaDias(listAuxProd.front().getQuantidade(), listAuxProd.front().getMedia())); listProduto.push_back(listAuxProd.front()); listAuxProd.pop_front(); } }
/** * Função que adiciona ao vector de produtos "carrinho" um novo produto. * @param p1 objecto do tipo Produto que vai ser adicionado ao vector */ void Compra::adic_ao_carrinho(Produto p1) { int tam_vec = carrinho.size(); for (int i = 0; i < tam_vec; i++) { if (p1.get_cod() == carrinho[i].get_cod()) return; else carrinho.push_back(p1); } }
int Venda::prod_vendidos(Produto p, map<int, Venda> mapa_v){ int saldo = 0; for(auto& v : mapa_v){ if(p.get_codigo() == (v.second).produto){ saldo = saldo + (v.second).quantidade; } } return saldo; }
void Hipermercado::adiciona_produto(Produto p1) { int tam_vec = produtos.size(); if(produtos.size() == 0) produtos.push_back(p1); else{ for (int i = 0; i < tam_vec; i++) { if (p1.get_nome() == produtos[i].get_nome()) //quer dizer que esse empregado já se encontra no vector return; else produtos.push_back(p1); } } }
void LerVendas(std::string arquivo, Maps* mapas, std::vector<MeioPagamento*>* MPs) { vector<vector<string> > dados = Ler(arquivo.c_str()); for(vector<string>& data : dados) { int corr = 0; if(data.empty()) continue; char MP = data.at(data.size()-1).at(0); if(MP != 'F') corr = -1; Produto *prod = mapas->produtoId(atoi(data.at(2+corr).c_str())); int quant = atoi(data.at(3+corr).c_str()); if(MP == 'F') { Cliente *clt = mapas->clienteId(atoi(data.at(0).c_str())); clt->setDivida(quant * prod->getPreco()); } prod->setEstoqueAtual(-quant); prod->setVendidos(quant); MPs->at(MeioPagamento::getNum(MP))->addReceita(prod->getPreco()*quant, (prod->getPreco()-prod->getCusto())*quant); } return; }
bool Produto::operator ==(Produto p) { return nome == p.getNome() && classe == p.getClass(); }
void Produto::operator =(Produto p) { setNome(p.getNome()); setQuantidade(p.getQuantidade()); setValorUnit(p.getValorUnit()); setClasse(p.getClass()); }