# Contract Changes

## Introduction <a href="#introduction" id="introduction"></a>

Une fois que les contrats sont au statut In Progress, on ne peut plus faire de changement directement dessus.&#x20;

La fonctionnalité ***ContractChanges*** de Cn285 permet de gérer les évolutions de contrat:&#x20;

* Remise
* Pause / Reprise du ***ContractItem***
* Résiliation d'un ***ContractItem*** ou du contrat au global
* Changement de quantité, de tarif… ou de liste de prix
* Changement de produit (on monte / descend en gamme)
* Gestion du renouvellement
* Changement de la structure du ***ContractItem*** (période de service, de facture,...)

{% hint style="warning" %}
**Les&#x20;*****ContractChanges*****&#x20;ne sont pas rétroactifs (sauf cas très spécifiques)**
{% endhint %}

## Menu et Accès <a href="#menu-et-acces" id="menu-et-acces"></a>

La liste des ***ContractChanges*** est accessible avec le menu Cn / Contracts / Contracts Changes.

Cn285 permet de voir tous les changements qui ont été effectués sur les contrats.

## Opérations <a href="#operations" id="operations"></a>

Les informations liées au ***ContractChanges*** sont reprises au niveau du Contrat (bouton Changes en haut à droite du contrat).

## Cycle de vie <a href="#cycle-de-vie" id="cycle-de-vie"></a>

Draft : le ***ContractChanges*** est saisi mais pas validé

Pending : le ***ContractChanges*** est validé mais il est en attente de traitement

Executed : le ***ContractChanges*** est traité

Cancelled : le ***ContractChanges*** est annulé et a une date de fin

## Description des Champs <a href="#description-des-champs" id="description-des-champs"></a>

### Groupe Change Spec <a href="#groupe-change-spec" id="groupe-change-spec"></a>

**Operation** : ce champ permet de choisir la nature du changement que l’on souhaite faire sur le contrat. Cela peut être :

* **Change Item Price Qty** : Cette option permet de changer le prix et / ou la quantité d'un contract item  (le choix de changer Prix et Quantité est possible via les cases à cocher Set Price / Set Quantity)
* **Discount Contract Item** : Remise en % sur le ***ContractItem***. On peut préciser la raison de la remise dans le champ Discount Label ainsi que la durée de la remise dans le champ Duration (in periods). L'information de la durée en mois, semestre etc... est celle qui est renseignée dans le Contract Item.
* **Stop Discount Contract Item** : Cette option permet de mettre une date de fin à une remise accordée sur un ***ContractItem***.&#x20;
* **Terminate Contract Item** : Demande de résiliation de toutes les lignes d'un contract ou d'un ***ContractItem*** en particulier.
* **Pause Contract Item** : Mettre la facturation du contract item en pause - les IS sont générés mais non facturés
* **Resume Contract Item** : Reprise d'un ***ContractItem*** qui était en pause.
* **Renewal Stop Contract Item** : Arrêt du renouvellement automatique d'un ***ContractItem***.
* **Add Contract Item** : Option bloquée qui permet l'ajout d'un ***ContractItem*** (elle est présente ici pour des raisons techniques mais ne peut être utilisée par ce biais, il faut ajouter un ***ContractItem*** directement par la vue contract).
* **Upsell / Downsell Contract Item** : Permet de changer le ***ContractItem*** sur un contract à une certaine date (à préciser dans le champ Date of request).
* **Structure Contract Item** : Permet de modifier la structure du ***ContractItem*** telle que le prix, la durée, le nombre de périodes, la fréquence de facturation... au prochain renouvellement ou à partir de la date de début du ***ContractItem***.
* **Transfer Contract Item** : Permet de transférer un ***ContractItem*** dans sa globalité vers un nouveau contrat ou un contrat existant d'un autre client.
* **Change Customer** : Permet de changer le client ou les paramètres d'un client sur un contrat.
* **Change Pricelist** : Cette option permet de changer la liste de prix de toutes les lignes d'un contract ou d'un ***ContractItem*** en particulier.

Tous ces changements sont applicables au niveau du ***ContractItem***.&#x20;

Pour information, le changement “Add contract item” sur un contrat se fait au niveau du contrat uniquement. Il apparaît dans le champ **Operation** afin d’avoir un historique des ajouts d’articles sur un contrat.

**Execution Date :** c’est la date à laquelle on souhaite que le changement s'exécute sur le contrat. C’est un champ obligatoire.

