This commit is contained in:
@@ -217,6 +217,11 @@
|
||||
<script setup lang="ts">
|
||||
import type { Member } from '~/utils/types';
|
||||
import { getCountryName } from '~/utils/countries';
|
||||
import {
|
||||
isPaymentOverOneYear as checkPaymentOverOneYear,
|
||||
isDuesActuallyCurrent as checkDuesActuallyCurrent,
|
||||
calculateOverdueDays
|
||||
} from '~/utils/dues-calculations';
|
||||
|
||||
interface Props {
|
||||
member: Member;
|
||||
@@ -308,36 +313,18 @@ const isInGracePeriod = computed(() => {
|
||||
|
||||
/**
|
||||
* Check if a member's last payment is over 1 year old
|
||||
* Uses the same logic as dues-status API
|
||||
* Uses standardized dues calculation function
|
||||
*/
|
||||
const isPaymentOverOneYear = computed(() => {
|
||||
if (!props.member.membership_date_paid) return false;
|
||||
|
||||
try {
|
||||
const lastPaidDate = new Date(props.member.membership_date_paid);
|
||||
const oneYearFromPayment = new Date(lastPaidDate);
|
||||
oneYearFromPayment.setFullYear(oneYearFromPayment.getFullYear() + 1);
|
||||
const today = new Date();
|
||||
|
||||
return today > oneYearFromPayment;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
return checkPaymentOverOneYear(props.member);
|
||||
});
|
||||
|
||||
/**
|
||||
* Check if dues are actually current
|
||||
* Uses the same logic as dues-status API
|
||||
* Uses standardized dues calculation function
|
||||
*/
|
||||
const isDuesActuallyCurrent = computed(() => {
|
||||
const paymentTooOld = isPaymentOverOneYear.value;
|
||||
const duesCurrentlyPaid = props.member.current_year_dues_paid === 'true';
|
||||
const gracePeriod = isInGracePeriod.value;
|
||||
|
||||
// Member is NOT overdue if they're in grace period OR (dues paid AND payment not too old)
|
||||
const isOverdue = paymentTooOld || (!duesCurrentlyPaid && !gracePeriod);
|
||||
|
||||
return !isOverdue;
|
||||
return checkDuesActuallyCurrent(props.member);
|
||||
});
|
||||
|
||||
const duesColor = computed(() => {
|
||||
|
||||
Reference in New Issue
Block a user