Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 public function descartar()
 {
     $this->load->model('estoque/estoqueModel');
     $this->load->model('estoque/lotesModel');
     $this->load->model('estoque/localizacaoLoteModel');
     $this->load->model('produtos/unidadeMedidaEstoqueModel');
     $this->load->dao('estoque/estoqueDao');
     $this->load->library('dataValidator');
     $idEstoque = (int) $this->http->getRequest('idEstoque');
     $idlote = (int) $this->http->getRequest('idlote');
     $idUnidadeMedidaVenda = (int) $this->http->getRequest('idUnidadeMedidaVenda');
     $quantidade = (double) $this->http->getRequest('quantidade');
     $observacoes = $this->http->getRequest('observacoes');
     //validação dos dados
     $dataValidator = new dataValidator();
     $dataValidator->set('Quantidade', $quantidade, 'quantidade')->is_required()->is_num();
     if ($dataValidator->validate()) {
         //UNIDADE MEDIDA ESTOQUE MODEL
         $unidadeMedidaEstoqueModel = new unidadeMedidaEstoqueModel();
         $unidadeMedidaEstoqueModel->setId($idUnidadeMedidaVenda);
         //LOCALIZACAO LOTE MODEL
         $localizacaoLoteModel = new localizacaoLoteModel();
         $localizacaoLoteModel->setUnidadeMedidaEstoque($unidadeMedidaEstoqueModel);
         $localizacaoLoteModel->setQuantidade($quantidade);
         $localizacaoLoteModel->setObservacoes($observacoes);
         $localizacaoLoteModel->descartar();
         //LOTES MODEL
         $lotesModel = new lotesModel();
         $lotesModel->setId($idlote);
         $lotesModel->addLocalizacao($localizacaoLoteModel);
         //ESTOQUE MODEL
         $estoqueModel = new estoqueModel();
         $estoqueModel->setId($idEstoque);
         $estoqueModel->addLote($lotesModel);
         //ESTOQUE DAO
         $estoqueDao = new estoqueDao();
         $lotePertoVencer = $estoqueDao->verificaDataValidade($estoqueModel);
         if (!$estoqueDao->verificaQuantidadeTransferencia($estoqueModel, localizacoes::ARMAZEM)) {
             $mensagem = "Quantidade insuficiente para realizar o descarte";
             $this->http->response($mensagem);
         } else {
             $this->http->response($estoqueDao->transferir($estoqueModel, localizacoes::ARMAZEM));
         }
     } else {
         $todos_erros = $dataValidator->get_errors();
         $this->http->response(json_encode($todos_erros));
     }
 }
Ejemplo n.º 3
0
 /**
  * Obtem o id do estoque
  * */
 private function atualizaEstoque(estoqueModel $estoque)
 {
     try {
         $this->db->clear();
         $this->db->setTabela('estoque');
         $this->db->setCondicao("id_produto = ?");
         $this->db->setParameter(1, $estoque->getProduto()->getId());
         if ($this->db->select()) {
             $res = $this->db->result();
             $estoque->setId((int) $res['id_estoque']);
         } else {
             $data = array('id_produto' => $estoque->getProduto()->getId());
             $this->db->clear();
             $this->db->setTabela('estoque');
             $this->db->insert($data);
             $estoque->setId((int) $this->db->getUltimoId());
         }
         $this->atualizaNivelEstoque($estoque);
         return $estoque;
     } catch (dbException $e) {
         $this->db->query('ROLLBACK');
         return $e->getMessageError();
     }
 }