diff --git a/html/contribuicao/configuracao/assets/css/gateway-pagamento.css b/html/contribuicao/configuracao/assets/css/gateway-pagamento.css new file mode 100644 index 00000000..b48dfbd5 --- /dev/null +++ b/html/contribuicao/configuracao/assets/css/gateway-pagamento.css @@ -0,0 +1,82 @@ + /* Container do toggle */ + .toggle-switch { + position: relative; + display: inline-block; + width: 60px; + /*height: 34px; + padding-bottom: 0px;*/ +} + +/* Esconde o input checkbox */ +.toggle-input { + opacity: 0; + width: 0; + height: 0; +} + +/* Estilo do label que age como o toggle */ +.toggle-label { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + height: 20px; + background-color: #ccc; + transition: .4s; + border-radius: 34px; +} + +/* Estilo do círculo deslizante */ +.toggle-label:before { + position: absolute; + content: ""; + height: 20px; + width: 20px; + left: 2px; + /*bottom: 4px;*/ + background-color: white; + transition: .4s; + border-radius: 50%; +} + +/* Estilo quando o checkbox está marcado */ +.toggle-input:checked+.toggle-label { + background-color: #2196F3; +} + +.toggle-input:checked+.toggle-label:before { + transform: translateX(36px); +} + +/*Centralizar verticalmente */ +.vertical-center{ + vertical-align: middle!important; +} + +/*Estilos do modal de edição*/ +.modal-header-primary { + background-color: #0088cc; /* Azul do panel-primary */ + color: white; + border-bottom: 1px solid #2e6da4; /* Borda inferior azul escuro */ +} + +.modal-header-primary .modal-title { + font-size: 18px; + margin: 0; + padding: 10px 0; +} + +.modal-header-primary .close { + color: #d2322d ; /* Define a cor vermelha */ + opacity: 1; /* Torna o ícone completamente opaco */ + text-shadow: 0 1px black; +} + +.modal-header-primary .close:hover, +.modal-header-primary .close:focus { + color: rgb(231, 15, 15); /* Altera a cor para vermelho escuro ao passar o mouse ou focar */ + text-shadow: 0 1px red; +} + diff --git a/html/contribuicao/configuracao/assets/js/gatewayPagamento.js b/html/contribuicao/configuracao/assets/js/gatewayPagamento.js new file mode 100644 index 00000000..d1686ffe --- /dev/null +++ b/html/contribuicao/configuracao/assets/js/gatewayPagamento.js @@ -0,0 +1,31 @@ +$(function() {//Carrega cabeçalho e menu lateral + $("#header").load("../../header.php"); + $(".menuu").load("../../menu.php"); +}); + +function confirmarExclusao() {//Trava de segurança para evitar exclusão de itens indesejados + return confirm("Tem certeza que deseja excluir este item?"); +} + +document.addEventListener('DOMContentLoaded', function() { + // Seletor para todos os botões de editar + const editButtons = document.querySelectorAll('button[title="Editar"]'); + + editButtons.forEach(button => { + button.addEventListener('click', function() { + const id = this.getAttribute('data-id'); + const nome = this.closest('tr').querySelector('td:nth-child(1)').textContent; + const endpoint = this.closest('tr').querySelector('td:nth-child(2)').textContent; + const token = this.closest('tr').querySelector('td:nth-child(3)').textContent; + + // Preenche o modal com os dados do gateway + document.getElementById('editId').value = id; + document.getElementById('editNome').value = nome; + document.getElementById('editEndpoint').value = endpoint; + document.getElementById('editToken').value = token; + + // Exibe o modal + $('#editModal').modal('show'); + }); + }); +}); \ No newline at end of file diff --git a/html/contribuicao/configuracao/assets/js/meioPagamento.js b/html/contribuicao/configuracao/assets/js/meioPagamento.js new file mode 100644 index 00000000..e40d2772 --- /dev/null +++ b/html/contribuicao/configuracao/assets/js/meioPagamento.js @@ -0,0 +1,37 @@ +$(function () {//Carrega cabeçalho e menu lateral + $("#header").load("../../header.php"); + $(".menuu").load("../../menu.php"); +}); + +function confirmarExclusao() {//Trava de segurança para evitar exclusão de itens indesejados + return confirm("Tem certeza que deseja excluir este item?"); +} + +document.addEventListener('DOMContentLoaded', function () { + // Seletor para todos os botões de editar + const editButtons = document.querySelectorAll('button[title="Editar"]'); + + editButtons.forEach(button => { + button.addEventListener('click', function () { + const id = this.getAttribute('data-id'); + const nome = this.closest('tr').querySelector('td:nth-child(1)').textContent; + const plataformaId = this.getAttribute('data-plataforma-id'); + + // Preenche o modal com os dados do gateway + document.getElementById('editId').value = id; + document.getElementById('editNome').value = nome; + let plataformas = document.getElementById('editPlataforma'); + plataformas.value = plataformaId; + const options = plataformas.options; + + // Verifica se a opção foi selecionada corretamente + if (plataformas.value !== plataformaId) { + console.error('Erro ao selecionar a plataforma com ID:', plataformaId); + } else { + console.log('Plataforma selecionada:', plataformas.options[plataformas.selectedIndex].textContent); + } + + $('#editModal').modal('show'); + }); + }); +}); \ No newline at end of file diff --git a/html/contribuicao/configuracao/gateway_pagamento.php b/html/contribuicao/configuracao/gateway_pagamento.php new file mode 100644 index 00000000..70460f39 --- /dev/null +++ b/html/contribuicao/configuracao/gateway_pagamento.php @@ -0,0 +1,310 @@ +query("SELECT * FROM situacao"); +$cargo = $mysqli->query("SELECT * FROM cargo"); + +$conexao = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); +$id_pessoa = $_SESSION['id_pessoa']; +$resultado = mysqli_query($conexao, "SELECT * FROM funcionario WHERE id_pessoa=$id_pessoa"); +if (!is_null($resultado)) { + $id_cargo = mysqli_fetch_array($resultado); + if (!is_null($id_cargo)) { + $id_cargo = $id_cargo['id_cargo']; + } + $resultado = mysqli_query($conexao, "SELECT * FROM permissao WHERE id_cargo=$id_cargo and id_recurso=9"); + if (!is_bool($resultado) and mysqli_num_rows($resultado)) { + $permissao = mysqli_fetch_array($resultado); + if ($permissao['id_acao'] < 3) { + $msg = "Você não tem as permissões necessárias para essa página."; + header("Location: ../../home.php?msg_c=$msg"); + } + $permissao = $permissao['id_acao']; + } else { + $permissao = 1; + $msg = "Você não tem as permissões necessárias para essa página."; + header("Location: ../../home.php?msg_c=$msg"); + } +} else { + $permissao = 1; + $msg = "Você não tem as permissões necessárias para essa página."; + header("Location: ../../home.php?msg_c=$msg"); +} + +//Captura mensagem passada na URL como parâmetro +if (isset($_GET['msg'])) { + $msg = trim($_GET['msg']); +} + +//carrega gateways salvos no banco de dados da aplicação +require_once('./src/controller/GatewayPagamentoController.php'); + +$gatewayPagamentoController = new GatewayPagamentoController(); +$gateways = $gatewayPagamentoController->buscaTodos(); + +?> + + + + + + + Gateway de Pagamento + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+
+
+

Cadastro de um novo Gateway

+
+ +
+
+
+
+ + + + + +
+ +
+ +
+
+ Os campos com * devem ser preenchidos antes de prosseguir. +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+

Gateways do Sistema

+
+ +
+
+
+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
PlataformaEndpointToken APIAtivoAção
+
+ + + + + + +
+
+ +
+ + + + +
+
+ + + + + +
+
+
+
+ +
+
+
+ +
+ +
+ + + \ No newline at end of file diff --git a/html/contribuicao/configuracao/meio_pagamento.php b/html/contribuicao/configuracao/meio_pagamento.php new file mode 100644 index 00000000..99765f90 --- /dev/null +++ b/html/contribuicao/configuracao/meio_pagamento.php @@ -0,0 +1,318 @@ +query("SELECT * FROM situacao"); +$cargo = $mysqli->query("SELECT * FROM cargo"); + +$conexao = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); +$id_pessoa = $_SESSION['id_pessoa']; +$resultado = mysqli_query($conexao, "SELECT * FROM funcionario WHERE id_pessoa=$id_pessoa"); +if (!is_null($resultado)) { + $id_cargo = mysqli_fetch_array($resultado); + if (!is_null($id_cargo)) { + $id_cargo = $id_cargo['id_cargo']; + } + $resultado = mysqli_query($conexao, "SELECT * FROM permissao WHERE id_cargo=$id_cargo and id_recurso=9"); + if (!is_bool($resultado) and mysqli_num_rows($resultado)) { + $permissao = mysqli_fetch_array($resultado); + if ($permissao['id_acao'] < 3) { + $msg = "Você não tem as permissões necessárias para essa página."; + header("Location: ../../home.php?msg_c=$msg"); + } + $permissao = $permissao['id_acao']; + } else { + $permissao = 1; + $msg = "Você não tem as permissões necessárias para essa página."; + header("Location: ../../home.php?msg_c=$msg"); + } +} else { + $permissao = 1; + $msg = "Você não tem as permissões necessárias para essa página."; + header("Location: ../../home.php?msg_c=$msg"); +} + +//Captura mensagem passada na URL como parâmetro +if (isset($_GET['msg'])) { + $msg = trim($_GET['msg']); +} + +//carrega gateways salvos no banco de dados da aplicação +require_once('./src/controller/GatewayPagamentoController.php'); + +$gatewayPagamentoController = new GatewayPagamentoController(); +$gateways = $gatewayPagamentoController->buscaTodos(); + +//carrega meios de pagamentos salvos no banco de dados da aplicação +require_once('./src/controller/MeioPagamentoController.php'); + +$meioPagamentoController = new MeioPagamentoController(); +$meiosPagamento = $meioPagamentoController->buscaTodos(); +?> + + + + + + + Meio de Pagamento + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+
+

