"""Periodic Finance tasks.""" from __future__ import annotations from datetime import date from celery import shared_task from django.utils import timezone from finance.payroll.periods import ensure_calendar_payroll_period def ensure_monthly_payroll_period(reference_date: date | None = None): return ensure_calendar_payroll_period( reference_date or timezone.localdate(), metadata={"schedule": "monthly"}, ) @shared_task def open_monthly_payroll_period(): """Open the current calendar month's payroll period.""" period, created = ensure_monthly_payroll_period() return {"period_id": period.pk, "code": period.code, "created": created}