From dba590a61217dae184b9fff1fb5c7dc1f03d0441 Mon Sep 17 00:00:00 2001 From: mrsaicharan1 Date: Wed, 10 Jul 2019 12:27:13 +0530 Subject: [PATCH] Implement cron job to mark invoice as due Hound issues resolution --- app/__init__.py | 3 ++- app/api/helpers/scheduled_jobs.py | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/__init__.py b/app/__init__.py index 6c76abee3e..e7a1f3f519 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -33,7 +33,7 @@ from app.api.helpers.auth import AuthManager from app.api.helpers.scheduled_jobs import send_after_event_mail, send_event_fee_notification, \ send_event_fee_notification_followup, change_session_state_on_event_completion, \ - expire_pending_tickets, send_monthly_event_invoice + expire_pending_tickets, send_monthly_event_invoice, event_invoices_mark_due from app.models.event import Event from app.models.role_invite import RoleInvite 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): scheduler.add_job(change_session_state_on_event_completion, 'cron', hour=5, minute=30) scheduler.add_job(expire_pending_tickets, 'cron', minute=45) scheduler.add_job(send_monthly_event_invoice, 'cron', day=1, month='1-12') +scheduler.add_job(event_invoices_mark_due, 'cron', hour=5) scheduler.start() diff --git a/app/api/helpers/scheduled_jobs.py b/app/api/helpers/scheduled_jobs.py index 73cc5b0b8e..c48eefc738 100644 --- a/app/api/helpers/scheduled_jobs.py +++ b/app/api/helpers/scheduled_jobs.py @@ -160,6 +160,19 @@ def expire_pending_tickets(): db.session.commit() +def event_invoices_mark_due(): + from app import current_app as app + with app.app_context(): + db.session.query(EventInvoice).\ + filter(EventInvoice.status == 'upcoming', + EventInvoice.event.ends_at >= datetime.datetime.now(), + (EventInvoice.created_at + datetime.timedelta(days=30) <= + datetime.datetime.now())).\ + update({'status': 'due'}) + + db.session.commit() + + def send_monthly_event_invoice(): from app import current_app as app with app.app_context():