Ejemplo n.º 1
0
 private function consultaUnidadesMedida(produtosModel $produto)
 {
     $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->setParameter(1, $produto->getId());
     if ($this->db->select()) {
         $this->load->model('produtos/unidadeMedidaModel');
         $this->load->model('produtos/unidadeMedidaEstoqueModel');
         //UNIDADE DE MEDIDA
         $unidadeMedida = $this->db->resultAll();
         foreach ($unidadeMedida as $unidade) {
             $unidadeMedidaModel = new unidadeMedidaModel();
             $unidadeMedidaModel->setId($unidade['id_unidade_medida']);
             $unidadeMedidaModel->setNome($unidade['nome_unidade_medida']);
             $unidadeMedidaEstoqueModel = new unidadeMedidaEstoqueModel();
             $unidadeMedidaEstoqueModel->setId($unidade['id_unidade_medida_produto']);
             $unidadeMedidaEstoqueModel->setUnidadeMedida($unidadeMedidaModel);
             $unidadeMedidaEstoqueModel->setParaVenda($unidade['para_venda']);
             $unidadeMedidaEstoqueModel->setParaEstoque($unidade['para_estoque']);
             $unidadeMedidaEstoqueModel->setFator($unidade['fator_unidade_medida']);
             $unidadeMedidaEstoqueModel->setOrdem($unidade['ordem']);
             $produto->addUnidadeMedidaEstoque($unidadeMedidaEstoqueModel);
         }
     }
 }
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
 /**
  * Ação do cadastrar
  */
 public function atualizar()
 {
     $codigo = isset($_POST['codigo']) ? filter_var($_POST['codigo']) : '';
     $titulo = isset($_POST['titulo']) ? filter_var($_POST['titulo']) : '';
     $observacoes = isset($_POST['observacoes']) ? filter_var($_POST['observacoes']) : '';
     $produtos = isset($_POST['produtos']) ? filter_var_array($_POST['produtos']) : array();
     //validação dos dados
     $this->load->library('dataValidator', null, true);
     $this->load->dataValidator->set('Código', $codigo, 'codigo')->is_required()->min_length(3);
     $this->load->dataValidator->set('Título', $titulo, 'titulo')->is_required()->min_length(2);
     $this->load->dataValidator->set('Produtos', $produtos, 'produtos')->is_required();
     if ($this->load->dataValidator->validate()) {
         $this->load->model('suprimentos/requisicoes/requisicoesModel');
         $this->load->model('suprimentos/requisicoes/requisicaoProdutoModel');
         $this->load->model('produtos/produtosModel');
         $this->load->model('produtos/unidadeMedidaEstoqueModel');
         $this->load->model('funcionarios/usuarioModel');
         $requisicoesModel = new requisicoesModel();
         foreach ($produtos as $produto) {
             $unidadeMedidaEstoqueModel = new unidadeMedidaEstoqueModel();
             $unidadeMedidaEstoqueModel->setId($produto['idUnidadeMedida']);
             $produtoModel = new produtosModel();
             $produtoModel->setId($produto['id_produto']);
             $produtoModel->addUnidadeMedida($unidadeMedidaEstoqueModel);
             $requisicaoProdutoModel = new requisicaoProdutoModel();
             $requisicaoProdutoModel->addProduto($produtoModel);
             $requisicaoProdutoModel->setQuantidade($produto['quantidade']);
             $requisicoesModel->addProdutoRequisitado($requisicaoProdutoModel);
         }
         $usuarioModel = unserialize($_SESSION['user']);
         $requisicoesModel->setUsuarioCadastrado($usuarioModel);
         $requisicoesModel->setTitulo($titulo);
         $requisicoesModel->setCodigo($codigo);
         $requisicoesModel->setObservacoes($observacoes);
         $requisicoesModel->setData(date('Y-m-d H:i:s'));
         //marcas DAO
         $this->load->dao('suprimentos/requisicoesDao');
         try {
             $requisicoesDao = new requisicoesDao();
             echo $requisicoesDao->inserir($requisicoesModel);
         } catch (Exception $e) {
             echo $e->getMessage();
         }
     } else {
         $todos_erros = $this->load->dataValidator->get_errors();
         echo json_encode($todos_erros);
     }
 }
