Remplacement d'une plage d'une courbe de correction
===================================================

Ce web-service permet de remplacer des plages de points pivot d'une courbe de correction en PHyC.

Les points de la courbe de correction compris dans l'intervalle [dtdebut-dtfin] sont remplacés par
les points de la courbe passée en paramètre.

Paramètres HTTP
---------------

========= ===================================
Paramètre Valeur
========= ===================================
Route     courbecorrection/remplacementplage
Méthode   PUT
Contenu   courbe de correction au format json
========= ===================================

Paramètres URL
--------------

L'url doit contenir les paramètres suivants:

========== ============================ ========= ===
Nom        Description                  Type      O/F
========== ============================ ========= ===
dtdebut    date de début                datetime  O
dtfin      date de fin                  datetime  O
========== ============================ ========= ===

Droit de gestion
----------------

Il faut disposer du rôle ADM ou POLE2 sur la station hydro pour gérer une courbe de correction.

Règles techniques
-----------------

La PHyC vérifie qu'après remplacement, la courbe possède encore au moins de 2 points pivot.

Lorsque l'on remplace les premiers points d'une courbe de correction, la PHyC vérifie que le
nouveau premier point de la courbe de correction a son delta à 0.

L’appel du web-service échouera dans les cas suivants :

-  absence de courbe de correction ;
-  un des points à désactiver n’est pas actif ou n’existe pas ;
-  delta du premier point de la courbe de correction différent de 0;
-  la courbe de correction finale comporte moins de deux points.

Contenu de la requête HTTP
--------------------------

La requête HTTP doit contenir un json hydrométrie contenant une courbe de correction.

Json hydrométrie
^^^^^^^^^^^^^^^^

.. literalinclude:: ../../../jsonschema/gererCourbeCorrectionRemplacementPlage.json
   :caption: Schéma de validation
   :language: json

* Les attributs Donnees (associé à l'objet Donnees) et Scenario sont obligatoires;
* L'objet Donnees ne doit contenir qu'un seul attribut CourbesCorrH associé à une liste ne contenant
  qu'un seul objet CourbeCorrH;
* L'attribut CdStationHydro de la courbe est obligatoire;
* L'attribut PointsPivot non obligatoire de l'objet CourbeCorrH doit être une liste non vide
  d'objets PointPivot
* les attributs DtActivationPointPivot et DtDesactivationPointPivotes des objets
  PointPivot ne doivent pas apparaître;
* l'attribut DtMajCourbeCorrH de l'objet CourbeCorrH ne doit pas être présent.

Recalcul
--------

L'appel du web-service va générer des recalculs asynchrones sur une partie ou l'ensemble de la
courbe de correction.

Réponse du web-service
----------------------

En cas de succès, le web-service retournera un json hydrométrie contenant la courbe de correction
passée en paramètre.

Le web-service rajoutera l'attribut DtMajCourbeCorrH à la courbe de correction et les attributs
DtActivationPointPivot aux nouveaux points.
