public function jsonProdutosMaisVendidos($produtosMaisVendidos)
 {
     $dataformat = new dataformat();
     $json = array();
     foreach ($produtosMaisVendidos->getTipoRelatorio() as $produtoVendido) {
         $produtos = new produtosDao();
         $produtosModel = $produtos->consultar(new consultaPorId(), $produtoVendido->getProdutosVendido()->getProduto(), array(status::ATIVO, status::INATIVO));
         $produtoVendido->getProdutosVendido()->setProduto($produtosModel);
         $aux = array('produto' => $produtoVendido->getProdutosVendido()->getProduto()->getNome(), 'qtdVenda' => $produtoVendido->getQtdVendas(), 'qtdProduto' => $dataformat->formatar($produtoVendido->getQtdTotalProdutos(), 'decimalinteiro'), 'unidadeMedida' => $produtoVendido->getProdutosVendido()->getUnidadeMedidaVendido(), 'media' => $dataformat->formatar($produtoVendido->getQtdTotalProdutos() / $produtoVendido->getQtdVendas(), 'decimalinteiro'));
         array_push($json, $aux);
     }
     return json_encode($json);
 }
Beispiel #2
0
 public function getJsonEstoque($estoque)
 {
     $this->load->library('dataformat');
     $dataformat = new dataformat();
     $_arEstoque = array();
     foreach ($estoque as $estoqueProd) {
         $foto = $estoqueProd->getProduto()->getFoto() != '' ? URL . 'skin/uploads/produtos/p/' . $estoqueProd->getProduto()->getFoto() : URL . 'skin/img/imagens/forn.jpg';
         $aux = array('id' => $estoqueProd->getId(), 'codigobarras' => $estoqueProd->getProduto()->getCodigoBarra(), 'produto' => $estoqueProd->getProduto()->getNome(), 'foto' => $foto, 'qtdtotal' => $dataformat->formatar($estoqueProd->getQuantidadeTotal(), 'decimal') . ' ' . $estoqueProd->getUnidadeMedidaParaEstoque()->getUnidadeMedida()->getNome(), 'min' => $dataformat->formatar($estoqueProd->getQuantidadeMinima(), 'decimal'), 'max' => $dataformat->formatar($estoqueProd->getQuantidadeMaxima(), 'decimal'), 'nivel' => ($estoqueProd->getQuantidadeTotal() - $estoqueProd->getQuantidadeMinima()) * 100 / ($estoqueProd->getQuantidadeMaxima() - $estoqueProd->getQuantidadeMinima()), 'progressclass' => "progress-bar-success", 'acoes' => "", 'lotes' => array());
         $arrLotes = array();
         foreach ($estoqueProd->getLotes() as $lotes) {
             $valorUndEstoque = 0;
             foreach ($lotes->getLocalizacao() as $localizacao) {
                 $fatorUnidadeLote = $localizacao->getUnidadeMedidaEstoque()->getFator();
                 $qtdLoteLocal = $localizacao->getQuantidade();
                 //quantidade do lote por localização
                 $valorUndEstoque += (double) $qtdLoteLocal;
             }
             $aux2 = array('id' => $lotes->getId(), 'codigo' => $lotes->getCodigoLote(), 'codigogti' => $lotes->getCodigoBarrasGti() != '' ? $lotes->getCodigoBarrasGti() : $estoqueProd->getProduto()->getCodigoBarra(), 'codigogst' => $lotes->getCodigoBarrasGst(), 'validade' => $dataformat->formatar($lotes->getDataValidade(), 'data'), 'quantidade' => $valorUndEstoque . ' ' . $lotes->getLocalizacao()[0]->getUnidadeMedidaEstoque()->getUnidadeMedida()->getNome(), 'acoes' => "", 'linkvisualizar' => "");
             array_push($aux['lotes'], $aux2);
         }
         array_push($_arEstoque, $aux);
     }
     return json_encode($_arEstoque);
 }
 /**
  * Define o limite máximo e mínimo do estoque
  */
 public function limitar()
 {
     $this->load->dao('estoque/estoqueDao');
     $this->load->model('estoque/estoqueModel');
     $this->load->model('estoque/nivelEstoqueModel');
     $this->load->library('dataformat');
     $dataformat = new dataformat();
     $idEstoque = (int) $this->http->getRequest('idEstoque');
     $qtdMax = $dataformat->formatar($this->http->getRequest('qtdMax'), 'decimal', 'banco');
     $qtdMin = $dataformat->formatar($this->http->getRequest('qtdMin'), 'decimal', 'banco');
     //validação dos dados
     $this->load->library('dataValidator', null, true);
     $this->load->dataValidator->set('Quantidade mínima', $qtdMin, 'qtdMin')->is_required()->is_num();
     $this->load->dataValidator->set('Quantidade máxima', $qtdMax, 'qtdMax')->is_required()->is_num();
     if ($this->load->dataValidator->validate()) {
         $estoqueModel = new estoqueModel();
         $estoqueModel->setId($idEstoque);
         $nivelEstoqueModel = new nivelEstoqueModel();
         $nivelEstoqueModel->setQuantidadeMinima($qtdMin);
         $nivelEstoqueModel->setQuantidadeMaxima($qtdMax);
         $estoqueModel->setNivelEstoque($nivelEstoqueModel);
         $estoqueDao = new estoqueDao();
         $this->http->response($estoqueDao->limitar($estoqueModel));
     } else {
         $todos_erros = $this->load->dataValidator->get_errors();
         $this->http->response(json_encode($todos_erros));
     }
 }
 public function finalizarCompra()
 {
     try {
         $dataformat = new dataformat();
         $this->load->library('dataValidator');
         $dataValidator = new dataValidator();
         $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');
         $this->load->dao('caixa/caixasDao');
         $formapagamento = $this->http->getRequest('formapagamento');
         $valorrecebido = $dataformat->formatar($this->http->getRequest('valorrecebido'), 'decimal', 'banco');
         if ($formapagamento == formapagamento::DINHEIRO) {
             $dataValidator->set('Valor recebido', $valorrecebido, 'valorrecebido')->is_required();
         }
         //validando os dados de entrada
         if ($dataValidator->validate()) {
             $dataformat = new dataformat();
             $caixa = unserialize($_SESSION['caixa']);
             $caixa->getCaixaAberto()[0]->getVendas()[0]->setDataVenda(date('Y-m-d'));
             $caixa->getCaixaAberto()[0]->getVendas()[0]->setHoraVenda(date('H:i:s'));
             //forma de pagamento escolhido
             if ($formapagamento == formapagamento::DINHEIRO) {
                 $caixa->getCaixaAberto()[0]->getVendas()[0]->pagarComDinheiro();
             } else {
                 if ($formapagamento == formapagamento::CARTAOCREDITO) {
                     $caixa->getCaixaAberto()[0]->getVendas()[0]->pagarComCartaoCredito();
                 } else {
                     if ($formapagamento == formapagamento::CARTAODEBITO) {
                         $caixa->getCaixaAberto()[0]->getVendas()[0]->pagarComCartaoDebito();
                     }
                 }
             }
             //valor pago pelo cliente
             $caixa->getCaixaAberto()[0]->getVendas()[0]->setValorPago($valorrecebido);
             $caixasDao = new caixasDao();
             if ($caixasDao->finalizarCompra($caixa)) {
             }
             $caixa->getCaixaAberto()[0]->setVendas(array(new vendasModel()));
             $_SESSION['caixa'] = serialize($caixa);
             $this->http->response(true);
         } else {
             $this->http->response('Informe o valor pago pelo cliente', 400);
         }
     } catch (Exception $e) {
         $this->http->response($e->getMessageError(), 400);
     }
 }
 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');
     }
 }
 public function getJsoncaixa()
 {
     //caixas
     $this->load->dao('caixa/caixasDao');
     $this->load->dao('caixa/iListagemCaixa');
     //usurios
     $this->load->dao('funcionarios/IUsuarios');
     $this->load->dao('funcionarios/consultaUsuarioPorId');
     $this->load->dao('funcionarios/usuariosDao');
     //funcionarios
     $this->load->dao('funcionarios/IListagemFuncionarios');
     $this->load->dao('funcionarios/consultaFuncionarioPorId');
     $this->load->dao('funcionarios/funcionariosDao');
     $caixasDao = new caixasDao();
     $caixas = $caixasDao->listar();
     //echo $caixasDao->listar($caixa);
     foreach ($caixas as $caixa) {
         $caixasDao->listaAberturaCaixa($caixa);
         foreach ($caixa->getCaixaAberto() as $caixaAberto) {
             //USUARIOS DAO -- consultando o usuario pelo id
             $usuariosDao = new usuariosDao();
             $usuariosModel = $usuariosDao->consultar(new consultaUsuarioPorId(), $caixaAberto->getUsuario(), array(status::ATIVO, status::INATIVO));
             if ($usuariosModel != null) {
                 //FUNCIONARIOS DAO -- Consultando o funcionario pelo id
                 $funcionariosDao = new funcionariosDao();
                 $funcionariosModel = $funcionariosDao->consultar(new consultaFuncionarioPorId(), $usuariosModel->getFuncionario(), array(status::ATIVO, status::INATIVO));
                 $usuariosModel->setFuncionario($funcionariosModel);
                 $caixaAberto->setUsuario($usuariosModel);
             }
         }
     }
     $this->load->library('dataformat');
     $dataformat = new dataformat();
     $_arCaixa = array();
     foreach ($caixas as $cx) {
         $aux = array('id' => $cx->getId(), 'codigo' => $cx->getCodigo(), 'ip' => $cx->getIp(), 'acoes' => "", 'linkEditar' => URL . 'caixa/gerenciar/editar/' . $cx->getId(), 'abertos' => array());
         $arrAberturaCaixa = array();
         foreach ($cx->getCaixaAberto() as $OpenBox) {
             $valorUndEstoque = 0;
             $aux2 = array('id' => $OpenBox->getId(), 'dateOpen' => $dataformat->formatar($OpenBox->getDataAbertura(), 'datahora'), 'dateClose' => $dataformat->formatar($OpenBox->getDataFechamento(), 'datahora'), 'user' => html_entity_decode($OpenBox->getUsuario()->getFuncionario()->getNome() . ' ' . $OpenBox->getUsuario()->getFuncionario()->getSobreNome()), 'acoes' => "", 'linkvisualizar' => '', 'itens' => array());
             array_push($aux['abertos'], $aux2);
         }
         array_push($_arCaixa, $aux);
     }
     $this->http->response(json_encode($_arCaixa));
 }