feat: Ajout d'un nouveau status avec envoi de mandat SEPA + envoi de

mail
This commit is contained in:
N3WT DE COMPET
2025-04-11 20:02:03 +02:00
parent 4f774c18e4
commit 4c2e2f8756
17 changed files with 415 additions and 81 deletions

View File

@ -14,6 +14,7 @@ import Modal from '@/components/Modal';
import InscriptionForm from '@/components/Inscription/InscriptionForm'
import AffectationClasseForm from '@/components/AffectationClasseForm'
import { useEstablishment } from '@/context/EstablishmentContext';
import ValidateSubscription from '@/components/Inscription/ValidateSubscription';
import {
PENDING,
@ -44,7 +45,8 @@ import { createProfile, deleteProfile, fetchProfiles } from '@/app/actions/authA
import {
BASE_URL,
FE_ADMIN_SUBSCRIPTIONS_EDIT_URL } from '@/utils/Url';
FE_ADMIN_SUBSCRIPTIONS_EDIT_URL,
FE_ADMIN_SUBSCRIPTIONS_VALIDATE_URL } from '@/utils/Url';
import DjangoCSRFToken from '@/components/DjangoCSRFToken'
import { useCsrfToken } from '@/context/CsrfContext';
@ -594,11 +596,7 @@ useEffect(()=>{
3: [
{
icon: <CircleCheck className="w-5 h-5 text-green-500 hover:text-green-700" />,
onClick: () => openModalAssociationEleve(row.student),
},
{
icon: <XCircle className="w-5 h-5 text-red-500 hover:text-red-700" />,
onClick: () => refuseRegistrationForm(row.student.id, row.student.last_name, row.student.first_name, row.student.guardians[0].associated_profile_email),
onClick: () => window.location.href = `${FE_ADMIN_SUBSCRIPTIONS_VALIDATE_URL}?studentId=${row.student.id}&firstName=${row.student.first_name}&lastName=${row.student.last_name}&paymentMode=${row.registration_payment}&file=${row.registration_file}`,
},
],
5: [

View File

@ -0,0 +1,53 @@
'use client'
import React from 'react';
import { useSearchParams, useRouter } from 'next/navigation';
import ValidateSubscription from '@/components/Inscription/ValidateSubscription';
import { sendSEPARegisterForm } from "@/app/actions/subscriptionAction"
import { useCsrfToken } from '@/context/CsrfContext';
import logger from '@/utils/logger';
import { FE_ADMIN_SUBSCRIPTIONS_URL} from '@/utils/Url';
export default function Page() {
const searchParams = useSearchParams();
const router = useRouter();
// Récupérer les paramètres de la requête
const studentId = searchParams.get('studentId');
const firstName = searchParams.get('firstName');
const lastName = searchParams.get('lastName');
const paymentMode = searchParams.get('paymentMode');
const file = searchParams.get('file');
const csrfToken = useCsrfToken();
const handleAcceptRF = (data) => {
logger.debug('Mise à jour du RF avec les données:', data);
const {status, sepa_file} = data
const formData = new FormData();
formData.append('status', status); // Ajoute le statut
formData.append('sepa_file', sepa_file); // Ajoute le fichier SEPA
// Appeler l'API pour mettre à jour le RF
sendSEPARegisterForm(studentId, formData, csrfToken)
.then((response) => {
logger.debug('RF mis à jour avec succès:', response);
router.push(FE_ADMIN_SUBSCRIPTIONS_URL);
// Logique supplémentaire après la mise à jour (par exemple, redirection ou notification)
})
.catch((error) => {
logger.error('Erreur lors de la mise à jour du RF:', error);
});
};
return (
<ValidateSubscription
studentId={studentId}
firstName={firstName}
lastName={lastName}
paymentMode={paymentMode}
file={file}
onAccept={handleAcceptRF}
/>
);
}