private function atualizaNivelEstoque(estoqueModel $estoque) { try { $this->db->clear(); $this->db->setTabela('nivel_estoque'); $this->db->setCondicao("id_estoque = ? AND localizacao_estoque = ?"); $this->db->setParameter(1, $estoque->getId()); $this->db->setParameter(2, $estoque->getLotes()[0]->getLocalizacao()[0]->getLocalizacao()); if (!$this->db->select()) { $data = array('id_estoque' => $estoque->getId(), 'localizacao_estoque' => $estoque->getLotes()[0]->getLocalizacao()[0]->getLocalizacao()); $this->db->clear(); $this->db->setTabela('nivel_estoque'); $this->db->insert($data); } } catch (dbException $e) { $this->db->query('ROLLBACK'); return $e->getMessageError(); } }
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 =? 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; }