From b5c1f0b1fa0fa0d45ae52da7f9e6c351ee0fcc3d Mon Sep 17 00:00:00 2001 From: Johan Girod Date: Thu, 6 May 2021 12:26:53 +0200 Subject: [PATCH] =?UTF-8?q?:bug:=20R=C3=A9cup=C3=A8re=20le=20bon=20taux=20?= =?UTF-8?q?versement=20transport=20pour=20les=20communes=20avec=20arrondis?= =?UTF-8?q?sement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../conversation/select/SelectCommune.tsx | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/mon-entreprise/source/components/conversation/select/SelectCommune.tsx b/mon-entreprise/source/components/conversation/select/SelectCommune.tsx index 5ab08c091..8d9ee010d 100644 --- a/mon-entreprise/source/components/conversation/select/SelectCommune.tsx +++ b/mon-entreprise/source/components/conversation/select/SelectCommune.tsx @@ -27,14 +27,29 @@ type Commune = { } async function tauxVersementTransport( - codeCommune: Commune['code'] + commune: Commune ): Promise { - const response = await fetch('/data/versement-transport.json') - if (!response.ok) { - return null + let codeCommune = commune.code + // 1. Si c'est une commune à arrondissement, on récupère le bon code correspondant à l'arrondissement. + // Comme il n'y a pas d'API facile pour faire ça, on le fait à la mano + + // 1. a : PARIS + if (codeCommune === '75056') { + codeCommune = '751' + commune.codePostal.slice(-2) } + // 1. b : LYON + if (codeCommune === '69123') { + codeCommune = '6938' + commune.codePostal.slice(-1) + } + // 1. c : MARSEILLE + if (codeCommune === '13055') { + codeCommune = '132' + commune.codePostal.slice(-2) + } + // 2. On récupère le versement transport associé + const response = await fetch('/data/versement-transport.json') const json = await response.json() - return json[codeCommune] ?? null + + return json[codeCommune] ?? 0 } function formatCommune(value: Commune) { return value && `${value.nom} (${value.codePostal})` @@ -90,7 +105,7 @@ export default function Select({ onChange, value, id, missing }: InputProps) { setName(formatCommune(commune)) let taux: number | null = null try { - taux = await tauxVersementTransport(commune.code) + taux = await tauxVersementTransport(commune) } catch (error) { console.warn( 'Erreur dans la récupération du taux de versement transport à partir du code commune',