mirror of
https://git.hiabuto.net/C3MA/CCMA.git
synced 2026-08-24 22:45:18 +02:00
feat: add per-member payment frequencies
This commit is contained in:
@@ -5,6 +5,7 @@ from email.parser import BytesParser
|
||||
from email.policy import default
|
||||
|
||||
from ccma.domain.models import ContributionData
|
||||
from ccma.services.housekeeper import Housekeeper
|
||||
from ccma.services.sepa import PAIN_NAMESPACE, _safe, csv_text, pain008_bytes, pending_direct_debits
|
||||
from ccma.services.sepa_mail import debit_mail_bytes, generate_debit_mails
|
||||
from ccma.storage.repository import MemberRepository
|
||||
@@ -61,6 +62,27 @@ def test_pending_debits_select_due_open_balance(tmp_path):
|
||||
assert debits[0].claim_ids == ("due",)
|
||||
|
||||
|
||||
def test_pending_debits_follow_members_monthly_payment_frequency(tmp_path):
|
||||
repository, member = _repository(tmp_path)
|
||||
member.accepted_at = "2025-01-01"
|
||||
member.membership_started_at = "2025-01-01"
|
||||
member.payment_frequency = "monthly"
|
||||
repository.save_member(member)
|
||||
repository.save_contributions(member.member_id, ContributionData())
|
||||
|
||||
Housekeeper(repository).run(today=date(2026, 3, 31))
|
||||
debits, warnings = pending_direct_debits(
|
||||
repository,
|
||||
due_from=date(2026, 1, 1),
|
||||
due_until=date(2026, 3, 31),
|
||||
)
|
||||
|
||||
assert warnings == []
|
||||
assert len(debits) == 1
|
||||
assert debits[0].amount == Decimal("37.50")
|
||||
assert len(debits[0].claim_ids) == 3
|
||||
|
||||
|
||||
def test_pending_debits_exclude_claims_before_lower_date(tmp_path):
|
||||
repository, _member = _repository(tmp_path)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user