Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementação do método de contribuição via PIX 02/08/2024 #664

Merged
merged 6 commits into from
Aug 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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