CARONTE v1.0 - Plataforma de Gestão Social
This commit is contained in:
99
backend/app/services/document_generator.py
Normal file
99
backend/app/services/document_generator.py
Normal 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,
|
||||
}
|
||||
Reference in New Issue
Block a user