CARONTE v1.0 - Plataforma de Gestão Social

This commit is contained in:
2026-02-08 23:10:32 -03:00
commit c98c806865
60 changed files with 9450 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
import os
from datetime import datetime
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import cm
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_JUSTIFY
from app.core.config import settings
os.makedirs(settings.UPLOAD_DIR, exist_ok=True)
def _styles():
ss = getSampleStyleSheet()
ss.add(ParagraphStyle(name="TitleCenter", parent=ss["Title"], alignment=TA_CENTER, fontSize=16))
ss.add(ParagraphStyle(name="Body", parent=ss["Normal"], alignment=TA_JUSTIFY, fontSize=11, leading=16))
return ss
def gerar_procuracao(familia_nome: str, falecido_nome: str, membro_nome: str, falecido_cpf: str = "000.000.000-00") -> str:
filename = f"procuracao_{familia_nome.lower().replace(' ','_')}_{datetime.now().strftime('%Y%m%d%H%M%S')}.pdf"
path = os.path.join(settings.UPLOAD_DIR, filename)
doc = SimpleDocTemplate(path, pagesize=A4, topMargin=3*cm)
ss = _styles()
story = [
Paragraph("PROCURAÇÃO", ss["TitleCenter"]),
Spacer(1, 1*cm),
Paragraph(
f"Pelo presente instrumento particular, eu, <b>{membro_nome}</b>, na qualidade de herdeiro(a) "
f"de <b>{falecido_nome}</b> (CPF: {falecido_cpf}), da família <b>{familia_nome}</b>, nomeio e constituo "
f"como meu(minha) bastante procurador(a) ______________________, para em meu nome representar "
f"perante órgãos públicos, bancos e demais instituições, podendo requerer, assinar documentos, "
f"receber valores e praticar todos os atos necessários ao cumprimento deste mandato.",
ss["Body"]
),
Spacer(1, 1.5*cm),
Paragraph(f"Local e data: ________________, {datetime.now().strftime('%d/%m/%Y')}", ss["Body"]),
Spacer(1, 2*cm),
Paragraph("_______________________________<br/>Assinatura do Outorgante", ss["Body"]),
]
doc.build(story)
return path
def gerar_requerimento_fgts(familia_nome: str, falecido_nome: str, membro_nome: str, falecido_cpf: str = "000.000.000-00") -> str:
filename = f"requerimento_fgts_{familia_nome.lower().replace(' ','_')}_{datetime.now().strftime('%Y%m%d%H%M%S')}.pdf"
path = os.path.join(settings.UPLOAD_DIR, filename)
doc = SimpleDocTemplate(path, pagesize=A4, topMargin=3*cm)
ss = _styles()
story = [
Paragraph("REQUERIMENTO DE SAQUE DO FGTS POR FALECIMENTO", ss["TitleCenter"]),
Spacer(1, 1*cm),
Paragraph("À Caixa Econômica Federal", ss["Body"]),
Spacer(1, 0.5*cm),
Paragraph(
f"Eu, <b>{membro_nome}</b>, na qualidade de dependente/herdeiro(a) de <b>{falecido_nome}</b> "
f"(CPF: {falecido_cpf}), venho por meio deste requerer o saque do saldo da(s) conta(s) vinculada(s) "
f"ao FGTS do trabalhador falecido, conforme previsto na Lei nº 8.036/90, art. 20, inciso IV.",
ss["Body"]
),
Spacer(1, 0.5*cm),
Paragraph("Documentos em anexo: Certidão de Óbito, documento de identidade, comprovante de dependência.", ss["Body"]),
Spacer(1, 1.5*cm),
Paragraph(f"Local e data: ________________, {datetime.now().strftime('%d/%m/%Y')}", ss["Body"]),
Spacer(1, 2*cm),
Paragraph("_______________________________<br/>Assinatura do Requerente", ss["Body"]),
]
doc.build(story)
return path
def gerar_peticao_pensao(familia_nome: str, falecido_nome: str, membro_nome: str, falecido_cpf: str = "000.000.000-00") -> str:
filename = f"peticao_pensao_{familia_nome.lower().replace(' ','_')}_{datetime.now().strftime('%Y%m%d%H%M%S')}.pdf"
path = os.path.join(settings.UPLOAD_DIR, filename)
doc = SimpleDocTemplate(path, pagesize=A4, topMargin=3*cm)
ss = _styles()
story = [
Paragraph("REQUERIMENTO DE PENSÃO POR MORTE", ss["TitleCenter"]),
Spacer(1, 1*cm),
Paragraph("Ao Instituto Nacional do Seguro Social - INSS", ss["Body"]),
Spacer(1, 0.5*cm),
Paragraph(
f"Eu, <b>{membro_nome}</b>, na qualidade de dependente de <b>{falecido_nome}</b> "
f"(CPF: {falecido_cpf}), venho requerer a concessão do benefício de Pensão por Morte, "
f"conforme previsto nos arts. 74 a 79 da Lei nº 8.213/91, em razão do falecimento do(a) "
f"segurado(a) acima identificado(a).",
ss["Body"]
),
Spacer(1, 0.5*cm),
Paragraph("Documentos em anexo: Certidão de Óbito, documentos pessoais, comprovante de dependência econômica.", ss["Body"]),
Spacer(1, 1.5*cm),
Paragraph(f"Local e data: ________________, {datetime.now().strftime('%d/%m/%Y')}", ss["Body"]),
Spacer(1, 2*cm),
Paragraph("_______________________________<br/>Assinatura do Requerente", ss["Body"]),
]
doc.build(story)
return path
GENERATORS = {
"procuracao": gerar_procuracao,
"requerimento_fgts": gerar_requerimento_fgts,
"peticao_pensao": gerar_peticao_pensao,
}