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); } }
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; }