Cadastro de um novo Meio de Pagamento

+
+ +
+
+
+
+ + + + + +
+ +
+ +
+
+ Os campos com * devem ser preenchidos antes de prosseguir. +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+

Meios de pagamento do sistema

+
+ +
+
+
+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
DescriçãoPlataforma | EndpointAtivoAção
+
+ + + + + + +
+
+ +
+ + + + +
+
+ + + + + +
+
+
+
+
+
+
+ + +
+ +
+ + + \ No newline at end of file diff --git a/html/contribuicao/configuracao/regra_pagamento.php b/html/contribuicao/configuracao/regra_pagamento.php new file mode 100644 index 00000000..0d0d5f55 --- /dev/null +++ b/html/contribuicao/configuracao/regra_pagamento.php @@ -0,0 +1,67 @@ + + + + + + + Regra de Pagamento + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/html/contribuicao/configuracao/src/controller/GatewayPagamentoController.php b/html/contribuicao/configuracao/src/controller/GatewayPagamentoController.php new file mode 100644 index 00000000..86859a9d --- /dev/null +++ b/html/contribuicao/configuracao/src/controller/GatewayPagamentoController.php @@ -0,0 +1,91 @@ +cadastrar(); + header("Location: ../../gateway_pagamento.php?msg=cadastrar-sucesso"); + } catch (Exception $e) { + header("Location: ../../gateway_pagamento.php?msg=cadastrar-falha"); + } + } + + /** + * Realiza os procedimentos necessários para buscar os gateways de pagamento da aplicação + */ + public function buscaTodos() + { + try { + $gatewayPagamentoDao = new GatewayPagamentoDAO(); + $gateways = $gatewayPagamentoDao->buscaTodos(); + return $gateways; + } catch (PDOException $e) { + echo 'Erro na busca de gateways de pagamento: ' . $e->getMessage(); + } + } + + /** + * Realiza os procedimentos necessários para remover um gateway de pagamento do sistema. + */ + public function excluirPorId() + { + $gatewayId = trim($_POST['gateway-id']); + + if (!$gatewayId || empty($gatewayId) || $gatewayId < 1) { + //parar operação + header("Location: ../../gateway_pagamento.php?msg=excluir-falha#mensagem-tabela"); + exit(); + } + + try { + $gatewayPagamentoDao = new GatewayPagamentoDAO(); + $gatewayPagamentoDao->excluirPorId($gatewayId); + header("Location: ../../gateway_pagamento.php?msg=excluir-sucesso#mensagem-tabela"); + } catch (Exception $e) { + header("Location: ../../gateway_pagamento.php?msg=excluir-falha#mensagem-tabela"); + } + //echo 'O id do gateway que será excluído é: '.$gatewayId; + } + + /** + * Realiza os procedimentos necessários para alterar as informações de um gateway de pagamento do sistema + */ + public function editarPorId(){ + $gatewayId = $_POST['id']; + $gatewayNome = $_POST['nome']; + $gatewayEndepoint = $_POST['endpoint']; + $gatewayToken = $_POST['token']; + + try{ + $gatewayPagamento = new GatewayPagamento($gatewayNome, $gatewayEndepoint, $gatewayToken); + $gatewayPagamento->setId($gatewayId); + $gatewayPagamento->editar(); + header("Location: ../../gateway_pagamento.php?msg=editar-sucesso#mensagem-tabela"); + }catch(Exception $e){ + header("Location: ../../gateway_pagamento.php?msg=editar-falha#mensagem-tabela"); + } + //echo 'Editando gateway de id: '.$gatewayId; + } +} diff --git a/html/contribuicao/configuracao/src/controller/MeioPagamentoController.php b/html/contribuicao/configuracao/src/controller/MeioPagamentoController.php new file mode 100644 index 00000000..bbdcb12d --- /dev/null +++ b/html/contribuicao/configuracao/src/controller/MeioPagamentoController.php @@ -0,0 +1,82 @@ +cadastrar(); + header("Location: ../../meio_pagamento.php?msg=cadastrar-sucesso"); + }catch(Exception $e){ + header("Location: ../../meio_pagamento.php?msg=cadastrar-falha"); + } + } + + /** + * Busca os meios de pagamentos registrados no banco de dados da aplicação + */ + public function buscaTodos(){ + try{ + $meioPagamentoDao = new MeioPagamentoDAO(); + $meiosPagamento = $meioPagamentoDao->buscaTodos(); + return $meiosPagamento; + }catch(PDOException $e){ + echo 'Erro na busca de meios de pagamento: '.$e->getMessage(); + } + } + + /** + * Realiza os procedimentos necessários para remover um meio de pagamento do sistema. + */ + public function excluirPorId(){ + $meioPagamentoId = trim($_POST['meio-pagamento-id']); + + if (!$meioPagamentoId || empty($meioPagamentoId) || $meioPagamentoId < 1) { + //parar operação + header("Location: ../../meio_pagamento.php?msg=excluir-falha#mensagem-tabela"); + exit(); + } + + try{ + $meioPagamentoDao = new MeioPagamentoDAO(); + $meioPagamentoDao->excluirPorId($meioPagamentoId); + header("Location: ../../meio_pagamento.php?msg=excluir-sucesso#mensagem-tabela"); + }catch(Exception $e){ + header("Location: ../../meio_pagamento.php?msg=excluir-falha#mensagem-tabela"); + } + } + + /** + * Realiza os procedimentos necessários para alterar as informações de um meio de pagamento do sistema + */ + public function editarPorId(){ + $descricao = $_POST['nome']; + $gatewayId = $_POST['plataforma']; + $meioPagamentoId = $_POST['id']; + + try{ + $meioPagamento = new MeioPagamento($descricao, $gatewayId); + $meioPagamento->setId($meioPagamentoId); + $meioPagamento->editar(); + header("Location: ../../meio_pagamento.php?msg=editar-sucesso#mensagem-tabela"); + }catch(Exception $e){ + header("Location: ../../meio_pagamento.php?msg=editar-falha#mensagem-tabela"); + } + } +} \ No newline at end of file diff --git a/html/contribuicao/configuracao/src/controller/control.php b/html/contribuicao/configuracao/src/controller/control.php new file mode 100644 index 00000000..e4f2c81b --- /dev/null +++ b/html/contribuicao/configuracao/src/controller/control.php @@ -0,0 +1,46 @@ +$metodo(); + } else { + // Responde com erro se as variáveis necessárias não foram fornecidas + http_response_code(400); + exit('Classe ou método não fornecidos: '.'C = '.$nomeClasse.'M = '.$metodo); + } +} + +if (isset($_SERVER['CONTENT_TYPE']) && strpos($_SERVER['CONTENT_TYPE'], 'application/json') !==false) { + // Recebe o JSON da requisição + $json = file_get_contents('php://input'); + // Decodifica o JSON + $data = json_decode($json, true); + + // Extrai as variáveis do array $data + $nomeClasse = $data['nomeClasse'] ?? null; + $metodo = $data['metodo'] ?? null; + //$modulo = $data['modulo'] ?? null; + + // Processa a requisição + processaRequisicao($nomeClasse, $metodo); +} else { + // Recebe os dados do formulário normalmente + $nomeClasse = $_REQUEST['nomeClasse'] ?? null; + $metodo = $_REQUEST['metodo'] ?? null; + //$modulo = $_REQUEST['modulo'] ?? null; + + // Processa a requisição + processaRequisicao($nomeClasse, $metodo); +} \ No newline at end of file diff --git a/html/contribuicao/configuracao/src/dao/GatewayPagamentoDAO.php b/html/contribuicao/configuracao/src/dao/GatewayPagamentoDAO.php new file mode 100644 index 00000000..feeeb641 --- /dev/null +++ b/html/contribuicao/configuracao/src/dao/GatewayPagamentoDAO.php @@ -0,0 +1,98 @@ +pdo = $conexao->pdo; + } + + /** + * Inseri um gateway de pagamento no banco de dados da aplicação + */ + public function cadastrar($nome, $endpoint, $token/*, $status*/){ + /*Lógica da aplicação */ + //definir consulta SQL + $sqlCadastrar = "INSERT INTO contribuicao_gatewayPagamento (plataforma, endpoint, token) + VALUES (:plataforma, :endpoint, :token)"; + //utilizar prepared statements + $stmt = $this->pdo->prepare($sqlCadastrar); + $stmt->bindParam(':plataforma', $nome); + $stmt->bindParam(':endpoint', $endpoint); + $stmt->bindParam(':token', $token); + //executar + $stmt->execute(); + } + + /** + * Busca os gateways de pagamento registrados no banco de dados da aplicação + */ + public function buscaTodos(){ + //definir consulta sql + $sqlBuscaTodos = "SELECT * from contribuicao_gatewayPagamento"; + //executar + $resultado = $this->pdo->query($sqlBuscaTodos)->fetchAll(PDO::FETCH_ASSOC); + //retornar resultado + return $resultado; + } + + /** + * Remover o gateway de pagamento que possuí id equivalente no banco de dados da aplicação + */ + public function excluirPorId($id){ + //definir consulta sql + $sqlExcluirPorId = "DELETE FROM contribuicao_gatewayPagamento WHERE id=:id"; + //utilizar prepared statements + $stmt = $this->pdo->prepare($sqlExcluirPorId); + $stmt->bindParam(':id', $id); + //executar + $stmt->execute(); + + //verificar se algum elemento foi de fato excluído + $gatewayExcluido = $stmt->rowCount(); + + if($gatewayExcluido < 1){ + throw new Exception(); + } + } + + /** + * Modifica os campos da tabela contribuicao_gatewaypagamento relacionados ao id informado + */ + public function editarPorId($id, $nome, $endpoint, $token){ + //definir consulta sql + $sqlEditarPorId = "UPDATE contribuicao_gatewayPagamento SET plataforma =:nome, endpoint =:endpoint, token =:token WHERE id=:id"; + //utilizar prepared statements + $stmt = $this->pdo->prepare($sqlEditarPorId); + $stmt->bindParam(':nome', $nome); + $stmt->bindParam(':endpoint', $endpoint); + $stmt->bindParam(':token', $token); + $stmt->bindParam(':id', $id); + //executar + $stmt->execute(); + + //verificar se algum elemento foi de fato alterado + $gatewayExcluido = $stmt->rowCount(); + + if($gatewayExcluido < 1){ + throw new Exception(); + } + } +} \ No newline at end of file diff --git a/html/contribuicao/configuracao/src/dao/MeioPagamentoDAO.php b/html/contribuicao/configuracao/src/dao/MeioPagamentoDAO.php new file mode 100644 index 00000000..5369d294 --- /dev/null +++ b/html/contribuicao/configuracao/src/dao/MeioPagamentoDAO.php @@ -0,0 +1,98 @@ +pdo = $conexao->pdo; + } + + /** + * Inseri um meio de pagamento no banco de dados da aplicação + */ + public function cadastrar($descricao, $gatewayId){ + /*Lógica da aplicação */ + //definir consulta SQL + $sqlCadastrar = "INSERT INTO contribuicao_meioPagamento (meio, id_plataforma) + VALUES (:descricao, :gatewayId)"; + //utilizar prepared statements + $stmt = $this->pdo->prepare($sqlCadastrar); + $stmt->bindParam(':descricao', $descricao); + $stmt->bindParam(':gatewayId', $gatewayId); + //executar + $stmt->execute(); + } + + /** + * Retorna todos os meios de pagamentos registrados no banco de dados da aplicação + */ + public function buscaTodos(){ + //definir consulta sql + $sqlBuscaTodos = "SELECT cmp.id, cmp.meio, cmp.id_plataforma, cgp.plataforma, cgp.endpoint + FROM contribuicao_meioPagamento cmp + JOIN contribuicao_gatewayPagamento cgp ON (cgp.id=cmp.id_plataforma)"; + //executar + $resultado = $this->pdo->query($sqlBuscaTodos)->fetchAll(PDO::FETCH_ASSOC); + //retornar resultado + return $resultado; + } + + /** + * Remover o meio de pagamento que possuí id equivalente no banco de dados da aplicação + */ + public function excluirPorId($id){ + //definir consulta sql + $sqlExcluirPorId = "DELETE FROM contribuicao_meioPagamento WHERE id=:id"; + //utilizar prepared statements + $stmt = $this->pdo->prepare($sqlExcluirPorId); + $stmt->bindParam(':id', $id); + //executar + $stmt->execute(); + + //verificar se algum elemento foi de fato excluído + $meioPagamentoExcluido = $stmt->rowCount(); + + if($meioPagamentoExcluido < 1){ + throw new Exception(); + } + } + + /** + * Edita o meio de pagamento que possuí id equivalente no banco de dados da aplicação + */ + public function editarPorId($id, $descricao, $gatewayId){ + //definir consulta sql + $sqlEditarPorId = "UPDATE contribuicao_meioPagamento SET meio =:descricao, id_plataforma =:gatewayId WHERE id=:id"; + //utilizar prepared statements + $stmt = $this->pdo->prepare($sqlEditarPorId); + $stmt->bindParam(':descricao', $descricao); + $stmt->bindParam(':gatewayId', $gatewayId); + $stmt->bindParam(':id', $id); + //executar + $stmt->execute(); + + //verificar se algum elemento foi de fato alterado + $meioPagamentoExcluido = $stmt->rowCount(); + + if($meioPagamentoExcluido < 1){ + throw new Exception(); + } + } +} \ No newline at end of file diff --git a/html/contribuicao/configuracao/src/model/GatewayPagamento.php b/html/contribuicao/configuracao/src/model/GatewayPagamento.php new file mode 100644 index 00000000..601814f3 --- /dev/null +++ b/html/contribuicao/configuracao/src/model/GatewayPagamento.php @@ -0,0 +1,169 @@ +setNome($nome)->setEndpoint($endpoint)->setToken($token); + if(!$status){ + $this->setStatus(0); + }else{ + $this->setStatus($status); + } + //echo json_encode('Funcionou o Gateway Pagamento'); + } + + /** + * Pega os atributos nome, endpoint, token e status e realiza os procedimentos necessários + * para inserir um Gateway de pagamento no sistema + */ + public function cadastrar(){ + require_once '../dao/GatewayPagamentoDAO.php'; + $gatewayPagamentoDao = new GatewayPagamentoDAO(); + $gatewayPagamentoDao->cadastrar($this->nome, $this->endpoint, $this->token/*, $this->status*/); + } + + /** + * Altera os dados do sistema pelos novos fornecidos através dos atributos $nome e $endpoint e $token + */ + public function editar(){ + require_once '../dao/GatewayPagamentoDAO.php'; + $gatewayPagamentoDao = new GatewayPagamentoDAO(); + $gatewayPagamentoDao->editarPorId($this->id, $this->nome, $this->endpoint, $this->token); + } + + /** + * Get the value of status + */ + public function getStatus() + { + return $this->status; + } + + /** + * Set the value of status + * + * @return self + */ + public function setStatus($status) + { + $statusLimpo = trim($status); + //echo $statusLimpo; + + if((!$statusLimpo || empty($statusLimpo)) && $statusLimpo != 0){ + throw new InvalidArgumentException('O status de um gateway de pagamento não pode ser vazio.'); + } + + $this->status = $status; + + return $this; + } + + /** + * Get the value of token + */ + public function getToken() + { + return $this->token; + } + + /** + * Set the value of token + * + * @return self + */ + public function setToken($token) + { + $tokenLimpo = trim($token); + + if(!$tokenLimpo || empty($tokenLimpo)){ + throw new InvalidArgumentException('O token de um gateway de pagamento não pode ser vazio.'); + } + + $this->token = $token; + + return $this; + } + + /** + * Get the value of endpoint + */ + public function getEndpoint() + { + return $this->endpoint; + } + + /** + * Set the value of endpoint + * + * @return self + */ + public function setEndpoint($endpoint) + { + $endpointLimpo = trim($endpoint); + + if(!$endpointLimpo || empty($endpointLimpo)){ + throw new InvalidArgumentException('O endpoint de um gateway de pagamento não pode ser vazio.'); + } + + $this->endpoint = $endpoint; + + return $this; + } + + /** + * Get the value of nome + */ + public function getNome() + { + return $this->nome; + } + + /** + * Set the value of nome + * + * @return self + */ + public function setNome($nome) + { + $nomeLimpo = trim($nome); + + if(!$nomeLimpo || empty($nomeLimpo)){ + throw new InvalidArgumentException('O nome de um gateway de pagamento não pode ser vazio.'); + } + $this->nome = $nome; + + return $this; + } + + /** + * Get the value of id + */ + public function getId() + { + return $this->id; + } + + /** + * Set the value of id + * + * @return self + */ + public function setId($id) + { + $idLimpo = trim($id); + + if(!$idLimpo || $idLimpo <1){ + throw new InvalidArgumentException(); + } + $this->id = $id; + + return $this; + } +} \ No newline at end of file diff --git a/html/contribuicao/configuracao/src/model/MeioPagamento.php b/html/contribuicao/configuracao/src/model/MeioPagamento.php new file mode 100644 index 00000000..93126183 --- /dev/null +++ b/html/contribuicao/configuracao/src/model/MeioPagamento.php @@ -0,0 +1,105 @@ +setDescricao($descricao); + $this->setGatewayId($gatewayId); + } + + /** + * Pega os atributos $descricao e $gatewayId e realiza os procedimentos necessários para + * inserir um novo meio de pagamento no sistema da aplicação. + */ + public function cadastrar(){ + require_once '../dao/MeioPagamentoDAO.php'; + $meioPagamentoDao = new MeioPagamentoDAO(); + $meioPagamentoDao->cadastrar($this->descricao, $this->gatewayId); + } + + /** + * Altera os dados do sistema pelos novos fornecidos através dos atributos $descricao e $gatewayId + */ + public function editar(){ + require_once '../dao/MeioPagamentoDAO.php'; + $meioPagamentoDao = new MeioPagamentoDAO(); + $meioPagamentoDao->editarPorId($this->id, $this->descricao, $this->gatewayId); + } + + /** + * Get the value of descricao + */ + public function getDescricao() + { + return $this->descricao; + } + + /** + * Set the value of descricao + * + * @return self + */ + public function setDescricao($descricao) + { + $descricaoLimpa = trim($descricao); + if(!$descricaoLimpa || empty($descricaoLimpa)){ + throw new InvalidArgumentException(); + } + + $this->descricao = $descricao; + + return $this; + } + + /** + * Get the value of gatewayId + */ + public function getGatewayId() + { + return $this->gatewayId; + } + + /** + * Set the value of gatewayId + * + * @return self + */ + public function setGatewayId($gatewayId) + { + if(!$gatewayId || $gatewayId < 1){ + throw new InvalidArgumentException(); + } + + $this->gatewayId = $gatewayId; + + return $this; + } + + /** + * Get the value of id + */ + public function getId() + { + return $this->id; + } + + /** + * Set the value of id + * + * @return self + */ + public function setId($id) + { + $idLimpo = trim($id); + + if(!$idLimpo || $idLimpo <1){ + throw new InvalidArgumentException(); + } + $this->id = $id; + + return $this; + } +} \ No newline at end of file diff --git a/html/contribuicao/php/regras_pagamento.php b/html/contribuicao/php/regras_pagamento.php new file mode 100644 index 00000000..a51c2146 --- /dev/null +++ b/html/contribuicao/php/regras_pagamento.php @@ -0,0 +1,883 @@ +pdo->query($sql_meio); + $retorno_meio = $stmt_meio->fetchAll(PDO::FETCH_ASSOC); + + $sql_id_meio = "SELECT id_meio FROM contribuicao_conjuntoRegras WHERE id_meio IN (SELECT id_meio FROM contribuicao_meioPagamento)"; + $stmt_id_meio = $conexao->pdo->query($sql_id_meio); + $retorno_id_meio = $stmt_id_meio->fetchAll(PDO::FETCH_COLUMN); + + $retorno_meio_pagamento = array( + 'meio' => $retorno_meio, + 'id_meio' => $retorno_id_meio + ); + + header('Content-Type: application/json; charset=utf-8'); + echo json_encode($retorno_meio_pagamento); + die(); + } catch (PDOException $e) { + echo "Houve um erro ao listar os meios de pagamento: " . $e->getMessage(); + } +} + +//Listar as regras +if($_SERVER["REQUEST_METHOD"] === "POST" && isset ($_POST['listar_regras'])) { + $conexao = new Conexao(); + + try{ + $sql_regra = "SELECT id, regra FROM contribuicao_regras"; + $stmt_regra = $conexao->pdo->query($sql_regra); + $retorno_regra = $stmt_regra->fetchAll(PDO::FETCH_ASSOC); + + header('Content-Type: application/json; charset=utf-8'); + echo json_encode($retorno_regra); + die(); + } catch(PDOException $e){ + echo ("Houve um erro ao listar as regras." . $e->getMessage()); + } +} + +//Listar os dados na tabela +if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST["listar_tabela"])) { + $conexao = new Conexao(); + + try { + $sql_cont_regras = "SELECT id_meio, id_regra, value + FROM contribuicao_conjuntoRegras;"; + + $stmt_listar_cont_regras = $conexao->pdo->query($sql_cont_regras); + $array_listar_cont_regras = $stmt_listar_cont_regras->fetchAll(PDO::FETCH_ASSOC); + + if (!empty($array_listar_cont_regras)) { + $listar_regras = array(); + + foreach ($array_listar_cont_regras as $linha) { + $id_meio = $linha['id_meio']; + $id_regra = $linha['id_regra']; + $valor = $linha['value']; + + $sql_meio = "SELECT meio FROM contribuicao_meioPagamento WHERE id = :id_meio;"; + $stmt_meio = $conexao->pdo->prepare($sql_meio); + $stmt_meio->bindParam(':id_meio', $id_meio, PDO::PARAM_INT); + $stmt_meio->execute(); + $retorno_meio = $stmt_meio->fetch(PDO::FETCH_ASSOC); + + $sql_regra = "SELECT regra FROM contribuicao_regras WHERE id = :id_regra;"; + $stmt_regra = $conexao->pdo->prepare($sql_regra); + $stmt_regra->bindParam(':id_regra', $id_regra, PDO::PARAM_INT); + $stmt_regra->execute(); + $retorno_regra = $stmt_regra->fetch(PDO::FETCH_ASSOC); + + $listar_regras[] = array( + 'meio' => ($retorno_meio) ? $retorno_meio['meio'] : null, + 'regra' => ($retorno_regra) ? $retorno_regra['regra'] : null, + 'value' => $valor + ); + } + + header('Content-Type: application/json; charset=utf-8'); + echo json_encode($listar_regras); + exit(); + } else { + header('Content-Type: application/json; charset=utf-8'); + echo json_encode(array('error' => 'Não foram encontrados dados na tabela')); + exit(); + } + } catch (PDOException $e) { + header('Content-Type: application/json; charset=utf-8'); + echo json_encode(array('error' => 'Houve um erro ao tentar listar os dados: ' . $e->getMessage())); + exit(); + } +} + + +//Salvar os dados no banco de dados +if($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST['salvar_dados'])){ + $conexao = new Conexao(); + + $meio_nome = $_POST['meio'] ?? NULL; + $id_regra = $_POST['regras'] ?? NULL; + $valor = $_POST['valor'] ?? NULL; + + if(empty($meio_nome) || empty ($id_regra) || empty($valor)){ + echo "Preencha todos os campos!"; + exit; + } + + try{ + //Pega o id de meio + $sql_id_meio = "SELECT id FROM contribuicao_meioPagamento WHERE meio = :meio"; + $stmt_meio = $conexao->pdo->prepare($sql_id_meio); + $stmt_meio->bindParam(':meio', $meio_nome); + $stmt_meio->execute(); + $row_meio = $stmt_meio->fetch(PDO::FETCH_ASSOC); + $id_meio = $row_meio['id'] ?? null; + + if (!$id_meio) { + echo "Meio não encontrado."; + exit; + } + + $sql_check = "SELECT id_meio, id_regra, value FROM contribuicao_conjuntoRegras + WHERE id_meio = :meio + AND id_regra = :regras + AND value = :valor"; + + $stmt_check = $conexao->pdo->prepare($sql_check); + $stmt_check->bindParam(':meio', $id_meio, PDO::PARAM_INT); + $stmt_check->bindParam(':regras', $id_regra, PDO::PARAM_INT); + $stmt_check->bindParam(':valor', $valor, PDO::PARAM_INT); + $stmt_check->execute(); + + $existing_data = $stmt_check->fetch(PDO::FETCH_ASSOC); + + if ($existing_data) { + echo 'conteudo_existente'; + exit; + } else { + $sql_insert = "INSERT INTO contribuicao_conjuntoRegras (id_meio, id_regra, value) + VALUES (:id_meio, :id_regra, :valor)"; + + $stmt_insert = $conexao->pdo->prepare($sql_insert); + $stmt_insert->bindParam(':id_meio', $id_meio, PDO::PARAM_INT); + $stmt_insert->bindParam(':id_regra', $id_regra, PDO::PARAM_INT); + $stmt_insert->bindParam(':valor', $valor, PDO::PARAM_INT); + + $stmt_insert->execute(); + + if ($stmt_insert->rowCount() > 0) { + echo 'sucesso'; + } else { + echo 'erro_inserir'; + } + } + } catch (PDOException $e) { + echo 'erro: ' . $e->getMessage(); + } +} + +// Lógica para excluir +if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST["excluir_dados"])) { + $conexao = new Conexao(); + + $meio_nome = $_POST["meio"]; + $regra_nome = $_POST["regra"]; + $valor = $_POST["valor"]; + + try { + // Pega o id de meio + $sql_id_meio = "SELECT id FROM contribuicao_meioPagamento WHERE meio = :meio"; + $stmt_meio = $conexao->pdo->prepare($sql_id_meio); + $stmt_meio->bindParam(':meio', $meio_nome); + $stmt_meio->execute(); + $row_meio = $stmt_meio->fetch(PDO::FETCH_ASSOC); + $id_meio = $row_meio['id'] ?? null; + + if (!$id_meio) { + echo "Meio não encontrado."; + exit; + } + + // Pega o id de regras + $sql_id_regra = "SELECT id FROM contribuicao_regras WHERE regra = :regra"; + $stmt_regra = $conexao->pdo->prepare($sql_id_regra); + $stmt_regra->bindParam(':regra', $regra_nome); + $stmt_regra->execute(); + $row_regra = $stmt_regra->fetch(PDO::FETCH_ASSOC); + $id_regra = $row_regra['id'] ?? null; + + if (!$id_regra) { + echo "Regra não encontrada."; + exit; + } + + echo "ID do meio: ". $id_meio . "
"; + echo "ID da regra: ". $id_regra . "
"; + echo $valor . "
"; + + $sql_delete = "DELETE FROM contribuicao_conjuntoRegras + WHERE id_meio = :meio + AND id_regra = :regra + AND value = :valor"; + + $stmt_delete = $conexao->pdo->prepare($sql_delete); + $stmt_delete->bindParam(':meio', $id_meio, PDO::PARAM_INT); + $stmt_delete->bindParam(':regra', $id_regra, PDO::PARAM_INT); + $stmt_delete->bindParam(':valor', $valor, PDO::PARAM_INT); + + $stmt_delete->execute(); + + if ($stmt_delete->rowCount() > 0) { + echo 'sucesso'; + } else { + echo 'erro_excluir'; + } + } catch (PDOException $e) { + echo 'Erro ao excluir: ' . $e->getMessage(); + } +} + +// Lógica para alterar +if($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST["alterar_dados"])){ + + $meio_nome = $_POST["meio"]; + $regra_nome = $_POST["regras"]; + $valor_antigo = $_POST["valor"]; + + if(empty($meio_nome) || empty($regra_nome)){ + echo "Meio ou regra está vazio."; + } + + // Pega o id de meio + $sql_id_meio = "SELECT id FROM contribuicao_meioPagamento WHERE meio = :meio"; + $stmt_meio = $conexao->pdo->prepare($sql_id_meio); + $stmt_meio->bindParam(':meio', $meio_nome); + $stmt_meio->execute(); + $row_meio = $stmt_meio->fetch(PDO::FETCH_ASSOC); + $id_meio_antigo = $row_meio['id'] ?? null; + + if (!$id_meio_antigo) { + echo "Meio não encontrado."; + exit; + } + + // Pega o id de regras + $sql_id_regra = "SELECT id FROM contribuicao_regras WHERE regra = :regra"; + $stmt_regra = $conexao->pdo->prepare($sql_id_regra); + $stmt_regra->bindParam(':regra', $regra_nome); + $stmt_regra->execute(); + $row_regra = $stmt_regra->fetch(PDO::FETCH_ASSOC); + $id_regra_antiga = $row_regra['id'] ?? null; + + if (!$id_regra_antiga) { + echo "Regra não encontrada."; + exit; + } + + echo "ID antigo do meio: ". $id_meio_antigo . "
"; + echo "ID antigo da regra: ". $id_regra_antiga . "
"; + echo $valor_antigo . "
"; + + $id_meio_novo = $_POST["id_meio_novo"]; + $id_regra_nova = $_POST["id_regra_nova"]; + $valor_novo = $_POST["valor_novo"]; + $conexao = new Conexao(); + + try{ + $sql_alterar = "UPDATE contribuicao_conjuntoRegras + SET meio = :id_meio_antigo, + AND regras = :id_regra_antiga, + AND value = :valor_antigo + WHERE meio = :id_meio_novo, + AND regras = :id_regra_nova, + AND value = :valor_novo"; + + $stmt_alterar = $conexao->pdo->prepare($sql_alterar); + $stmt_alterar->bindParam(':id_meio_antigo', $id_meio_antigo, PDO::PARAM_INT); + $stmt_alterar->bindParam(':id_regra_antiga', $id_regra_antiga, PDO::PARAM_INT); + $stmt_alterar->bindParam(':valor_antigo', $valor_antigo, PDO::PARAM_INT); + + $stmt_alterar->bindParam(':id_meio_novo', $id_meio_novo, PDO::PARAM_INT); + $stmt_alterar->bindParam(':id_regra_nova', $id_regra_nova, PDO::PARAM_INT); + $stmt_alterar->bindParam(':valor_novo', $valor_novo, PDO::PARAM_INT); + + $stmt_alterar->execute(); + + if ($stmt_alterar->rowCount() > 0) { + echo 'sucesso'; + } else { + echo 'erro_alterar'; + } + + }catch(PDOException $e){ + echo "Houve um erro na consulta SQL!". $e->getMessage(); + } +} +?> + + + + + + Regras de pagamento + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+ +
+
+ + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + +
MeioRegrasValorAtivoAções
+
+
+
+ + + + diff --git a/html/home.php b/html/home.php index 8921a7be..02e21599 100755 --- a/html/home.php +++ b/html/home.php @@ -282,6 +282,13 @@ function openItem(id){ + +
+ +

Contribuição

+
+
+
@@ -701,6 +708,31 @@ function openItem(id){ + +
+ +
+ +
diff --git a/html/menu.php b/html/menu.php index 33be55d4..55017999 100755 --- a/html/menu.php +++ b/html/menu.php @@ -404,6 +404,35 @@ function verificar_modulos(){ + + + +