Skip to content

Commit

Permalink
Merge pull request #664 from nilsonLazarin/gabriel
Browse files Browse the repository at this point in the history
Implementação do método de contribuição via PIX 02/08/2024
  • Loading branch information
nilsonLazarin authored Aug 6, 2024
2 parents 4e402f1 + 25f4c45 commit 3a93050
Show file tree
Hide file tree
Showing 13 changed files with 963 additions and 252 deletions.
2 changes: 1 addition & 1 deletion html/contribuicao/doacao/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
<span id="logo_img"><?php resgataImagem(); ?></span>
<span class="contact100-form-title" id="titulo_pag"><?php resgataParagrafo(); ?></span>

<input type="hidden" name="boleto-carne" id="boleto-carne" value="boleto">
<input type="hidden" name="forma-contribuicao" id="forma-contribuicao" value="boleto">

<div id="pag1" class="wrap-input100">

Expand Down
5 changes: 3 additions & 2 deletions html/contribuicao/doacao/model/emitirBoleto.php
Original file line number Diff line number Diff line change
Expand Up @@ -172,8 +172,9 @@ function gerarCodigoAleatorio($tamanho = 16)
if ($httpCode === 200 || $httpCode === 201) {
$responseData = json_decode($response, true);
$pdf_link = $responseData['charges'][0]['last_transaction']['pdf'];
echo json_encode(['link' => $pdf_link]);
} else {
echo json_encode('Erro: A API retornou o código de status HTTP ' . $httpCode . '<br>');
echo json_encode(['Erro' => 'A API retornou o código de status HTTP ' . $httpCode]);
// Verifica se há mensagens de erro na resposta JSON
$responseData = json_decode($response, true);
if (isset($responseData['errors'])) {
Expand All @@ -184,4 +185,4 @@ function gerarCodigoAleatorio($tamanho = 16)
}
}

echo json_encode(['boletoLink' => $pdf_link]);

1 change: 1 addition & 0 deletions html/contribuicao/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@

<a class="btn btn-secondary m-2" href="./doacao/index.php" role="button">Boleto Único</a>
<a class="btn btn-secondary m-2" href="./mensalidade/index.php" role="button">Carnê de Mensalidades</a>
<a class="btn btn-secondary m-2" href="./pix/index.php" role="button">PIX</a>

</div>
</div>
Expand Down
471 changes: 238 additions & 233 deletions html/contribuicao/js/cadastroSocio.js

Large diffs are not rendered by default.

23 changes: 14 additions & 9 deletions html/contribuicao/js/geraboleto.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ function CadastraCobrancas(carneBoletos, id,valor){

}

