Add dues management system with UI improvements
All checks were successful
Build And Push Image / docker (push) Successful in 3m3s

- Add BoardDuesManagement and DuesActionCard components
- Create API endpoints for dues status tracking and payment marking
- Integrate dues management section into board dashboard
- Move create portal account button to member card action buttons
- Add edit button to member view dialog
- Implement member update handlers and navigation between views
This commit is contained in:
2025-08-10 23:19:48 +02:00
parent 91dea9910d
commit d3c3a865ba
8 changed files with 669 additions and 17 deletions

View File

@@ -0,0 +1,52 @@
// server/api/members/[id]/mark-dues-paid.post.ts
export default defineEventHandler(async (event) => {
try {
const memberId = getRouterParam(event, 'id');
if (!memberId) {
throw createError({
statusCode: 400,
statusMessage: 'Member ID is required'
});
}
const { updateMember, getMemberById } = await import('~/server/utils/nocodb');
// Get current member data
const currentMember = await getMemberById(memberId);
if (!currentMember) {
throw createError({
statusCode: 404,
statusMessage: 'Member not found'
});
}
// Prepare update data
const today = new Date();
const updateData = {
current_year_dues_paid: 'true',
membership_date_paid: today.toISOString().split('T')[0], // YYYY-MM-DD format
payment_due_date: undefined // Clear the due date since it's now paid
};
// Update the member
const updatedMember = await updateMember(memberId, updateData);
console.log(`[API] Successfully marked dues as paid for member ${memberId}`);
return {
success: true,
data: updatedMember,
message: `Dues marked as paid for ${updatedMember.first_name} ${updatedMember.last_name}`
};
} catch (error: any) {
console.error('[API] Error marking dues as paid:', error);
throw createError({
statusCode: error.statusCode || 500,
statusMessage: error.message || 'Failed to mark dues as paid'
});
}
});