# Contract Items

## Introduction

Le ***ContractItem*** permet de lier un produit et un client dans le cadre d'un contrat. Il a une date de début de contrat et des caractéristiques de récurrence.

## Menu et Accès

La liste des ***ContractItems*** est accessible avec le menu Cn / Contracts / Contracts Items.

Cn permet d’ajouter ces ***ContractItems*** dans les ***Contracts*** qui sont accessibles avec le menu Cn / Contracts / Contracts / onglet Items.

![Vue Contract Item](/files/GKVkySbZZXBUslj0SiLf)

## Configuration

<figure><img src="/files/myDlFaqjCfGB0A7lp5iV" alt=""><figcaption></figcaption></figure>

Pour configurer un **ContractItem,** un seul champ est requis. Il s'agit de l'Item ([Products](/cn285-documentation/menu-products/products.md)). Une fois l'Item sélectionné, ces caractéristiques seront chargés dans le **ContractItem**.

Une fois la date de début et votre configuration du **ContractItem** terminée, cliquer sur le bouton '**Generate Schedules**' afin de générer les [Invoicing Schedules](/cn285-documentation/menu-billing/invoicing-schedules.md) de votre **ContractItem**.

### Processus de démarrage du ContractItem

Cn285 permet plusieurs processus de démarrage du **ContractItem**:

* **Démarrage à date**
* **Démarrage à la signature**
* **Démarrage différé**

#### Démarrage à date

Lors que ce processus est choisi, une date de démarrage est alors requise. Le **ContractItem** démarrera alors à la date choisie.

**Démarrage à la signature**

Permet d'indiquer que le **ContractItem** devra démarré à la date de signature de celui-ci. Aucune date de démarrage n'est alors requise. Lors de la signature, la date ainsi que les InvoicingSchedules seront alors configurés.

**Démarrage différé**

Ce processus est à utiliser lorsque la date de démarrage du ContractItem n'est pas encore connu (exemple: démarrage du **ContractItem** lorsque le serveur physique sera installé). Ce **ContractItem** nécessitera alors un évènement d'activation (soit manuel via le bouton '**Start Items**' soit via un/des[Events](/cn285-documentation/menu-objects/events.md))

### Cycle de vie

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

In Progress : le contrat item est validé&#x20;

Paused : le contrat item a une pause au niveau de sa facturation et il est défini dans l’onglet Renewal (avec une date de début et de fin)&#x20;

Finished : le contrat item est arrivé à sa date d’échéance

Terminated : le contrat item est résilié et il est défini dans l’onglet Termination

## Description des Champs

**Réf.**: Référence Cn285 du ***ContractItem***

**Duration (in Periods)**: durée de souscription

{% hint style="info" %}
Il est possible de personnaliser les caractéristiques du produit dans le formulaire ***ContractItem*** si la champ "Product Settings Locked" n'est pas activé.
{% endhint %}

**From xxx to yyyy** : Date de début de l'abonnement et date de fin (avant renouvellement) qui est calculée sur la base de la durée d'abonnement.

**Renewal Tacit** : Permet d'activer ou désactiver le renouvellement automatique

* **Actual end Date** : si le renouvellement automatique est activé alors le champ Actual End Date indique la nouvelle date de fin de l'abonnement.

**Customer Ref** : Référence de l'abonnement chez le client

**Item :** Produit

**Item Type :** permet de gérer la [Configuration des caractéristiques de récurrence](/cn285-documentation/menu-products/configuration-des-caracteristiques-de-recurrence.md)

**Product Settings Locked :** indique si les caractéristiques de récurrence du produit sont modifiables ou verrouillées.&#x20;

**Object** : Champ permettant de lier un ***ContractItem*** avec un des [Objects](/cn285-documentation/menu-objects/objects.md) gérés dans Cn285.

**Object External Id** : champ permettant de lier un ***ContractItem*** avec une référence d'object externe. Utilisé lorsque Cn285 ne gère pas le parc d'objet sous jacent aux abonnements.

### Onglet Invoicing

#### Groupe Pricing

L'onglet Pricing permet de définir les champs suivants :

* **PriceList :** Liste de prix applicable dans le cadre du ***ContractItem***, par défaut c'est celle définie dans l'***Item***.
* **Discount %** : % de réduction. Le pourcentage de remise peut être défini à partir du contrat item, de la fiche client ou du contrat change.
* **Force Price** :&#x20;
  * si la case n’est pas cochée, le prix est défini et peut avoir une liste de prix associée
  * si la case est cochée, le prix peut être modifié mais il n’est pas possible de lui attacher une liste de prix
* **Price :**  Prix
* **RevRec Rule**: Permet de définir une [RevRec Rules](/cn285-documentation/menu-accounting/revenue-recognition/revrec-rules.md) afin de générer la reconnaissance de revenue de ce ***ContractItem***
* **Qty:** Quantité d'item contenu dans le ***ContractItem*** (pour les items de type : Fixed Recurring Pricing / Billed once)
* **Usage Data Calculator :** Il permet de calculer la quantité à facturer sur une période donnée en collectant tous les ***UsageData*** associés, voir[Usage Data Calculator](/cn285-documentation/menu-configuration/usage-data-calculator.md)(pour les items de type: Usage Based Recurring Pricing / Usage Triggered Invoicing)
* **Free Included Units :** Nombre d'unités offertes, dans le cadre de contrat à tarification variable (pour les items de type: Usage Based Recurring Pricing / Usage Triggered Invoicing)
* **Max Units :**  Nombre maximal d'unités (pour les ***Items*** de type: Usage Based Recurring Pricing / Usage Triggered Invoicing)

