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