Skip to content

Commit ddabfe0

Browse files
committed
Implement cron job to mark invoice as due
Hound issues resolution
1 parent f6b900a commit ddabfe0

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

app/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
from app.api.helpers.auth import AuthManager
3434
from app.api.helpers.scheduled_jobs import send_after_event_mail, send_event_fee_notification, \
3535
send_event_fee_notification_followup, change_session_state_on_event_completion, \
36-
expire_pending_tickets, send_monthly_event_invoice
36+
expire_pending_tickets, send_monthly_event_invoice, event_invoices_mark_due
3737
from app.models.event import Event
3838
from app.models.role_invite import RoleInvite
3939
from app.views.healthcheck import health_check_celery, health_check_db, health_check_migrations, check_migrations
@@ -243,6 +243,7 @@ def update_sent_state(sender=None, headers=None, **kwargs):
243243
scheduler.add_job(change_session_state_on_event_completion, 'cron', hour=5, minute=30)
244244
scheduler.add_job(expire_pending_tickets, 'cron', minute=45)
245245
scheduler.add_job(send_monthly_event_invoice, 'cron', day=1, month='1-12')
246+
scheduler.add_job(event_invoices_mark_due, 'cron', hour=5)
246247
scheduler.start()
247248

248249

app/api/helpers/scheduled_jobs.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,20 @@ def expire_pending_tickets():
160160
db.session.commit()
161161

162162

163+
def event_invoices_mark_due():
164+
from app import current_app as app
165+
with app.app_context():
166+
167+
db.session.query(EventInvoice).\
168+
filter(EventInvoice.status
169+
== 'upcoming', EventInvoice.event.ends_at
170+
>= datetime.datetime.now(), EventInvoice.created_at
171+
+ datetime.timedelta(days=30)
172+
<= datetime.datetime.now()).update({'status': 'due'})
173+
174+
db.session.commit()
175+
176+
163177
def send_monthly_event_invoice():
164178
from app import current_app as app
165179
with app.app_context():

0 commit comments

Comments
 (0)