feat(payments): auto-populate payment due date with middle session date upon class selection
This commit is contained in:
@@ -180,6 +180,7 @@ import { useToast } from '@/composables/useToast';
|
||||
import { paymentApi } from '@/api/paymentApi';
|
||||
import { userApi } from '@/api/userApi';
|
||||
import { classApi } from '@/api/classApi';
|
||||
import { sessionApi } from '@/api/sessionApi';
|
||||
import PageHeader from '@/components/common/PageHeader.vue';
|
||||
import DataTableWrapper from '@/components/common/DataTableWrapper.vue';
|
||||
import ConfirmDeleteDialog from '@/components/common/ConfirmDeleteDialog.vue';
|
||||
@@ -263,7 +264,7 @@ const eligibleUsers = computed(() => {
|
||||
return usersList.value.filter((u) => eligibleIds?.has(String(u._id || u.id)));
|
||||
});
|
||||
|
||||
const onClassesSelected = () => {
|
||||
const onClassesSelected = async () => {
|
||||
if (createForm.user && !eligibleUsers.value.some((u) => (u._id || u.id) === createForm.user)) {
|
||||
createForm.user = null;
|
||||
}
|
||||
@@ -287,8 +288,24 @@ const onClassesSelected = () => {
|
||||
if ((createForm.discount || 0) > (createForm.amount || 0)) {
|
||||
createForm.discount = createForm.amount || 0;
|
||||
}
|
||||
if (!createForm.dueDate) {
|
||||
createForm.dueDate = getTodayJalali();
|
||||
|
||||
const selectedClassId = createForm.classes[createForm.classes.length - 1];
|
||||
const selectedClass = classesList.value.find((item) => String(item._id || item.id) === String(selectedClassId));
|
||||
if (selectedClass) {
|
||||
try {
|
||||
const res = await sessionApi.getAll({
|
||||
class: selectedClassId,
|
||||
sortBy: 'day',
|
||||
sortOrder: 'asc',
|
||||
limit: 100
|
||||
});
|
||||
const data = res.data || res;
|
||||
const rawSessions = data.items || data.sessions || data.data || data || [];
|
||||
const sessionList = Array.isArray(rawSessions) ? rawSessions : [];
|
||||
createForm.dueDate = calculateClassMidDate(selectedClass, sessionList);
|
||||
} catch (e) {
|
||||
createForm.dueDate = calculateClassMidDate(selectedClass);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user