feat: implementa sistema de comprovantes com centralizações e PIX
This commit is contained in:
39
seed_data.py
39
seed_data.py
@@ -5,7 +5,7 @@ from functions.database import (
|
||||
RelatorioCotasMensais, RelatorioVendasMateriais, engine, SessionLocal,
|
||||
Setor, ComiteCentral, Usuario, Role, EmailMilitante, Endereco,
|
||||
ComiteRegional, Celula, EstadoMilitante, get_db_connection,
|
||||
init_database
|
||||
init_database, CentralizacaoComprovante
|
||||
)
|
||||
import random
|
||||
from faker import Faker
|
||||
@@ -59,17 +59,17 @@ def criar_tipos_comprovante(session):
|
||||
"""Cria tipos de comprovante padrão"""
|
||||
print("\nCriando tipos de comprovante...")
|
||||
tipos = [
|
||||
"Comprovante Padrão",
|
||||
"Comprovante Especial",
|
||||
"Comprovante Extraordinário",
|
||||
"Jornal Avulso",
|
||||
"Assinatura de Jornal",
|
||||
"Campanha Financeira"
|
||||
("Comprovante Padrão", 50.00),
|
||||
("Comprovante Especial", 100.00),
|
||||
("Comprovante Extraordinário", 200.00),
|
||||
("Jornal Avulso", 5.00),
|
||||
("Assinatura de Jornal", 30.00),
|
||||
("Campanha Financeira", 0.00) # Valor variável
|
||||
]
|
||||
|
||||
for tipo in tipos:
|
||||
if not session.query(TipoComprovante).filter_by(descricao=tipo).first():
|
||||
session.add(TipoComprovante(descricao=tipo))
|
||||
for descricao, valor in tipos:
|
||||
if not session.query(TipoComprovante).filter_by(descricao=descricao).first():
|
||||
session.add(TipoComprovante(descricao=descricao, valor=valor))
|
||||
|
||||
try:
|
||||
session.commit()
|
||||
@@ -229,14 +229,25 @@ def criar_comprovantes(session, militantes):
|
||||
try:
|
||||
# Criar entre 3 e 8 comprovantes por militante
|
||||
for _ in range(random.randint(3, 8)):
|
||||
tipo = random.choice(tipos_comprovante)
|
||||
# Criar o comprovante base
|
||||
comprovante = Comprovante(
|
||||
militante_id=militante.id,
|
||||
tipo_comprovante=tipo.descricao, # Usando a descrição do tipo
|
||||
valor=random.uniform(10, 1000),
|
||||
data_comprovante=fake.date_between(start_date='-1y', end_date='today')
|
||||
data_comprovante=fake.date_between(start_date='-1y', end_date='today'),
|
||||
forma_pagamento=random.choice(['PIX', 'transferência/DOC', 'depósito', 'maquininha'])
|
||||
)
|
||||
session.add(comprovante)
|
||||
session.flush() # Para obter o ID do comprovante
|
||||
|
||||
# Criar a centralização para o comprovante
|
||||
tipo = random.choice(tipos_comprovante)
|
||||
valor = random.uniform(10, 1000)
|
||||
centralizacao = CentralizacaoComprovante(
|
||||
comprovante_id=comprovante.id,
|
||||
tipo_comprovante=tipo.descricao,
|
||||
valor=valor
|
||||
)
|
||||
session.add(centralizacao)
|
||||
|
||||
session.commit()
|
||||
except Exception as e:
|
||||
session.rollback()
|
||||
|
||||
Reference in New Issue
Block a user