Exemplo n.º 1
0
 public function listarProdutosRequisitados(requisicoesModel $requisicao)
 {
     $this->load->model('produtos/produtosModel');
     $this->load->model('suprimentos/requisicoes/requisicaoProdutoModel');
     $this->load->model('produtos/unidademedidaModel');
     $this->load->model('produtos/unidadeMedidaEstoqueModel');
     try {
         $this->db->clear();
         $this->db->setTabela('requisicoes');
         $this->db->setCondicao(" id_requisicao = ? ");
         $this->db->setParameter(1, $requisicao->getId());
         $requisicoesModel = new requisicoesModel();
         if ($this->db->select()) {
             $result = $this->db->result();
             $requisicoesModel->setId($result['id_requisicao']);
             $requisicoesModel->setCodigo($result['codigo_requisicao']);
             $requisicoesModel->setTitulo($result['titulo_requisicao']);
             $requisicoesModel->setObservacoes($result['observacoes_requisicao']);
             $requisicoesModel->setData($result['data_requisicao']);
             $requisicoesModel->setStatus(statusRequisicoes::getAttribute($result['status_requisicao']));
             $this->db->clear();
             $this->db->setTabela('produtos as A , requisicao_produto as B , unidade_medida_produto as C, unidade_medida as D');
             $this->db->setCondicao("B.id_requisicao = ? AND B.id_produto = A.id_produto AND B.id_unidade_medida_produto = C.id_unidade_medida_produto AND C.id_unidade_medida = D.id_unidade_medida");
             $this->db->setParameter(1, $requisicao->getId());
             $usuariosModel = new usuariosModel();
             $funcionariosModel = new funcionariosModel();
             if ($this->db->select()) {
                 $resultProd = $this->db->resultAll();
                 foreach ($resultProd as $key => $produto) {
                     //unidade medida
                     $unidademedidaModel = new unidademedidaModel();
                     $unidademedidaModel->setId($produto['id_unidade_medida']);
                     $unidademedidaModel->setNome($produto['nome_unidade_medida']);
                     //unidade de medida do produto
                     $unidadeMedidaEstoqueModel = new unidadeMedidaEstoqueModel();
                     $unidadeMedidaEstoqueModel->setId($produto['id_unidade_medida_produto']);
                     $unidadeMedidaEstoqueModel->setUnidadeMedida($unidademedidaModel);
                     //prodtos
                     $produtosModel = new produtosModel();
                     $produtosModel->setId($produto['id_produto']);
                     $produtosModel->setNome($produto['nome_produto']);
                     $produtosModel->setFoto($produto['foto_produto']);
                     $produtosModel->addUnidadeMedidaEstoque($unidadeMedidaEstoqueModel);
                     //produtos requisitados
                     $requisicaoProdutoModel = new requisicaoProdutoModel();
                     $requisicaoProdutoModel->setId($produto['id_requisicao_produto']);
                     $requisicaoProdutoModel->setQuantidade($produto['quantidade_produto']);
                     $requisicaoProdutoModel->addProduto($produtosModel);
                     $requisicaoProdutoModel->setStatus(statusRequisicoes::getAttribute($produto['status_requisicao_produto']));
                     $requisicoesModel->addProdutoRequisitado($requisicaoProdutoModel);
                 }
             }
         }
         return $requisicoesModel;
     } catch (Exception $e) {
         throw new Exception($e, 1);
     }
 }
Exemplo n.º 2
0
 public function listarLotes(estoqueModel $estoque, $localizacao)
 {
     $this->load->model('estoque/lotesModel');
     $this->load->model('estoque/localizacaoLoteModel');
     $this->load->model('produtos/unidadeMedidaEstoqueModel');
     $this->load->model('produtos/unidademedidaModel');
     $this->db->clear();
     $this->db->setParameter(1, localizacoes::getAttribute($localizacao));
     $this->db->setParameter(2, $estoque->getId());
     $res = $this->db->query("select * from produto_lote \n\t\t\t\t\t\t\tinner join localizacao_lote on produto_lote.id_produto_lote = localizacao_lote.id_produto_lote AND localizacao_lote.localizacao = ?\n\t\t\t\t    \t\tWHERE produto_lote.id_estoque =? and localizacao_lote.quantidade_localizacao > 0 GROUP BY produto_lote.id_produto_lote ORDER BY produto_lote.id_produto_lote DESC");
     $arrLotes = array();
     if ($res) {
         $result = $this->db->resultAll();
         foreach ($result as $value) {
             $lotes = new lotesModel();
             $lotes->setId($value['id_produto_lote']);
             $lotes->setCodigoLote($value['codigo_lote']);
             $lotes->setCodigoBarrasGti($value['codigo_barras_gti']);
             $lotes->setCodigoBarrasGst($value['codigo_barras_gst']);
             $lotes->setDataValidade($value['data_validade']);
             $lotes->setUltimaAtualizacao($value['timestamp']);
             $this->db->clear();
             $this->db->setParameter(1, localizacoes::getAttribute($localizacao));
             $this->db->setParameter(2, $value['id_produto_lote']);
             $res = $this->db->query("select * from localizacao_lote\n\t\t\t\t\t\t\t\t\tINNER JOIN unidade_medida_produto ON localizacao_lote.id_unidade_medida_produto = unidade_medida_produto.id_unidade_medida_produto\n\t\t\t\t\t\t    \t\tINNER JOIN unidade_medida ON unidade_medida_produto.id_unidade_medida = unidade_medida.id_unidade_medida\n\t\t\t\t\t\t    \t\tWHERE localizacao_lote.localizacao = ? AND localizacao_lote.id_produto_lote = ? ");
             if ($res) {
                 $resultLocal = $this->db->resultAll();
                 foreach ($resultLocal as $valueLocal) {
                     $localizacaoLoteModel = new localizacaoLoteModel();
                     $localizacaoLoteModel->setId($valueLocal['id_localizacao_lote']);
                     $localizacaoLoteModel->setLocalizacao(localizacoes::getAttribute($valueLocal['localizacao']));
                     $localizacaoLoteModel->setQuantidade($valueLocal['quantidade_localizacao']);
                     $localizacaoLoteModel->setObservacoes($valueLocal['observacoes_localizacao_lote']);
                     $localizacaoLoteModel->setUltimaAtualizacao($valueLocal['timestamp']);
                     $unidademedidaModel = new unidademedidaModel();
                     $unidademedidaModel->setId($valueLocal['id_unidade_medida']);
                     $unidademedidaModel->setNome($valueLocal['nome_unidade_medida']);
                     $unidademedidaModel->setAbreviacao($valueLocal['abreviacao_unidade_medida']);
                     $unidadeMedidaEstoqueModel = new unidadeMedidaEstoqueModel();
                     $unidadeMedidaEstoqueModel->setId($valueLocal['id_unidade_medida_produto']);
                     $unidadeMedidaEstoqueModel->setFator($valueLocal['fator_unidade_medida']);
                     $unidadeMedidaEstoqueModel->setParaVenda((bool) $valueLocal['para_venda']);
                     $unidadeMedidaEstoqueModel->setParaEstoque((bool) $valueLocal['para_estoque']);
                     $unidadeMedidaEstoqueModel->setOrdem($valueLocal['ordem']);
                     $unidadeMedidaEstoqueModel->setUnidadeMedida($unidademedidaModel);
                     $localizacaoLoteModel->setUnidadeMedidaEstoque($unidadeMedidaEstoqueModel);
                     $lotes->addLocalizacao($localizacaoLoteModel);
                 }
             }
             array_push($arrLotes, $lotes);
         }
     }
     return $arrLotes;
 }