#### Groupe Schedule

**Service Periods Boundary :** Cn285 permet de choisir :

* Date to Date : la date de début du ***ContractItem*** est la même sur toutes les périodes du contrat. Ex : du 13 au 13 du mois suivant.
* Civil Month / Trimester / Semester / Year : suivant le jour de démarrage du contrat dans le mois, Cn va faire une ou plusieurs périodes afin de faire une première période qui se finit à la fin du mois, trimestre etc…  civil et ensuite une ligne pour le reste des jours de l’abonnement. Ex : pour un contrat d’un mois (renouvelable avec un délai de préavis de 2 jours) du 10 au 9 du mois suivant, on aura deux lignes de facturation : celle du 10 au 31 du même mois et celle du 1er au 9 du mois suivant, puis du 10 au 30 du même mois etc…

Si l’on veut éviter ce découpage de la période de facturation et avoir des mois pleins, il faut cocher la case :

**Truncate first period :** la date du début du ***ContractItem*** est celle uniquement de la première période et ensuite les prochaines périodes s’alignent sur les mois / trimestres / semestres / années du calendrier civil. Ex : du 13 au 31 du même mois pour la première période et pour les prochaines périodes du 1er au 30 ou 31 selon les mois.

Le calcul de la première période sera proratisé en fonction du nombre de jours effectifs.

***InvoicingDateScheduler*****&#x20;:** ce champ permet de déterminer le jour de la facturation. S’il n’existe pas, Cn285 permet de le créer si besoin.

### Onglet Termination

voir doc [Résiliation](/cn285-documentation/menu-products/configuration-des-caracteristiques-de-recurrence/resiliation.md)

### Onglet Renewal

voir doc [Renouvellement](/cn285-documentation/menu-products/configuration-des-caracteristiques-de-recurrence/renouvellement.md)

{% hint style="info" %}
Le bouton ![](/files/yUw24kFLjwo0SY27Pgj5)lance un traitement qui va calculer les Invoicing Schedules par rapport aux Usages Datas.
{% endhint %}

{% hint style="info" %}
Le bouton ![](/files/rVs7vghaTnxvoGSyUfW3) permet de résilier un ***ContractItem** (pour plus d'informations, voir les explications ci-dessous).*
{% endhint %}

## Résiliation d'un ContractItem

On sélectionne le  ***ContractItem*** que l'on souhaite résilier. On indique une date de résiliation dans le champ Terminate Date. On résilie rétroactivement. La date de résiliation est la date de fin d'une période pleine. Tant que l'IS n'est pas facturé, on peut résilier quand on veut.

<figure><img src="/files/LMKBSK38a2cLpZ4VFhhy" alt=""><figcaption></figcaption></figure>

Une résiliation d'un ***ContractItem*** n'est possible que si :&#x20;

* la période fiscale est ouverte. Si celle-ci n'est pas ouverte, un message d'erreur s'affichera [Fiscal Year](/cn285-documentation/menu-configuration/accounting/fiscal-year.md),
* le State qui est celui de l'IS est Invoiced.

Par défaut :&#x20;

* si le module de RevRec est activé, Cn285 cochera toujours la case Cancelled RevRec Entries
* on ne génère jamais de Crédit Memo. Si on coche Credit Memo, l'avoir peut se faire uniquement sur des factures comptabilisées.

Cas 1 : Si la date de résiliation correspond à une période dont ***l'InvoicingSchedule*** n'est pas facturé, alors on split l'IS en deux (en fonction de la date), on applique le ***last period prorator*** et on met à jour les IS suivants en les mettant au statut cancelled avec un flag is\_terminated.&#x20;

Cas 2 : Si la date de résiliation correspond à une période dont ***l'InvoicingSchedule*** est déjà facturé, alors on indique dans un message de warning disponible sur le ***ContractItem*** que l'IS nécessitera une génération d'un credit memo (si on ne génère pas de credit memo). On met ensuite le flag is\_terminated et on met au statut cancelled tous les IS suivants non facturés.

### Conséquences de la résiliation sur le RevRec

Une option est présente sur le wizard qui permet d'annuler des écritures de RevRec générées.&#x20;

Si l'on réalise une FAE en début ou au renouvellement du contrat:&#x20;

Lors d'une résiliation rétro-active sur IS non facturé : on annule les lignes de FAE qui sont après cet IS.&#x20;

* Cas 1: On a un ***ContractItem*** de 12 mois facturé le dernier jour de la période avec une livraison mensuelle et une FAE générée à la signature (ou renouvellement). Cela implique 12 lignes de FAE au début et X lignes d'extourne de PCA chaque mois.&#x20;

  ex : Résiliation du ***ContractItem*** au mois d'avril => Annulation des lignes de FAE pour les mois suivants.&#x20;

Cas 2: On a un ***ContractItem*** de 12 mois facturé en début de période avec livraison mensuelle.


---

# 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-items.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.