{% hint style="warning" %}
On ne peut pas faire des ***ContractChanges*** rétroactifs sur des Invoicing Schedules déjà facturés.
{% endhint %}

Si c’est un changement de quantité ou un changement au niveau de la Pricelist par exemple, le système va proratiser la quantité / le prix sur la période de facturation. On aura alors 2 lignes d’Invoicing Schedules sur la ligne du contrat et donc 2 lignes au niveau de la facturation de la prochaine échéance, ensuite le changement de quantité / prix se fera automatiquement sur les prochaines échéances.

Si c’est un changement de nature remise par exemple, la remise s’appliquera sur tout le mois jusqu’à la prochaine facturation ainsi que sur les suivantes.

**Date of request** : c’est la date à laquelle on demande le changement, par défaut la date et l’heure du jour.

### Groupe Params <a href="#groupe-params" id="groupe-params"></a>

Suivant la nature du changement que l’on a choisi dans le champ **Operation,** les champs du Groupe Params seront différents.

Si c’est un changement de quantité, on aura un champ Quantité etc... , si c’est une remise, on aura un champ remise (en %) etc...

**Important** : les changements sur les contrats sont récurrents, elles s’appliquent sur toutes les prochaines échéances de facturation. Ce n’est pas quelque chose qui s’applique une seule fois. Par contre, si l’on veut arrêter une remise par exemple, il suffit de l’annuler ou de la modifier pour les prochaines échéances.

Ensuite on clique sur **Validate** pour valider le changement sur le contract ou le contract item.

Le statut du Contract Change passe de Draft à Pending. Le changement s'exécutera à la date indiquée dans le champ **Execution Date**.

## Lancement du moteur de traitement des Contract Changes <a href="#lancement-du-moteur-de-traitement-des-contract-changes" id="lancement-du-moteur-de-traitement-des-contract-changes"></a>

Pour pouvoir voir et faire cette manipulation, l'utilisateur doit être “Admin” (voir [Create user](/cn285-documentation/menu-configuration/user/create-user.md)).

Menu Cn / Configuration / Cn285 Daemons

![](/files/ZnsLQBkDonEnBu0BNXP2)

Choisir ***Cn Contract Change Process Daemon (Step 1)***

{% hint style="danger" %} <mark style="color:red;">**Rappel sur la bonne Utilisation des Daemons:**</mark>

**Utilisation du mode manuel** en phase de conception/projet ou en production pour un traitement ponctuel spécifique

**Utilisation Automatique:** Préconiser en phase de production quand tous les processus et données sont stabilisés
{% endhint %}

![](/files/X1XTloDpC1wMwKcs1hZo)

### En manuel  <a href="#en-manuel" id="en-manuel"></a>

Manipulations en jaune (comme ci-dessus)

Pour tester un ***ContractChanges***, sans avoir à attendre le passage du moteur de traitement, son lancement peut se faire en manuel :  attention cette procédure est à réaliser sur une base de test ou de staging et surtout pas sur une base de production.

* Aller sur l'écran ci-dessus, cliquer sur Edit :  puis renseigner une date dans le champ Cn Process Now .&#x20;
* Cliquer sur Save et sur Run manually / Exécuter Manuellement

{% hint style="danger" %} <mark style="color:red;">**La date (Cn Process Now)**</mark>&#x20;

Elle doit être **postérieure** aux demandes de changements saisies.&#x20;

Dans l'exemple ci-dessus, la date Cn Process Now étant le 30/01, toute demande de changement après le 30/01 ne sera pas prise en compte.
{% endhint %}

Le lancement des ***ContractChanges*** s'exécute.

Pour vérifier que le lancement a bien fonctionné, retourner sur la fenêtre du contrat concerné :

* Cliquer sur Changes. Ils sont passés du statut “Pending” à “Executed”.
* Cliquer sur les Invoicing Schedules. Une ou des lignes d'IS sont apparues au statut “Calculated”.
* Vérifier que les changements ont été pris en compte en ouvrant la fenêtre de l'IS.

L'Invoicing Schedules pourra être facturée.

### En automatique <a href="#en-automatique" id="en-automatique"></a>

Dans notre exemple, si l'on passe le bouton encadré en rouge à Actif;  le lancement des ***ContractChanges*** s'exécute en automatique tous les jours, comme ci-dessus.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cn285.app/cn285-documentation/menu-contracts/contract-changes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
