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

Alterações semanais da branch equipeLaje-241029 #781

Merged
merged 6 commits into from
Nov 1, 2024
16 changes: 15 additions & 1 deletion html/apoio/controller/ContribuicaoLogController.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public function criarBoleto() //Talvez seja melhor separar em: criarBoleto, cria

//Verificar se existe um sócio que possua de fato o documento
try {
$socioDao = new SocioDAO();
$socioDao = new SocioDAO($this->pdo);
$socio = $socioDao->buscarPorDocumento($documento);

if (is_null($socio)) {
Expand Down Expand Up @@ -94,6 +94,11 @@ public function criarBoleto() //Talvez seja melhor separar em: criarBoleto, cria
$this->pdo->beginTransaction();
$contribuicaoLogDao = new ContribuicaoLogDAO($this->pdo);
$contribuicaoLogDao->criar($contribuicaoLog);

//Registrar na tabela de socio_log
$mensagem = "Boleto gerado recentemente";
$socioDao->registrarLog($contribuicaoLog->getSocio(), $mensagem);

//Chamada do método de serviço de pagamento requisitado
if (!$servicoPagamento->gerarBoleto($contribuicaoLog)) {
$this->pdo->rollBack();
Expand Down Expand Up @@ -219,6 +224,10 @@ public function criarCarne()
$contribuicaoLogDao->criar($contribuicaoLog);
}

//Registrar na tabela de socio_log
$mensagem = "Carnê gerado recentemente";
$socioDao->registrarLog($contribuicaoLog->getSocio(), $mensagem);

//Chamada do método de serviço de pagamento requisitado
if (!$servicoPagamento->gerarCarne($contribuicaoLogCollection)) {
$this->pdo->rollBack();
Expand Down Expand Up @@ -306,6 +315,11 @@ public function criarQrCode()
$this->pdo->beginTransaction();
$contribuicaoLogDao = new ContribuicaoLogDAO($this->pdo);
$contribuicaoLogDao->criar($contribuicaoLog);

//Registrar na tabela de socio_log
$mensagem = "Pix gerado recentemente";
$socioDao->registrarLog($contribuicaoLog->getSocio(), $mensagem);

//Chamada do método de serviço de pagamento requisitado
if (!$servicoPagamento->gerarQrCode($contribuicaoLog)) {
$this->pdo->rollBack();
Expand Down
11 changes: 11 additions & 0 deletions html/apoio/dao/SocioDAO.php
Original file line number Diff line number Diff line change
Expand Up @@ -107,4 +107,15 @@ public function buscarPorDocumento($documento){

return $socio;
}

public function registrarLog(Socio $socio, string $mensagem){
$sqlRegistrarSocioLog = "INSERT INTO socio_log (id_socio, descricao)
VALUES (:idSocio, :mensagem)";

$stmt = $this->pdo->prepare($sqlRegistrarSocioLog);
$stmt->bindParam(':idSocio', $socio->getId());
$stmt->bindParam(':mensagem', $mensagem);

return $stmt->execute();
}
}
18 changes: 14 additions & 4 deletions html/contribuicao/doacao/model/emitirBoleto.php
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,19 @@ function gerarCodigoAleatorio($tamanho = 16)
//parcelar
$qtd_p = 1;

$dataAtual = new DateTime();
$dataVencimento = $dataAtual->modify('+7 days');
$dataVencimento = $dataVencimento->format('Y-m-d');
//Permite a escolha do dia do boleto caso seja gerado por um funcionário
if (isset($_POST['dia']) && !empty($_POST['dia'])) {
require_once '../../../permissao/permissao.php';

session_start();
permissao($_SESSION['id_pessoa'], 4);

$dataVencimento = $_POST['dia'];
} else {
$dataAtual = new DateTime();
$dataVencimento = $dataAtual->modify('+7 days');
$dataVencimento = $dataVencimento->format('Y-m-d');
}

try {
$req = $stmt->prepare("SELECT doacao_boleto_info.api, doacao_boleto_info.token_api FROM doacao_boleto_info WHERE 1;");
Expand Down Expand Up @@ -186,7 +196,7 @@ function gerarCodigoAleatorio($tamanho = 16)
$numeroAleatorio = gerarCodigoAleatorio();
$ultimaDataVencimento = $dataVencimento;
$ultimaDataVencimento = str_replace('-', '', $ultimaDataVencimento);
$nomeArquivo = $saveDir . $numeroAleatorio .'_'. $cpfSemMascara .'_'. $ultimaDataVencimento .'_'. $value . '.pdf';
$nomeArquivo = $saveDir . $numeroAleatorio . '_' . $cpfSemMascara . '_' . $ultimaDataVencimento . '_' . $value . '.pdf';

// Inicia uma sessão cURL
$ch = curl_init($pdf_link);
Expand Down
99 changes: 61 additions & 38 deletions html/contribuicao/mensalidade/model/carne.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ function gerarCodigoAleatorio($tamanho = 16)
* @param string $dir O caminho do diretório a ser removido.
* @return bool Retorna true em caso de sucesso, false em caso de falha.
*/
function removeDirectory($dir) {
function removeDirectory($dir)
{
// Verifica se o diretório existe
if (!file_exists($dir)) {
return false;
Expand Down Expand Up @@ -128,53 +129,75 @@ function removeDirectory($dir) {
//parcelar
$qtd_p = intval($_POST['parcela']);

if($qtd_p < 1){
if ($qtd_p < 1) {
echo json_encode('A quantidade de parcelas não pode ser menor que 1.');
exit();
}

if($qtd_p > 12){
if ($qtd_p > 12) {
echo json_encode('A quantidade de parcelas não pode ser maior que 12.');
exit();
}

$diaVencimento = intval($_POST['dia']);

if($diaVencimento < 1){
echo json_encode('O dia de vencimento de uma parcela não pode ser menor que 1.');
exit();
}

// Criar um array para armazenar as datas de vencimento
$datasVencimento = [];

// Pegar a data atual
$dataAtual = new DateTime();
if (isset($_POST['tipoGeracao']) && !empty($_POST['tipoGeracao'])) {
//verificar autenticação do funcionário
require_once '../../../permissao/permissao.php';

session_start();
permissao($_SESSION['id_pessoa'], 4);

//escolher qual ação tomar
$tipoGeracao = $_POST['tipoGeracao'];

//chamar funções
require_once './carneInterno.php';

switch($tipoGeracao){
case '1': $datasVencimento = mensalidadeInterna(1); break;
case '2': $datasVencimento = mensalidadeInterna(2); break;
case '3': $datasVencimento = mensalidadeInterna(3); break;
case '6': $datasVencimento = mensalidadeInterna(6); break;
default: echo json_encode('O tipo de geração é inválido.'); exit();
}
} else {
$diaVencimento = intval($_POST['dia']);

// Verificar se o dia informado já passou neste mês
if ($diaVencimento <= $dataAtual->format('d')) {
// Se o dia informado já passou, começar a partir do próximo mês
$dataAtual->modify('first day of next month');
}
if ($diaVencimento < 1) {
echo json_encode('O dia de vencimento de uma parcela não pode ser menor que 1.');
exit();
}

// Iterar sobre a quantidade de parcelas
for ($i = 0; $i < $qtd_p; $i++) {
// Clonar a data atual para evitar modificar o objeto original
$dataVencimento = clone $dataAtual;
// Pegar a data atual
$dataAtual = new DateTime();

// Verificar se o dia informado já passou neste mês
if ($diaVencimento <= $dataAtual->format('d')) {
// Se o dia informado já passou, começar a partir do próximo mês
$dataAtual->modify('first day of next month');
}

// Adicionar os meses de acordo com o índice da parcela
$dataVencimento->modify("+{$i} month");
// Iterar sobre a quantidade de parcelas
for ($i = 0; $i < $qtd_p; $i++) {
// Clonar a data atual para evitar modificar o objeto original
$dataVencimento = clone $dataAtual;

// Definir o dia do vencimento para o dia informado
$dataVencimento->setDate($dataVencimento->format('Y'), $dataVencimento->format('m'), $diaVencimento);
// Adicionar os meses de acordo com o índice da parcela
$dataVencimento->modify("+{$i} month");

// Ajustar a data caso o mês não tenha o dia informado (por exemplo, 30 de fevereiro)
if ($dataVencimento->format('d') != $diaVencimento) {
$dataVencimento->modify('last day of previous month');
}
// Definir o dia do vencimento para o dia informado
$dataVencimento->setDate($dataVencimento->format('Y'), $dataVencimento->format('m'), $diaVencimento);

// Adicionar a data formatada ao array
$datasVencimento[] = $dataVencimento->format('Y-m-d');
// Ajustar a data caso o mês não tenha o dia informado (por exemplo, 30 de fevereiro)
if ($dataVencimento->format('d') != $diaVencimento) {
$dataVencimento->modify('last day of previous month');
}

// Adicionar a data formatada ao array
$datasVencimento[] = $dataVencimento->format('Y-m-d');
}
}

try {
Expand Down Expand Up @@ -299,7 +322,7 @@ function removeDirectory($dir) {

// Diretório onde os arquivos serão armazenados
$saveDir = '../../pdfs/';
$saveDirTemp = $saveDir.'temp/';
$saveDirTemp = $saveDir . 'temp/';

// Verifica se o diretório existe, se não, cria o diretório
if (!is_dir($saveDir)) {
Expand Down Expand Up @@ -347,7 +370,7 @@ function removeDirectory($dir) {
if (strpos($headers, 'Content-Type: application/pdf') !== false) {
// Salva o conteúdo do arquivo no diretório especificado
file_put_contents($savePath, $fileContent);
$arquivos []= $savePath;
$arquivos[] = $savePath;
} else {
//echo "Erro: O conteúdo da URL não é um PDF." . PHP_EOL;
}
Expand Down Expand Up @@ -381,14 +404,14 @@ function removeDirectory($dir) {
$ultimaDataVencimento = str_replace('-', '', $ultimaDataVencimento);

// Salva o arquivo PDF unido
$pdf->Output('F', '../../pdfs/'.$numeroAleatorio.'_'.$cpfSemMascara.'_'.$ultimaDataVencimento.'_'.$value.'.pdf');
$pdf->Output('F', '../../pdfs/' . $numeroAleatorio . '_' . $cpfSemMascara . '_' . $ultimaDataVencimento . '_' . $value . '.pdf');

removeDirectory('../../pdfs/temp');

$pdf_link = WWW.'html/contribuicao/pdfs/'.$numeroAleatorio.'_'.$cpfSemMascara.'_'.$ultimaDataVencimento.'_'.$value.'.pdf';
$pdf_link = WWW . 'html/contribuicao/pdfs/' . $numeroAleatorio . '_' . $cpfSemMascara . '_' . $ultimaDataVencimento . '_' . $value . '.pdf';

if($pdf_link){
if ($pdf_link) {
echo json_encode(['link' => $pdf_link]);
}else{
} else {
echo json_encode('Não foi possível guardar o PDF gerado.');
}
}
42 changes: 42 additions & 0 deletions html/contribuicao/mensalidade/model/carneInterno.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?php

function mensalidadeInterna(int $intervalo)
{
$datasVencimento = [];

$diaVencimento = ($_POST['dia']);

$qtd_p = intval($_POST['parcela']);

if (empty($diaVencimento)) {
echo json_encode('O dia de vencimento de uma parcela não pode ser vazio');
exit();
}

$dia = explode('-', $diaVencimento)[2];

// Pegar a data informada
$dataAtual = new DateTime($diaVencimento);

// Iterar sobre a quantidade de parcelas
for ($i = 0; $i < $qtd_p; $i++) {
// Clonar a data atual para evitar modificar o objeto original
$dataVencimento = clone $dataAtual;

//incremento de meses
$incremento = $intervalo * $i;

// Adicionar os meses de acordo com o índice da parcela
$dataVencimento->modify("+{$incremento} month");

//verificar se o dia de dataVencimento é diferente de $dia, se forem diferentes
//subtrair um mês e modificar para o último dia
if ($dataVencimento->format('d') != $dia) {
$dataVencimento->modify('last day of previous month');
}

// Adicionar a data formatada ao array
$datasVencimento[] = $dataVencimento->format('Y-m-d');
}
return $datasVencimento;
}
3 changes: 1 addition & 2 deletions html/socio/sistema/cadastro_socio.php
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,7 @@
}

if (!$data_nasc || empty($data_nasc)) { //posteiormente adicionar validações de formato
http_response_code(400);
exit('A data de nascimento não pode ser vazia.');
$data_nasc = null;
}

if (!$data_referencia || empty($data_referencia)) { //Posteriormente adicionar validações de formato
Expand Down
Loading