public function listar(iListagemEstoque $listaestoque) { $this->load->model('estoque/estoqueModel'); $this->load->model('produtos/produtosModel'); $this->load->model('produtos/unidademedidaModel'); $this->load->model('produtos/unidadeMedidaEstoqueModel'); $this->load->model('produtos/unidadeMedidaModel'); $estoque = array(); $result = $listaestoque->listar($this->db); if ($result != null) { foreach ($result as $value) { $estoqueModel = new estoqueModel(); $estoqueModel->setId($value['id_estoque']); $estoqueModel->setQuantidadeMinima($value['quantidade_minima']); $estoqueModel->setQuantidadeMaxima($value['quantidade_maxima']); $produtoModel = new produtosModel(); $produtoModel->setId($value['id_produto']); $produtoModel->setFoto($value['foto_produto']); $produtoModel->setCodigoBarra($value['codigo_barra_gti']); $produtoModel->setNome($value['nome_produto']); $estoqueModel->setProduto($produtoModel); $this->db->clear(); $this->db->setTabela('unidade_medida as A, unidade_medida_produto AS B'); $this->db->setCondicao("B.id_produto = ? AND A.id_unidade_medida = B.id_unidade_medida"); $this->db->setOrderBy("B.ordem"); $this->db->setParameter(1, $value['id_produto']); if ($this->db->select()) { $unidadeMedida = $this->db->resultAll(); foreach ($unidadeMedida as $unidade) { $unidadeMedidaModel = new unidadeMedidaModel(); $unidadeMedidaModel->setId($unidade['id_unidade_medida']); $unidadeMedidaModel->setNome($unidade['nome_unidade_medida']); $unidadeMedidaModel->setAbreviacao($unidade['abreviacao_unidade_medida']); $unidadeMedidaEstoqueModel = new unidadeMedidaEstoqueModel(); $unidadeMedidaEstoqueModel->setId($unidade['id_unidade_medida_produto']); $unidadeMedidaEstoqueModel->setUnidadeMedida($unidadeMedidaModel); $unidadeMedidaEstoqueModel->setParaVenda((bool) $unidade['para_venda']); $unidadeMedidaEstoqueModel->setParaEstoque((bool) $unidade['para_estoque']); $unidadeMedidaEstoqueModel->setFator($unidade['fator_unidade_medida']); $unidadeMedidaEstoqueModel->setOrdem($unidade['ordem']); $produtoModel->addUnidadeMedidaEstoque($unidadeMedidaEstoqueModel); } } $estoqueModel->setLotes($this->listarLotes($estoqueModel, $listaestoque->getLocalizacao())); array_push($estoque, $estoqueModel); unset($estoqueModel); } } return $estoque; }
/** * Insere novos produtos * @return boolean, json */ public function inserir(produtosModel $produto) { $data = array('foto_produto' => $produto->getFoto(), 'codigo_barra_gti' => $produto->getCodigoBarra(), 'nome_produto' => $produto->getNome(), 'id_marca' => $produto->getMarca()->getId(), 'id_categoria' => $produto->getCategoria()->getId(), 'descricao_produto' => $produto->getDescricao(), 'status_produto' => $produto->getStatus(), 'data_validade_controlada' => $produto->getControleValidade(), 'data_cadastro_produto' => $produto->getDataCadastro()); $this->db->clear(); $this->db->setTabela('produtos'); $this->db->insert($data); if ($this->db->rowCount() > 0) { $produto->setId($this->db->getUltimoId()); //RETORNA O ID INSERIDO //UNIDADE MEDIDA ESTOQUE if (!empty($produto->getUnidadeMedidaEstoque())) { $this->atualizaUnidadeMedidaEstoque($produto); } //FORNECEDORES if (!empty($produto->getFornecedores())) { $this->atualizaFornecedores($produto); } return $produto; } else { throw new Exception($this->db->getError(), 1); } }
/** * Ação do cadastrar */ public function atualizar() { $codigo = isset($_POST['codigo']) ? filter_var($_POST['codigo']) : ''; $titulo = isset($_POST['titulo']) ? filter_var($_POST['titulo']) : ''; $observacoes = isset($_POST['observacoes']) ? filter_var($_POST['observacoes']) : ''; $produtos = isset($_POST['produtos']) ? filter_var_array($_POST['produtos']) : array(); //validação dos dados $this->load->library('dataValidator', null, true); $this->load->dataValidator->set('Código', $codigo, 'codigo')->is_required()->min_length(3); $this->load->dataValidator->set('Título', $titulo, 'titulo')->is_required()->min_length(2); $this->load->dataValidator->set('Produtos', $produtos, 'produtos')->is_required(); if ($this->load->dataValidator->validate()) { $this->load->model('suprimentos/requisicoes/requisicoesModel'); $this->load->model('suprimentos/requisicoes/requisicaoProdutoModel'); $this->load->model('produtos/produtosModel'); $this->load->model('produtos/unidadeMedidaEstoqueModel'); $this->load->model('funcionarios/usuarioModel'); $requisicoesModel = new requisicoesModel(); foreach ($produtos as $produto) { $unidadeMedidaEstoqueModel = new unidadeMedidaEstoqueModel(); $unidadeMedidaEstoqueModel->setId($produto['idUnidadeMedida']); $produtoModel = new produtosModel(); $produtoModel->setId($produto['id_produto']); $produtoModel->addUnidadeMedida($unidadeMedidaEstoqueModel); $requisicaoProdutoModel = new requisicaoProdutoModel(); $requisicaoProdutoModel->addProduto($produtoModel); $requisicaoProdutoModel->setQuantidade($produto['quantidade']); $requisicoesModel->addProdutoRequisitado($requisicaoProdutoModel); } $usuarioModel = unserialize($_SESSION['user']); $requisicoesModel->setUsuarioCadastrado($usuarioModel); $requisicoesModel->setTitulo($titulo); $requisicoesModel->setCodigo($codigo); $requisicoesModel->setObservacoes($observacoes); $requisicoesModel->setData(date('Y-m-d H:i:s')); //marcas DAO $this->load->dao('suprimentos/requisicoesDao'); try { $requisicoesDao = new requisicoesDao(); echo $requisicoesDao->inserir($requisicoesModel); } catch (Exception $e) { echo $e->getMessage(); } } else { $todos_erros = $this->load->dataValidator->get_errors(); echo json_encode($todos_erros); } }
public function consultar(requisicoesModel $requisicao) { try { $this->load->model('produtos/produtosModel'); $this->load->model('produtos/unidademedidaModel'); $this->load->model('produtos/unidadeMedidaEstoqueModel'); $this->db->clear(); $this->db->setTabela('requisicoes'); $this->db->setCondicao("id_requisicao = '" . $requisicao->getId() . "'"); $this->db->select(); //Requisição $requisicoesModel = new requisicoesModel(); if ($this->db->rowCount() > 0) { $value = $this->db->result(); $requisicoesModel->setId($value['id_requisicao']); $requisicoesModel->setCodigo($value['codigo_requisicao']); $requisicoesModel->setTitulo($value['titulo_requisicao']); $requisicoesModel->setObservacoes($value['observacoes_requisicao']); $requisicoesModel->setData($value['data_requisicao']); $requisicoesModel->setStatus(statusRequisicoes::getAttribute($value['status_requisicao'])); $this->db->clear(); $this->db->setTabela('produtos as a , requisicao_produto as b , unidade_medida as c, unidade_medida_produto as d'); $this->db->setCondicao("a.id_produto = b.id_produto and b.id_requisicao = ? and b.id_unidade_medida_produto = c.id_unidade_medida AND c.id_unidade_medida = d.id_unidade_medida"); $this->db->setParameter(1, $value['id_requisicao']); if ($this->db->select()) { $resultProd = $this->db->resultAll(); foreach ($resultProd as $key => $value) { //unidade medida $unidademedidaModel = new unidademedidaModel(); $unidademedidaModel->setId($value['id_unidade_medida']); //unidade de medida do produto $unidadeMedidaEstoqueModel = new unidadeMedidaEstoqueModel(); $unidadeMedidaEstoqueModel->setId($produto['idUnidadeMedida']); $unidadeMedidaEstoqueModel->setUnidadeMedida($unidademedidaModel); //prodtos $produtosModel = new produtosModel(); $produtosModel->setId($value['id_produto']); $produtosModel->setNome($value['nome_produto']); $produtosModel->setFoto($value['foto_produto']); //produtos requisitados $requisicaoProdutoModel = new requisicaoProdutoModel(); $requisicaoProdutoModel->setId($value['id_requisicao_produto']); $requisicaoProdutoModel->setQuantidade($value['quantidade_produto']); $requisicaoProdutoModel->setProduto($produtosModel); $requisicoesModel->addProdutoRequisitado($produtosModel); } } } return $requisicoesModel; } catch (dbException $e) { return $e->getMessageError(); } }
/** * Ãção de atualizar status */ public function atualizarStatus() { $idProduto = intval($_POST['id']); $status = filter_var($_POST['status']); //PRODUTOS MODEL $this->load->model('produtos/produtosModel'); $produtosModel = new produtosModel(); $produtosModel->setId($idProduto); $produtosModel->setStatus(status::getAttribute($status)); //PRODUTOS DAO $this->load->dao('produtos/produtosDao'); $produtosDao = new produtosDao(); echo $produtosDao->atualizarStatus($produtosModel); }
public function addProdutoListaVenda() { //carregamento das classes dependentes $this->load->dao('produtos/IConsultaProduto'); $this->load->dao('produtos/consultaPorId'); $this->load->dao('produtos/produtosDao'); $this->load->dao('produtos/precosDao'); $this->load->model('produtos/produtosModel'); $this->load->model('caixa/produtosVendidoModel'); $this->load->model('caixa/vendasModel'); $this->load->model('caixa/caixaAbertoModel'); $this->load->model('caixa/caixasModel'); //Obtendo os dados de entrada $dataformat = new dataformat(); $idproduto = $this->http->getRequest('idproduto'); $quantidade = (double) $dataformat->formatar($this->http->getRequest('quantidade'), 'decimal', 'banco'); $produtosModel = new produtosModel(); $produtosModel->setId($idproduto); //obtendo os dados do produto $produtosDao = new produtosDao(); $produtosModel = $produtosDao->consultar(new consultaPorId(), $produtosModel, array(status::ATIVO)); $produtosVendidoModel = new produtosVendidoModel(); $produtosVendidoModel->setProduto($produtosModel); $produtosVendidoModel->setQuantidade($quantidade); //Obtendo o preço de venda $precosDao = new precosDao(); $produtosVendidoModel->setPrecoVendido($precosDao->consultarPrecoVenda($produtosModel)->getPreco()); //Adicionando o produto na venda $caixa = unserialize($_SESSION['caixa']); $caixa->getCaixaAberto()[0]->getVendas()[0]->addProdutoVendido($produtosVendidoModel); $_SESSION['caixa'] = serialize($caixa); $this->http->response(true); }
public function consultarProdutosMaisVendidos(RelatoriosModel $relatorio) { $sql = ' SELECT PRODVEND.*, count(V.idvend) AS nVendas, /*quantidade de vendas*/ ( SELECT SUM(PRODV.quantidade_produto_vendido) as qtdprodv FROM produtos_vendidos as PRODV INNER JOIN vendas as VEND ON PRODV.id_venda = VEND.id_venda WHERE PRODV.id_produto = PRODVEND.id_produto AND VEND.data_venda between ? AND ? ) AS qtdprod /*quantidade de produtos*/ FROM produtos_vendidos as PRODVEND /*SELECIONA A QUANTIDADE DE VENDAS*/ INNER JOIN ( SELECT DISTINCT VEND.data_venda as datavenda, PRODV.id_produto_vendido as idprodv, PRODV.id_produto as idprod, PRODV.id_venda as idvend FROM produtos_vendidos as PRODV INNER JOIN vendas as VEND ON PRODV.id_venda = VEND.id_venda GROUP BY PRODV.id_venda, PRODV.id_produto ) as V WHERE V.idprod = PRODVEND.id_produto AND V.idvend = PRODVEND.id_venda AND V.idprodv = PRODVEND.id_produto_vendido AND V.datavenda between ? AND ? GROUP BY PRODVEND.id_produto ORDER BY nVendas DESC LIMIT 10 '; $this->db->clear(); $this->db->setParameter(1, $relatorio->getPeriodoDe()); $this->db->setParameter(2, $relatorio->getPeriodoAte()); $this->db->setParameter(3, $relatorio->getPeriodoDe()); $this->db->setParameter(4, $relatorio->getPeriodoAte()); if ($this->db->query($sql)) { $arrprodvend = array(); $result = $this->db->resultAll(); foreach ($result as $res) { $produtosModel = new produtosModel(); $produtosModel->setId($res['id_produto']); $produtosVendidoModel = new produtosVendidoModel(); $produtosVendidoModel->setProduto($produtosModel); $produtosVendidoModel->setUnidadeMedidaVendido($res['unidade_medida_vendido']); $ProdutosMaisVendidosModel = new ProdutosMaisVendidosModel(); $ProdutosMaisVendidosModel->setProdutoVendido($produtosVendidoModel); $ProdutosMaisVendidosModel->setQtdVendas($res['nVendas']); $ProdutosMaisVendidosModel->setQtdTotalProdutos($res['qtdprod']); $relatorio->addTipoRelatorio($ProdutosMaisVendidosModel); } return $relatorio; } else { return NULL; } }
public function inserir() { if (!$this->load->checkPermissao->check(false, URL . 'estoque/gerenciar/')) { $this->http->response("Ação não permitida"); return false; } $this->load->model('produtos/produtosModel'); $this->load->model('produtos/unidadeMedidaEstoqueModel'); $this->load->model('produtos/unidadeMedidaModel'); $this->load->model('estoque/estoqueModel'); $this->load->model('estoque/localizacaoLoteModel'); $this->load->model('estoque/lotesModel'); $this->load->dao('produtos/produtosDao'); $this->load->dao('produtos/iConsultaProduto'); $this->load->dao('produtos/consultaPorId'); $this->load->dao('estoque/estoqueDao'); $this->load->library('dataValidator'); $this->load->library('dataformat'); $dataformat = new dataformat(); //Obtendo os valores $id_produto = (int) $this->http->getRequest('id_produto'); $codigoLote = $this->http->getRequest('codigoLote'); $codBarrasGti = $this->http->getRequest('codBarrasGti'); $codBarrasGst = $this->http->getRequest('codBarrasGst'); $dataValidadeControlada = (bool) $this->http->getRequest('dataValidadeControlada'); $dataValidade = $dataformat->formatar($this->http->getRequest('dataValidade'), 'data', 'banco'); $quantidade = $dataformat->formatar($this->http->getRequest('quantidade'), 'decimal', 'banco'); $unidadeMedidaEstoque = (int) $this->http->getRequest('unidadeMedidaEstoque'); $observacoes = $this->http->getRequest('observacoes'); //Validando os valores de entrada $dataValidator = new dataValidator(); $dataValidator->set('Produto', $id_produto, 'id_produto')->is_required(); $dataValidator->set('Código do lote', $codigoLote, 'codigoLote')->is_required(); if ($dataValidadeControlada == true) { $dataValidator->set('Data de validade', $dataValidade, 'dataValidade')->is_required()->is_date('Y-m-d'); } $dataValidator->set('Quantidade', $quantidade, 'quantidade')->is_required()->min_value(0); $dataValidator->set('Unidade de medida', $unidadeMedidaEstoque, 'unidadeMedidaEstoque')->is_required()->min_value(0); if ($dataValidator->validate()) { //PRODUTO MODEL $produtosModel = new produtosModel(); $produtosModel->setId($id_produto); $status = array(status::ATIVO, status::INATIVO); $produtos = new produtosDao(); $produtosModel = $produtos->consultar(new consultaPorId(), $produtosModel, $status); //UNIDADE MEDIDA ESTOQUE MODEL $unidadeMedidaEstoqueModel = new unidadeMedidaEstoqueModel(); $unidadeMedidaEstoqueModel->setId($unidadeMedidaEstoque); //LOCALIZACAO LOTE MODEL $localizacaoLoteModel = new localizacaoLoteModel(); $localizacaoLoteModel->setUnidadeMedidaEstoque($unidadeMedidaEstoqueModel); $localizacaoLoteModel->setQuantidade($quantidade); $localizacaoLoteModel->setObservacoes($observacoes); $localizacaoLoteModel->armazenar(); //LOTE MODEL $lotesModel = new lotesModel(); $lotesModel->setCodigoLote($codigoLote); $lotesModel->setCodigoBarrasGti($codBarrasGti); $lotesModel->setCodigoBarrasGst($codBarrasGst); $lotesModel->setDataValidade($dataValidade); $lotesModel->addLocalizacao($localizacaoLoteModel); //ESTOQUE MODEL $estoqueModel = new estoqueModel(); $estoqueModel->setProduto($produtosModel); $estoqueModel->addLote($lotesModel); //ESTOQUE DAO $estoqueDao = new estoqueDao(); $this->http->response($estoqueDao->armazenarLote($estoqueModel)); } else { $this->http->response(json_encode($dataValidator->get_errors()), '400'); } }