From 480bc566b615c5e685eaf98f4a54c44da0a5d8c5 Mon Sep 17 00:00:00 2001 From: GabrielPintoSouza Date: Tue, 17 Sep 2024 08:06:17 -0300 Subject: [PATCH 01/19] =?UTF-8?q?Resolu=C3=A7=C3=A3o=20da=20issue=20708?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/saude/aplicar_medicamento.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/html/saude/aplicar_medicamento.php b/html/saude/aplicar_medicamento.php index ce5e80c3..bc9e7f49 100644 --- a/html/saude/aplicar_medicamento.php +++ b/html/saude/aplicar_medicamento.php @@ -6,12 +6,14 @@ extract($_REQUEST); session_start(); - - if(!isset($_POST['usuario'])){ +//print_r($_SESSION);exit; + + //Mudar para session + if(!isset($_SESSION['usuario'])){ header ("Location: ../index.php"); } - if(!isset($_POST['id_fichamedica'])) { + if(!isset($_SESSION['id_fichamedica'])) { header('Location: ../../controle/control.php?metodo=listarUm&nomeClasse=SaudeControle&nextPage=../html/saude/aplicar_medicamento.php'); } @@ -31,7 +33,7 @@ $pdo = Conexao::connect(); $conexao = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); - $id_pessoa = $_POST['id_pessoa']; + $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); From 49bafc78789c0b09f834c4eac86842ce40a967c9 Mon Sep 17 00:00:00 2001 From: GabrielPintoSouza Date: Tue, 17 Sep 2024 09:10:35 -0300 Subject: [PATCH 02/19] Adicionado o campo de status na tabela contribuicao_gatewayPagamento --- BD/wegia001.sql | 1 + .../configuracao/src/dao/GatewayPagamentoDAO.php | 7 ++++--- .../configuracao/src/model/GatewayPagamento.php | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/BD/wegia001.sql b/BD/wegia001.sql index e1547543..5610f86f 100755 --- a/BD/wegia001.sql +++ b/BD/wegia001.sql @@ -774,6 +774,7 @@ CREATE TABLE `wegia`.`contribuicao_gatewayPagamento` ( `plataforma` VARCHAR(50) NOT NULL, `endPoint` VARCHAR(255) NOT NULL, `token` VARCHAR(100) NOT NULL, + `status` BOOLEAN NOT NULL, PRIMARY KEY (`id`) ) ENGINE = InnoDB; diff --git a/html/contribuicao/configuracao/src/dao/GatewayPagamentoDAO.php b/html/contribuicao/configuracao/src/dao/GatewayPagamentoDAO.php index feeeb641..d231cc9f 100644 --- a/html/contribuicao/configuracao/src/dao/GatewayPagamentoDAO.php +++ b/html/contribuicao/configuracao/src/dao/GatewayPagamentoDAO.php @@ -27,16 +27,17 @@ public function __construct() /** * Inseri um gateway de pagamento no banco de dados da aplicação */ - public function cadastrar($nome, $endpoint, $token/*, $status*/){ + 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)"; + $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(); } diff --git a/html/contribuicao/configuracao/src/model/GatewayPagamento.php b/html/contribuicao/configuracao/src/model/GatewayPagamento.php index 601814f3..ee6e46a5 100644 --- a/html/contribuicao/configuracao/src/model/GatewayPagamento.php +++ b/html/contribuicao/configuracao/src/model/GatewayPagamento.php @@ -26,7 +26,7 @@ public function __construct($nome, $endpoint, $token, $status=null) public function cadastrar(){ require_once '../dao/GatewayPagamentoDAO.php'; $gatewayPagamentoDao = new GatewayPagamentoDAO(); - $gatewayPagamentoDao->cadastrar($this->nome, $this->endpoint, $this->token/*, $this->status*/); + $gatewayPagamentoDao->cadastrar($this->nome, $this->endpoint, $this->token, $this->status); } /** From f85a19a62b2535670d4707267022f72c015de4cf Mon Sep 17 00:00:00 2001 From: GabrielPintoSouza Date: Wed, 18 Sep 2024 07:22:58 -0300 Subject: [PATCH 03/19] =?UTF-8?q?Implementa=C3=A7=C3=A3o=20da=20funcionali?= =?UTF-8?q?dade=20de=20alterar=20o=20status=20de=20um=20gateway=20de=20pag?= =?UTF-8?q?amento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assets/js/gatewayPagamento.js | 56 ++++++++++++++++++- .../controller/GatewayPagamentoController.php | 38 ++++++++++++- .../src/dao/GatewayPagamentoDAO.php | 18 ++++++ 3 files changed, 107 insertions(+), 5 deletions(-) diff --git a/html/contribuicao/configuracao/assets/js/gatewayPagamento.js b/html/contribuicao/configuracao/assets/js/gatewayPagamento.js index 292e8835..16385e04 100644 --- a/html/contribuicao/configuracao/assets/js/gatewayPagamento.js +++ b/html/contribuicao/configuracao/assets/js/gatewayPagamento.js @@ -1,9 +1,9 @@ -document.addEventListener('DOMContentLoaded', function() { +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() { + 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; @@ -19,4 +19,56 @@ document.addEventListener('DOMContentLoaded', function() { $('#editModal').modal('show'); }); }); + + //Checkbox de ativar/desativar um gateway + const toggles = document.querySelectorAll('.toggle-input'); + + toggles.forEach(toggle => { + toggle.addEventListener('change', function (ev) { + 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', 'GatewayPagamentoController'); + data.append('metodo', 'alterarStatus'); + /*const data = { + id: idNumber, + status: isChecked, + nomeClasse: 'GatewayPagamentoController', + metodo: 'alterarStatus' + };*/ + + // Enviar dados via fetch (POST) + fetch('./src/controller/control.php', { + 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/contribuicao/configuracao/src/controller/GatewayPagamentoController.php b/html/contribuicao/configuracao/src/controller/GatewayPagamentoController.php index 86859a9d..ec10ba04 100644 --- a/html/contribuicao/configuracao/src/controller/GatewayPagamentoController.php +++ b/html/contribuicao/configuracao/src/controller/GatewayPagamentoController.php @@ -72,20 +72,52 @@ public function excluirPorId() /** * Realiza os procedimentos necessários para alterar as informações de um gateway de pagamento do sistema */ - public function editarPorId(){ + public function editarPorId() + { $gatewayId = $_POST['id']; $gatewayNome = $_POST['nome']; $gatewayEndepoint = $_POST['endpoint']; $gatewayToken = $_POST['token']; - try{ + 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){ + } catch (Exception $e) { header("Location: ../../gateway_pagamento.php?msg=editar-falha#mensagem-tabela"); } //echo 'Editando gateway de id: '.$gatewayId; } + + 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/contribuicao/configuracao/src/dao/GatewayPagamentoDAO.php b/html/contribuicao/configuracao/src/dao/GatewayPagamentoDAO.php index d231cc9f..7899b842 100644 --- a/html/contribuicao/configuracao/src/dao/GatewayPagamentoDAO.php +++ b/html/contribuicao/configuracao/src/dao/GatewayPagamentoDAO.php @@ -96,4 +96,22 @@ public function editarPorId($id, $nome, $endpoint, $token){ throw new Exception(); } } + + 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 From cbcfc66d30d5181f34ea7a18e8f1d170919916ab Mon Sep 17 00:00:00 2001 From: GabrielPintoSouza Date: Wed, 18 Sep 2024 08:20:41 -0300 Subject: [PATCH 04/19] Adicionado o campo de status na tabela contribuicao_meioPagamento --- BD/wegia001.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/BD/wegia001.sql b/BD/wegia001.sql index 5610f86f..5bf66735 100755 --- a/BD/wegia001.sql +++ b/BD/wegia001.sql @@ -795,6 +795,7 @@ CREATE TABLE `wegia`.`contribuicao_meioPagamento` ( `id` INT NOT NULL AUTO_INCREMENT, `meio` VARCHAR(45) NOT NULL, `id_plataforma` INT NOT NULL, + `status` BOOLEAN NOT NULL, PRIMARY KEY (`id`), UNIQUE INDEX `meio_UNIQUE` (`meio` ASC) VISIBLE, CONSTRAINT `fk_contribuicao_gatewayPagamento_plataforma` From f33a4be65bb65bb991b8490b3248061bf0e66242 Mon Sep 17 00:00:00 2001 From: GabrielPintoSouza Date: Wed, 18 Sep 2024 09:07:12 -0300 Subject: [PATCH 05/19] =?UTF-8?q?Refatora=C3=A7=C3=A3o=20do=20JavaScript?= =?UTF-8?q?=20para=20alterar=20o=20status=20das=20tabelas=20de=20contribui?= =?UTF-8?q?=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assets/js/configuracoesGerais.js | 49 ++++++++++++++++++- .../assets/js/gatewayPagamento.js | 44 +---------------- 2 files changed, 48 insertions(+), 45 deletions(-) diff --git a/html/contribuicao/configuracao/assets/js/configuracoesGerais.js b/html/contribuicao/configuracao/assets/js/configuracoesGerais.js index d4fda932..e6433fb9 100644 --- a/html/contribuicao/configuracao/assets/js/configuracoesGerais.js +++ b/html/contribuicao/configuracao/assets/js/configuracoesGerais.js @@ -1,8 +1,53 @@ -$(function() {//Carrega cabeçalho e menu lateral +$(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 +/** + * 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/contribuicao/configuracao/assets/js/gatewayPagamento.js b/html/contribuicao/configuracao/assets/js/gatewayPagamento.js index 16385e04..70dc8e3a 100644 --- a/html/contribuicao/configuracao/assets/js/gatewayPagamento.js +++ b/html/contribuicao/configuracao/assets/js/gatewayPagamento.js @@ -25,49 +25,7 @@ document.addEventListener('DOMContentLoaded', function () { toggles.forEach(toggle => { toggle.addEventListener('change', function (ev) { - 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', 'GatewayPagamentoController'); - data.append('metodo', 'alterarStatus'); - /*const data = { - id: idNumber, - status: isChecked, - nomeClasse: 'GatewayPagamentoController', - metodo: 'alterarStatus' - };*/ - - // Enviar dados via fetch (POST) - fetch('./src/controller/control.php', { - 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); - }); + alterarStatus(ev, './src/controller/control.php', 'GatewayPagamentoController'); }); }); From bc9b578ce91da4d3583c430b2239c70452d040a2 Mon Sep 17 00:00:00 2001 From: GabrielPintoSouza Date: Wed, 18 Sep 2024 09:42:09 -0300 Subject: [PATCH 06/19] =?UTF-8?q?Implementa=C3=A7=C3=A3o=20da=20funcionali?= =?UTF-8?q?dade=20de=20alterar=20o=20status=20de=20um=20meio=20de=20pagame?= =?UTF-8?q?nto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../configuracao/assets/js/meioPagamento.js | 10 +++ .../controller/MeioPagamentoController.php | 31 ++++++++ .../configuracao/src/dao/MeioPagamentoDAO.php | 77 ++++++++++++------- .../src/model/GatewayPagamento.php | 1 - .../configuracao/src/model/MeioPagamento.php | 41 +++++++++- 5 files changed, 129 insertions(+), 31 deletions(-) diff --git a/html/contribuicao/configuracao/assets/js/meioPagamento.js b/html/contribuicao/configuracao/assets/js/meioPagamento.js index 834c0624..6ce66f8f 100644 --- a/html/contribuicao/configuracao/assets/js/meioPagamento.js +++ b/html/contribuicao/configuracao/assets/js/meioPagamento.js @@ -24,5 +24,15 @@ document.addEventListener('DOMContentLoaded', function () { $('#editModal').modal('show'); }); + + //Checkbox de ativar/desativar um gateway + const toggles = document.querySelectorAll('.toggle-input'); + + toggles.forEach(toggle => { + toggle.addEventListener('change', function (ev) { + console.log('teste'); + alterarStatus(ev, './src/controller/control.php', 'MeioPagamentoController'); + }); + }); }); }); \ No newline at end of file diff --git a/html/contribuicao/configuracao/src/controller/MeioPagamentoController.php b/html/contribuicao/configuracao/src/controller/MeioPagamentoController.php index bbdcb12d..b275cfcb 100644 --- a/html/contribuicao/configuracao/src/controller/MeioPagamentoController.php +++ b/html/contribuicao/configuracao/src/controller/MeioPagamentoController.php @@ -79,4 +79,35 @@ public function editarPorId(){ header("Location: ../../meio_pagamento.php?msg=editar-falha#mensagem-tabela"); } } + + 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/contribuicao/configuracao/src/dao/MeioPagamentoDAO.php b/html/contribuicao/configuracao/src/dao/MeioPagamentoDAO.php index 5369d294..541fc66f 100644 --- a/html/contribuicao/configuracao/src/dao/MeioPagamentoDAO.php +++ b/html/contribuicao/configuracao/src/dao/MeioPagamentoDAO.php @@ -15,7 +15,8 @@ require_once ROOT . '/html/contribuicao/php/conexao.php'; -class MeioPagamentoDAO{ +class MeioPagamentoDAO +{ private $pdo; public function __construct() @@ -27,15 +28,17 @@ public function __construct() /** * Inseri um meio de pagamento no banco de dados da aplicação */ - public function cadastrar($descricao, $gatewayId){ + public function cadastrar($descricao, $gatewayId, $status) + { /*Lógica da aplicação */ //definir consulta SQL - $sqlCadastrar = "INSERT INTO contribuicao_meioPagamento (meio, id_plataforma) - VALUES (:descricao, :gatewayId)"; + $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(); } @@ -43,9 +46,10 @@ public function cadastrar($descricao, $gatewayId){ /** * Retorna todos os meios de pagamentos registrados no banco de dados da aplicação */ - public function buscaTodos(){ + public function buscaTodos() + { //definir consulta sql - $sqlBuscaTodos = "SELECT cmp.id, cmp.meio, cmp.id_plataforma, cgp.plataforma, cgp.endpoint + $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 @@ -57,7 +61,8 @@ public function buscaTodos(){ /** * Remover o meio de pagamento que possuí id equivalente no banco de dados da aplicação */ - public function excluirPorId($id){ + public function excluirPorId($id) + { //definir consulta sql $sqlExcluirPorId = "DELETE FROM contribuicao_meioPagamento WHERE id=:id"; //utilizar prepared statements @@ -69,7 +74,7 @@ public function excluirPorId($id){ //verificar se algum elemento foi de fato excluído $meioPagamentoExcluido = $stmt->rowCount(); - if($meioPagamentoExcluido < 1){ + if ($meioPagamentoExcluido < 1) { throw new Exception(); } } @@ -77,22 +82,42 @@ public function excluirPorId($id){ /** * 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(); - } + 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(); + } + } + + 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(); + } } -} \ No newline at end of file +} diff --git a/html/contribuicao/configuracao/src/model/GatewayPagamento.php b/html/contribuicao/configuracao/src/model/GatewayPagamento.php index ee6e46a5..1b7a4061 100644 --- a/html/contribuicao/configuracao/src/model/GatewayPagamento.php +++ b/html/contribuicao/configuracao/src/model/GatewayPagamento.php @@ -16,7 +16,6 @@ public function __construct($nome, $endpoint, $token, $status=null) }else{ $this->setStatus($status); } - //echo json_encode('Funcionou o Gateway Pagamento'); } /** diff --git a/html/contribuicao/configuracao/src/model/MeioPagamento.php b/html/contribuicao/configuracao/src/model/MeioPagamento.php index 93126183..c46aacca 100644 --- a/html/contribuicao/configuracao/src/model/MeioPagamento.php +++ b/html/contribuicao/configuracao/src/model/MeioPagamento.php @@ -3,11 +3,17 @@ class MeioPagamento{ private $id; private $descricao; private $gatewayId; + private $status; - public function __construct($descricao, $gatewayId) + public function __construct($descricao, $gatewayId, $status=null) { - $this->setDescricao($descricao); - $this->setGatewayId($gatewayId); + $this->setDescricao($descricao)->setGatewayId($gatewayId); + + if(!$status){ + $this->setStatus(0); + }else{ + $this->setStatus($status); + } } /** @@ -17,7 +23,7 @@ public function __construct($descricao, $gatewayId) public function cadastrar(){ require_once '../dao/MeioPagamentoDAO.php'; $meioPagamentoDao = new MeioPagamentoDAO(); - $meioPagamentoDao->cadastrar($this->descricao, $this->gatewayId); + $meioPagamentoDao->cadastrar($this->descricao, $this->gatewayId, $this->status); } /** @@ -102,4 +108,31 @@ public function setId($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 From 23fa02b74e15cbb845a009a4d527a1e5586c8985 Mon Sep 17 00:00:00 2001 From: dev Date: Wed, 18 Sep 2024 15:46:56 -0300 Subject: [PATCH 07/19] Teste cadastro_ficha_medica --- html/pet/cadastro_ficha_medica_pet.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/html/pet/cadastro_ficha_medica_pet.php b/html/pet/cadastro_ficha_medica_pet.php index 2be7fcb2..c93ea9b6 100644 --- a/html/pet/cadastro_ficha_medica_pet.php +++ b/html/pet/cadastro_ficha_medica_pet.php @@ -6,9 +6,7 @@ extract($_REQUEST); session_start(); -if(!isset($_SESSION['usuario'])){ - header ("Location: ../index.php"); -} + $config_path = "config.php"; if(file_exists($config_path)){ From bab3bc3c4633d3060c2b24f406fb9ef2208e0cd6 Mon Sep 17 00:00:00 2001 From: dev Date: Wed, 18 Sep 2024 15:55:10 -0300 Subject: [PATCH 08/19] Teste cadastro_ficha_medica --- html/pet/cadastro_ficha_medica_pet.php | 10 ++++++---- html/pet/cadastro_pet.php | 6 +++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/html/pet/cadastro_ficha_medica_pet.php b/html/pet/cadastro_ficha_medica_pet.php index c93ea9b6..f9059128 100644 --- a/html/pet/cadastro_ficha_medica_pet.php +++ b/html/pet/cadastro_ficha_medica_pet.php @@ -6,7 +6,9 @@ extract($_REQUEST); session_start(); - +/*if(!isset($_SESSION['usuario'])){ + header ("Location: ../index.php"); +}*/ $config_path = "config.php"; if(file_exists($config_path)){ @@ -64,7 +66,7 @@ // Check the permission level if ($row['id_acao'] < 7) { $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ../home.php?msg_c=" . urlencode($msg)); + //header("Location: ../home.php?msg_c=" . urlencode($msg)); exit; } $permissao = $row['id_acao']; @@ -72,14 +74,14 @@ // No valid permission found $permissao = 1; $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ../home.php?msg_c=" . urlencode($msg)); + //header("Location: ../home.php?msg_c=" . urlencode($msg)); exit; } } else { // No valid cargo found $permissao = 1; $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ../home.php?msg_c=" . urlencode($msg)); + //header("Location: ../home.php?msg_c=" . urlencode($msg)); exit; } diff --git a/html/pet/cadastro_pet.php b/html/pet/cadastro_pet.php index ae5074af..4fb23187 100644 --- a/html/pet/cadastro_pet.php +++ b/html/pet/cadastro_pet.php @@ -32,18 +32,18 @@ $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"); + //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"); + //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"); + //header("Location: ../home.php?msg_c=$msg"); } require_once ROOT . "/controle/FuncionarioControle.php"; From f33610e72601efe959f7e7ddd5daa74baa629bfd Mon Sep 17 00:00:00 2001 From: dev Date: Wed, 18 Sep 2024 16:00:40 -0300 Subject: [PATCH 09/19] Teste cadastro_ficha_medica --- html/pet/cadastro_ficha_medica_pet.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/html/pet/cadastro_ficha_medica_pet.php b/html/pet/cadastro_ficha_medica_pet.php index f9059128..4e43b2b2 100644 --- a/html/pet/cadastro_ficha_medica_pet.php +++ b/html/pet/cadastro_ficha_medica_pet.php @@ -6,9 +6,9 @@ extract($_REQUEST); session_start(); -/*if(!isset($_SESSION['usuario'])){ +if(!isset($_SESSION['usuario'])){ header ("Location: ../index.php"); -}*/ +} $config_path = "config.php"; if(file_exists($config_path)){ From f78d3a86202a0d65a4883f7620448aa91679ad4a Mon Sep 17 00:00:00 2001 From: GabrielPintoSouza Date: Thu, 19 Sep 2024 07:53:32 -0300 Subject: [PATCH 10/19] =?UTF-8?q?Adi=C3=A7=C3=A3o=20do=20campo=20de=20stat?= =?UTF-8?q?us=20na=20tabela=20contribuicao=5FconjuntoRegras?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BD/wegia001.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/BD/wegia001.sql b/BD/wegia001.sql index 5bf66735..e2a28e35 100755 --- a/BD/wegia001.sql +++ b/BD/wegia001.sql @@ -813,6 +813,7 @@ CREATE TABLE `wegia`.`contribuicao_conjuntoRegras` ( `id_meioPagamento` INT, `id_regra` INT, `valor` DECIMAL(10, 2), + `status` BOOLEAN NOT NULL, CONSTRAINT `fk_contribuicao_meioPagamento` FOREIGN KEY (`id_meioPagamento`) REFERENCES `wegia`.`contribuicao_meioPagamento`(`id`), CONSTRAINT `fk_contribuicao_regras` FOREIGN KEY (`id_regra`) REFERENCES `wegia`.`contribuicao_regras`(`id`), CONSTRAINT `unico_meioPagamento_regra` UNIQUE (`id_meioPagamento`, `id_regra`) From ae2df5bebfc28b76446c067e9493e09bf5bec5c2 Mon Sep 17 00:00:00 2001 From: GabrielPintoSouza Date: Thu, 19 Sep 2024 09:27:07 -0300 Subject: [PATCH 11/19] =?UTF-8?q?Implementa=C3=A7=C3=A3o=20da=20funcionali?= =?UTF-8?q?dade=20de=20alterar=20o=20status=20de=20um=20conjunto=20de=20re?= =?UTF-8?q?gras?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assets/js/gatewayPagamento.js | 2 +- .../configuracao/assets/js/meioPagamento.js | 13 ++++--- .../configuracao/assets/js/regraPagamento.js | 9 +++++ .../controller/GatewayPagamentoController.php | 3 ++ .../controller/MeioPagamentoController.php | 3 ++ .../controller/RegraPagamentoController.php | 35 +++++++++++++++++++ .../src/dao/GatewayPagamentoDAO.php | 3 ++ .../configuracao/src/dao/MeioPagamentoDAO.php | 3 ++ .../src/dao/RegraPagamentoDAO.php | 31 +++++++++++++--- .../configuracao/src/model/RegraPagamento.php | 29 ++++++++++++++- 10 files changed, 118 insertions(+), 13 deletions(-) diff --git a/html/contribuicao/configuracao/assets/js/gatewayPagamento.js b/html/contribuicao/configuracao/assets/js/gatewayPagamento.js index 70dc8e3a..23584352 100644 --- a/html/contribuicao/configuracao/assets/js/gatewayPagamento.js +++ b/html/contribuicao/configuracao/assets/js/gatewayPagamento.js @@ -20,7 +20,7 @@ document.addEventListener('DOMContentLoaded', function () { }); }); - //Checkbox de ativar/desativar um gateway + //Checkbox de ativar/desativar um gateway de pagamento const toggles = document.querySelectorAll('.toggle-input'); toggles.forEach(toggle => { diff --git a/html/contribuicao/configuracao/assets/js/meioPagamento.js b/html/contribuicao/configuracao/assets/js/meioPagamento.js index 6ce66f8f..b2a1ba0e 100644 --- a/html/contribuicao/configuracao/assets/js/meioPagamento.js +++ b/html/contribuicao/configuracao/assets/js/meioPagamento.js @@ -24,15 +24,14 @@ document.addEventListener('DOMContentLoaded', function () { $('#editModal').modal('show'); }); + }); - //Checkbox de ativar/desativar um gateway - const toggles = document.querySelectorAll('.toggle-input'); + //Checkbox de ativar/desativar um meio de pagamento + const toggles = document.querySelectorAll('.toggle-input'); - toggles.forEach(toggle => { - toggle.addEventListener('change', function (ev) { - console.log('teste'); - alterarStatus(ev, './src/controller/control.php', 'MeioPagamentoController'); - }); + toggles.forEach(toggle => { + toggle.addEventListener('change', function (ev) { + alterarStatus(ev, './src/controller/control.php', 'MeioPagamentoController'); }); }); }); \ No newline at end of file diff --git a/html/contribuicao/configuracao/assets/js/regraPagamento.js b/html/contribuicao/configuracao/assets/js/regraPagamento.js index 0d401559..e19304b2 100644 --- a/html/contribuicao/configuracao/assets/js/regraPagamento.js +++ b/html/contribuicao/configuracao/assets/js/regraPagamento.js @@ -14,4 +14,13 @@ document.addEventListener('DOMContentLoaded', function () { $('#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, './src/controller/control.php', 'RegraPagamentoController'); + }); + }); }); \ No newline at end of file diff --git a/html/contribuicao/configuracao/src/controller/GatewayPagamentoController.php b/html/contribuicao/configuracao/src/controller/GatewayPagamentoController.php index ec10ba04..53f5e0f1 100644 --- a/html/contribuicao/configuracao/src/controller/GatewayPagamentoController.php +++ b/html/contribuicao/configuracao/src/controller/GatewayPagamentoController.php @@ -90,6 +90,9 @@ public function editarPorId() //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']; diff --git a/html/contribuicao/configuracao/src/controller/MeioPagamentoController.php b/html/contribuicao/configuracao/src/controller/MeioPagamentoController.php index b275cfcb..04154acd 100644 --- a/html/contribuicao/configuracao/src/controller/MeioPagamentoController.php +++ b/html/contribuicao/configuracao/src/controller/MeioPagamentoController.php @@ -80,6 +80,9 @@ public function editarPorId(){ } } + /** + * Realiza os procedimentos necessários para ativar/desativar um meio de pagamento no sistema + */ public function alterarStatus() { $meioPagamentoId = $_POST['id']; diff --git a/html/contribuicao/configuracao/src/controller/RegraPagamentoController.php b/html/contribuicao/configuracao/src/controller/RegraPagamentoController.php index 6c24b65e..1cf0e6c8 100644 --- a/html/contribuicao/configuracao/src/controller/RegraPagamentoController.php +++ b/html/contribuicao/configuracao/src/controller/RegraPagamentoController.php @@ -47,6 +47,7 @@ public function cadastrar(){ ->setMeioPagamentoId($meioPagamentoId) ->setRegraContribuicaoId($regraContribuicaoId) ->setValor($valor) + ->setStatus(0) ->cadastrar(); header("Location: ../../regra_pagamento.php?msg=cadastrar-sucesso"); }catch(Exception $e){ @@ -93,4 +94,38 @@ public function editarPorId(){ header("Location: ../../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/contribuicao/configuracao/src/dao/GatewayPagamentoDAO.php b/html/contribuicao/configuracao/src/dao/GatewayPagamentoDAO.php index 7899b842..f6f7378f 100644 --- a/html/contribuicao/configuracao/src/dao/GatewayPagamentoDAO.php +++ b/html/contribuicao/configuracao/src/dao/GatewayPagamentoDAO.php @@ -97,6 +97,9 @@ public function editarPorId($id, $nome, $endpoint, $token){ } } + /** + * 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"; diff --git a/html/contribuicao/configuracao/src/dao/MeioPagamentoDAO.php b/html/contribuicao/configuracao/src/dao/MeioPagamentoDAO.php index 541fc66f..eadd1ae8 100644 --- a/html/contribuicao/configuracao/src/dao/MeioPagamentoDAO.php +++ b/html/contribuicao/configuracao/src/dao/MeioPagamentoDAO.php @@ -102,6 +102,9 @@ public function editarPorId($id, $descricao, $gatewayId) } } + /** + * Modifica o campo status da tabela contribuica_meioPagamento de acordo com o id fornecido + */ public function alterarStatusPorId($status, $meioPagamentoId) { //definir consulta sql diff --git a/html/contribuicao/configuracao/src/dao/RegraPagamentoDAO.php b/html/contribuicao/configuracao/src/dao/RegraPagamentoDAO.php index 7f39eac0..d76be990 100644 --- a/html/contribuicao/configuracao/src/dao/RegraPagamentoDAO.php +++ b/html/contribuicao/configuracao/src/dao/RegraPagamentoDAO.php @@ -37,7 +37,7 @@ public function buscaRegrasContribuicao(){ public function buscaConjuntoRegrasPagamento(){ //definir consulta sql - $sqlBuscaTodos = "SELECT ccr.id, ccr.id_meioPagamento, ccr.id_regra, ccr.valor, cmp.meio, cr.regra, cgp.plataforma, cgp.endpoint + $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) @@ -51,16 +51,17 @@ public function buscaConjuntoRegrasPagamento(){ /** * Inseri um novo conjunto de regras no banco de dados da aplicação */ - public function cadastrar($meioPagamentoId, $regraContribuicaoId, $valor){ + 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) - VALUES (:meioPagamentoId, :regraContribuicaoId, :valor)"; + $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(); } @@ -103,4 +104,26 @@ public function editarPorId($id, $valor){ 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/contribuicao/configuracao/src/model/RegraPagamento.php b/html/contribuicao/configuracao/src/model/RegraPagamento.php index ae41eb3b..f17db759 100644 --- a/html/contribuicao/configuracao/src/model/RegraPagamento.php +++ b/html/contribuicao/configuracao/src/model/RegraPagamento.php @@ -5,6 +5,7 @@ class RegraPagamento private $meioPagamentoId; private $regraContribuicaoId; private $valor; + private $status; /** * Instancia um objeto do tipo RegraPagamentoDAO e chama o seu método de cadastrar passando os @@ -13,7 +14,7 @@ class RegraPagamento public function cadastrar(){ require_once '../dao/RegraPagamentoDAO.php'; $gatewayPagamentoDao = new RegraPagamentoDAO(); - $gatewayPagamentoDao->cadastrar($this->meioPagamentoId, $this->regraContribuicaoId, $this->valor); + $gatewayPagamentoDao->cadastrar($this->meioPagamentoId, $this->regraContribuicaoId, $this->valor, $this->status); } /** @@ -124,4 +125,30 @@ public function setId($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; + } } From e92dea0a4adf2a20a79f58d7b37ff396f454d478 Mon Sep 17 00:00:00 2001 From: nicolly015 Date: Thu, 19 Sep 2024 14:20:25 -0300 Subject: [PATCH 12/19] Corrigindo issue [#342] --- html/atendido/profile_familiar.php | 59 ++++++++++++++++++++++++------ 1 file changed, 47 insertions(+), 12 deletions(-) diff --git a/html/atendido/profile_familiar.php b/html/atendido/profile_familiar.php index bdada19a..b1813bbb 100644 --- a/html/atendido/profile_familiar.php +++ b/html/atendido/profile_familiar.php @@ -53,18 +53,53 @@ function urlGetParams() require_once "../geral/msg.php"; -$dependente = $pdo->query("SELECT *, ap.parentesco AS parentesco -FROM atendido_familiares af -LEFT JOIN pessoa p ON p.id_pessoa = af.pessoa_id_pessoa -LEFT JOIN atendido_parentesco ap ON ap.idatendido_parentesco = af.atendido_parentesco_idatendido_parentesco -WHERE af.idatendido_familiares = " . $_GET['id_dependente'] ?? null); -$dependente = $dependente->fetch(PDO::FETCH_ASSOC); -$dependente["nome_atendido"] = ($pdo->query("SELECT p.nome FROM atendido a LEFT JOIN pessoa p ON a.pessoa_id_pessoa = p.id_pessoa WHERE a.idatendido = " . $dependente["atendido_idatendido"] . ";")->fetch(PDO::FETCH_ASSOC))["nome"]; -$dependente["sobrenome_atendido"] = ($pdo->query("SELECT p.sobrenome FROM atendido a LEFT JOIN pessoa p ON a.pessoa_id_pessoa = p.id_pessoa WHERE a.idatendido = " . $dependente["atendido_idatendido"] . ";")->fetch(PDO::FETCH_ASSOC))["sobrenome"]; - -$id_pessoa = $dependente["id_pessoa"]; -$idatendido_familiares = $dependente["idatendido_familiares"]; -$JSON_dependente = json_encode($dependente); +$id_dependente = isset($_GET['id_dependente']) ? (int) $_GET['id_dependente'] : null; + +if ($id_dependente) { + $stmt = $pdo->prepare(" + SELECT *, ap.parentesco AS parentesco + FROM atendido_familiares af + LEFT JOIN pessoa p ON p.id_pessoa = af.pessoa_id_pessoa + LEFT JOIN atendido_parentesco ap ON ap.idatendido_parentesco = af.atendido_parentesco_idatendido_parentesco + WHERE af.idatendido_familiares = :id_dependente + "); + + $stmt->bindParam(':id_dependente', $id_dependente, PDO::PARAM_INT); + $stmt->execute(); + + $dependente = $stmt->fetch(PDO::FETCH_ASSOC); + + if ($dependente) { + $stmtNome = $pdo->prepare(" + SELECT p.nome FROM atendido a + LEFT JOIN pessoa p ON a.pessoa_id_pessoa = p.id_pessoa + WHERE a.idatendido = :idatendido + "); + $stmtNome->bindParam(':idatendido', $dependente["atendido_idatendido"], PDO::PARAM_INT); + $stmtNome->execute(); + $nomeAtendido = $stmtNome->fetch(PDO::FETCH_ASSOC); + $dependente["nome_atendido"] = $nomeAtendido ? $nomeAtendido["nome"] : null; + + $stmtSobrenome = $pdo->prepare(" + SELECT p.sobrenome FROM atendido a + LEFT JOIN pessoa p ON a.pessoa_id_pessoa = p.id_pessoa + WHERE a.idatendido = :idatendido + "); + $stmtSobrenome->bindParam(':idatendido', $dependente["atendido_idatendido"], PDO::PARAM_INT); + $stmtSobrenome->execute(); + $sobrenomeAtendido = $stmtSobrenome->fetch(PDO::FETCH_ASSOC); + $dependente["sobrenome_atendido"] = $sobrenomeAtendido ? $sobrenomeAtendido["sobrenome"] : null; + + $id_pessoa = $dependente["id_pessoa"]; + $idatendido_familiares = $dependente["idatendido_familiares"]; + $JSON_dependente = json_encode($dependente); + } else { + echo "Dependente não encontrado."; + } +} else { + echo "ID do dependente inválido ou não fornecido."; +} + ?> From 8948a0b798b9d0193cda47f481d8b2abfd38b31d Mon Sep 17 00:00:00 2001 From: dev Date: Thu, 19 Sep 2024 14:55:54 -0300 Subject: [PATCH 13/19] Corrigindo issue [#228] --- html/saude/listar_historico_pacientes.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/html/saude/listar_historico_pacientes.php b/html/saude/listar_historico_pacientes.php index ed36c77b..e4a98fc2 100644 --- a/html/saude/listar_historico_pacientes.php +++ b/html/saude/listar_historico_pacientes.php @@ -23,8 +23,9 @@ require_once($config_path); } $conexao = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); - $id_pessoa = $_SESSION['id_pessoa']; + $id_pessoa = mysqli_real_escape_string($conexao, $_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)){ From 9c0e4d8b2c9be04044d9f9b7135e4a9e078ba193 Mon Sep 17 00:00:00 2001 From: nicolly015 Date: Thu, 19 Sep 2024 16:07:01 -0300 Subject: [PATCH 14/19] Corrigindo issue [#344] --- html/atendido/pre_cadastro_atendido.php | 48 +++++++++++++++---------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/html/atendido/pre_cadastro_atendido.php b/html/atendido/pre_cadastro_atendido.php index 61e210b7..dccbafdc 100644 --- a/html/atendido/pre_cadastro_atendido.php +++ b/html/atendido/pre_cadastro_atendido.php @@ -30,29 +30,41 @@ $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=12"); - if (!is_bool($resultado) and mysqli_num_rows($resultado)) { - $permissao = mysqli_fetch_array($resultado); - if ($permissao['id_acao'] < 7) { - $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: " . WWW . "html/home.php?msg_c=$msg"); + +if ($stmt = mysqli_prepare($conexao, "SELECT * FROM funcionario WHERE id_pessoa = ?")) { + mysqli_stmt_bind_param($stmt, "i", $id_pessoa); + mysqli_stmt_execute($stmt); + $resultado = mysqli_stmt_get_result($stmt); + + if ($resultado && mysqli_num_rows($resultado) > 0) { + $id_cargo = mysqli_fetch_array($resultado); + + if ($stmt2 = mysqli_prepare($conexao, "SELECT * FROM permissao WHERE id_cargo = ? AND id_recurso = 12")) { + $id_cargo_valor = $id_cargo['id_cargo']; + mysqli_stmt_bind_param($stmt2, "i", $id_cargo_valor); + mysqli_stmt_execute($stmt2); + $resultado_permissao = mysqli_stmt_get_result($stmt2); + + if ($resultado_permissao && mysqli_num_rows($resultado_permissao) > 0) { + $permissao = mysqli_fetch_array($resultado_permissao); + + if ($permissao['id_acao'] < 7) { + $msg = "Você não tem as permissões necessárias para essa página."; + header("Location: " . WWW . "html/home.php?msg_c=$msg"); + exit(); + } + $permissao = $permissao['id_acao']; + } else { + $msg = "Você não tem as permissões necessárias para essa página."; + header("Location: " . WWW . "html/home.php?msg_c=$msg"); + exit(); + } } - $permissao = $permissao['id_acao']; } else { - $permissao = 1; $msg = "Você não tem as permissões necessárias para essa página."; header("Location: " . WWW . "html/home.php?msg_c=$msg"); + exit(); } -} else { - $permissao = 1; - $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: " . WWW . "html/home.php?msg_c=$msg"); } require_once ROOT . "/controle/FuncionarioControle.php"; require_once ROOT . "/controle/memorando/MemorandoControle.php"; From a9387674d398cbf3a25ff618e880bcddded106ea Mon Sep 17 00:00:00 2001 From: dev Date: Thu, 19 Sep 2024 16:14:38 -0300 Subject: [PATCH 15/19] Issue [#453] --- dao/pet/adicionar_tipo_exame.php | 30 ++++++++++++++++++++---------- html/pet/cadastro_pet.php | 1 + 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/dao/pet/adicionar_tipo_exame.php b/dao/pet/adicionar_tipo_exame.php index 912aa79f..687bab22 100644 --- a/dao/pet/adicionar_tipo_exame.php +++ b/dao/pet/adicionar_tipo_exame.php @@ -1,16 +1,26 @@ query($sql); -$pd = $pdo->query("SELECT * FROM pet_tipo_exame"); -$p = $pd->fetchAll(); -$array = array(); -foreach ($p as $valor) { - $array[] = array('id_tipo_exame'=>$valor['id_tipo_exame'], 'tipo_exame' => $valor['descricao_exame']); -} +// Utilizando prepared statements para evitar injeções SQL +$sql = "INSERT INTO pet_tipo_exame(descricao_exame) VALUES (:tipo_exame)"; +$stmt = $pdo->prepare($sql); +$stmt->bindParam(':tipo_exame', $tipo_exame, PDO::PARAM_STR); -echo json_encode($p); \ No newline at end of file +if ($stmt->execute()) { + // Recupera todos os registros da tabela + $pd = $pdo->query("SELECT * FROM pet_tipo_exame"); + $p = $pd->fetchAll(PDO::FETCH_ASSOC); + + $array = array(); + foreach ($p as $valor) { + $array[] = array('id_tipo_exame' => $valor['id_tipo_exame'], 'tipo_exame' => $valor['descricao_exame']); + } + + echo json_encode($array); +} else { + echo json_encode(['error' => 'Erro ao inserir tipo de exame']); +} +?> diff --git a/html/pet/cadastro_pet.php b/html/pet/cadastro_pet.php index 4fb23187..83c2ca0e 100644 --- a/html/pet/cadastro_pet.php +++ b/html/pet/cadastro_pet.php @@ -45,6 +45,7 @@ $msg = "Você não tem as permissões necessárias para essa página."; //header("Location: ../home.php?msg_c=$msg"); } +//ret require_once ROOT . "/controle/FuncionarioControle.php"; $listaCPF = new FuncionarioControle; From cbb36442827b88000dc6d352cf929356f142550d Mon Sep 17 00:00:00 2001 From: dev Date: Thu, 19 Sep 2024 16:19:45 -0300 Subject: [PATCH 16/19] Corrigindo issue [#229] --- html/saude/intercorrencia_visualizar.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/saude/intercorrencia_visualizar.php b/html/saude/intercorrencia_visualizar.php index 7a198c9c..852988fe 100644 --- a/html/saude/intercorrencia_visualizar.php +++ b/html/saude/intercorrencia_visualizar.php @@ -23,7 +23,7 @@ require_once '../../controle/AvisoNotificacaoControle.php'; $conexao = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); -$id_pessoa = $_SESSION['id_pessoa']; +$id_pessoa = mysqli_real_escape_string($conexao, $_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); From 8969e4ea2ca9d20507316463e0a7e3cf9a307a8c Mon Sep 17 00:00:00 2001 From: dev Date: Thu, 19 Sep 2024 16:27:30 -0300 Subject: [PATCH 17/19] Issue [#453] --- dao/pet/adicionar_tipo_exame.php | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/dao/pet/adicionar_tipo_exame.php b/dao/pet/adicionar_tipo_exame.php index 687bab22..88e0df28 100644 --- a/dao/pet/adicionar_tipo_exame.php +++ b/dao/pet/adicionar_tipo_exame.php @@ -1,26 +1,17 @@ prepare($sql); -$stmt->bindParam(':tipo_exame', $tipo_exame, PDO::PARAM_STR); +$tipo_exame = $_POST["tipo_exame"]; -if ($stmt->execute()) { - // Recupera todos os registros da tabela - $pd = $pdo->query("SELECT * FROM pet_tipo_exame"); - $p = $pd->fetchAll(PDO::FETCH_ASSOC); - - $array = array(); - foreach ($p as $valor) { - $array[] = array('id_tipo_exame' => $valor['id_tipo_exame'], 'tipo_exame' => $valor['descricao_exame']); - } - - echo json_encode($array); -} else { - echo json_encode(['error' => 'Erro ao inserir tipo de exame']); +$sql = "INSERT INTO pet_tipo_exame(descricao_exame) values('" .$tipo_exame ."')"; +$pdo->query($sql); +$pd = $pdo->query("SELECT * FROM pet_tipo_exame"); +$p = $pd->fetchAll(); +$array = array(); +foreach ($p as $valor) { + $array[] = array('id_tipo_exame'=>$valor['id_tipo_exame'], 'tipo_exame' => $valor['descricao_exame']); } + +echo json_encode($p); ?> From 92a3f5e94c0c6ab96fd74640a9b91e142f9b0d77 Mon Sep 17 00:00:00 2001 From: dev Date: Fri, 20 Sep 2024 12:02:54 -0300 Subject: [PATCH 18/19] =?UTF-8?q?Altera=C3=A7=C3=B5es=20no=20m=C3=B3dulo?= =?UTF-8?q?=20MatPat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/cadastro_saida.php | 76 ++++++++++++++---------- html/listar_saida.php | 127 +++++++++++++++++++++++----------------- html/relatorio.php | 80 +++++++++++++++---------- 3 files changed, 168 insertions(+), 115 deletions(-) diff --git a/html/cadastro_saida.php b/html/cadastro_saida.php index 57e96681..90ea73fc 100755 --- a/html/cadastro_saida.php +++ b/html/cadastro_saida.php @@ -1,47 +1,63 @@ prepare("SELECT id_cargo FROM funcionario WHERE id_pessoa = ?"); +$stmt->bind_param("i", $id_pessoa); +$stmt->execute(); +$resultado = $stmt->get_result(); + +if ($resultado && $resultado->num_rows > 0) { + $row = $resultado->fetch_assoc(); + $id_cargo = $row['id_cargo']; + + // Segunda consulta usando prepared statements + $stmt = $conexao->prepare("SELECT id_acao FROM permissao WHERE id_cargo = ? AND id_recurso = 24"); + $stmt->bind_param("i", $id_cargo); + $stmt->execute(); + $resultado = $stmt->get_result(); + + if ($resultado && $resultado->num_rows > 0) { + $permissao = $resultado->fetch_assoc(); + if ($permissao['id_acao'] < 3) { + $msg = urlencode("Você não tem as permissões necessárias para essa página."); + header("Location: ./home.php?msg_c=$msg"); + exit(); + } + $permissao = $permissao['id_acao']; + } else { + $permissao = 1; + $msg = urlencode("Você não tem as permissões necessárias para essa página."); + header("Location: ./home.php?msg_c=$msg"); + exit(); + } } else { - $permissao = 1; - $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ./home.php?msg_c=$msg"); + $permissao = 1; + $msg = urlencode("Você não tem as permissões necessárias para essa página."); + header("Location: ./home.php?msg_c=$msg"); + exit(); } + // Adiciona a Função display_campo($nome_campo, $tipo_campo) require_once "personalizacao_display.php"; - require_once "../Functions/permissao/permissao.php"; ?> diff --git a/html/listar_saida.php b/html/listar_saida.php index a446e438..f3744211 100755 --- a/html/listar_saida.php +++ b/html/listar_saida.php @@ -1,63 +1,82 @@ prepare("SELECT * FROM funcionario WHERE id_pessoa = ?"); +$stmt->bind_param("i", $id_pessoa); +$stmt->execute(); +$resultado = $stmt->get_result(); + +if ($resultado && $resultado->num_rows > 0) { + $id_cargo = $resultado->fetch_assoc()['id_cargo']; + + // Prevenindo injeção de SQL em permissões + $stmt_permissao = $conexao->prepare("SELECT * FROM permissao WHERE id_cargo = ? AND id_recurso = 24"); + $stmt_permissao->bind_param("i", $id_cargo); + $stmt_permissao->execute(); + $resultado_permissao = $stmt_permissao->get_result(); + + if ($resultado_permissao && $resultado_permissao->num_rows > 0) { + $permissao = $resultado_permissao->fetch_assoc(); + + // Verificando permissões + if ($permissao['id_acao'] < 5) { + // Prevenindo XSS com htmlentities + $msg = htmlentities("Você não tem as permissões necessárias para essa página."); + header("Location: ./home.php?msg_c=" . urlencode($msg)); + exit(); + } + $permissao = $permissao['id_acao']; + } else { + // Caso não tenha permissão + $msg = htmlentities("Você não tem as permissões necessárias para essa página."); + header("Location: ./home.php?msg_c=" . urlencode($msg)); + exit(); + } +} else { + // Caso o funcionário não seja encontrado + $msg = htmlentities("Você não tem as permissões necessárias para essa página."); + header("Location: ./home.php?msg_c=" . urlencode($msg)); + exit(); +} + +// Incluindo arquivo de personalização de display +require_once "personalizacao_display.php"; ?> diff --git a/html/relatorio.php b/html/relatorio.php index 840be249..97e08770 100755 --- a/html/relatorio.php +++ b/html/relatorio.php @@ -1,51 +1,69 @@ prepare("SELECT * FROM funcionario WHERE id_pessoa = ?"); +$stmt->bind_param("i", $id_pessoa); // O 'i' indica que $id_pessoa é um inteiro +$stmt->execute(); +$resultado = $stmt->get_result(); + +if ($resultado && $resultado->num_rows > 0) { + $funcionario = $resultado->fetch_assoc(); + $id_cargo = $funcionario['id_cargo']; + + // Prevenindo injeção de SQL para a verificação de permissões + $stmt_permissao = $conexao->prepare("SELECT * FROM permissao WHERE id_cargo = ? AND id_recurso = 25"); + $stmt_permissao->bind_param("i", $id_cargo); + $stmt_permissao->execute(); + $resultado_permissao = $stmt_permissao->get_result(); + + if ($resultado_permissao && $resultado_permissao->num_rows > 0) { + $permissao = $resultado_permissao->fetch_assoc(); + + // Verificando permissões if ($permissao['id_acao'] < 5) { - $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ./home.php?msg_c=$msg"); + // Prevenindo XSS com htmlentities + $msg = htmlentities("Você não tem as permissões necessárias para essa página."); + header("Location: ./home.php?msg_c=" . urlencode($msg)); + exit(); } - $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"); + // Caso não tenha permissão + $msg = htmlentities("Você não tem as permissões necessárias para essa página."); + header("Location: ./home.php?msg_c=" . urlencode($msg)); + exit(); } } else { - $permissao = 1; - $msg = "Você não tem as permissões necessárias para essa página."; - header("Location: ./home.php?msg_c=$msg"); + // Caso o funcionário não seja encontrado + $msg = htmlentities("Você não tem as permissões necessárias para essa página."); + header("Location: ./home.php?msg_c=" . urlencode($msg)); + exit(); } -// Adiciona a Função display_campo($nome_campo, $tipo_campo) -require_once "personalizacao_display.php"; - - - +// Incluindo arquivo de personalização de display +require_once "personalizacao_display.php"; ?> From cbd4b91291979df78a86a208be39638216fe3428 Mon Sep 17 00:00:00 2001 From: nicolly015 Date: Fri, 20 Sep 2024 15:53:27 -0300 Subject: [PATCH 19/19] Corrigindo issue [#345] --- html/atendido/listar_ocorrencias.php | 30 ++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/html/atendido/listar_ocorrencias.php b/html/atendido/listar_ocorrencias.php index d9e94da4..02607e01 100644 --- a/html/atendido/listar_ocorrencias.php +++ b/html/atendido/listar_ocorrencias.php @@ -29,30 +29,40 @@ } $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=12"); - if (!is_bool($resultado) and mysqli_num_rows($resultado)) { + +$stmt = mysqli_prepare($conexao, "SELECT id_cargo FROM funcionario WHERE id_pessoa = ?"); +mysqli_stmt_bind_param($stmt, 'i', $id_pessoa); +mysqli_stmt_execute($stmt); +$resultado = mysqli_stmt_get_result($stmt); + +if ($resultado && mysqli_num_rows($resultado) > 0) { + $row = mysqli_fetch_array($resultado); + $id_cargo = $row['id_cargo']; + + $stmt = mysqli_prepare($conexao, "SELECT id_acao FROM permissao WHERE id_cargo = ? AND id_recurso = 12"); + mysqli_stmt_bind_param($stmt, 'i', $id_cargo); + mysqli_stmt_execute($stmt); + $resultado = mysqli_stmt_get_result($stmt); + + if ($resultado && mysqli_num_rows($resultado) > 0) { $permissao = mysqli_fetch_array($resultado); if ($permissao['id_acao'] < 7) { $msg = "Você não tem as permissões necessárias para essa página."; header("Location: ../../home.php?msg_c=$msg"); + exit; } $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"); + exit; } } else { - $permissao = 1; $msg = "Você não tem as permissões necessárias para essa página."; header("Location: ./home.php?msg_c=$msg"); + exit; }