Consider already paid membership fee
This commit is contained in:
@@ -22,8 +22,18 @@ def payment_slip_delivered(member: models.Members, year: int):
|
||||
return db.query(models.Deliveries.delivery_date)\
|
||||
.filter(models.Deliveries.member_id == member.id, extract('year', models.Deliveries.delivery_date) == year)\
|
||||
.count()
|
||||
def payment_slip_paid(member: models.Members, year: int):
|
||||
return db.query(models.Payments.payment_year)\
|
||||
.filter(models.Payments.member_id == member.id, extract('year', models.Payments.payment_year) == year)\
|
||||
.count()
|
||||
|
||||
|
||||
def send_mail(member: models.Members):
|
||||
paid = payment_slip_paid(member, year)
|
||||
if paid:
|
||||
logging.debug(f'Member: {member.member_surname} already paid!')
|
||||
return
|
||||
|
||||
delivered = payment_slip_delivered(member, year)
|
||||
if delivered:
|
||||
logging.debug(f'Member: {member.member_surname} already mailed or delivered!')
|
||||
|
||||
@@ -6,22 +6,43 @@ from sqlalchemy.orm import Session
|
||||
import 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.member_email == None).all()
|
||||
# TODO: Consider already printed slips or members that have paid already
|
||||
members = db.query(models.Members).filter(
|
||||
models.Members.member_active == True,
|
||||
models.Members.member_email == None,
|
||||
).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_([50])).all()
|
||||
#members = db.query(models.Members).filter(models.Members.id.in_([204,205,206])).all()
|
||||
|
||||
for member in members:
|
||||
create_payment_slip(member=member)
|
||||
# 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()
|
||||
Reference in New Issue
Block a user