public function inserirPreco() { try { if (!$this->load->checkPermissao->check(false, URL . 'produtos/gerenciar/cadastrarprecos')) { $this->http->response("Ação não permitida"); return false; } //carregamento das classes $this->load->library('dataFormat'); $this->load->library('dataValidator'); $this->load->model('produtos/produtosModel'); $this->load->model('produtos/precosModel'); $this->load->dao('produtos/precosDao'); $dataFormat = new dataFormat(); //obtenção dos dados $idProduto = (int) $this->http->getRequest('idProduto'); $preco = (double) $dataFormat->formatar($this->http->getRequest('preco'), 'decimal', 'banco'); $padrao = (bool) $this->http->getRequest('padrao'); $de = $dataFormat->formatar($this->http->getRequest('de'), 'data', 'banco'); $ate = $dataFormat->formatar($this->http->getRequest('ate'), 'data', 'banco'); //validação dos dados $dataValidator = new dataValidator(); $dataValidator->set('Preço', $preco, 'preco')->is_required()->is_num(); if ($padrao == false) { $dataValidator->set('De', $de, 'de')->is_required()->is_date('Y-m-d'); $dataValidator->set('Até', $ate, 'ate')->is_required()->is_date('Y-m-d'); } if ($dataValidator->validate()) { //PRODUTOS $produtosModel = new produtosModel(); $produtosModel->setId($idProduto); //PREÇOS MODEL $precosModel = new precosModel(); $precosModel->setPreco($preco); $precosModel->setDataInicio($de); $precosModel->setDataFim($ate); $precosModel->setPadrao($padrao); $precosModel->setDataCadastro(date('Y-m-d')); //PRECOS DAO $precosDao = new precosDao(); $this->http->response($precosDao->inserir($produtosModel, $precosModel)); } else { $todos_erros = $dataValidator->get_errors(); $this->http->response(json_encode($todos_erros)); } } catch (dbException $e) { $this->http->response($e->getMessageError()); } }
/** * consulta o preço de venda * Caso esteja em um período, retornará o ultimo preço no período cadastrado * senão retornará o preço definido como padrão * */ public function consultarPrecoVenda(produtosModel $produto) { try { $this->load->model('produtos/precosModel'); $precosModel = new precosModel(); $this->db->clear(); $sql = "SELECT *\n\t\t\t\t\tFROM produtos_preco as P\n\t\t\t\t\tWHERE P.id_produto = ? \n\t\t\t\t\tAND id_produto_preco = \n\t\t\t\t\t\tCASE\n\t\t\t\t\t \tWHEN (CURDATE() BETWEEN P.data_inicio AND P.data_fim) THEN (\n\t\t\t\t\t \tselect PP.id_produto_preco \n\t\t\t\t\t from produtos_preco as PP \n\t\t\t\t\t where PP.id_produto = P.id_produto \n\t\t\t\t\t AND CURDATE() BETWEEN PP.data_inicio AND PP.data_fim \n\t\t\t\t\t LIMIT 1\n\t\t\t\t\t )\n\t\t\t\t\t ELSE (\n\t\t\t\t\t select PP.id_produto_preco \n\t\t\t\t\t from produtos_preco as PP \n\t\t\t\t\t where PP.id_produto = P.id_produto \n\t\t\t\t\t AND PP.preco_padrao = TRUE LIMIT 1 \n\t\t\t\t\t )\n\t\t\t\t\tEND\n\t\t\t\t\tORDER BY `P`.`id_produto_preco` DESC LIMIT 1"; $this->db->setParameter(1, $produto->getId()); if ($this->db->query($sql)) { $result = $this->db->result(); $precosModel->setId($result['id_produto_preco']); $precosModel->setPreco($result['preco_produto']); $precosModel->setDataInicio($result['data_inicio']); $precosModel->setDataFim($result['data_fim']); $precosModel->setPadrao($result['preco_padrao']); $precosModel->setDataCadastro($result['data_cadastro']); } return $precosModel; } catch (dbException $e) { return $e->getMessageError(); } }