Ejemplo n.º 4
0
 public function consultar(requisicoesModel $requisicao)
 {
     try {
         $this->load->model('produtos/produtosModel');
         $this->load->model('produtos/unidademedidaModel');
         $this->load->model('produtos/unidadeMedidaEstoqueModel');
         $this->db->clear();
         $this->db->setTabela('requisicoes');
         $this->db->setCondicao("id_requisicao = '" . $requisicao->getId() . "'");
         $this->db->select();
         //Requisição
         $requisicoesModel = new requisicoesModel();
         if ($this->db->rowCount() > 0) {
             $value = $this->db->result();
             $requisicoesModel->setId($value['id_requisicao']);
             $requisicoesModel->setCodigo($value['codigo_requisicao']);
             $requisicoesModel->setTitulo($value['titulo_requisicao']);
             $requisicoesModel->setObservacoes($value['observacoes_requisicao']);
             $requisicoesModel->setData($value['data_requisicao']);
             $requisicoesModel->setStatus(statusRequisicoes::getAttribute($value['status_requisicao']));
             $this->db->clear();
             $this->db->setTabela('produtos as a , requisicao_produto as b , unidade_medida as c, unidade_medida_produto as d');
             $this->db->setCondicao("a.id_produto = b.id_produto and b.id_requisicao = ? and b.id_unidade_medida_produto = c.id_unidade_medida AND c.id_unidade_medida = d.id_unidade_medida");
             $this->db->setParameter(1, $value['id_requisicao']);
             if ($this->db->select()) {
                 $resultProd = $this->db->resultAll();
                 foreach ($resultProd as $key => $value) {
                     //unidade medida
                     $unidademedidaModel = new unidademedidaModel();
                     $unidademedidaModel->setId($value['id_unidade_medida']);
                     //unidade de medida do produto
                     $unidadeMedidaEstoqueModel = new unidadeMedidaEstoqueModel();
                     $unidadeMedidaEstoqueModel->setId($produto['idUnidadeMedida']);
                     $unidadeMedidaEstoqueModel->setUnidadeMedida($unidademedidaModel);
                     //prodtos
                     $produtosModel = new produtosModel();
                     $produtosModel->setId($value['id_produto']);
                     $produtosModel->setNome($value['nome_produto']);
                     $produtosModel->setFoto($value['foto_produto']);
                     //produtos requisitados
                     $requisicaoProdutoModel = new requisicaoProdutoModel();
                     $requisicaoProdutoModel->setId($value['id_requisicao_produto']);
                     $requisicaoProdutoModel->setQuantidade($value['quantidade_produto']);
                     $requisicaoProdutoModel->setProduto($produtosModel);
                     $requisicoesModel->addProdutoRequisitado($produtosModel);
                 }
             }
         }
         return $requisicoesModel;
     } catch (dbException $e) {
         return $e->getMessageError();
     }
 }
Ejemplo n.º 5
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;
 }
