🐛 Récupère le bon taux versement transport pour les communes avec arrondissement

pull/1478/head
Johan Girod 2021-05-06 12:26:53 +02:00
parent 57c1530475
commit b5c1f0b1fa
1 changed files with 21 additions and 6 deletions

View File

@ -27,14 +27,29 @@ type Commune = {
}
async function tauxVersementTransport(
codeCommune: Commune['code']
commune: Commune
): Promise<number | null> {
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',