Skip to content

Commit

Permalink
Transferência da página regra_pagamento.php para a nova estrutura de …
Browse files Browse the repository at this point in the history
…diretórios do módulo de contribuição [Issue #727]
  • Loading branch information
GabrielPintoSouza committed Sep 24, 2024
1 parent 7e23a80 commit 45e1984
Show file tree
Hide file tree
Showing 5 changed files with 719 additions and 0 deletions.
121 changes: 121 additions & 0 deletions html/apoio/controller/RegraPagamentoController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
<?php

require_once '../model/RegraPagamento.php';
require_once '../dao/RegraPagamentoDAO.php';

class RegraPagamentoController{
/**
* Retorna as regras de contribuição presentes no sistema
*/
public function buscaRegrasContribuicao(){
$regraPagamentoDao = new RegraPagamentoDAO();
$regrasContribuicao = $regraPagamentoDao->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;
}
}
}
117 changes: 117 additions & 0 deletions html/apoio/dao/RegraPagamentoDAO.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
<?php

//requisitar arquivo de conexão
require_once '../dao/ConexaoDAO.php';

class RegraPagamentoDAO{
private $pdo;

public function __construct()
{
$this->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();
}
}
}
154 changes: 154 additions & 0 deletions html/apoio/model/RegraPagamento.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
<?php
class RegraPagamento
{
private $id;
private $meioPagamentoId;
private $regraContribuicaoId;
private $valor;
private $status;

/**
* Instancia um objeto do tipo RegraPagamentoDAO e chama o seu método de cadastrar passando os
* valores de $meioPagamentoId, $regraContribuicaoId e $valor como parâmetros
*/
public function cadastrar(){
require_once '../dao/RegraPagamentoDAO.php';
$gatewayPagamentoDao = new RegraPagamentoDAO();
$gatewayPagamentoDao->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;
}
}
Loading

0 comments on commit 45e1984

Please sign in to comment.