feat: merge rna and siret fields

This commit is contained in:
2025-11-12 14:56:28 +01:00
parent ed1f30f2b6
commit 26f56006f6
29 changed files with 163 additions and 284 deletions

View File

@@ -16,28 +16,26 @@ function formatAdresse(data) {
}).join(" ");
}
function reconstruireAdresse(infos) {
console.log(infos);
function reconstruireAdresse2(infos) {
let adresseReconstruite = "";
if (infos.numero_voie === null) {
if (infos.complement_adresse) {
adresseReconstruite += formatAdresse(infos.complement_adresse) + ', ';
}
} else {
adresseReconstruite += infos.numero_voie + ' ';
if (infos?.cplt_1) {
adresseReconstruite += formatAdresse(infos.cplt_1) + ', ';
}
if (infos?.cplt_2) {
adresseReconstruite += formatAdresse(infos.cplt_2) + ', ';
}
if (infos?.cplt_3) {
adresseReconstruite += formatAdresse(infos.cplt_3) + ', ';
}
if (infos?.num_voie) {
adresseReconstruite += infos.num_voie + ' ';
}
adresseReconstruite += formatAdresse(infos.type_voie) + ' ';
adresseReconstruite += formatAdresse(infos.libelle_voie) + ', ';
adresseReconstruite += infos.code_postal + ' ' + infos.libelle_commune + ', ';
if (infos.complement_adresse && infos.numero_voie !== null) {
adresseReconstruite += formatAdresse(infos.complement_adresse) + ', ';
}
if (infos.code_cedex && infos.libelle_cedex) {
adresseReconstruite += 'Cedex ' + infos.code_cedex + ' - ' + infos.libelle_cedex;
}
adresseReconstruite += formatAdresse(infos.voie) + ', ';
adresseReconstruite += infos.cp + ' ' + infos.commune + ', ';
if (adresseReconstruite.endsWith(', ')) {
adresseReconstruite = adresseReconstruite.slice(0, -2);
@@ -85,8 +83,7 @@ export function DemandeAff() {
event.preventDefault()
const formData = new FormData(event.target)
formData.append("m1_role", event.target.m1_role?.value)
formData.append("rna", event.target.rna?.value)
formData.append("siret", event.target.siret?.value)
formData.append("state_id", event.target.state_id?.value)
let error = false;
for (let i = 1; i <= 3; i++) {
@@ -219,20 +216,19 @@ export function DemandeAff() {
function AssoInfo({initData, needFile}) {
const [denomination, setDenomination] = useState("")
const [siret, setSiret] = useState(initData.siret ? String(initData.siret) : "")
const [rna, setRna] = useState(initData.rna ? initData.rna : "")
const [rnaEnable, setRnaEnable] = useState(false)
const [stateId, setStateId] = useState(initData.stateId ? String(initData.stateId) : (initData.state_id ? String(initData.state_id) : ""))
const [adresse, setAdresse] = useState(initData.address ? initData.address : "")
const [contact, setContact] = useState(initData.contact ? initData.contact : "")
const fetchSiret = () => {
if (siret.length < 14) {
toast.error("Le SIRET doit contenir 14 chiffres")
const fetchStateId = () => {
const regex = /^(?:\d{14}|W?\d{9})$/;
if (!regex.test(stateId)) {
toast.error("Le format du SIRET/RNA est invalide");
return;
}
toast.promise(
apiAxios.get(`asso/siren/${siret.substring(0, siret.length - 5)}`),
apiAxios.get(`asso/state_id/${stateId}`),
{
pending: "Recherche de l'association en cours",
success: "Association trouvée avec succès 🎉",
@@ -243,12 +239,10 @@ function AssoInfo({initData, needFile}) {
}
}
).then(data => {
const data2 = data.data.unite_legale
setDenomination(data2.denomination)
setRnaEnable(data2.identifiant_association === null)
setRna(data2.identifiant_association ? data2.identifiant_association : "")
const data2 = data.data
setDenomination(data2.identite.nom)
if (!initData.saison || adresse === "")
setAdresse(reconstruireAdresse(data2.etablissement_siege))
setAdresse(reconstruireAdresse2(data2.coordonnees.adresse_siege))
})
}
return <>
@@ -262,11 +256,11 @@ function AssoInfo({initData, needFile}) {
</div>
<div className="input-group mb-3">
<span className="input-group-text">N° SIRET*</span>
<input type="number" className="form-control" placeholder="siret" name="siret" required value={siret} disabled={!needFile}
onChange={e => setSiret(e.target.value)}/>
<span className="input-group-text">N° SIRET ou RNA*</span>
<input type="text" className="form-control" placeholder="state_id" name="state_id" required value={stateId} disabled={!needFile}
onChange={e => setStateId(e.target.value)}/>
<button className="btn btn-outline-secondary" type="button" id="button-addon2"
onClick={fetchSiret}>Rechercher
onClick={fetchStateId}>Rechercher
</button>
</div>
@@ -277,13 +271,6 @@ function AssoInfo({initData, needFile}) {
aria-describedby="basic-addon1" disabled value={denomination} readOnly/>
</div>
<div className="input-group mb-3">
<span className="input-group-text" id="basic-addon1">RNA</span>
<input type="text" className="form-control" placeholder="RNA" aria-label="RNA"
aria-describedby="basic-addon1"
disabled={!rnaEnable} name="rna" value={rna} onChange={e => setRna(e.target.value)}/>
</div>
<div className="mb-3">
<div className="input-group">
<span className="input-group-text" id="basic-addon1">Adresse administrative*</span>

View File

@@ -68,7 +68,7 @@ function MakeRow({request, navigate}) {
<div className="ms-2 col-auto">
<div className="fw-bold">{request.name}</div>
</div>
<small style={{textAlign: 'right'}}>{request.saison}-{request.saison + 1}<br/>{request.siret}</small>
<small style={{textAlign: 'right'}}>{request.saison}-{request.saison + 1}<br/>{request.state_id}</small>
</div>
}
@@ -104,4 +104,4 @@ function Def() {
<li className="list-group-item"><ThreeDots/></li>
<li className="list-group-item"><ThreeDots/></li>
</div>
}
}

View File

@@ -66,8 +66,7 @@ function Content({data, refresh}) {
formData.append('id', data.id);
formData.append('name', event.target.name.value);
formData.append('siret', event.target.siret.value);
formData.append('rna', event.target.rna.value);
formData.append('state_id', event.target.state_id.value);
formData.append('address', event.target.address.value);
formData.append('contact', event.target.contact.value);
@@ -177,8 +176,7 @@ function Content({data, refresh}) {
{data.club && <div className="form-text" id="name">Ancien nom: {data.club_name}</div>}
</div>
<TextField type="number" name="siret" text="SIRET" value={data.siret} disabled={true}/>
<TextField name="rna" text="RNA" value={data.rna} required={false}/>
<TextField name="state_id" text="SIRET ou RNA" value={data.stateId} disabled={true}/>
<TextField name="address" text="Adresse" value={data.address}/>
<TextField name="contact" text="Contact administratif" value={data.contact}/>

View File

@@ -40,7 +40,7 @@ export function ClubList() {
country: e.country,
siret: e.siret,
no_affiliation: e.no_affiliation,
affiliation: showAffiliationState ? affiliationData.find(aff => (aff.id >= 0) ? aff.club === e.id : aff.club === e.siret) : null
affiliation: showAffiliationState ? affiliationData.find(aff => (aff.id >= 0) ? Number(aff.club) === e.id : aff.club === e.state_id) : null
})
}
setClubData(data2);
@@ -197,4 +197,4 @@ function Def() {
<li className="list-group-item"><ThreeDots/></li>
<li className="list-group-item"><ThreeDots/></li>
</div>
}
}

View File

@@ -130,8 +130,7 @@ function InformationForm({data}) {
</div>
</div>
{!switchOn && <>
<TextField name="siret" text="SIRET" value={data.siret} required={false} type="number"/>
<TextField name="rna" text="RNA" value={data.rna} required={false}/>
<TextField name="state_id" text="SIRET ou RNA" value={data.state_id} required={false}/>
<TextField name="contact_intern" text="Contact interne" value={data.contact_intern} required={false}
placeholder="example@test.com"/>
<TextField name="address" text="Adresse administrative" value={data.address} required={false}

View File

@@ -84,8 +84,7 @@ function InformationForm() {
</div>
</div>
{!switchOn && <>
<TextField name="siret" text="SIRET" required={false} type="number"/>
<TextField name="rna" text="RNA" required={false}/>
<TextField name="state_id" text="SIRET ou RNA" required={false}/>
<TextField name="contact_intern" text="Contact interne" required={false} placeholder="example@test.com"/>
<TextField name="address" text="Adresse administrative" required={false} placeholder="Adresse administrative"/>

View File

@@ -75,8 +75,7 @@ function InformationForm({data}) {
<CountryList name="country" text="Pays" value={data.country} disabled={true}/>
{!data.international && <>
<TextField name="siret" text="SIRET" value={data.siret} type="number" disabled={true}/>
<TextField name="rna" text="RNA" value={data.rna} required={false} disabled={true}/>
<TextField name="state_id" text="SIRET ou RNA" value={data.state_id} disabled={true}/>
</>}
<div className="row mb-3">

View File

@@ -24,4 +24,4 @@ export default ({mode}) => {
},
},
});
};
};