function geraBoletoNovo(){
function geraFormaContribuicao(){
console.log('Nova geração de boleto.');
//Enviar um post para ./model/emitirBoleto.php com as informações do CPF e do valor da doação

Expand All @@ -52,23 +52,28 @@ function geraBoletoNovo(){
cpfCnpj = document.getElementById("dcnpj").value;
}

const boletoCarne = document.getElementById("boleto-carne").value;
const formaContribuicao = document.getElementById("forma-contribuicao").value;

if(boletoCarne == "boleto"){
//Considerar posteriormente a troca para um switch case caso surjam mais formas de contribuição
if(formaContribuicao == "boleto"){
url = "./model/emitirBoleto.php";
}else if(boletoCarne == "carne"){
}else if(formaContribuicao == "carne"){
url = "./model/carne.php";
parcela = document.getElementById("input-parcelas").value;
dia = document.querySelector("input[name='dta']:checked").value;
}else if(formaContribuicao == "pix"){
url = "./model/emitirQRCode.php";
}else{
alert('O valor de boleto ou carne informado não é válido');
alert('A forma de contribuição informada não é válida.');
return;
}

const valor = document.getElementById("v").value;

// Desativar o clique no span
$('#gerar_boleto').addClass('disabled');
$('#avanca3').addClass('disabled');
$('#emitir_qrcode').addClass('disabled');


$.post(url, {
Expand All @@ -78,12 +83,12 @@ function geraBoletoNovo(){
"dia": dia
}).done(function(r){
const resposta = JSON.parse(r);
if(resposta.boletoLink){
console.log(resposta.boletoLink);
if(resposta.link){
console.log(resposta.link);
// Redirecionar o usuário para o link do boleto em uma nova aba
window.open(resposta.boletoLink, '_blank');
window.open(resposta.link, '_blank');
}else{
alert("Ops! Ocorreu um problema na geração do seu boleto, tente novamente, se o erro persistir contate o suporte.");
alert("Ops! Ocorreu um problema na geração da sua forma de pagamento, tente novamente, se o erro persistir contate o suporte.");
}
});
}
Expand Down
4 changes: 2 additions & 2 deletions html/contribuicao/js/verificar.js
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ function verificarNovo(){
val_min = parseInt(val_min);
valor = parseInt(valor);
let qtdParcelas = parseInt($("#input-parcelas").val());
const boletoCarne = $("#boleto-carne").val();
const formaContribuicao = $("#forma-contribuicao").val();

if(isNaN(valor) || valor[0] == 0)
{
Expand All @@ -116,7 +116,7 @@ function verificarNovo(){
$("#avisa_valor").html("O valor mínimo para doação é <i>R$"+val_min+"</i>");
return;
}
if((boletoCarne == "carne") && (qtdParcelas < 1 || isNaN(qtdParcelas) || qtdParcelas > 12)){
if((formaContribuicao == "carne") && (qtdParcelas < 1 || isNaN(qtdParcelas) || qtdParcelas > 12)){
$("#avisa_parcelas").html("A quantidade de parcelas de um carnê deve ser um número entre 1 e 12.");
return;
}
Expand Down
2 changes: 1 addition & 1 deletion html/contribuicao/mensalidade/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
<span id="logo_img"><?php resgataImagem(); ?></span>
<span class="contact100-form-title" id="titulo_pag"><?php resgataParagrafo(); ?></span>

<input type="hidden" name="boleto-carne" id="boleto-carne" value="carne">
<input type="hidden" name="forma-contribuicao" id="forma-contribuicao" value="carne">

<div id="pag1" class="wrap-input100">

Expand Down
5 changes: 4 additions & 1 deletion html/contribuicao/mensalidade/model/carne.php
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,7 @@ function removeDirectory($dir) {
//$arquivos[] = $responseData['charges'][0]['last_transaction']['pdf'];
} else {
echo json_encode('Erro: A API retornou o código de status HTTP ' . $httpCode);
exit();
// Verifica se há mensagens de erro na resposta JSON
$responseData = json_decode($response, true);
if (isset($responseData['errors'])) {
Expand Down Expand Up @@ -331,6 +332,7 @@ function removeDirectory($dir) {
// Verifica se ocorreu algum erro durante a execução do cURL
if (curl_errno($ch)) {
echo json_encode('Erro ao baixar o arquivo.'); //. curl_error($ch) . PHP_EOL;
exit();
} else {
// Verifica o código de resposta HTTP
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
Expand All @@ -351,6 +353,7 @@ function removeDirectory($dir) {
}
} else {
echo json_encode("Erro ao baixar o arquivo: HTTP $httpCode");
exit();
}
}

Expand Down Expand Up @@ -385,7 +388,7 @@ function removeDirectory($dir) {
$pdf_link = WWW.'html/contribuicao/pdfs/'.$numeroAleatorio.'_'.$cpfSemMascara.'_'.$ultimaDataVencimento.'_'.$value.'.pdf';

if($pdf_link){
echo json_encode(['boletoLink' => $pdf_link]);
echo json_encode(['link' => $pdf_link]);
}else{
echo json_encode('Não foi possível guardar o PDF gerado.');
}
2 changes: 1 addition & 1 deletion html/contribuicao/php/cadastrarSocio.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
$pdo = $conexao->pdo;

$nome = $_POST['nome'];
$tel = $_POST['telefone'];
$telefone = $_POST['telefone'];
$email = $_POST['contato'];
$tipo = $_POST['tipo'];
$doc = $_POST['doc'];
Expand Down
27 changes: 26 additions & 1 deletion html/contribuicao/php/editaSocio.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,31 @@

$tipoPessoa = $_POST['tipoPessoa'];

try {
try{//Try catch para validar se um funcionário está logado para conseguir alterar suas informações
$sqlPesquisaFuncionario = 'SELECT p.id_pessoa FROM pessoa p JOIN funcionario f ON(p.id_pessoa=f.id_pessoa) WHERE p.cpf=:doc';
$stmt = $pdo->prepare($sqlPesquisaFuncionario);
$stmt->bindParam(':doc', $doc);
$stmt->execute();
$resultado = $stmt->fetch(PDO::FETCH_ASSOC);

if($resultado && !empty($resultado)){
$idPessoa = $resultado['id_pessoa'];
if($idPessoa && $idPessoa > 0){
session_start();
$idPessoaLogada = $_SESSION['id_pessoa'];
if($idPessoaLogada != $idPessoa){
echo json_encode(['Erro' => 'Você não possuí as permissões necessárias']);
exit();
}
}
}

}catch(PDOException $e){
echo 'Erro ao consultar banco de dados: '.$e->getMessage();
}


try {//Try catch para editar sócio

$sqlPesquisaSocio = "SELECT * FROM socio s JOIN pessoa p ON (s.id_pessoa=p.id_pessoa) WHERE p.cpf =:doc";
$stmt = $pdo->prepare($sqlPesquisaSocio);
Expand Down Expand Up @@ -57,6 +81,7 @@
}

$query->query("UPDATE pessoa as p JOIN socio as s ON(p.id_pessoa = s.id_pessoa) SET nome = '$nome', telefone= '$tel', data_nascimento = '$dataN', cep = '$cep', logradouro = '$rua', numero_endereco = '$numero', complemento = '$compl', bairro = '$bairro', cidade = '$cidade', estado= '$uf', email = '$email' WHERE cpf = '$doc'");
echo json_encode(['Sucesso' => 'Alteração concluída com sucesso']);
} catch (PDOException $e) {
echo 'Erro ao tentar alterar os dados de um sócio: ' . $e->getMessage();
}
3 changes: 2 additions & 1 deletion html/contribuicao/php/socioCadastrado.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,9 @@ function verificaEndereco($pessoa){
$bairro = trim($pessoa['bairro']);
$logradouro = trim($pessoa['logradouro']);
$numeroEndereco = trim($pessoa['numero_endereco']);
$telefone = trim($pessoa['telefone']);

if(!$cep || empty($cep) || !$estado || empty($estado) || !$cidade || empty($cidade) || !$bairro || empty($bairro) || !$logradouro || empty($logradouro) || !$numeroEndereco || empty($numeroEndereco)){
if(!$cep || empty($cep) || !$estado || empty($estado) || !$cidade || empty($cidade) || !$bairro || empty($bairro) || !$logradouro || empty($logradouro) || !$numeroEndereco || empty($numeroEndereco) || !$telefone || empty($telefone)){
return false;
}

Expand Down
Loading

0 comments on commit 3a93050

Please sign in to comment.