# FEI Schedule Import — Guide Utilisateur

Cette extension lit le **programme approuvé par la FEI (PDF)** de votre concours et remplit Equipe pour vous :

- les **prize money** de chaque compétition ;
- le **nombre de chevaux par athlète** ;
- les **frais supplémentaires** (frais de chevaux, autres frais, non-présentations / retraits tardifs) — y compris les frais cachés dans les notes ;
- les listes **Qualif** et **Reserves** du Grand Prix ;
- les **officiels**, paramétrés sur chaque compétition dans le bon ordre.

Aucune saisie manuelle et aucune IA : la mise en page de la FEI est fixe et lue telle quelle.
**Rien n'est écrit avant que vous ne cliquiez sur Apply**, et toute une exécution peut être annulée dans Equipe en une seule action.

---

## Avant de commencer

- Importez d'abord les **FEI entries** : les compétitions doivent déjà exister dans Equipe.
- Ayez le PDF du **programme approuvé par la FEI** à portée de main (n'importe quelle version : V2, V3…).

---

## 1. Upload et aperçu

1. Dans Equipe, ouvrez le concours et cliquez sur **Schedule Import**.
2. Choisissez le PDF du programme.
3. Cliquez sur **Preview**.

L'aperçu affiche les informations, **semaine par semaine** :

| Section | Contenu |
|---|---|
| Event | Nom, ID du concours FEI, version du programme, semaines et dates |
| **To check** | Ce qui n'a pas pu être associé ou semble incohérent |
| **Competitions to update** | Chaque changement : ancienne valeur → nouvelle valeur |
| **Extra fees** | Nom, prix TTC, taux de TVA, date, statut |
| **Lists** | Listes Qualif / Reserves du Grand Prix |
| **Officials** | Rôle, nom, nation, FEI ID, cases **Import** / **On comp.**, statut |
| **Not handled** | Frais gratuits, compétitions Equipe non présentes dans le programme |

### Statut de chaque ligne

| Statut | Signification |
|---|---|
| **new** | Sera créé |
| **exists** | Créé par une exécution précédente, sera mis à jour |
| **already in Equipe — left as is** | Paramétré manuellement, reconnu, non modifié |
| **already up to date** | Equipe contient déjà les valeurs du programme |

## 2. Choisir les officiels

- **Import officials** (à côté de Apply) : décochez pour ne pas importer les officiels du tout.
- Sur chaque ligne du tableau des Officiels :
  - **Import** — crée la personne dans Equipe ;
  - **On comp.** — les paramètre sur les compétitions.
- Par défaut, *On comp.* est coché pour le **Ground Jury President**, le **Foreign Judge** et le **Course designer**.

Le tableau des compétitions et les compteurs suivent immédiatement vos sélections : **Apply** envoie exactement ce que vous voyez.

## 3. Apply

- **Apply** — écrit tout.
- **Probe (1 + 1)** *(optionnel)* — écrit d'abord un seul frais supplémentaire ou une liste, ainsi qu'une seule compétition, afin que vous puissiez vérifier le résultat dans Equipe avant de tout appliquer.

Après **Apply**, le résultat est affiché.

---

## Ce qui est rempli

### Compétitions

| Dans Equipe | Depuis le programme |
|---|---|
| Prize money | Total du prize money, et montant à partir de la 14ème place |
| Prize money chart | Chart 1 → 25 %, Chart 2 → 30 % |
| Currency | ex. EUR |
| Max horses per rider | Nombre de chevaux par athlète |
| Arena | Uniquement lorsque le programme utilise plusieurs arènes |
| Class number | Uniquement sur les concours multi-semaines numérotés à partir de 1 chaque semaine : `W1-5`, `W2-5` |

Seules les valeurs qui changent sont écrites.

### Grand Prix

- **Chaque Grand Prix** : l'option *Only allow horses that completed at least one competition* est cochée.
- **Grand Prix avec un système de qualification** :
  - deux listes sont créées : **Qualif CSI2\*** et **Reserves CSI2\*** (sur les concours multi-semaines : **W1 Qualif CSI3\***…) ;
  - le Grand Prix n'accepte que les cavaliers de la liste **Qualif**.
- Les listes sont créées **vides** : remplissez-les avec l'extension **Qualifications**, où elles apparaîtront dans les listes de destination.

### Frais supplémentaires

- Un frais supplémentaire par ligne de **HORSE FEES**, **OTHER FEES** et **NO-SHOWS AND LATE WITHDRAWALS**, pour chaque semaine.
- Daté de **2 jours avant la première compétition** de la semaine.
- Le **Price incl. VAT** et le **VAT rate** sont lus ligne par ligne (6 / 21 % en Belgique, 5.5 / 10 / 20 % en France…).
- Remise club désactivée ; "Respect 'Do not charge VAT'" activé.
- Les lignes gratuites (0.00) et les frais d'athlètes ne sont pas importés.
- Sur les concours multi-semaines, les noms sont préfixés : `Week 1 - Hay`.

**No-shows / late withdrawals :** le montant est imprimé hors TVA dans le programme ; le taux de TVA le plus courant du programme est ajouté (ex. 250 + 21 % = 302.50).

### Frais cachés dans les notes

Les notes sous une ligne de frais deviennent des frais supplémentaires à part entière :

```
Fee for lorry parking   95.00 EUR + 21.00% VAT = 114.95 EUR per lorry/caravan
                        50€ + 21% for small truck
Double Boxe            165.29 EUR + 21.00% VAT = 200.00 EUR per box
                        50€ for larger horse
```

| Extra fee created | Price incl. VAT | VAT |
|---|---|---|
| Fee for lorry parking | 114.95 | 21 % |
| Fee for small truck | 60.50 | 21 % |
| Double Boxe | 200.00 | 21 % |
| Larger box | 50.00 | 0 % |

- "+ 21%" → ce taux ; "+ VAT" → le taux de la ligne ; "incl. VAT" / "ttc" → prix déjà TTC ; rien d'indiqué → 0 %.
- "for 2 weeks" → créé une seule fois, en semaine 1.
- Une note qui ne fait que répéter un prix déjà listé n'est pas un nouveau frais.

### Officiels

Lecture depuis la section V du programme (**OFFICIALS**).

- Chaque officiel importé est créé en tant que personne avec **official** coché et son **FEI ID**. Une personne déjà présente dans Equipe (même FEI ID, ou même nom et nation) est réutilisée.
- Les officiels cochés **On comp.** sont paramétrés sur chaque compétition de **leur semaine et de leur niveau** ("All Events" → toutes les compétitions de la semaine ; "CSI2\*" → uniquement le CSI2\*). Avec plusieurs course designers, chacun reçoit les compétitions de ses niveaux.
- Ordre sur chaque compétition : **Ground Jury President, Foreign Judge, Ground Jury members, Course Designer**, puis les assistants course designers, le délégué technique, les stewards. Une compétition avec les bons officiels dans un autre ordre est remise dans l'ordre.
- Les officiels déjà paramétrés sur une compétition sont conservés.

Rôles importés : Ground Jury President et membres, Foreign Judge, Technical Delegate, Course designer et assistants, Chief Steward et stewards, Veterinary Delegates, Veterinary Service Manager, Treating Veterinarian. Le Farrier et les Medical Services ne sont pas importés.

---

## Concours sur plusieurs semaines

- Un PDF peut contenir plusieurs semaines.
- La numérotation peut recommencer à 1 chaque semaine, ou se poursuivre (1→32 / 33→64) : les deux modes fonctionnent.
- Les frais supplémentaires, les listes et les officiels sont gérés **semaine par semaine**.

## Programme établi à la main, ou nouvelle version

- Les **Extra fees** avec le même prix et le même taux de TVA, ainsi que les **Qualif / Reserves lists** avec un nom correspondant, sont reconnus et **laissés intacts**.
- Avec une nouvelle version du programme (V3, V4…), relancez l'extension : seuls les changements sont écrits, sans doublons.

## Comment les compétitions sont associées

Par **numéro de classe + date + niveau** (ex: programme N°6 le 22/10, CSI2* ↔ compétition Equipe 6 le 22/10 nommée CSI2*…), sinon par leur position dans l'événement FEI.
Lorsqu'aucune compétition unique ne correspond, **rien n'est écrit** pour celle-ci : elle apparaît sous **To check**.

## Contrôles automatiques

Affichés sous **To check**, jamais corrigés automatiquement :

- la somme des compétitions ≠ total prize money du tour ;
- la hauteur dans le nom de la compétition ≠ hauteur des obstacles (ex: "1m40" avec 130 cm) ;
- compétition du programme non trouvée dans Equipe ;
- compétition Equipe non présente dans le programme (**Non géré**).

---

## FAQ

**"No competition could be read from this PDF".**
Le fichier n'est pas un programme approuvé par la FEI. Téléchargez le programme approuvé depuis la FEI et réessayez.

**Une compétition est sous "To check".**
Son numéro de classe ou sa date diffère entre le programme et Equipe : corrigez-le dans Equipe et cliquez à nouveau sur **Preview**.

**Un extra fee a été créé alors qu'il existe déjà.**
Son prix ou son taux de TVA diffère du programme : alignez-le dans Equipe, ou supprimez le nouveau.

**Le Grand Prix n'est pas lié à la liste Qualif.**
Cliquez à nouveau sur **Apply** : la liste existe désormais et sera liée.

**La liste Qualif n'apparaît pas dans l'extension Qualifications.**
Cette extension n'affiche que les listes de la semaine en cours (du lundi au dimanche).

**Un officiel ne figure pas sur les compétitions.**
Cochez **On comp.** sur sa ligne avant de cliquer sur **Apply**.

**Un officiel a été créé deux fois.**
La personne dans Equipe n'a pas d'ID FEI et une orthographe différente : ajoutez l'ID FEI à la personne dans Equipe.

**Something went wrong.**
Annulez l'exécution dans Equipe (il s'agit d'une action unique), corrigez, et relancez.