rebase usando pagamentos
This commit is contained in:
65
seed_data.py
65
seed_data.py
@@ -1,10 +1,11 @@
|
||||
from datetime import datetime, timedelta
|
||||
from functions.database import (
|
||||
Base, Militante, CotaMensal, TipoPagamento, Pagamento,
|
||||
Base, Militante, CotaMensal, TipoComprovante, Comprovante,
|
||||
MaterialVendido, TipoMaterial, VendaJornalAvulso, AssinaturaAnual,
|
||||
RelatorioCotasMensais, RelatorioVendasMateriais, engine, SessionLocal,
|
||||
Setor, ComiteCentral, Usuario, Role, EmailMilitante, Endereco,
|
||||
ComiteRegional, Celula, EstadoMilitante
|
||||
ComiteRegional, Celula, EstadoMilitante, get_db_connection,
|
||||
init_database
|
||||
)
|
||||
import random
|
||||
from faker import Faker
|
||||
@@ -54,20 +55,28 @@ def criar_estrutura_organizacional(session):
|
||||
session.commit()
|
||||
return crs, setores
|
||||
|
||||
def criar_tipos_pagamento(session):
|
||||
"""Cria tipos de pagamento padrão"""
|
||||
print("\nCriando tipos de pagamento...")
|
||||
def criar_tipos_comprovante(session):
|
||||
"""Cria tipos de comprovante padrão"""
|
||||
print("\nCriando tipos de comprovante...")
|
||||
tipos = [
|
||||
"Dinheiro",
|
||||
"PIX",
|
||||
"Cartão de Crédito",
|
||||
"Cartão de Débito",
|
||||
"Transferência Bancária"
|
||||
"Comprovante Padrão",
|
||||
"Comprovante Especial",
|
||||
"Comprovante Extraordinário",
|
||||
"Jornal Avulso",
|
||||
"Assinatura de Jornal",
|
||||
"Campanha Financeira"
|
||||
]
|
||||
|
||||
for tipo in tipos:
|
||||
if not session.query(TipoPagamento).filter_by(descricao=tipo).first():
|
||||
session.add(TipoPagamento(descricao=tipo))
|
||||
session.commit()
|
||||
if not session.query(TipoComprovante).filter_by(descricao=tipo).first():
|
||||
session.add(TipoComprovante(descricao=tipo))
|
||||
|
||||
try:
|
||||
session.commit()
|
||||
print("Tipos de comprovante criados com sucesso!")
|
||||
except Exception as e:
|
||||
session.rollback()
|
||||
print(f"Erro ao criar tipos de comprovante: {e}")
|
||||
|
||||
def criar_tipos_material(session):
|
||||
"""Cria tipos de material padrão"""
|
||||
@@ -211,27 +220,27 @@ def criar_cotas(session, militantes):
|
||||
print(f"Erro ao criar cotas para militante {militante.nome}: {e}")
|
||||
session.rollback()
|
||||
|
||||
def criar_pagamentos(session, militantes):
|
||||
"""Cria pagamentos para os militantes"""
|
||||
print("\nCriando pagamentos...")
|
||||
tipos_pagamento = session.query(TipoPagamento).all()
|
||||
def criar_comprovantes(session, militantes):
|
||||
"""Cria comprovantes para os militantes"""
|
||||
print("\nCriando comprovantes...")
|
||||
tipos_comprovante = session.query(TipoComprovante).all()
|
||||
|
||||
for militante in militantes:
|
||||
try:
|
||||
# Criar entre 3 e 8 pagamentos por militante
|
||||
# Criar entre 3 e 8 comprovantes por militante
|
||||
for _ in range(random.randint(3, 8)):
|
||||
tipo = random.choice(tipos_pagamento)
|
||||
pagamento = Pagamento(
|
||||
tipo = random.choice(tipos_comprovante)
|
||||
comprovante = Comprovante(
|
||||
militante_id=militante.id,
|
||||
tipo_pagamento=tipo.descricao, # Usando a descrição do tipo
|
||||
valor=random.uniform(50, 500),
|
||||
data_pagamento=fake.date_between(start_date='-1y', end_date='today')
|
||||
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')
|
||||
)
|
||||
session.add(pagamento)
|
||||
session.add(comprovante)
|
||||
session.commit()
|
||||
except Exception as e:
|
||||
print(f"Erro ao criar pagamentos para militante {militante.nome}: {e}")
|
||||
session.rollback()
|
||||
print(f"Erro ao criar comprovantes para militante {militante.nome}: {e}")
|
||||
|
||||
def criar_materiais_vendidos(session, militantes):
|
||||
"""Cria registros de materiais vendidos"""
|
||||
@@ -302,7 +311,7 @@ def criar_assinaturas(session, militantes):
|
||||
|
||||
def seed_database():
|
||||
"""Função principal para popular o banco de dados"""
|
||||
session = SessionLocal()
|
||||
session = get_db_connection()
|
||||
try:
|
||||
print("Iniciando população do banco de dados...")
|
||||
|
||||
@@ -310,7 +319,7 @@ def seed_database():
|
||||
crs, setores = criar_estrutura_organizacional(session)
|
||||
|
||||
# Criar tipos básicos
|
||||
criar_tipos_pagamento(session)
|
||||
criar_tipos_comprovante(session)
|
||||
criar_tipos_material(session)
|
||||
|
||||
# Criar militantes (30 militantes para teste)
|
||||
@@ -318,7 +327,7 @@ def seed_database():
|
||||
|
||||
# Criar dados financeiros e materiais
|
||||
criar_cotas(session, militantes)
|
||||
criar_pagamentos(session, militantes)
|
||||
criar_comprovantes(session, militantes)
|
||||
criar_materiais_vendidos(session, militantes)
|
||||
criar_vendas_jornal(session, militantes)
|
||||
criar_assinaturas(session, militantes)
|
||||
|
||||
Reference in New Issue
Block a user