diff --git a/html/apoio/controller/ContribuicaoLogController.php b/html/apoio/controller/ContribuicaoLogController.php
new file mode 100644
index 00000000..9107d26c
--- /dev/null
+++ b/html/apoio/controller/ContribuicaoLogController.php
@@ -0,0 +1,54 @@
+format('Y-m-d');
+
+ $contribuicaoLog = new ContribuicaoLog();
+ $contribuicaoLog
+ ->setValor($valor)
+ ->setCodigo($contribuicaoLog->gerarCodigo())
+ ->setDataGeracao($dataGeracao)
+ ->setDataVencimento($dataVencimento)
+ ->setIdSocio($idSocio);
+
+ try {
+ $contribuicaoLogDao = new ContribuicaoLogDAO();
+
+ /*Implementar controle de transação para que o log só seja registrado
+ caso o serviço de pagamento tenha sido executado*/
+ $contribuicaoLogDao->criar($contribuicaoLog);
+ //Fazer chamada do serviço de pagamento requisitado
+ } catch (PDOException $e) {
+ //implementar tratamento de erro
+ echo 'Erro: '.$e->getMessage();
+ }
+ }
+
+ public function pagarPorId(){
+ $idContribuicaoLog = filter_input(INPUT_POST, 'id_contribuicao');
+
+ if(!$idContribuicaoLog || $idContribuicaoLog < 1){
+ http_response_code(400);
+ exit('O id fornecido não é válido');//substituir posteriormente por redirecionamento com mensagem de feedback
+ }
+
+ try{
+ $contribuicaoLogDao = new ContribuicaoLogDAO();
+ $contribuicaoLogDao->pagarPorId($idContribuicaoLog);
+ }catch(PDOException $e){
+ echo 'Erro: '.$e->getMessage(); //substituir posteriormente por redirecionamento com mensagem de feedback
+ }
+ }
+}
diff --git a/html/apoio/controller/GatewayPagamentoController.php b/html/apoio/controller/GatewayPagamentoController.php
new file mode 100644
index 00000000..07564b3f
--- /dev/null
+++ b/html/apoio/controller/GatewayPagamentoController.php
@@ -0,0 +1,115 @@
+cadastrar();
+ header("Location: ../view/gateway_pagamento.php?msg=cadastrar-sucesso");
+ } catch (Exception $e) {
+ header("Location: ../view/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: ../view/gateway_pagamento.php?msg=excluir-falha#mensagem-tabela");
+ exit();
+ }
+
+ try {
+ $gatewayPagamentoDao = new GatewayPagamentoDAO();
+ $gatewayPagamentoDao->excluirPorId($gatewayId);
+ header("Location: ../view/gateway_pagamento.php?msg=excluir-sucesso#mensagem-tabela");
+ } catch (Exception $e) {
+ header("Location: ../view/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: ../view/gateway_pagamento.php?msg=editar-sucesso#mensagem-tabela");
+ } catch (Exception $e) {
+ header("Location: ../view/gateway_pagamento.php?msg=editar-falha#mensagem-tabela");
+ }
+ //echo 'Editando gateway de id: '.$gatewayId;
+ }
+
+ /**
+ * Realiza os procedimentos necessários para ativar/desativar um gateway de pagamento no sistema
+ */
+ public function alterarStatus()
+ {
+ $gatewayId = $_POST['id'];
+ $status = trim($_POST['status']);
+
+ if (!$gatewayId || empty($gatewayId)) {
+ http_response_code(400);
+ echo json_encode(['Erro' => 'O id deve ser maior ou igual a 1.']);exit;
+ }
+
+ if (!$status || empty($status)) {
+ http_response_code(400);
+ echo json_encode(['Erro' => 'O status informado não é válido.']);exit;
+ }
+
+ if ($status === 'true') {
+ $status = 1;
+ } elseif ($status === 'false') {
+ $status = 0;
+ }
+
+ try {
+ $gatewayPagamentoDao = new GatewayPagamentoDAO();
+ $gatewayPagamentoDao->alterarStatusPorId($status, $gatewayId);
+ echo json_encode(['Sucesso']);
+ } catch (Exception $e) {
+ http_response_code(500);
+ echo json_encode(['Erro'=>'Ocorreu um problema no servidor.']);exit;
+ }
+ }
+}
diff --git a/html/apoio/controller/MeioPagamentoController.php b/html/apoio/controller/MeioPagamentoController.php
new file mode 100644
index 00000000..5972a715
--- /dev/null
+++ b/html/apoio/controller/MeioPagamentoController.php
@@ -0,0 +1,105 @@
+cadastrar();
+ header("Location: ../view/meio_pagamento.php?msg=cadastrar-sucesso");
+ }catch(Exception $e){
+ header("Location: ../view/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: ../view/meio_pagamento.php?msg=excluir-falha#mensagem-tabela");
+ exit();
+ }
+
+ try{
+ $meioPagamentoDao = new MeioPagamentoDAO();
+ $meioPagamentoDao->excluirPorId($meioPagamentoId);
+ header("Location: ../view/meio_pagamento.php?msg=excluir-sucesso#mensagem-tabela");
+ }catch(Exception $e){
+ header("Location: ../view/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: ../view/meio_pagamento.php?msg=editar-sucesso#mensagem-tabela");
+ }catch(Exception $e){
+ header("Location: ../view/meio_pagamento.php?msg=editar-falha#mensagem-tabela");
+ }
+ }
+
+ /**
+ * Realiza os procedimentos necessários para ativar/desativar um meio de pagamento no sistema
+ */
+ public function alterarStatus()
+ {
+ $meioPagamentoId = $_POST['id'];
+ $status = trim($_POST['status']);
+
+ if (!$meioPagamentoId || empty($meioPagamentoId)) {
+ http_response_code(400);
+ echo json_encode(['Erro' => 'O id deve ser maior ou igual a 1.']);exit;
+ }
+
+ if (!$status || empty($status)) {
+ http_response_code(400);
+ echo json_encode(['Erro' => 'O status informado não é válido.']);exit;
+ }
+
+ if ($status === 'true') {
+ $status = 1;
+ } elseif ($status === 'false') {
+ $status = 0;
+ }
+
+ try {
+ $meioPagamentoDao = new MeioPagamentoDAO();
+ $meioPagamentoDao->alterarStatusPorId($status, $meioPagamentoId);
+ echo json_encode(['Sucesso']);
+ } catch (Exception $e) {
+ http_response_code(500);
+ echo json_encode(['Erro'=>'Ocorreu um problema no servidor.']);exit;
+ }
+ }
+}
\ No newline at end of file
diff --git a/html/apoio/controller/RegraPagamentoController.php b/html/apoio/controller/RegraPagamentoController.php
new file mode 100644
index 00000000..b033583a
--- /dev/null
+++ b/html/apoio/controller/RegraPagamentoController.php
@@ -0,0 +1,121 @@
+buscaRegrasContribuicao();
+ return $regrasContribuicao;
+ }
+
+ /**
+ * Retorna o conjunto de regras de pagamento presentes no sistema
+ */
+ public function buscaConjuntoRegrasPagamento(){
+ $regraPagamentoDao = new RegraPagamentoDAO();
+ $conjuntoRegrasPagamento = $regraPagamentoDao->buscaConjuntoRegrasPagamento();
+ return $conjuntoRegrasPagamento;
+ }
+
+ /**
+ * Extraí os dados do formulário e realiza os procedimentos necessários para inserir um novo
+ * conjunto de regras no sistema.
+ */
+ public function cadastrar(){
+ //Implementar restante da lógica do código...
+ $meioPagamentoId = $_POST['meio-pagamento-plataforma'];
+ $regraContribuicaoId = $_POST['regra-pagamento'];
+ $valor = $_POST['valor'];
+ try{
+ $regraPagamento = new RegraPagamento();
+ $regraPagamento
+ ->setMeioPagamentoId($meioPagamentoId)
+ ->setRegraContribuicaoId($regraContribuicaoId)
+ ->setValor($valor)
+ ->setStatus(0)
+ ->cadastrar();
+ header("Location: ../view/regra_pagamento.php?msg=cadastrar-sucesso");
+ }catch(Exception $e){
+ header("Location: ../view/regra_pagamento.php?msg=cadastrar-falha");
+ }
+ }
+
+ /**
+ * Realiza os procedimentos necessários para remover uma regra de pagamento do sistema.
+ */
+ public function excluirPorId(){
+ $regraPagamentoId = trim($_POST['regra-pagamento-id']);
+
+ if (!$regraPagamentoId || empty($regraPagamentoId) || $regraPagamentoId < 1) {
+ //parar operação
+ header("Location: ../view/regra_pagamento.php?msg=excluir-falha#mensagem-tabela");
+ exit();
+ }
+
+ try{
+ $regraPagamentoDao = new RegraPagamentoDAO();
+ $regraPagamentoDao->excluirPorId($regraPagamentoId);
+ header("Location: ../view/regra_pagamento.php?msg=excluir-sucesso#mensagem-tabela");
+ }catch(Exception $e){
+ header("Location: ../view/regra_pagamento.php?msg=excluir-falha#mensagem-tabela");
+ }
+ }
+
+ /**
+ * Realiza os procedimentos necessários para alterar as informações de uma regra de pagamento do sistema
+ */
+ public function editarPorId(){
+ $valor = $_POST['valor'];
+ $regraPagamentoId = $_POST['id'];
+
+ try{
+ $regraPagamento = new RegraPagamento();
+ $regraPagamento
+ ->setId($regraPagamentoId)
+ ->setValor($valor)
+ ->editar();
+ header("Location: ../view/regra_pagamento.php?msg=editar-sucesso#mensagem-tabela");
+ }catch(Exception $e){
+ header("Location: ../view/regra_pagamento.php?msg=editar-falha#mensagem-tabela");
+ }
+ }
+
+ /**
+ * Realiza os procedimentos necessários para ativar/desativar uma regra de pagamento no sistema
+ */
+ public function alterarStatus()
+ {
+ $regraPagamentoId = $_POST['id'];
+ $status = trim($_POST['status']);
+
+ if (!$regraPagamentoId || empty($regraPagamentoId)) {
+ http_response_code(400);
+ echo json_encode(['Erro' => 'O id deve ser maior ou igual a 1.']);exit;
+ }
+
+ if (!$status || empty($status)) {
+ http_response_code(400);
+ echo json_encode(['Erro' => 'O status informado não é válido.']);exit;
+ }
+
+ if ($status === 'true') {
+ $status = 1;
+ } elseif ($status === 'false') {
+ $status = 0;
+ }
+
+ try {
+ $regraPagamentoDao = new RegraPagamentoDAO();
+ $regraPagamentoDao->alterarStatusPorId($status, $regraPagamentoId, $status);
+ echo json_encode(['Sucesso']);
+ } catch (Exception $e) {
+ http_response_code(500);
+ echo json_encode(['Erro'=>'Ocorreu um problema no servidor.']);exit;
+ }
+ }
+}
\ No newline at end of file
diff --git a/html/apoio/controller/SocioController.php b/html/apoio/controller/SocioController.php
new file mode 100644
index 00000000..891412aa
--- /dev/null
+++ b/html/apoio/controller/SocioController.php
@@ -0,0 +1,27 @@
+ 'O documento informado não é válido.']);exit;
+ }
+
+ try{
+ $socioDao = new SocioDAO();
+ $socio = $socioDao->buscarPorDocumento($documento);
+
+ if(!$socio || is_null($socio)){
+ echo json_encode(['Resultado' => 'Sócio não encontrado']);exit;
+ }
+
+ print_r($socio); //Averiguar a melhor maneira de retornar um sócio para o requisitante
+ }catch(PDOException $e){
+ http_response_code(500);
+ echo json_encode(['Erro' => $e->getMessage()]);exit;
+ }
+ }
+}
\ No newline at end of file
diff --git a/html/apoio/controller/control.php b/html/apoio/controller/control.php
new file mode 100644
index 00000000..5a1e06f9
--- /dev/null
+++ b/html/apoio/controller/control.php
@@ -0,0 +1,33 @@
+$function(); //Calls the controller function
+} catch (InvalidArgumentException $e) {
+ http_response_code(400);
+ exit("Erro: {$e->getMessage()}");
+}
\ No newline at end of file
diff --git a/html/apoio/dao/ConexaoDAO.php b/html/apoio/dao/ConexaoDAO.php
new file mode 100644
index 00000000..baff84f4
--- /dev/null
+++ b/html/apoio/dao/ConexaoDAO.php
@@ -0,0 +1,9 @@
+setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+ return $pdo;
+ }
+}
\ No newline at end of file
diff --git a/html/apoio/dao/ContribuicaoLogDAO.php b/html/apoio/dao/ContribuicaoLogDAO.php
new file mode 100644
index 00000000..d4c1bfa2
--- /dev/null
+++ b/html/apoio/dao/ContribuicaoLogDAO.php
@@ -0,0 +1,55 @@
+pdo = ConexaoDAO::conectar();
+ }
+
+ public function criar(ContribuicaoLog $contribuicaoLog){
+ $sqlInserirContribuicaoLog =
+ "INSERT INTO contribuicao_log (
+ id_socio,
+ codigo,
+ valor,
+ data_geracao,
+ data_vencimento,
+ status_pagamento
+ )
+ VALUES (
+ :idSocio,
+ :codigo,
+ :valor,
+ :dataGeracao,
+ :dataVencimento,
+ :statusPagamento
+ )
+ ";
+
+ $stmt = $this->pdo->prepare($sqlInserirContribuicaoLog);
+ $stmt->bindParam(':idSocio', $contribuicaoLog->getIdSocio());
+ $stmt->bindParam(':codigo', $contribuicaoLog->getCodigo());
+ $stmt->bindParam(':valor', $contribuicaoLog->getValor());
+ $stmt->bindParam(':dataGeracao', $contribuicaoLog->getDataGeracao());
+ $stmt->bindParam(':dataVencimento', $contribuicaoLog->getDataVencimento());
+ $stmt->bindParam(':statusPagamento', $contribuicaoLog->getStatusPagamento());
+
+ $stmt->execute();
+ }
+
+ public function pagarPorId($id){
+ $sqlPagarPorId = "UPDATE contribuicao_log SET status_pagamento = 1 WHERE id=:id";
+
+ $stmt = $this->pdo->prepare($sqlPagarPorId);
+ $stmt->bindParam(':id', $id);
+
+ $stmt->execute();
+ }
+}
\ No newline at end of file
diff --git a/html/apoio/dao/GatewayPagamentoDAO.php b/html/apoio/dao/GatewayPagamentoDAO.php
new file mode 100644
index 00000000..c4736b14
--- /dev/null
+++ b/html/apoio/dao/GatewayPagamentoDAO.php
@@ -0,0 +1,108 @@
+pdo = ConexaoDAO::conectar();
+ }
+
+ /**
+ * 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, status)
+ VALUES (:plataforma, :endpoint, :token, :status)";
+ //utilizar prepared statements
+ $stmt = $this->pdo->prepare($sqlCadastrar);
+ $stmt->bindParam(':plataforma', $nome);
+ $stmt->bindParam(':endpoint', $endpoint);
+ $stmt->bindParam(':token', $token);
+ $stmt->bindParam(':status', $status);
+ //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();
+ }
+ }
+
+ /**
+ * Modifica o campo status da tabela contribuica_gatewayPagamento de acordo com o id fornecido
+ */
+ public function alterarStatusPorId($status, $gatewayId){
+ //definir consulta sql
+ $sqlAlterarStatusPorId = "UPDATE contribuicao_gatewayPagamento SET status =:status WHERE id=:gatewayId";
+ //utilizar prepared statements
+ $stmt = $this->pdo->prepare($sqlAlterarStatusPorId);
+ $stmt->bindParam(':status', $status);
+ $stmt->bindParam(':gatewayId', $gatewayId);
+ //executar
+ $stmt->execute();
+
+ //verificar se algum elemento foi de fato alterado
+ $gatewayAlterado = $stmt->rowCount();
+
+ if($gatewayAlterado < 1){
+ throw new Exception();
+ }
+ }
+}
\ No newline at end of file
diff --git a/html/apoio/dao/MeioPagamentoDAO.php b/html/apoio/dao/MeioPagamentoDAO.php
new file mode 100644
index 00000000..daa516c1
--- /dev/null
+++ b/html/apoio/dao/MeioPagamentoDAO.php
@@ -0,0 +1,114 @@
+pdo = ConexaoDAO::conectar();
+ }
+
+ /**
+ * Inseri um meio de pagamento no banco de dados da aplicação
+ */
+ public function cadastrar($descricao, $gatewayId, $status)
+ {
+ /*Lógica da aplicação */
+ //definir consulta SQL
+ $sqlCadastrar = "INSERT INTO contribuicao_meioPagamento (meio, id_plataforma, status)
+ VALUES (:descricao, :gatewayId, :status)";
+ //utilizar prepared statements
+ $stmt = $this->pdo->prepare($sqlCadastrar);
+ $stmt->bindParam(':descricao', $descricao);
+ $stmt->bindParam(':gatewayId', $gatewayId);
+ $stmt->bindParam(':status', $status);
+ //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, cmp.status, 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();
+ }
+ }
+
+ /**
+ * Modifica o campo status da tabela contribuica_meioPagamento de acordo com o id fornecido
+ */
+ public function alterarStatusPorId($status, $meioPagamentoId)
+ {
+ //definir consulta sql
+ $sqlAlterarStatusPorId = "UPDATE contribuicao_meioPagamento SET status =:status WHERE id=:meioPagamentoId";
+ //utilizar prepared statements
+ $stmt = $this->pdo->prepare($sqlAlterarStatusPorId);
+ $stmt->bindParam(':status', $status);
+ $stmt->bindParam(':meioPagamentoId', $meioPagamentoId);
+ //executar
+ $stmt->execute();
+
+ //verificar se algum elemento foi de fato alterado
+ $meioAlterado = $stmt->rowCount();
+
+ if ($meioAlterado < 1) {
+ throw new Exception();
+ }
+ }
+}
diff --git a/html/apoio/dao/RegraPagamentoDAO.php b/html/apoio/dao/RegraPagamentoDAO.php
new file mode 100644
index 00000000..754a1055
--- /dev/null
+++ b/html/apoio/dao/RegraPagamentoDAO.php
@@ -0,0 +1,117 @@
+pdo = ConexaoDAO::conectar();
+ }
+
+ /**
+ * Retorna todas as regras de contribuição presentes no banco de dados da aplicação
+ */
+ public function buscaRegrasContribuicao(){
+ //definir consulta sql
+ $sqlBuscaTodos = "SELECT * FROM contribuicao_regras";
+ //executar
+ $resultado = $this->pdo->query($sqlBuscaTodos)->fetchAll(PDO::FETCH_ASSOC);
+ //retornar resultado
+ return $resultado;
+ }
+
+ public function buscaConjuntoRegrasPagamento(){
+ //definir consulta sql
+ $sqlBuscaTodos = "SELECT ccr.id, ccr.id_meioPagamento, ccr.id_regra, ccr.valor, ccr.status, cmp.meio, cr.regra, cgp.plataforma, cgp.endpoint
+ FROM contribuicao_conjuntoRegras ccr
+ JOIN contribuicao_meioPagamento cmp ON(cmp.id=ccr.id_meioPagamento)
+ JOIN contribuicao_gatewayPagamento cgp ON(cgp.id = cmp.id_plataforma)
+ JOIN contribuicao_regras cr ON(cr.id=ccr.id_regra)";
+ //executar
+ $resultado = $this->pdo->query($sqlBuscaTodos)->fetchAll(PDO::FETCH_ASSOC);
+ //retornar resultado
+ return $resultado;
+ }
+
+ /**
+ * Inseri um novo conjunto de regras no banco de dados da aplicação
+ */
+ public function cadastrar($meioPagamentoId, $regraContribuicaoId, $valor, $status){
+ /*Lógica da aplicação */
+ //definir consulta SQL
+ $sqlCadastrar = "INSERT INTO contribuicao_conjuntoRegras (id_meioPagamento, id_regra, valor, status)
+ VALUES (:meioPagamentoId, :regraContribuicaoId, :valor, :status)";
+ //utilizar prepared statements
+ $stmt = $this->pdo->prepare($sqlCadastrar);
+ $stmt->bindParam(':meioPagamentoId', $meioPagamentoId);
+ $stmt->bindParam(':regraContribuicaoId', $regraContribuicaoId);
+ $stmt->bindParam(':valor', $valor);
+ $stmt->bindParam(':status', $status);
+ //executar
+ $stmt->execute();
+ }
+
+
+ public function excluirPorId($id){
+ //definir consulta sql
+ $sqlExcluirPorId = "DELETE FROM contribuicao_conjuntoRegras 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
+ $conjuntoRegraPagamentoExcluido = $stmt->rowCount();
+
+ if($conjuntoRegraPagamentoExcluido < 1){
+ throw new Exception();
+ }
+ }
+
+ /**
+ * Edita o meio de pagamento que possuí id equivalente no
+ */
+ public function editarPorId($id, $valor){
+ //definir consulta sql
+ $sqlEditarPorId = "UPDATE contribuicao_conjuntoRegras SET valor =:valor WHERE id=:id";
+ //utilizar prepared statements
+ $stmt = $this->pdo->prepare($sqlEditarPorId);
+ $stmt->bindParam(':valor', $valor);
+ $stmt->bindParam(':id', $id);
+ //executar
+ $stmt->execute();
+
+ //verificar se algum elemento foi de fato alterado
+ $meioPagamentoExcluido = $stmt->rowCount();
+
+ if($meioPagamentoExcluido < 1){
+ throw new Exception();
+ }
+ }
+
+ /**
+ * Modifica o campo status da tabela contribuicao_conjuntoRegras de acordo com o id fornecido
+ */
+ public function alterarStatusPorId($status, $regraPagamentoId)
+ {
+ //definir consulta sql
+ $sqlAlterarStatusPorId = "UPDATE contribuicao_conjuntoRegras SET status =:status WHERE id=:regraPagamentoId";
+ //utilizar prepared statements
+ $stmt = $this->pdo->prepare($sqlAlterarStatusPorId);
+ $stmt->bindParam(':status', $status);
+ $stmt->bindParam(':regraPagamentoId', $regraPagamentoId);
+ //executar
+ $stmt->execute();
+
+ //verificar se algum elemento foi de fato alterado
+ $regraAlterada = $stmt->rowCount();
+
+ if ($regraAlterada < 1) {
+ throw new Exception();
+ }
+ }
+}
\ No newline at end of file
diff --git a/html/apoio/dao/SocioDAO.php b/html/apoio/dao/SocioDAO.php
new file mode 100644
index 00000000..ac4e5755
--- /dev/null
+++ b/html/apoio/dao/SocioDAO.php
@@ -0,0 +1,61 @@
+pdo = ConexaoDAO::conectar();
+ }
+
+ public function buscarPorDocumento($documento){
+ $sqlBuscaPorDocumento =
+ "SELECT
+ pessoa.id_pessoa,
+ pessoa.nome,
+ pessoa.telefone,
+ pessoa.cep,
+ pessoa.estado,
+ pessoa.cidade,
+ pessoa.bairro,
+ pessoa.complemento,
+ pessoa.numero_endereco,
+ pessoa.logradouro,
+ socio.id_pessoa,
+ socio.email
+ FROM pessoa, socio
+ WHERE pessoa.id_pessoa = socio.id_pessoa
+ AND pessoa.cpf=:documento";
+
+ $stmt = $this->pdo->prepare($sqlBuscaPorDocumento);
+ $stmt->bindParam(':documento', $documento);
+
+ $stmt->execute();
+
+ if($stmt->rowCount() === 0){
+ return null;
+ }
+
+ $socioArray = $stmt->fetch(PDO::FETCH_ASSOC);
+
+ $socio = new Socio();
+ $socio
+ ->setNome($socioArray['nome'])
+ ->setTelefone($socioArray['telefone'])
+ ->setEmail($socioArray['email'])
+ ->setEstado($socioArray['estado'])
+ ->setTelefone($socioArray['telefone'])
+ ->setCidade($socioArray['cidade'])
+ ->setBairro($socioArray['bairro'])
+ ->setComplemento($socioArray['complemento'])
+ ->setCep($socioArray['cep'])
+ ->setNumeroEndereco($socioArray['numero_endereco'])
+ ->setLogradouro($socioArray['logradouro']);
+
+ return $socio;
+ }
+}
\ No newline at end of file
diff --git a/html/apoio/model/ContribuicaoLog.php b/html/apoio/model/ContribuicaoLog.php
new file mode 100644
index 00000000..424279b4
--- /dev/null
+++ b/html/apoio/model/ContribuicaoLog.php
@@ -0,0 +1,165 @@
+id;
+ }
+
+ /**
+ * Set the value of id
+ *
+ * @return self
+ */
+ public function setId($id)
+ {
+ $this->id = $id;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of valor
+ */
+ public function getValor()
+ {
+ return $this->valor;
+ }
+
+ /**
+ * Set the value of valor
+ *
+ * @return self
+ */
+ public function setValor($valor)
+ {
+ $this->valor = $valor;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of codigo
+ */
+ public function getCodigo()
+ {
+ return $this->codigo;
+ }
+
+ /**
+ * Set the value of codigo
+ *
+ * @return self
+ */
+ public function setCodigo($codigo)
+ {
+ $this->codigo = $codigo;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of dataGeracao
+ */
+ public function getDataGeracao()
+ {
+ return $this->dataGeracao;
+ }
+
+ /**
+ * Set the value of dataGeracao
+ *
+ * @return self
+ */
+ public function setDataGeracao($dataGeracao)
+ {
+ $this->dataGeracao = $dataGeracao;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of dataVencimento
+ */
+ public function getDataVencimento()
+ {
+ return $this->dataVencimento;
+ }
+
+ /**
+ * Set the value of dataVencimento
+ *
+ * @return self
+ */
+ public function setDataVencimento($dataVencimento)
+ {
+ $this->dataVencimento = $dataVencimento;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of idSocio
+ */
+ public function getIdSocio()
+ {
+ return $this->idSocio;
+ }
+
+ /**
+ * Set the value of idSocio
+ *
+ * @return self
+ */
+ public function setIdSocio($idSocio)
+ {
+ $this->idSocio = $idSocio;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of statusPagamento
+ */
+ public function getStatusPagamento()
+ {
+ return $this->statusPagamento;
+ }
+
+ /**
+ * Set the value of statusPagamento
+ *
+ * @return self
+ */
+ public function setStatusPagamento($statusPagamento)
+ {
+ $this->statusPagamento = $statusPagamento;
+
+ return $this;
+ }
+}
diff --git a/html/apoio/model/GatewayPagamento.php b/html/apoio/model/GatewayPagamento.php
new file mode 100644
index 00000000..1b7a4061
--- /dev/null
+++ b/html/apoio/model/GatewayPagamento.php
@@ -0,0 +1,168 @@
+setNome($nome)->setEndpoint($endpoint)->setToken($token);
+ if(!$status){
+ $this->setStatus(0);
+ }else{
+ $this->setStatus($status);
+ }
+ }
+
+ /**
+ * 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/apoio/model/MeioPagamento.php b/html/apoio/model/MeioPagamento.php
new file mode 100644
index 00000000..c46aacca
--- /dev/null
+++ b/html/apoio/model/MeioPagamento.php
@@ -0,0 +1,138 @@
+setDescricao($descricao)->setGatewayId($gatewayId);
+
+ if(!$status){
+ $this->setStatus(0);
+ }else{
+ $this->setStatus($status);
+ }
+ }
+
+ /**
+ * 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, $this->status);
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * 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 meio de pagamento não pode ser vazio.');
+ }
+
+ $this->status = $status;
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/html/apoio/model/RegraPagamento.php b/html/apoio/model/RegraPagamento.php
new file mode 100644
index 00000000..f17db759
--- /dev/null
+++ b/html/apoio/model/RegraPagamento.php
@@ -0,0 +1,154 @@
+cadastrar($this->meioPagamentoId, $this->regraContribuicaoId, $this->valor, $this->status);
+ }
+
+ /**
+ * Altera o valor de uma regra de pagamento no sistema
+ */
+ public function editar(){
+ require_once '../dao/RegraPagamentoDAO.php';
+ $meioPagamentoDao = new RegraPagamentoDAO();
+ $meioPagamentoDao->editarPorId($this->id, $this->valor);
+ }
+
+
+ /**
+ * Get the value of valor
+ */
+ public function getValor()
+ {
+ return $this->valor;
+ }
+
+ /**
+ * Set the value of valor
+ *
+ * @return self
+ */
+ public function setValor($valor)
+ {
+ $valor = floatval($valor);
+
+ if(!$valor || $valor < 0){
+ throw new InvalidArgumentException();
+ }
+ $this->valor = $valor;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of regraContribuicaoId
+ */
+ public function getRegraContribuicaoId()
+ {
+ return $this->regraContribuicaoId;
+ }
+
+ /**
+ * Set the value of regraContribuicaoId
+ *
+ * @return self
+ */
+ public function setRegraContribuicaoId($regraContribuicaoId)
+ {
+ $regraContribuicaoIdLimpo = trim($regraContribuicaoId);
+
+ if(!$regraContribuicaoIdLimpo || $regraContribuicaoIdLimpo <1){
+ throw new InvalidArgumentException();
+ }
+ $this->regraContribuicaoId = $regraContribuicaoIdLimpo;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of meioPagamentoId
+ */
+ public function getMeioPagamentoId()
+ {
+ return $this->meioPagamentoId;
+ }
+
+ /**
+ * Set the value of meioPagamentoId
+ *
+ * @return self
+ */
+ public function setMeioPagamentoId($meioPagamentoId)
+ {
+ $meioPagamentoIdLimpo = trim($meioPagamentoId);
+
+ if(!$meioPagamentoIdLimpo || $meioPagamentoIdLimpo <1){
+ throw new InvalidArgumentException();
+ }
+ $this->meioPagamentoId = $meioPagamentoIdLimpo;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of id
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * Set the value of id
+ *
+ * @return self
+ */
+ public function setId($id)
+ {
+ if(!$id || $id < 1){
+ throw new InvalidArgumentException();
+ }
+
+ $this->id = $id;
+
+ return $this;
+ }
+
+ /**
+ * 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);
+
+ if((!$statusLimpo || empty($statusLimpo)) && $statusLimpo != 0){
+ throw new InvalidArgumentException('O status de um meio de pagamento não pode ser vazio.');
+ }
+
+ $this->status = $status;
+
+ return $this;
+ }
+}
diff --git a/html/apoio/model/Socio.php b/html/apoio/model/Socio.php
new file mode 100644
index 00000000..a514a334
--- /dev/null
+++ b/html/apoio/model/Socio.php
@@ -0,0 +1,215 @@
+nome;
+ }
+
+ /**
+ * Set the value of nome
+ *
+ * @return self
+ */
+ public function setNome($nome)
+ {
+ $this->nome = $nome;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of telefone
+ */
+ public function getTelefone()
+ {
+ return $this->telefone;
+ }
+
+ /**
+ * Set the value of telefone
+ *
+ * @return self
+ */
+ public function setTelefone($telefone)
+ {
+ $this->telefone = $telefone;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of email
+ */
+ public function getEmail()
+ {
+ return $this->email;
+ }
+
+ /**
+ * Set the value of email
+ *
+ * @return self
+ */
+ public function setEmail($email)
+ {
+ $this->email = $email;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of estado
+ */
+ public function getEstado()
+ {
+ return $this->estado;
+ }
+
+ /**
+ * Set the value of estado
+ *
+ * @return self
+ */
+ public function setEstado($estado)
+ {
+ $this->estado = $estado;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of cidade
+ */
+ public function getCidade()
+ {
+ return $this->cidade;
+ }
+
+ /**
+ * Set the value of cidade
+ *
+ * @return self
+ */
+ public function setCidade($cidade)
+ {
+ $this->cidade = $cidade;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of bairro
+ */
+ public function getBairro()
+ {
+ return $this->bairro;
+ }
+
+ /**
+ * Set the value of bairro
+ *
+ * @return self
+ */
+ public function setBairro($bairro)
+ {
+ $this->bairro = $bairro;
+
+ return $this;
+ }
+
+
+
+ /**
+ * Get the value of complemento
+ */
+ public function getComplemento()
+ {
+ return $this->complemento;
+ }
+
+ /**
+ * Set the value of complemento
+ *
+ * @return self
+ */
+ public function setComplemento($complemento)
+ {
+ $this->complemento = $complemento;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of cep
+ */
+ public function getCep()
+ {
+ return $this->cep;
+ }
+
+ /**
+ * Set the value of cep
+ *
+ * @return self
+ */
+ public function setCep($cep)
+ {
+ $this->cep = $cep;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of numeroEndereco
+ */
+ public function getNumeroEndereco()
+ {
+ return $this->numeroEndereco;
+ }
+
+ /**
+ * Set the value of numeroEndereco
+ *
+ * @return self
+ */
+ public function setNumeroEndereco($numeroEndereco)
+ {
+ $this->numeroEndereco = $numeroEndereco;
+
+ return $this;
+ }
+
+ /**
+ * Get the value of logradouro
+ */
+ public function getLogradouro()
+ {
+ return $this->logradouro;
+ }
+
+ /**
+ * Set the value of logradouro
+ *
+ * @return self
+ */
+ public function setLogradouro($logradouro)
+ {
+ $this->logradouro = $logradouro;
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/html/apoio/public/css/contribuicao-configuracao.css b/html/apoio/public/css/contribuicao-configuracao.css
new file mode 100644
index 00000000..b48dfbd5
--- /dev/null
+++ b/html/apoio/public/css/contribuicao-configuracao.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/apoio/public/js/configuracoesGerais.js b/html/apoio/public/js/configuracoesGerais.js
new file mode 100644
index 00000000..e6433fb9
--- /dev/null
+++ b/html/apoio/public/js/configuracoesGerais.js
@@ -0,0 +1,53 @@
+$(function () {//Carrega cabeçalho e menu lateral
+ $("#header").load("../../header.php");
+ $(".menuu").load("../../menu.php");
+});
+
+/**
+ * Trava de segurança para evitar exclusão de itens indesejados
+ * @returns
+ */
+function confirmarExclusao() {
+ return confirm("Tem certeza que deseja excluir este item?");
+}
+
+/**Extraí os dados necessários da view e envia um fetch de POST para a URL informada */
+function alterarStatus(ev, URL, controller) {
+ const toggleId = ev.target.id; // ID do toggle clicado
+ const isChecked = ev.target.checked; // Verifica se está marcado ou não
+
+ // Usando expressão regular para extrair o número
+ const idNumber = toggleId.match(/\d+/)[0]; // Extrai o número após 'toggle'
+ // Montar os dados para enviar no POST
+
+ data = new URLSearchParams();
+ data.append('id', idNumber);
+ data.append('status', isChecked);
+ data.append('nomeClasse', controller);
+ data.append('metodo', 'alterarStatus');
+
+ // Enviar dados via fetch (POST)
+ fetch(URL, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded'
+ },
+ body: data.toString() // Converte o objeto em uma string URL-encoded
+ })
+ .then(response => {
+ if (response.ok) {
+ return response.json(); // Se necessário, processa a resposta
+ } else {
+ return response.json().then(errData => {
+ // Lança o erro com a mensagem extraída do backend
+ throw new Error(errData.Erro || 'Erro desconhecido no servidor');
+ });
+ }
+ })
+ .then(result => {
+ console.log('Resultado:', result); // Processa a resposta do servidor, se houver
+ })
+ .catch(error => {
+ alert(error);
+ });
+}
\ No newline at end of file
diff --git a/html/apoio/public/js/gatewayPagamento.js b/html/apoio/public/js/gatewayPagamento.js
new file mode 100644
index 00000000..70e7eece
--- /dev/null
+++ b/html/apoio/public/js/gatewayPagamento.js
@@ -0,0 +1,32 @@
+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');
+ });
+ });
+
+ //Checkbox de ativar/desativar um gateway de pagamento
+ const toggles = document.querySelectorAll('.toggle-input');
+
+ toggles.forEach(toggle => {
+ toggle.addEventListener('change', function (ev) {
+ alterarStatus(ev, '../controller/control.php', 'GatewayPagamentoController');
+ });
+ });
+
+});
\ No newline at end of file
diff --git a/html/apoio/public/js/meioPagamento.js b/html/apoio/public/js/meioPagamento.js
new file mode 100644
index 00000000..6d90272e
--- /dev/null
+++ b/html/apoio/public/js/meioPagamento.js
@@ -0,0 +1,37 @@
+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');
+ });
+ });
+
+ //Checkbox de ativar/desativar um meio de pagamento
+ const toggles = document.querySelectorAll('.toggle-input');
+
+ toggles.forEach(toggle => {
+ toggle.addEventListener('change', function (ev) {
+ alterarStatus(ev, '../controller/control.php', 'MeioPagamentoController');
+ });
+ });
+});
\ No newline at end of file
diff --git a/html/apoio/public/js/regraPagamento.js b/html/apoio/public/js/regraPagamento.js
new file mode 100644
index 00000000..8623ca39
--- /dev/null
+++ b/html/apoio/public/js/regraPagamento.js
@@ -0,0 +1,26 @@
+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 valor = this.closest('tr').querySelector('td:nth-child(4)').textContent;
+
+ // Preenche o modal com os dados do gateway
+ document.getElementById('editId').value = id;
+ document.getElementById('editValor').value = valor;
+
+ $('#editModal').modal('show');
+ });
+ });
+
+ //Checkbox de ativar/desativar uma regra de pagamento
+ const toggles = document.querySelectorAll('.toggle-input');
+
+ toggles.forEach(toggle => {
+ toggle.addEventListener('change', function (ev) {
+ alterarStatus(ev, '../controller/control.php', 'RegraPagamentoController');
+ });
+ });
+});
\ No newline at end of file
diff --git a/html/apoio/readme.md b/html/apoio/readme.md
new file mode 100644
index 00000000..9846eb9f
--- /dev/null
+++ b/html/apoio/readme.md
@@ -0,0 +1,4 @@
+*Nota*
+
+Os arquivos contidos dentro da pasta `html/apoio/` fazem referência a \_refatoração\_ do módulo de
+`contribuicao` e portanto devem substituir o conteúdo interno da pasta de `html/contribuicao/`
\ No newline at end of file
diff --git a/html/apoio/service/ApiBoletoServiceInterface.php b/html/apoio/service/ApiBoletoServiceInterface.php
new file mode 100644
index 00000000..16ffbad2
--- /dev/null
+++ b/html/apoio/service/ApiBoletoServiceInterface.php
@@ -0,0 +1,7 @@
+buscaTodos();
+
+?>
+
+
+
+
+
+
+ Gateway de Pagamento
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Cadastro de um novo Gateway
+
+
+
+
+
+
+ ×
+ Gateway cadastrado com sucesso!
+
+
+
+ ×
+ Falha no cadastro do gateway.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Gateways do Sistema
+
+
+
+
+
+
+ ×
+ Gateway excluído com sucesso!
+
+
+
+ ×
+ Falha na exclusão do gateway.
+
+
+
+ ×
+ Gateway editado com sucesso!
+
+
+
+ ×
+ Falha na edição do gateway.
+
+
+
+
+
+
+ ×
+ Não foi possível encontrar nenhum gateway cadastrado no sistema.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/html/apoio/view/meio_pagamento.php b/html/apoio/view/meio_pagamento.php
new file mode 100644
index 00000000..7f2d7fc5
--- /dev/null
+++ b/html/apoio/view/meio_pagamento.php
@@ -0,0 +1,288 @@
+buscaTodos();
+
+//carrega meios de pagamentos salvos no banco de dados da aplicação
+require_once('../controller/MeioPagamentoController.php');
+
+$meioPagamentoController = new MeioPagamentoController();
+$meiosPagamento = $meioPagamentoController->buscaTodos();
+?>
+
+
+
+
+
+
+ Meio de Pagamento
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Cadastro de um novo Meio de Pagamento
+
+
+
+
+
+
+ ×
+ Meio de pagamento cadastrado com sucesso!
+
+
+
+ ×
+ Falha no cadastro do meio de pagamento.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Meios de pagamento do sistema
+
+
+
+
+
+
+ ×
+ Meio de pagamento excluído com sucesso!
+
+
+
+ ×
+ Falha na exclusão do meio de pagamento.
+
+
+
+ ×
+ Meio de pagamento editado com sucesso!
+
+
+
+ ×
+ Falha na edição do meio de pagamento.
+
+
+
+
+
+
+ ×
+ Não foi possível encontrar nenhum meio de pagamento cadastrado no sistema.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/html/apoio/view/regra_pagamento.php b/html/apoio/view/regra_pagamento.php
new file mode 100644
index 00000000..438a2dee
--- /dev/null
+++ b/html/apoio/view/regra_pagamento.php
@@ -0,0 +1,301 @@
+buscaTodos();
+
+//carrega regras de contribuição
+require_once('../controller/RegraPagamentoController.php');
+
+$regraPagamentoController = new RegraPagamentoController();
+$regrasContribuicao = $regraPagamentoController->buscaRegrasContribuicao();
+
+//carrega conjunto de regras de pagamento
+$conjuntoRegrasPagamento = $regraPagamentoController->buscaConjuntoRegrasPagamento();
+
+?>
+
+
+
+
+
+
+ Regra de Pagamento
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Cadastro de uma nova regra de pagamento
+
+
+
+
+
+
+ ×
+ Regra de pagamento cadastrada com sucesso!
+
+
+
+ ×
+ Falha no cadastro da regra de pagamento.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Regras de pagamento do sistema
+
+
+
+
+
+
+ ×
+ Regra de pagamento excluída com sucesso!
+
+
+
+ ×
+ Falha na exclusão da regra de pagamento.
+
+
+
+ ×
+ Regra de pagamento editada com sucesso!
+
+
+
+ ×
+ Falha na edição da regra de pagamento.
+
+
+
+
+
+
+ ×
+ Não foi possível encontrar nenhuma regra de pagamento cadastrada no sistema.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/html/apoio/view/teste.php b/html/apoio/view/teste.php
new file mode 100644
index 00000000..1cd9a870
--- /dev/null
+++ b/html/apoio/view/teste.php
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Teste sócio por documento
+
+
+
+
+
\ No newline at end of file