Ejemplo n.º 6
0
 public function inserir()
 {
     try {
         if (!$this->load->checkPermissao->check(false, URL . 'produtos/gerenciar/cadastrar')) {
             $this->http->response("Ação não permitida");
             return false;
         }
         $this->load->model('produtos/produtosModel');
         $this->load->model('produtos/marcasModel');
         $this->load->model('produtos/categoriasModel');
         $this->load->model('produtos/unidadeMedidaModel');
         $this->load->model('produtos/unidadeMedidaEstoqueModel');
         $this->load->model('produtos/precosModel');
         $this->load->dao('produtos/precosDao');
         $this->load->dao('produtos/produtosDao');
         //obtendo os dados enviados pela requisição
         $dataFormat = new dataFormat();
         $foto = isset($_FILES['foto']) ? $_FILES['foto'] : '';
         $nome = $this->http->getRequest('nome');
         $codigoBarra = $this->http->getRequest('codigobarras');
         $marca = $this->http->getRequest('marca');
         $categoria = $this->http->getRequest('categoria');
         $preco = $dataFormat->formatar($this->http->getRequest('preco'), 'decimal', 'banco');
         $controlarvalidade = (bool) $this->http->getRequest('controlarvalidade');
         $descricao = $this->http->getRequest('descricao');
         $fornecedores = (array) $this->http->getRequest('fornecedores');
         $unidadeMedidaEstoque = $this->http->getRequest('unidadeMedidaEstoque');
         //validação dos dados
         $dataValidator = new dataValidator();
         $dataValidator->set('Nome', $nome, 'nome')->is_required()->min_length(3);
         $dataValidator->set('Marca', $marca, 'marca')->is_required();
         $dataValidator->set('Categoria', $categoria, 'categoria')->is_required();
         $dataValidator->set('Preço', $preco, 'preco')->is_required();
         $dataValidator->set('Fornecedores', $fornecedores, 'fornecedores')->is_required()->min_value(3);
         $dataValidator->set('Unidades de medidas de estoque', $unidadeMedidaEstoque, 'unidadeMedidaEstoque')->is_required();
         if ($dataValidator->validate()) {
             //PRODUTOS
             $produtosModel = new produtosModel();
             //MARCA
             $marcasModel = new marcasModel();
             $marcasModel->setId($marca);
             //CATEGORIA
             $categoriasModel = new categoriasModel();
             $categoriasModel->setId($categoria);
             //UNIDADES DE MEDIDA DE ESTOQUE -- obtendo as unidades de medida
             foreach ($unidadeMedidaEstoque as $unidade) {
                 $unidade['venda'] = $unidade['venda'] == "true" ? true : false;
                 $unidade['estoque'] = $unidade['estoque'] == "true" ? true : false;
                 $fator = $dataFormat->formatar($unidade['fator_unidade'], 'decimal', 'banco');
                 $unidadeMedidaModel = new unidadeMedidaModel();
                 $unidadeMedidaModel->setId($unidade['idUnidadeMedida']);
                 $unidadeMedidaEstoqueModel = new unidadeMedidaEstoqueModel();
                 $unidadeMedidaEstoqueModel->setId($unidade['idUnidadeMedidaProduto']);
                 $unidadeMedidaEstoqueModel->setUnidadeMedida($unidadeMedidaModel);
                 $unidadeMedidaEstoqueModel->setParaVenda($unidade['venda']);
                 $unidadeMedidaEstoqueModel->setParaEstoque($unidade['estoque']);
                 $unidadeMedidaEstoqueModel->setFator($fator);
                 $unidadeMedidaEstoqueModel->setOrdem($unidade['ordem']);
                 //adicionando as unidades no produto
                 $produtosModel->addUnidadeMedidaEstoque($unidadeMedidaEstoqueModel);
             }
             //FORNECEDORES -- obtendo os fonecedores do produto
             $this->load->model('fornecedores/fornecedoresModel');
             $this->load->model('produtos/produtofornecedorModel');
             foreach ($fornecedores as $fornec) {
                 $fornecedoresModel = new fornecedoresModel();
                 $fornecedoresModel->setId($fornec['id']);
                 $produtofornecedorModel = new produtofornecedorModel();
                 $produtofornecedorModel->setFornecedor($fornecedoresModel);
                 //adicionando os fornecedores ao produto
                 $produtosModel->addFornecedor($produtofornecedorModel);
             }
             //IMAGEM
             //obtendo a imagem e realizando o upload
             $nome_foto = '';
             if (!empty($foto)) {
                 //obtendo o tamanho do corte da imagem
                 $cropValues = array('w' => $this->http->getRequest('w'), 'h' => $this->http->getRequest('h'), 'x1' => $this->http->getRequest('x1'), 'y1' => $this->http->getRequest('y1'));
                 //definindo o tamanho da imagem após o upload
                 $tamanho = array('p' => array('w' => 404, 'h' => 158));
                 //renomeando a imagem
                 $nome_foto = md5(date('dmYHis'));
                 // realizando o upload
                 $this->load->library('uploadFoto');
                 $upload = new uploadFoto('produtos', $foto, $nome_foto, $tamanho, $cropValues);
                 $nome_foto = $upload->getNomeArquivo();
             }
             // //FORMATAÇÃO DOS DADOS
             $produtosModel->setFoto($nome_foto);
             $produtosModel->setCodigoBarra($codigoBarra);
             $produtosModel->setNome($nome);
             $produtosModel->setMarca($marcasModel);
             $produtosModel->setCategoria($categoriasModel);
             $produtosModel->setDescricao($descricao);
             $produtosModel->setDataCadastro(date('Y-m-d h:i:s'));
             //definindo controle de validade
             if ($controlarvalidade == true) {
                 $produtosModel->ativarControleValidade();
             } else {
                 $produtosModel->desativarControleValidade();
             }
             //adicionando o preço padrão ao produto
             $precosModel = new precosModel();
             $precosModel->setPreco($preco);
             $precosModel->setPadrao(true);
             //PRODUTOS DAO
             $produtosDao = new produtosDao();
             $produtosModel = $produtosDao->inserir($produtosModel);
             //se o produto foi cadastrado corretamente
             if ($produtosModel->getId() != '') {
                 //insere o preço padrão
                 $precosDao = new precosDao();
                 $precosDao->inserir($produtosModel, $precosModel);
                 $this->http->response(true);
             }
         } else {
             //exibindo os erro de validação
             $this->http->response(json_encode($dataValidator->get_errors()));
         }
     } catch (dbException $e) {
         //se tiver algum erro no banco
         $this->http->response($e->getMessageError());
         return false;
     } catch (Exception $e) {
         //se tiver algum erro no envio da imagem ou outro erro que seja diferente do banco
         $this->http->response($e->getMessage());
         return false;
     }
 }
Ejemplo n.º 7
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->addUnidadeMedida($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);
     }
 }
Ejemplo n.º 8
0
 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');
     }
 }