50 lines
2.2 KiB
Python
50 lines
2.2 KiB
Python
from reportlab.lib.pagesizes import A4
|
|
from create_payment_slip import create_payment_slip
|
|
from models.database import engine, SessionLocal
|
|
from pydantic import BaseModel
|
|
from sqlalchemy.orm import Session
|
|
import models.models as models
|
|
from reportlab.lib.utils import ImageReader
|
|
import logging, sys
|
|
from sqlalchemy import extract
|
|
from config_loader import load_config
|
|
|
|
cfg = load_config()
|
|
year = cfg['year']
|
|
|
|
|
|
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
|
|
|
|
db = SessionLocal()
|
|
models.Base.metadata.create_all(bind=engine)
|
|
members = db.query(models.Members).filter(
|
|
models.Members.current_state_code == 'A',
|
|
models.Members.member_email == None,
|
|
models.Members.member_primary == True
|
|
).all()
|
|
# members = db.query(models.Members).filter(models.Members.id.in_([2,3,9,199]), models.Members.member_active == True, models.Members.member_printed == False).all()
|
|
# members = db.query(models.Members).filter(models.Members.id.in_([2,3,9,199]), models.Members.member_active == True, models.Members.member_printed == False).all()
|
|
# members = db.query(models.Members).filter(models.Members.id.in_([15,207,166,195,52,179])).all()
|
|
members = db.query(models.Members).filter(models.Members.id.in_([108])).all()
|
|
|
|
for member in members:
|
|
# TOOD: Add column payment_date to Payments
|
|
# create only, if not already delivered/paid
|
|
paid = db.query(models.Payments.payment_year)\
|
|
.filter(models.Payments.member_id == member.id, extract('year', models.Payments.payment_year) == year)\
|
|
.count()
|
|
|
|
if not paid:
|
|
delivered = db.query(models.Deliveries.delivery_date)\
|
|
.filter(models.Deliveries.member_id == member.id, extract('year', models.Deliveries.delivery_date) == year)\
|
|
.count()
|
|
if not delivered:
|
|
create_payment_slip(member=member)
|
|
logging.debug(f'Member: {member.member_surname}')
|
|
#logging.info('We processed %d records', len(processed_records))
|
|
else:
|
|
logging.debug(f'Skipping creation for Member: {member.member_surname} as already delivered!')
|
|
else:
|
|
logging.debug(f'Skipping creation for Member: {member.member_surname} as already paid!')
|
|
|
|
db.close() |