feat: Ajout des frais d'inscription lors de la création d'un RF [#18]

This commit is contained in:
N3WT DE COMPET
2025-01-25 16:40:08 +01:00
parent 799e1c6717
commit ece23deb19
12 changed files with 333 additions and 136 deletions

View File

@ -2,7 +2,7 @@
import React, { useState, useEffect } from 'react';
import StructureManagement from '@/components/Structure/Configuration/StructureManagement';
import ScheduleManagement from '@/components/Structure/Planning/ScheduleManagement';
import FeesManagement from '@/components/Structure/Configuration/FeesManagement';
import FeesManagement from '@/components/Structure/Tarification/FeesManagement';
import DjangoCSRFToken from '@/components/DjangoCSRFToken';
import useCsrfToken from '@/hooks/useCsrfToken';
import { ClassesProvider } from '@/context/ClassesContext';

View File

@ -32,7 +32,13 @@ import {
fetchStudents,
editRegisterForm } from "@/app/lib/subscriptionAction"
import { fetchClasses } from '@/app/lib/schoolAction';
import {
fetchClasses,
fetchRegistrationDiscounts,
fetchTuitionDiscounts,
fetchRegistrationFees,
fetchTuitionFees } from '@/app/lib/schoolAction';
import { createProfile } from '@/app/lib/authAction';
import {
@ -75,6 +81,11 @@ export default function Page({ params: { locale } }) {
const [isEditing, setIsEditing] = useState(false);
const [fileToEdit, setFileToEdit] = useState(null);
const [registrationDiscounts, setRegistrationDiscounts] = useState([]);
const [tuitionDiscounts, setTuitionDiscounts] = useState([]);
const [registrationFees, setRegistrationFees] = useState([]);
const [tuitionFees, setTuitionFees] = useState([]);
const csrfToken = useCsrfToken();
const openModal = () => {
@ -151,6 +162,7 @@ const registerFormArchivedDataHandler = (data) => {
}
}
}
// TODO: revoir le système de pagination et de UseEffect
useEffect(() => {
@ -195,7 +207,27 @@ const registerFormArchivedDataHandler = (data) => {
setFichiers(data)
})
.catch((err)=>{ err = err.message; console.log(err);});
.catch((err)=>{ err = err.message; console.log(err);})
fetchRegistrationDiscounts()
.then(data => {
setRegistrationDiscounts(data);
})
.catch(requestErrorHandler)
fetchTuitionDiscounts()
.then(data => {
setTuitionDiscounts(data);
})
.catch(requestErrorHandler)
fetchRegistrationFees()
.then(data => {
setRegistrationFees(data);
})
.catch(requestErrorHandler)
fetchTuitionFees()
.then(data => {
setTuitionFees(data);
})
.catch(requestErrorHandler);
} else {
setTimeout(() => {
setRegistrationFormsDataPending(mockFicheInscription);
@ -321,6 +353,8 @@ useEffect(()=>{
const createRF = (updatedData) => {
console.log('createRF updatedData:', updatedData);
const selectedRegistrationFeesIds = updatedData.selectedRegistrationFees.map(feeId => feeId)
const selectedRegistrationDiscountsIds = updatedData.selectedRegistrationDiscounts.map(discountId => discountId)
if (updatedData.selectedGuardians.length !== 0) {
const selectedGuardiansIds = updatedData.selectedGuardians.map(guardianId => guardianId)
@ -330,7 +364,9 @@ useEffect(()=>{
last_name: updatedData.studentLastName,
first_name: updatedData.studentFirstName,
},
idGuardians: selectedGuardiansIds
idGuardians: selectedGuardiansIds,
fees: selectedRegistrationFeesIds,
discounts: selectedRegistrationDiscountsIds
};
createRegisterForm(data,csrfToken)
@ -379,7 +415,9 @@ useEffect(()=>{
}
],
sibling: []
}
},
fees: selectedRegistrationFeesIds,
discounts: selectedRegistrationDiscountsIds
};
createRegisterForm(data,csrfToken)
@ -784,6 +822,10 @@ const handleFileUpload = ({file, name, is_required, order}) => {
size='sm:w-1/4'
ContentComponent={() => (
<InscriptionForm students={students}
registrationDiscounts={registrationDiscounts}
tuitionDiscounts={tuitionDiscounts}
registrationFees={registrationFees}
tuitionFees={tuitionFees}
onSubmit={createRF}
/>
)}