# Cn285 - Documentation

Bienvenue dans la documentation de la solution Cn285

## Avertissement !

{% hint style="danger" %}
Ce site est en évolution permanente. Nous utilisons différentes icônes dans le menu en fonction du statut du contenu.

* :pick: Ce document est en cours de rédaction ; ni le contenu ni la syntaxe ne sont aboutis
* :hammer\_pick: Ce document est en cours de relecture ; il ne devrait changer que légèrement
* Pas d'icône, la page est censée être terminée&#x20;
  {% endhint %}

{% hint style="info" %}
Pour faciliter la lecture et la compréhension, les concepts liées à la solution sont en italique avec des majuscules à la première lettre.

Exemple : ***Contrat*** fait référence à l'objet contrat de Cn285, quand contrat ou Contrat fait référence à la notion métier ou fonctionnelle.&#x20;
{% endhint %}

## Présentation générale

Cn285 est un service en ligne qui automatise toute la gestion et la facturation des abonnements et contrats à tarification fixe ou variable, pour plus de détails voir :

<https://www.cn285.app/>

La solution Cn285 est éditée par la société 18ducks.solutions S.A.S.&#x20;


# Introduction

Avant de démarrer l'utilisation de Cn285, nous vous conseillons de prendre quelques minutes pour lire la présentation des principaux concepts de Cn285

[Les concepts Cn285](/cn285-documentation/introduction/les-concepts-cn285)

[Guide de prise en main](/cn285-documentation/introduction/navigation-et-prise-en-main)

[User Started Guide](/cn285-documentation/introduction/user-started-guide)

[Introduction aux données de démo](/cn285-documentation/introduction/donnees-de-demo)


# Les concepts Cn285

https\://www\.cn285.app/

## Introduction

Pour entrer plus facilement dans Cn285, il est avantageux d'en comprendre les grands concepts et objets.

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fk4y65zqwhwu7sdc6Rv1U%2FCleanShot%202022-09-14%20at%2017.08.01.png?alt=media&amp;token=1a70b601-e575-4de5-9040-6410814a56b1" alt=""><figcaption><p>Menu général de Cn285</p></figcaption></figure>

## Les clients ([Menu et écran Customers](/cn285-documentation/menu-et-ecran-customers))

***Customer*** : Le classique de la gestion de la fiche client (coordonnées, contacts multiples, adresse de facturation, de livraison, informations fiscales et bancaires...) mais aussi quelques fonctionnalités CRM avec gestion des opportunités/Leads.&#x20;

## Les contrats ([Menu Contracts](/cn285-documentation/menu-contracts))

Les ***Contracts*** Cn285 sont des objets classiques matérialisant la relation même spécifique (en termes de tarif) entre les ***Customers*** et la ***Société*** : de la signature à la résiliation en passant par les étapes classiques de renouvellement tacite ou non, ces modifications tarifaires de quantité,... et gérant les aspects taxes et position fiscale, devise utilisée, conditions et moyens de paiement.

## Les produits ([Menu Products](/cn285-documentation/menu-products))

Dans Cn285,  les produits sont présentés en 2 catégories : les produits physiques et services standards désignés sous le terme ***Product*** et les produits éligibles aux contrats d'abonnement, les ***Items***, avec des caractéristiques de récurrence activées via le formulaire ci-dessous (***Is a Recurring product)***.&#x20;

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fyy1SuK1hgeS2EhsuOKD6%2FCleanShot%202022-01-14%20at%2016.48.43.png?alt=media\&token=fe24360a-2441-45e2-a4b5-81475164b6a2)

{% hint style="warning" %} <mark style="color:blue;">Important : L'ensemble des caractéristiques de récurrence qui font qu'un</mark> <mark style="color:blue;"></mark>*<mark style="color:blue;">**product**</mark>* <mark style="color:blue;"></mark><mark style="color:blue;">devient un</mark> <mark style="color:blue;"></mark>*<mark style="color:blue;">**Item**</mark>* <mark style="color:blue;">dans Cn285 sont nombreuses et décrites dans ce guide.</mark>
{% endhint %}

Les Caractéristiques de récurrence d'un produit sont nombreuses mais les principales concernent :&#x20;

* Les types de récurrence (***Cn Product Type) :*** permet de définir le type de récurrence :  à prix fixe, récurrent à prix variable, récurrent mais avec une facturation déclenchée sur évènement, ou facturable qu'une seule fois.
* La règle de tarification représentée par le ***Usage Data Calculator (UDC) :*** si le tarif d'un produit à prix fixe est relativement aisé à calculer, les modèles de facturation variables peuvent être plus ou moins complexes et nécessitent des règles de valorisation des consommations. Ces règles sont définies dans les ***Usage Data Calculator*** ***(UDC)***.
* La fréquence de facturation : '***Invoicing Date Scheduler (IDS) :*** définit les paramètres d'intervention du moteur de facturation

**NB : I**l convient toutefois de distinguer les ***Products*** et les ***Objects** pouvant représentés des objets connecté&#x73;**.*** Les objects connectés se trouvent dans le menu IoT. L'offre est composée d'un objet physique (IoT) qui contient un logiciel qui fournit le service (product) auquel on s'abonne. \
La carte SIM est un exemple

## Objects

Dans certaines activités, les abonnements portent sur des logiciels ou des services eux même contenus dans une offre plus large composée d'éléments physiques. C'est le cas des objets connectés, où l'abonnement ne porte pas à proprement parler sur l'objet mais sur le service contenu (application, logiciel). L'objet ***Objects*** permet la gestion des supports physiques d'abonnement.

## Contract items

[Contract Items](/cn285-documentation/menu-contracts/contract-items)matérialise la ligne de service d'un contrat facturé indépendamment. Elle consiste en l'association d'un ***Item*** et d'un ***Contract.***

C'est à partir des ***ContractItems*** que l'on génère les ***InvoicingSchedules.***&#x20;

## **Invoicing Schedule**

Un [Invoicing Schedules](/cn285-documentation/menu-billing/invoicing-schedules) représente une future ligne de facture dans la quasi totalité des cas d'utilisation de Cn285 sauf (\*)&#x20;

Un invoicing schedule est donc rattaché à un ***Contract item*** et sera pris en compte dans une seule facture (***Invoice***).&#x20;

Par exemple : un abonnement mensuel de 12 mois donnera lieu à la génération de 12 ***Invoicing Schedules*** à prix fixe ou à zéro (dans l'attente des données de consommation à valoriser).

(\*) Dans certains cas notamment les business liés à l'***IoT***, le nombre de lignes pour une facture (***Invoice***) peut être tel que ces dernières sont regroupées (voir critères légaux de lignes de factures). Dans ce cas de figure, les ***IS*** n'apparaissent pas de façon unitaire, on peut alors dire qu'ils représentent une charge qui interviendra dans une ligne de facture à une certaine date donnée.&#x20;

## Usage Data

Les [Usage Data](/cn285-documentation/menu-fulfillment/usage-data) représentent les données à valoriser par le ***Usage Data Calculator*** lors de l'activation de ***Invoicing Date Scheduler*** ***(IDS)*** dans le cadre des ***Contract Items*** contenant des Items à tarification variable. La valorisation des données d'une période donnée est reportée dans l'***IS*** associée à la période.

## Invoice

Les  [Invoices](/cn285-documentation/menu-billing/invoices) représentent les factures associées aux ***Contract Items*** d'un ***Contract*** pour une période donnée.

## Billing Folder

Un [Billing Folders](/cn285-documentation/menu-billing/billing-folders) permet de créer le regroupement des ***Invoice*** des différents contrats d'un même client.


# Navigation et prise en main

https\://www\.cn285.app/

**Guide de prise en main Cn285**

Cette section a pour objectif de décrire l'interface et les éléments de navigation dans Cn285.&#x20;

### Interface utilisateurs

Accès à l'application :

Une fois connecté à l'environnement Cn285, cliquer sur les 4 carrés blancs en haut à gauche de l'application et dérouler le menu jusqu'à sélectionner Cn (voir ci-dessous).

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FYF4VyDl4Lt9cjkbtLx6k%2Fimage.png?alt=media\&token=15f32fc0-0d31-4ef6-8c04-9e558c65faa2)

&#x20;Vous allez accéder à Cn285 et êtes arrivés sur la vue liste du menu Contrats.

#### List View

La vue ci-dessous est une vue liste de l'objet “Contract”.&#x20;

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fmnrl1MF4OP2wbcvM3JDt%2Fimage.png?alt=media\&token=7f7e25e4-689c-4268-8a2e-53e942c312b4)

Les list view ou vue listes permettent d'afficher toutes les occurrences d'un même objet, ici tous les contrats.&#x20;

Les vues listes offrent des possibilités de gestion au niveau du groupe d'objet.&#x20;

* Le Filter
* le Group By
* La sélection et les actions
* La sélection des champs

&#x20;

**Filter**

La fonction Filter permet de réaliser des filtres sur les données associées à l'objet sur lequel on travaille.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FZNfIr7jnQBili6Y5zWDg%2Fimage.png?alt=media\&token=70abb264-2ec5-4023-8ee1-91c7477622d6)

&#x20;

Le résultat d'un filtre peut être enregistré et utilisé par “use by defaut” ou partagé avec tous les utilisateurs de Cn.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FtxVVbwGdOaht1tpiJJYy%2Fimage.png?alt=media\&token=91dc1064-cb0b-45ab-a318-24e7cb81b7c0)

&#x20;

**Group By**

Le Group by est une fonction qui permet de grouper les éléments du menu dans lequel on se trouve selon le critère sélectionné.

Dans l'exemple ci-dessous, le Group by est réalisé sur l'objet Contract groupé par Partner (client).

&#x20;

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F5HUIGsguJpUl1HE1MN5J%2Fimage.png?alt=media\&token=d04e9bd2-0698-41c1-af15-9557d7719ebf)

**La sélection et les actions**

La sélection permet de sélectionner les occurrences (ou lignes de la vue liste) pour d'éventuelles actions.

La sélection active les boutons d'actions possibles sur les enregistrements d'un objet. Dans l'exemple de l'objet contrat, il est possible :

* D'éditer le contrat quote avec le bouton Print.
* D'exporter les données du ou des enregistrements sélectionnés.
* De supprimer cette sélection.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FQDs08asJiElGBuFqpj8f%2Fimage.png?alt=media\&token=8e96b19a-5765-4a77-9f43-d66760a2299a)

&#x20;**La sélection des champs**

Une vue liste affiche des champs par défaut. Les 3 points à l'extrémité droite des entêtes de colonne de la vue liste permet de faire apparaitre une liste de case à cocher permettant d'afficher des champs complémentaires.

{% hint style="info" %}
La sélection reste enregistrée dans les préférences de l'utilisateur
{% endhint %}

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FwhuNP6vPajYHOFeCYMwU%2Fimage.png?alt=media\&token=9d22ef73-c166-41fa-8386-4d5769f94b1c)

#### &#x20;Form View

La Form View ou vue formulaire permet de voir les données d'un seul élément (un contract, un invoice, ….) de façon détaillée.

Il permet d'accéder à la création d'un nouvel élément, ou de modifier ou supprimer un élément existant.&#x20;

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fk8xueNTUoqZPLp3IR2Cg%2Fimage.png?alt=media\&token=7a161850-6035-4b10-b03e-22607f451a2c)


# User Started Guide

https\://www\.cn285.app/

## Guide de démarrage rapide de [Cn285 ](https://www.cn285.app/)

### Objectif

L'objectif de ce guide est de vous montrer comment mettre en oeuvre les concepts principaux de Cn :&#x20;

* Contrat et lignes de contrats
* Articles à prix fixes et variables
* Échéances de Facturation (Invoicing Schedules)
* Factures

### Le Contexte

Dans ce Guide, nous allons supposer que vous travaillez pour la société fictive Oursbleu Télécoms qui vend des abonnements téléphoniques.

Vous allez établir et facturer 3 types de contrats :

1. un abonnement à prix fixe “Quadro” (4h à 4.99€ HT)
2. un abonnement “Modulo” à prix variable qui dépend des minutes de communication consommées selon un barème dégressif.
3. Le "Sensys” un abonnement avec des frais d’activation, un abonnement mensuel “Forfait à prix fixe" et des consommations DATA variables au delà de 30 Go

Pour les besoins de ce guide, les contrats seront datés dans le passé.

A la fin de ce Guide, vous aurez généré une facture pour chacun des abonnements ci-dessus.

Pour le forfait Sensys, nous allons éditer les 2 premières factures :

* la première avec des frais d’activation et un abonnement mensuel
* la seconde avec un abonnement mensuel et des consommations variables.

### Connexion à votre serveur Cn

Ouvrir l'URL qui vous a été communiquée par mail (eg  [https://xxxxxx.cn285.app/](https://xxxxxovh/))

Sélectionnez votre base de données (son nom vous a été communiqué par mail) si besoin.

Entrez votre nom d'utilisateur et votre mot de passe (aussi communiqués par mail):

* Utilisateur: <admin@xxxx.ovh>
* Mot de passe : (communiqué par mail)

### Modification de la société : Oursbleu Télécoms

Dans un premier temps, pour que les factures générées soient correctes, vous devez commencer par entrer les informations de votre société imaginaire Oursbleu Télécoms.

Cliquer sur ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FqxpRvVs20NXLYZiTrd4T%2Fcapture_d%E2%80%99e%CC%81cran_2021-07-20_a%CC%80_10.56.06.png?alt=media\&token=4424c983-d814-4c59-8ad6-a4fabee90cb5)

à gauche de l’écran. Vous avez la liste de toutes les applications disponibles sur Cn.

Aller sur l’application Cn/ Configuration / Companies

* Cliquer sur la société déjà existante
* Cliquer sur le bouton  \[Modifier]

Remplir les champs :

* Company Name : Oursbleu Télécoms
* Address : 1494 Route de la Croix de May - 38160 Saint Sauveur - France
* Email : <admin@inouk.fr>
* VAT : FR23334175221
* Currency : EUR

Cliquer sur le bouton  \[Save].

### Création des Clients

Votre base de données Cn contient 3 clients que nous avons créé pour vous:

* Martino Fabrice qui est un particulier
* Lefort Céline qui est un particulier
* La société 18ducks

Il y a 2 manières de créer les clients dans Cn :

* manuellement
* automatiquement en utilisant votre API

Vous pouvez vous référer au § "Création manuelle des clients" en fin de ce Guide si vous voulez créer vos propres clients pour les tests.

### Gestion des abonnements à prix fixe

Dans un premier temps, OursBleu Télécoms lance "Quadro", son abonnement 4h.

#### Création du produit “Quadro”

"Quadro" est un abonnement de 12 mois au prix fixe de 4.99€ HT.

Pour gérer ce type de produit dans Cn, il faut utiliser un produit de type "Fixed Recurring Pricing".

Créez le produit “Quadro” en suivant les instructions suivantes:

Aller sur l’application Cn / Products / Products

* Cliquer sur le bouton \[Create]
* Remplir le champ
  * Product Name : Quadro
* Cocher les 2 cases suivantes:
  * Can be Sold
  * Is a Recurring Product (Cn)
  * Décochez : Can be Purchased

Dans l’onglet General Information:

* Remplir les champs :

  * Product Type : Service
  * Product Category : laisser All
  * Internal Reference : F4H
  * Sales Price : indiquez le prix en HT : 4.99
  * Customer Taxes : choisissez TVA collectée (vente) 20,0%

Dans l’onglet Cn:

* Remplir les champs:
  * Cn Product Type : Fixed Recurring Pricing
  * Number of Periods : 12
  * Invoicing Period : Month
  * Invoice Periods Boundary : Civil Month
  * Invoicing Date Scheduler : First Day of Each Period

Cliquer sur \[Save], une fois que tous les champs sont remplis.

Vous venez de saisir les paramètres qui définissent le caractère récurrent de l'abonnement. Un abonnement à prix fixe de 12 périodes de 1 mois, facturé le premier jour de chaque période et dont les périodes sont alignées avec les mois civils.

Nous sommes donc prêts à gérer notre premier contrat.

#### Création d'un contrat d'abonnement Quadro

Le client Fabrice MARTINO a souscrit un abonnement Quadro. En attendant que les équipes techniques d'Oursbl.eu Télécoms utilisent l'API pour créer le contrat automatiquement, vous allez le créer manuellement.

Cn gère des Contracts qui sont composés de Contract Items (ou plus simplement Items). Chaque Contract Item est lié à un Product qui a ses propres caractéristiques de récurrence. Par exemple, dans Cn il est possible de gérer un contrat de 12 mois composé d'un Contract Item de 3 mois renouvelable et un autre Contract Item de 6 mois.

Vous allez maintenant créer le contrat de M. MARTINO avec un Contract Item qui est l'abonnement Modulo.

Dans l’application Cn:

* Sélectionner le menu Contracts
* Cliquer sur \[Create]
* En Entête du Contrat, remplir les champs :
  * Customer : Martino Fabrice
  * Start Date : 21/01/2020
  * laisser les autres champs remplis automatiquement
* Dans l’onglet Accounting, remplir le champ:
  * Billing Folder Payment Terms : Immediate Payment

Cliquer sur \[Save] puis \[Edit] pour renseigner les items du contrat

Dans l'onglet Items, cliquez sur Add a line pour ajouter un Contract Item:

* Remplir les champs:
  * Item : Tapez les premières lettres du nom "quadro" puis sélectionnez l'Item \[F4H] Quadro dans la liste qui s'affiche.

Cn récupère alors automatiquement les informations suivantes à partir de l'Item: Name, Duration, Item Type.

Cliquer sur le bouton \[Generate Schedules].

Cn récupère alors automatiquement les informations suivantes à partir de l'Item: Service Periods Boundary, Invoicing Date Scheduler, Invoice every.

Cn génère alors la liste de toutes les échéances de facturation pour l'item. Dans la terminologie Cn, on parle d'Invoicing Schedule ou IS.&#x20;

Un IS est donc un montant à facturer à une certaine date. Cn regroupe tous les IS d'un client à une date donnée pour générer des factures.

Les IS d'un Item sont affichées sous forme de tableau quand on clique sur ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FcxsyBjWbOF2yBwZ45iU6%2FCleanShot%202022-01-27%20at%2015.10.11.png?alt=media\&token=0d93154b-0297-46f1-af0d-80319087d312)d'un Contract Item.

Cliquer sur \[Save & Close] pour notre exemple car c’est le seul Item (ou seule ligne) du contrat.

Cliquer sur \[Save] au niveau du contrat car nous avons terminé la saisie.

Sur les formulaires du Contrat et des Contract Items vous trouverez un bouton Invoicing Schedules (en haut de l'écran). En cliquant sur ce bouton vous obtiendrez la liste de tous les Invoicing Schedules associée à l'objet sur lequel vous avez cliqué.

#### Editions des factures d'un abonnement à prix fixe

Maintenant que vous avez créé le contrat d’abonnement, vous pouvez établir des factures.&#x20;

Vous allez établir la première facture de l'abonnement du client Fabrice MARTINO.

Dans l’application Cn

Aller sur Billing / Invoicing Schedules

* Cliquer sur Group By / Contract et Group By / Invoice Date / Day

On obtient toutes les factures que l’on doit lancer par jour et par client.

Pour notre exemple

* Cocher le contrat de Martino Fabrice à la date du 1er mars 2020
* Cliquer sur la ligne puis sur \[Generate 1 Invoice with IS] puis \[Launch]

Un numéro de facture apparaît dans l’Invoicing Schedules

Si on clique sur la ligne, la fenêtre de l’échéance de facturation d’un item apparaît (IS).

On peut visualiser la facture si on clique sur le numéro de facture dans le champ Invoice.

### Gestion des abonnements à prix variable

Dans un second temps, OursBleu lance “Modulo” son abonnement à prix variable et dégressif suivant le nombre de minutes passées en communication téléphonique.

#### Création du produit Modulo

“Modulo” est un abonnement de 12 mois au prix variable de 0.25€ HT / 240 min. Le prix variera en fonction de la consommation en minutes passées pour un mois.

Cet article a un prix variable, en conséquence le système va devoir transformer les données d’utilisation en quantité à facturer.&#x20;

Pour cela, Cn utilise un “Usage Data Calculator” qui est défini au niveau de l’article.

Pour gérer ce type de produit dans Cn, il faut utiliser un produit de type "Usage Based Recurring Pricing".

Créez le produit “Modulo” en suivant les instructions suivantes :

Aller sur l’application Cn / Products / Products

Cliquer sur \[Create]

Remplir le champ&#x20;

* Product Name : Modulo

Cocher les 2 cases suivantes :

* Can be Sold / Is a Recurring Product (Cn)

Attention, décochez : Can be Purchased

Dans l’onglet General Information

Remplir les champs :

* Product Type : Service
* Product Category : laisser All
* Internal Reference : FMO
* Sales Price : indiquez le prix en HT : 0,25
* Customer Taxes : choisissez TVA collectée (vente) 20,0%

Dans l’onglet Cn

Remplir les champs :

* Cn Product Type : Usage Based Recurring Pricing
* Créer un Usage Data Calculator
  * Ouvrir la fenêtre Usage Data Calculator
  * Donner un nom : Consommation à la minute
  * Type : sélectionner Internal Code
  * Internal Method : choisir Qty : Sum (le système va faire la somme de toutes les minutes consommées sur une période donnée)
  * Test Parameters : permet de faire un test pour voir si la formule marche
  * Cliquer sur Save
* Number of Periods : 12
* Invoicing Period : Month
* Invoice Periods Boundary : Civil Month
* Invoicing Date Scheduler : Day After Each Period End (on ne peut pas facturer en début de mois vu que le prix est variable en fonction de la consommation)

Cliquer sur \[Save]

Nous pouvons gérer notre second contrat.

#### Création d'un contrat d'abonnement Modulo

Le client Lefort Céline a souscrit un abonnement Modulo. Vous pouvez commencer à saisir les paramètres de votre contrat d’abonnement. Ce contrat a un prix dégressif, en conséquence vous devez définir les paliers en minutes des communications ainsi que les prix dégressifs associés.

Pour cela, Cn utilise une “Pricelist” qui est définie au niveau du contrat.&#x20;

Aller sur l’application Cn / Contracts / Contracts

Cliquer sur \[Create]

Remplir les champs :

* Customer : Lefort Céline
* Start Date : 09/02/2020
* laisser les autres champs remplis automatiquement

Dans l’onglet Accounting&#x20;

Remplir le champ :

* Payment Terms : Immediate Payment

Cliquer sur \[Save] puis \[Edit] pour renseigner les items du contrat

Dans l'onglet Items, cliquer sur Add a line

Remplir les champs :

* Item : Aller chercher ou taper dans la liste déroulante de l’Item, l’Item qu’on veut lier au contrat : Modulo

Cliquer sur \[Generate Schedules]

Vérifier les informations au niveau du Pricing et du Schedule

Cliquer sur \[Save & Close] pour notre exemple car c’est la seule ligne du contrat.

Cliquer sur \[Save].

Pour finaliser les paramètres du contrat, vous devez maintenant renseigner les éléments du prix dégressif du contrat dans une “Pricelist”.

Dans l’entête du contrat, il existe une Pricelist Public (EUR) mais il faudra définir une Pricelist spécifique et applicable à cet Item “Modulo”

Dans notre exemple, le prix est dégressif suivant la consommation en minutes.

Vous devez définir les paliers en minutes des communications ainsi que les prix dégressifs associés.

Il faut donc définir une Pricelist qui définira la variabilité du prix. Pour la créer vous devez :

* Aller sur Cn / Products / Pricelists
* Cliquer sur \[Create]
* Nommer  la “Pricelists” : “Conso Modulo”
* Cliquer sur Add a line
  * Cliquer sur Product
  * Dans le champ Product, choisir “Modulo”
  * Cliquer sur “Fixed Price” et indiquer 0.25 dans le champ “Fixed Price”
  * Remplir les champs “Start Date” et “End date” si les prix sont limités dans le temps, sinon ne pas remplir ces deux champs

Cliquer sur \[Save & New] car il y a 4 lignes de tranches de prix dégressif.

Vous devez définir les paliers en minutes des communications ainsi que les prix dégressifs associés.

Dans notre exemple :

* de 0 à 240 minutes consommées sur 1 mois, le prix du forfait Modulo est de 0.25€ la minute
* de 240 à 480 minutes consommées sur 1 mois, le prix du forfait Modulo est de 0.24€ la minute
* de 480 à 720 minutes consommées sur 1 mois, le prix du forfait Modulo est de 0.23€ la minute
* au delà de 720 minutes sur 1 mois, le prix du forfait Modulo est de 0.21€ la minute

Remplir les champs comme ci-dessous :&#x20;

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FnjHv3h4MgV89B94OJOuX%2FCapture%20d%E2%80%99e%CC%81cran%202021-01-21%20a%CC%80%2015.51.16.png?alt=media\&token=5b183115-1597-4678-a3c7-bab39fe5466a)

Cliquer sur \[Save & Close] une fois que la Pricelist est complète.

&#x20;Cliquer sur \[Save] une fois que la Pricelist est finalisée.

Retourner sur Cn / Contracts / Contracts / cliquer sur le contrat Lefort Céline

Cliquer sur \[Edit]&#x20;

Renseigner dans le champ Pricelist, la pricelist “Conso Modulo” que vous venez de créer.

Cliquer sur \[Save]&#x20;

#### Création des Données Variables “Usage Data”

Vu que votre exemple est basé sur un forfait à prix variable, vous devez renseigner les données variables du contrat. : les “Usage Data”.

Aller sur Cn / Contracts / Contracts Items

* Cliquer sur l’Item du contrat souhaité, pour notre exemple ce sera le contrat Lefort Céline - Modulo

On arrive sur la fenêtre de l’Item Contract

* Cliquer sur Usages Data (en haut de l'écran)
* Cliquer sur \[Create]
  * Première variable
    * Indiquer une date de valeur dans le champ Start : 07/04/2020
    * Indiquer une quantité dans le champ Value : 250 (pour notre exemple, cela correspond à 250 minutes)

Cliquer sur Save

La variable de l’Item est au statut Draft.

* Cliquer sur Pending (en haut à droite de l'écran) pour que la donnée soit prise en compte par le système
* Cliquer sur \[Create]
  * Seconde variable
    * Start : 21/04/2020
    * Value : 470

Cliquer sur \[Save]

La variable de l’Item est au statut Draft.

* Cliquer sur Pending pour que la donnée soit prise en compte par le système.

Vous indiquerez uniquement 2 valeurs dans votre exemple mais vous pouvez en saisir bien plus…

Retourner sur le contrat pour mettre à jour les données variables de l’Item du Contract

Aller sur Cn / Contracts / choisir Lefort Céline

Cliquer sur \[Edit] de l’Item Contract “Modulo”

Cliquer sur \[Calculate]

Vérifier que le système a mis à jour les données variables pour la période du mois d’Avril 2020, la quantité est de 720 (250+470) minutes ce qui correspond à un prix de 0,21€ HT/min (cf pricelist) soit un total de 151,20€ HT (181,44€ TTC).

Le statut passe de Pending à Calculated (le système a pris en compte les 2 données variables du mois d’avril 2020 facturées au 1er mai 2020)

#### Editions des factures d'un abonnement à prix variable

Maintenant que vous avez créé le contrat d’abonnement, vous pouvez établir des factures.

Pour votre exemple, vous prendrez la facture de Mai 2020 facturée en fin de mois pour des prestations d’Avril 2020 du contrat du client Lefort Céline.

Dans l’application Cn

Aller sur Billing / Invoicing Schedules

* Cliquer sur Group By / Invoice et Group by Invoice Date / Day

On obtient toutes les factures que l’on doit lancer par jour

Pour notre exemple, on prendra la facture qui doit être lancée au 1er Mai 2020

* Cliquer sur la facture du contrat du client Lefort Céline
* Cliquer sur \[Invoice] puis \[Launch]

Un numéro de facture apparaît dans l’Invoicing Schedules.

Si on clique sur la ligne, on peut visualiser la facture directement.

Pour notre exemple, le système a bien additionné 250+470=720 min dans la colonne Quantity et le Price est bien de 0,21€ HT/min (cf Pricelist : Conso Modulo)

Le statut de l'Invoicing Schedule passe à Invoiced.

Selon les options de configuration choisies la facture peut être générée en draft ou directement validée.

### Gestion des abonnements à prix fixe et variable

Dans un troisième temps, Oursbleu Télécoms lance “Sensys” son abonnement pro à prix fixe avec des frais d’activation et un prix variable de ses consommations au delà de 30 Go.

&#x20;Les frais d’activation seront facturés une seule fois le premier mois de l’abonnement.&#x20;

Le prix des consommations est variable en fonction des consommations en Go effectuées.

Cet abonnement sera facturé à la société 18ducks.

#### Création du produit Frais d'activation

Premièrement, vous pouvez créer l’article “Frais d’activation” qui sera facturé en début de mois et une seule fois. Pour cela, Cn utilise un “Cn Product Type” spécifique qui est défini au niveau de l’article.

Créez le produit “Frais d’activation” en suivant les instructions suivantes :

Aller sur l’application Cn / Products / Products

* Cliquer sur \[Create]
* Remplir le champ Product Name : Frais d’activation
* Cocher les 2 cases suivantes :
* Can be Sold / Is a Recurring Product (Cn)

Attention, décochez : Can be Purchased

Dans l’onglet General Information

Remplir les champs :

* Product Type : Service
* Product Category : laisser All
* Internal Reference : FAC
* Customer Taxes : TVA à l’encaissement (vente) 20,0% (on parle de prix HT pour une société)
* Indiquer le Sales Price en HT : 8.33

Dans l’onglet Cn

Remplir les champs :

* Cn Product Type : Billed Once
* Invoicing Date Scheduler : Day Of Subscription
* Invoicing Period : Month
* Invoice every : 1 Month
* Invoice Periods Boundary : Date to Date

Cliquer sur \[Save]

#### Création d'un produit Sensy

Deuxièmement, vous pouvez reprendre la marche à suivre d’un produit à prix fixe du § “Création du produit Quadro”.

Pour aller plus vite, on peut duplicate l’article Quadro.

Aller sur Cn / Products / Products / Quadro

* Cliquer sur Action / Duplicate
  * On changera pour notre exemple les champs suivants
* Product Name : Sensy
* Internal Reference : FSE
* Indiquer le Sales Price (HT) : 12.49 €HT

Cliquer sur \[Save]

#### Création d'un produit Consommation au delà de 30Go

Troisièmement, vous pouvez créer l’article “Consommation au delà de 30Go”. La marche à suivre est la même qu’un article à prix variable du § “Création d’un produit Modulo”, vous devrez juste faire attention à bien spécifier qu’il y a 30 Go inclus dans le forfait. Pour cela, Cn utilise un champ “Free Incl. Units” qu’il faudra renseigner au niveau de l’article.

&#x20;Aller sur l’application Cn / Products / Products

* Cliquer sur \[Create]
* Remplir le champ Product Name : Consommation au delà de 30Go
* Cocher les 2 cases suivantes :
* Can be Sold / Is a Recurring Product (Cn)

Attention, décochez : Can be Purchased

Dans l’onglet General Information

Remplir les champs :

* Product Type : Service
* Product Category : laisser All
* Internal Reference : C30Go
* Indiquer le Sales Price (HT) : 0.25 €HT

Dans l’onglet Cn

Remplir les champs :

* Cn Product Type : Usage Based Recurring Pricing
* Free Incl. Units : 30 (la consommation incluse dans le forfait Sensy est de 30 Go)
* Usage Data Calculator
  * Ouvrir la fenêtre Usage Data Calculator
  * Donner un nom : Consommation Go
  * Type : choisir Internal Code
  * Internal Method : choisir Qty : Sum (le système va faire la somme de tous les Go consommés sur une période donnée)
  * Test Parameters : ces champs permettent de faire des tests pour voir si la formule marche
  * Cliquer sur \[Save]
  * Number of Periods : 12
  * Invoicing Period : Month
  * Invoice Periods Boundary : Civil Month
  * Invoicing Date Scheduler : Day After Each Period End (on ne peut pas facturer en début de mois vu que le prix est variable en fonction de la consommation)

Cliquer sur \[Save]

#### Création d'un contrat d'abonnement Sensy

Maintenant, les 3 articles du contrat sont paramétrés.

Vous pouvez créer le contrat d’abonnement Sensy que le client 18ducks a souscrit.&#x20;

Aller sur l’application Cn

* Cliquer sur \[Create]
* Remplir les champs :
* Customer : 18ducks
* Pricelist : laisser Pricelist Public (EUR) où tous les champs sont vides
* Start Date : 06/03/2020
* laisser les autres champs remplis automatiquement

Dans l’onglet Accounting&#x20;

Remplir le champ :

* Payment Terms : Immediate Payment

Cliquer sur \[Save] puis \[Edit] pour renseigner les items du contrat

Dans l'onglet Items, cliquer sur Add a line

Remplir les champs :

* Item 1: Aller chercher dans la liste déroulante de l’Item, l’Item qu’on veut lier au contrat : Frais d’activation

Quand on renseigne le champ Item, les champs suivants se remplissent automatiquement :

* Name
* Start Date
* Duration
* Item Type
* Usage Data Calculator (quand on a un article avec un prix variable)

Cliquer sur \[Generate Schedules]

Vérifier les informations au niveau du Pricing et du Schedule

Cliquer sur \[Save & New]

* Item 2: Forfait Sensy

Cliquer sur \[Generate Schedules]

Vérifier les informations au niveau du Pricing et du Schedule

Cliquer sur \[Save & New]

* Item 3: Consommation au delà 30Go

Cliquer sur \[Generate Schedules]

Vérifier les informations au niveau du Pricing et du Schedule

Cliquer sur \[Save & End] (c’est le dernier article du contrat)

#### Création des Données Variables “Usage Data”

Vu que votre exemple est basé sur un forfait à prix variable, vous devez renseigner les données variables du contrat. : les “Usage Data”.

Aller sur Cn / Contracts / Contracts Items

* Cliquer sur l’Item du contrat souhaité, pour notre exemple ce sera le contrat 18ducks - Consommation au delà de 30Go

On arrive sur la fenêtre de l’Item Contract

* Cliquer sur Usages Data (en haut de l'écran)
* Cliquer sur \[Create]
  * Première variable
    * Indiquer une date de valeur dans le champ Start : 17/03/2020
    * Indiquer une quantité dans le champ Value : 20 (pour notre exemple cela correspond à 20 Go)

Cliquer sur \[Save]

La variable de l’Item est au statut Draft.

* Cliquer sur Pending pour que la donnée soit prise en compte par le système
* Cliquer sur \[Create]
  * Seconde variable
    * Start : 23/03/2020
    * Value : 30

Cliquer sur \[Save]

La variable de l’Item est au statut Draft.

* Cliquer sur Pending pour que la donnée soit prise en compte par le système

Vous indiquerez uniquement 2 valeurs dans votre exemple mais vous pouvez en saisir bien plus…

#### Editions des factures d'abonnement à prix fixe et variable avec des frais d'activation sur 2 mois

Pour votre contrat 18ducks, vous éditerez les 2 premières factures de l’abonnement “Sensys” :&#x20;

* la première avec des frais d’activation et un abonnement mensuel
* la seconde avec un abonnement mensuel et des consommations variables.

Dans l’application Cn

Aller sur Billing / Invoicing Schedules

* Cliquer sur Group By / Contract puis Group By / Invoice Date / Day

On obtient toutes les factures que l’on doit lancer par jour et par contrat

Pour notre exemple, on prendra la facture qui doit être lancée au 6 mars 2020

* Cocher les 2 lignes de la facture du contrat du client 18ducks
* Cliquer sur \[Generate 1 Invoice with IS] puis \[Launch]

Un numéro de facture apparaît dans l’Invoicing Schedules

Si on clique sur la ligne du numéro de facture, la fenêtre de l’échéance de facturation d’un item apparaît (IS)

On peut visualiser la facture si on clique sur le numéro de facture qui apparaît dans Invoice

On peut voir qu’il y a bien les frais d’activation ainsi que le forfait Sensy. La consommation au-delà de 30 Go n’apparaît pas car vous facturez cet article sur le mois suivant.

Revenir sur Billing / Invoicing Schedules

Pour notre exemple, on prendra la facture qui doit être lancée au 1 avril 2020

* Cocher les 2 lignes d'Invoicing Schedule du contrat du client 18ducks
* Cliquer sur \[Calculate]

Les Invoicing Schedules passe du statut Pending à Calculated

* Cocher les 2 lignes d'Invoicing Schedule du client 18ducks
* Cliquer sur \[Generate 1 Invoice with IS] puis \[Launch]

Un numéro de facture apparaît dans l’Invoicing Schedules

Si on clique sur la ligne du numéro de facture, la fenêtre de l’échéance de facturation d’un item apparaît (IS)

On peut visualiser la facture si on clique sur le numéro de facture qui apparaît dans Invoice

On peut voir qu’il n’y a plus les frais d’activation. Le forfait Sensy apparaît ainsi que les consommations au-delà de 30 Go.

Pour notre exemple, le système a bien additionné 20+30=50 Go dont 30 Go inclus du coup on ne facture que 20Go à 0,25€ HT / Go.

Le statut des Invoicing Schedules passent à Invoiced.

### Création manuelle des Clients

Aller sur l’application Cn&#x20;

Cliquer sur Customers / Customers / \[Create]

Remplir les champs suivants:

* Cocher Company ou Individual
* Address
* VAT (Pour les entreprises)
* Fiscal Position (dans l'onglet Ventes & Achats)

Cliquer sur \[Save], une fois que tous les champs sont remplis.


# Support utilisateurs

## Service d'assistance

Pour la durée du présent Contrat, le Client peut ouvrir un nombre non limité de demandes d’assistance sans frais, exclusivement pour des questions relatives à des Bugs (voir 4.1 Service de correction de Bugs) ou des explications au sujet de l’utilisation des fonctions standards du Logiciel qui ne sont pas couvertes par la présente documentation Cn285.

D’autres types de demandes, telles que celles relatives à des développements ou des personnalisations, peuvent être couvertes par l’achat d’un contrat de service séparé "Service Accompagnement".&#x20;

## Service d'accompagnement

Le Client peut solliciter 18ducks.solutions S.A.S. pour des prestations payantes de Service d'Accompagnement à la mise en oeuvre de Cn285.&#x20;

Le Client demande ces prestations en créant une demande d'Accompagnement.&#x20;

Une Demande d'Accompagnement correspond à une ou plusieurs Sessions de Service d'Accompagnement réalisées sous forme de rendez-vous en ligne, durant lesquelles un spécialiste Cn285 répond aux questions du Client et l'accompagne dans la mise en oeuvre de Cn285.&#x20;

Le Client peut décider à tout moment de mettre un terme à la Demande d'Accompagnement et/ou aux sessions de Service d'Accompagnement.Les prestations de Service d'Accompagnement sont facturées mensuellement au prorata de la durée des Sessions de Service d'Accompagnement.&#x20;

Le tarif des Prestations de Service d'Accompagnement est précisé par écrit à la souscription du contrat ou à défaut au tarif public.


# Données de démo

Cn285 possède des Items / Contracts de démonstration. Ces données sont explicités dans ce chapite

Afin de permettre la prise en main, des modèles de contrat, les modèles suivants ont été créés.

**DoctoBill Monthly**\
Service en ligne d'une période de 1 mois avec reconduction tacite facturé en début de période pour un tarif fixe de 9,99€.\
La période de service est alignée sur le mois civil. Un démarrage de contrat en milieu de mois donne donc lieu à une première facturation prorata temporis du montant mensuel.&#x20;

**DoctoBill Annually**\
Service en ligne d'une période de 1 an renouvelable tacitement, facturé à date anniversaire au tarif fixe de 99,99€ en début de période .

**Slap Monthly**\
Service en ligne d'une durée de 1 mois, renouvelable tacitement et facturé en début de période pour un tarif fixe de 8.25€ par utilisateur.

**Slap 12 months**\
Service en ligne avec engagement d'une durée de 12 mois renouvelable tacitement, facturé en date anniversaire (Date à date) tous les mois le premier jour de la période au tarif de 6,75€ par utilisateur.

**MogulZero**\
Service en ligne mensuel renouvelable tacitement composé d'une partie fixe et d'une partie variable.

* Fixe : 49€ par mois facturé le jour suivant la fin de période
* Variable : 9,99€ par tranche de 10000€ de chiffre d'affaires traité en données de consommation/d'usage facturé le jour suivant la fin de période\
  Le Usage Data Calculator utilisé est le UDC Monthly Section Calculation.


# Dashboards

https\://www\.cn285.app/

## Introduction

Cn285 livre en standard différents tableaux de bord permettant de suivre l'évolution rétroactive sur les 12 derniers mois de différents indicateurs tels que le MRR (Le revenu récurrent mensuel), l'ARPU (Le revenu moyen par client), le CA (le chiffre d'affaires), ..

## Menu & Accès

![Menu Dashboard](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FQJy3IcmwkF46zPHuxdnE%2Fimage.png?alt=media\&token=ff6042f5-07a7-498f-a7a8-62c2cba79d8e)

Les différents tableaux de bord sont accessibles depuis le menu **Cn Dashboard**.

Il est également possible d'accéder à ces données en cliquant sur le nom du dashboard. Vous pouvez réaliser une extraction des données en cliquant sur le symbole d'extraction sous le titre **Cn Dashboard**

![Données affichées lorsqu'un clic est effectuée sur le nom du tableau de bord MRR](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FUKKI4KlIIjYoGOyFyrhf%2Fimage.png?alt=media\&token=d6f64a17-51e0-4266-b598-22c091e14efd)

## Configuration

![Exemple de configuration d'un tableau de bord](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FO85ZMd0wMwMMgjMK1ji5%2Fimage.png?alt=media\&token=652703e4-4ec4-4e32-98e9-73674efb3ee1)

Sous **Cn Dashboard**, cliquer sur le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FO1lQW32uRoB0c2xtDo3z%2Fimage.png?alt=media&amp;token=ff04256c-4ad3-4e05-9db4-4719fc972448" alt="" data-size="line"> ,disponible à droite de l'écran, pour passer en vue liste. Depuis cette vue, il est possible d'accéder et de configurer les dashboards présents ou d'en créer de nouveaux.

{% hint style="danger" %}
La configuration peut nécessiter des compétences techniques dans le langage **Python.**
{% endhint %}

Différents champs sont alors visibles:

* **Nom**
* **Description**
* **Type**: Différents choix sont possibles et définissent le type du tableau de bord
  * **Bar**: Permet d'afficher les données sous forme de 'barre'
  * **Line**: Permet d'afficher les données sous forme de 'ligne'
  * **Pie:** Permet d'afficher les données sous forme 'camembert'
  * **Mix:** Permet de combiner deux types de graphiques pour afficher deux données distinctes

En fonction du type de tableau de bord définit, des paramètres supplémentaires peuvent apparaître:

* **Display Label Axis X**: Lorsque cette case est cochée, le label pour l'axe X sera affiché sur le graphique
* **Display Label Axis Y**: Lorsque cette case est cochée, le label pour l'axe Y sera affiché sur le graphique
* **Color**: Permet de définir la couleur des barres&#x20;
* **Background Color**: Permet de définir la couleur de remplissage des lignes
* **Border Color**: Permet de définir la couleur de la bordure des lignes

Sous l'onglet **Inline Code**, renseigner le code Python nécessaire afin de récupérer les données voulues. Une aide est disponible directement dans cet onglet.


# Menu CRM

## Introduction

## Créer un contrat depuis un lead


# Menu Contracts

<img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FdbjtbYixTrNiccW2tJvs%2FCleanShot%202022-09-14%20at%2013.21.40.png?alt=media&amp;token=fc4bd6c7-0791-452a-a665-7c84b8c2f38a" alt="" data-size="original">

Le menu *Contracts* permet l'accès à :

* ***Contracts*** : Vue spécifique qui n'affiche que les contrats gérables par l'interface utilisateurs - au delà de 2500 ***items*** les contracts ne sont visibles que dans la vue ***Large Contracts***
* ***Large*** ***Contracts*** : C'est une vue spécifique qui permet d'afficher tous les contrats disponibles dans la base Cn285 y compris tous les contrats comportant plus de 2500 ***items***
* ***Contract Items :*** Ce menu permet d'accéder aux lignes de ***Contract items*** qui représentent le lien entre un contrat et un ***item***.
* ***Contract Changes*** : Accès au menu qui permet de réaliser les demandes de changements sur les contrats en cours. Un contrat en cours ne se modifie pas via "une modification" de champs dans l'interface : les changements sont demandés, appliqués et tracés via les ***Contract Changes***.
* ***Contact Items Renewals*** : Vue qui fait l'historique et comptabilise tous les renouvellements de période d'un ***Contract Item***.
* ***Contract Item Renewal Notices :** Vue qui permet de gérer l'envoi des mails lors des renouvellements de contrats*&#x20;
* ***Create Contract From Template :** M*enu qui donne accès à la liste des modèles de contrat (***Contract Templates***) et permet la création rapide d'un contrat sur la base d'un modèle préalablement défini comme Template.
* ***Signature :*** Accès à la vue recensant l'ensemble des enregistrements des signatures des ***ContractItems*** gérés dans Cn285

##


# Contracts

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

Le Contrat est l'objet Cn285 qui permet de gérer la relation contractuelle et la facturation récurrente d'un ensemble de produits et services à un client.

Un contrat est composé d'un ou plusieurs "Contract Items" qui correspondent aux différents produits ou services achetés par le client.

Par exemple, le contrat pour un abonnement téléphonique pourrait avoir 3 Contract Items:

* Abonnement - à prix fixe
* Frais de mise en service -  facturés qu'une seule fois
* Consommation Données (Go) - avec une facturation variable

{% hint style="info" %}
Dans Cn285, le contrat est à voir comme un contenant (de Contract Items), ce qui implique que :&#x20;

* Les contrats ont une date de début, leur date de fin correspond à la date de fin du Contract Item le plus éloigné. Par extension, un contract est In progress tant qu'il contient un Contract Item encore actif.
* Le statut d'un contrat dépend du statut des Contract Items qui le composent
* Il n'y a pas de signature du contrat, mais des signatures de Contract Items, même s'il est possible de décider au niveau du contrat qu'on autorise le Bypass de signature  (notamment en cas de création de Contract Items via l'API)
  {% endhint %}

## Cycle de vie

Le statut du contrat est défini par le statut des ***ContractItems***.

Les différents statuts de l'objet ***Contract*** sont:

* Draft : tous les Items sont draft
  * la ligne de facturation est au statut de brouillon, on peut la modifier et l’annuler.
* Signature : Les ***ContractItems*** sont en cours de signature.
* In Progress : Le contrat est en cours avec au moins un ***ContractItem*** en statut in Progress
* Finished : Le contrat est terminé.
* Terminated : Le contrat est résilié par le client

## Opérations

La création d'un contrat est réalisée en 2 étapes :&#x20;

1. Saisie d'un en-tête
2. Saisie des éléments du contrat via l'objet ***ContractItems** qui représentent les items associés au **Contract***

### Création de l'en tête du Contrat

Choisir le Client dans la liste déroulante du **Customer.**

Les champs **Invoice Address / Delivery Address / Salesperson / Sales Team** sont des champs qui apparaissent automatiquement si le client est déjà connu dans la base.\
&#x20;Voir document [Menu et écran Customers](/cn285-documentation/menu-et-ecran-customers).

Renseigner le **Customer Ref** si besoin.

Laisser le champ **Pricelist** en Liste de prix publique (EUR) par défaut ou sinon créer une **Pricelist** spécifique au Client [Pricelists](/cn285-documentation/menu-products/pricelists).

La **Start Date** est par défaut la date du jour mais on peut tout à fait la changer.

Cocher la case **Is Renewal Tacit** si le contrat est un abonnement par tacite reconduction.

Cliquer sur Save pour pouvoir créer les lignes de contrats “Contracts Items”.

Le système crée automatiquement une référence de contrat.

Les différents onglets du contrat permettent de spécifier si le contrat est renouvelable, résiliable etc…voir le document [Contract Changes](/cn285-documentation/menu-contracts/contract-changes) pour plus de détails.

### Création des Contracts Items

Cliquer sur Edit puis sur Add a line au niveau de la ligne du contrat.

Choisir **l’Item** du contrat dans la liste déroulante.

Toutes les informations renseignées sur **l’Item** sont remontées : **Duration, Item Type…**

Cn indique la date de fin du contract item suivant la Duration (in periods) renseignée.

Le système crée automatiquement une référence pour le contract item. Voir [Contract Items](/cn285-documentation/menu-contracts/contract-items).

En cliquant sur Generate Schedules, Cn détaille toutes les périodes de service et de facturation du contract item suivant les informations renseignées.

### Validation - Signature des contrats

Une fois l’en-tête et les lignes de contrats créées, le contrat est au statut Draft. Il faut donc signer les ContractItems pour valider le contrat.&#x20;

Cliquer sur le bouton Sign. Par défaut, Cn285 va afficher dans l’onglet Items, tous les items qui sont au statut Draft.&#x20;

Dans l’onglet Documents, Cn285 permet d’ajouter un ou plusieurs documents rattachés au contrat. Les documents qui se trouvent dans le Chat apparaissent automatiquement dans Documents (en haut à droite du contrat). Pour mettre des documents dans le chat du contrat (cliquer sur le trombone) et Drag\&Drop votre document dans le Chat.

Petite précision, le Chat peut être ajouté sur n’importe quel objet de Cn285, il permet de retracer l’historique du contrat du client.

Si on veut rattacher des documents signés au contrat, il suffit d’aller dans la fenêtre qui s’affiche quand on clique sur Sign.

Ensuite, on peut cliquer sur Confirm.

Le statut du contrat passe de Draft à Signature.

## Description des champs

**Pricelist** : permet la création d’une pricelist si le prix d’un produit varie en fonction des différents paliers de quantités consommées ou autres&#x20;

**Start** **date** : par défaut c’est la date du jour mais on peut tout à fait changer la date de début du contrat

**Is** **Renewal** **Tacit** : en cochant cette case, on indique si le contrat est renouvelable

### &#x20;Onglet Items

Il permet de sélectionner les Items à associer à ce contrat.

### &#x20;Onglet Signature - WIP

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FCC8pccanVxRVTKfgoXmd%2Fimage.png?alt=media&amp;token=1c4617ea-f184-44c7-996d-7eeafa295cc7" alt=""><figcaption></figcaption></figure>

Cet onglet fournit les informations relatives aux signatures du contrat. Il permet également de définir le process de signature a utilisé. Ce process peut être:

* **Bypass**: Permet de désactiver le process de signature et de directement passer le contrat dans son état suivant (en cours ou en attente paiement).
* **One-step**: Le process de signature se fait en une seule fois. Il permet de signer rapidement un contrat et ainsi de ne pas passer par un process permettant de suivre l'évolution de la signature côté client.
* **Two-step**: Permet d'activer un workflow de signature permettant de suivre l'évolution de la signature côté client.

### &#x20;Onglet Accounting

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FbhhlmisZsrabEfpUhACe%2Fimage.png?alt=media&amp;token=eb006357-50a0-43ae-b853-4451960699ce" alt=""><figcaption></figcaption></figure>

Cet onglet contient les éléments de comptabilité :&#x20;

**Currency** : Devise dans laquelle sera géré le contrat. Elle est automatiquement remontée du client.

**Fiscal Position** : permet de définir le taux de taxe applicables

**Billing Folder** : Conditions de paiement applicable en cas de regroupement de factures.

**Active Payment Mean** : Moyen de paiement actif (si défini).

**Validate Generate Invoice** : Option qui permet de valider automatiquement les factures générées par ce contrat (sinon elles sont créées en statut Brouillon "Draft').

{% hint style="warning" %}
La validation automatique des factures d'un contrat, nécessite que la validation soit également autorisé au niveau de l'instance Cn285 concernée.

Voir [Invoicing Process](/cn285-documentation/menu-configuration/settings/invoicing-process)
{% endhint %}

### Onglet Quote Terms&#x20;

Zone de texte permettant de saisir toute information utile ou condition particulière relative au devis et qui sera édité avec ce dernier.&#x20;

### Onglet Invoice

Partie Invoice Terms : Zone de texte permettant de saisir toute information utile ou condition particulière relative à la facturation.

Partie Invoice Line Detail : Permet de paramétrer les champs que l'on souhaite voir dans le détail des factures. Par défaut, tous les champs sont cochés mais il suffit de décocher une ou plusieurs cases pour que les champs n'apparaissent pas dans le détail des factures.

### Onglet Email

Cn285 permet d'envoyer automatiquement les factures par email au client ainsi qu'une copie de ses dernières à un tiers.

Send Invoice eMail : permet d'activer l'envoi des factures par mail

eMail Template : permet de définir le modèle du courrier eMail accompagnant la facture.

Attach Invoice Detail : Option qui permet d'envoyer les détails des données à la base du montant facturé.

Send Invoice eMail Copy : Option qui active l'envoi de mail au destinataire défini dans le champ eMail Copy Recipient.

eMail Copy Recipient : destinataire(s) en copie des mails de facture.

{% hint style="info" %}
Le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FDrvdaQuzSWFkYdfmsHDZ%2FCleanShot%202022-07-08%20at%2012.44.34.png?alt=media\&token=097ff251-2715-4c91-b34e-9fcbd2368609) permet d'actualiser les données qui ont été modifiées par les utilisateurs, s'il y a eu des changements effectués. En lui-même, ce bouton ne fait rien.
{% endhint %}

{% hint style="info" %}
Le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FBsYgq1Q7sygoCXAzDJaL%2FCleanShot%202022-07-08%20at%2012.46.24.png?alt=media\&token=fc74e379-01d9-4c66-82db-9246ace88273)lance un traitement qui va calculer les Invoicing Schedules par rapport aux Usages Datas
{% endhint %}

## Gestion des contrats multi produit <a href="#gestion-des-contrats-multi-produits" id="gestion-des-contrats-multi-produits"></a>

Certains contrats comportent plusieurs produits pour un même client, produits qui n'ont pas tous la même date de fin de souscription.

Vue des différents **Contract items** dans le contrat

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FgKWQyf4Tdir9P1oLgG88%2Fimage.png?alt=media\&token=241675d6-0435-4a7d-b2b1-4560deeb4351)

**Vue du plan de facturation associé**

Le plan de facturation montre l'ensemble des Invoicing Schedule (IS) prévus pour ce contrat avec :

* Des frais d'activation de 12€ facturés une seule fois en début de période de souscription
* Un Droit d'accès fixe, facturable en début de mois, pour une durée de 12 mois (on voit que les 5,99€ ne sont plus facturés au delà du 31/12/2021)
* Une offre à tarification variable dont les premières données de consommation ont été reçues en février puisque, les consommations du mois de janvier n'ont donné lieu à aucune facturation (et il n'y a pas eu de gratuité accordée) et que le mois de Mars fait apparaitre un montant composé des droits d'accès de mars pour 5,99€ et et de 1200€ de consommations modulo du mois de février (par définition, une tarification sur consommation n'est définie qu'en fin de période).

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FprCAMFCpwXQod00SqAu1%2Fimage.png?alt=media\&token=021e71b8-8304-4b46-939a-d8a810957070)

## &#x20;<a href="#gestion-des-contrats-multi-produits-avec-contract-items-en-cascade" id="gestion-des-contrats-multi-produits-avec-contract-items-en-cascade"></a>


# Contract Items

Un ContractItem permet de lier un produit à un client dans un contrat.

## 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](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FkOfvXvrc40JX97lv4E7O%2FCleanShot%202022-02-28%20at%2017.06.07.png?alt=media\&token=169ca0e3-f901-4365-be57-71960c9cf36e)

## Configuration

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FdLRrnBc8j5UZlB8yL28E%2Fimage.png?alt=media&amp;token=f71c9efa-7526-4a58-9bef-83dd6d5c1494" 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)). 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) 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))

### 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)

**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) 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) 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)(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)

### Onglet Renewal

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

{% hint style="info" %}
Le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FBsYgq1Q7sygoCXAzDJaL%2FCleanShot%202022-07-08%20at%2012.46.24.png?alt=media\&token=fc74e379-01d9-4c66-82db-9246ace88273)lance un traitement qui va calculer les Invoicing Schedules par rapport aux Usages Datas.
{% endhint %}

{% hint style="info" %}
Le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FPcpyPc8wLZ7tjJl0zqjo%2FCleanShot%202022-11-24%20at%2015.36.46.png?alt=media\&token=6e8f1fba-ab90-4b34-a1f1-1585079865be) 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="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FbQITQKlqPQH3mm3jTAc7%2FCleanShot%202022-11-28%20at%2011.18.44.png?alt=media&amp;token=863f3c83-4d34-4f44-8c1d-3d28c30caf91" 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),
* 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.


# Contract Changes

Vue de l'ensemble des changements sur les contrats en cours

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

Menu Cn / Configuration / Cn285 Daemons

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FMimc4T1pwfme8ipfVBWn%2FCleanShot%202022-01-18%20at%2018.14.19.png?alt=media\&token=84a1f43f-bc2e-4c77-86e3-ad7dab7104b3)

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 %}

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fs4s4RAXhainjntpKWHyl%2FCleanShot%202022-01-18%20at%2018.29.44.png?alt=media\&token=1661c45a-a063-41b2-b288-4b4d68ece779)

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


# Contract Item Renewals

Vue de l'ensemble des contrats renouvelables

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

Le Contract Item Renewals permet d'avoir une vue d'ensemble de tous les Contracts Items qui sont renouvelés.

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

La liste des Contracts Items Renewals est accessible avec le menu Cn / Contracts / Contract Item Renewals.

Cn permet de retrouver le détail du renouvellement dans chaque contrat au niveau du Contract Item dans l'onglet Renewal.

## Operations <a href="#operations" id="operations"></a>

Chaque ligne de la liste des Contracts Items Renewals a une date de début et de fin de la période renouvelée. On peut avoir plusieurs lignes de renouvellement pour le même Contract Item, c'est pour cette raison que Cn numérote chaque nouvelle période de renouvellement dans la colonne Number.

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

Les Cycles de vie des Contracts Items Renewals sont les mêmes que les Invoicing Schedules.

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

Le Contract Item Renewals a :

* une date de début (**Start Date)** et une date de fin (**End Date**) de période de renouvellement,
* un numéro (**Number**) car le Contract Item peut avoir plusieurs lignes de renouvellement,
* un numéro d'Invoicing Schedule (**Ref**),
* une date de facturation (**Process Date**),
* un état (**State**) qui sera celui de l'Invoicing Schedule.


# Contract Item Renewal Notices


# Contract Template Groups

Modèle de groupe de contrats à dupliquer

## Introduction

Le ***ContractTemplateGroups*** permet le regroupement de ***ContractTemplates***. Il permet par exemple de facturer un ***ContractItem*** avec plusieurs versions : mensuellement, trimestriellement, annuellement... Le ***ContractTemplateGroups*** est également utilisé pour des offres promotionnelles sur un ***ContractItem*** avec une durée limitée (date de début / date de fin). Il sera utile également avec une API.

## Menu et Accès

La liste des ***ContractTemplateGroups*** est accessible avec le menu Cn / Contracts / Contract Template Groups.

Cn285 permet de voir la liste de tous les ***ContractTemplateGroups***.

## Opérations

### Première étape :&#x20;

Créer le ***ContractTemplateGroups***.

Aller sur le menu Contracts / Contract Template Groups / Cliquer sur Créer.

Donner un nom au ***ContractTemplateGroups*** que l'on souhaite créer.

Indiquer une Validity Start Date et une Validity End Date dans le cas d'une offre par exemple limitée dans le temps.

Cliquer sur Save.

Créer les lignes du ***ContractTemplateGroups*** avec les ***ContractTemplates*** souhaités.

Cliquer sur Save.&#x20;

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FGa3pgHkw6jUzYoNNYJ6F%2FCleanShot%202023-03-20%20at%2011.33.17.png?alt=media&amp;token=68e148c9-a0fc-49cf-b2cd-2ed221d13664" alt=""><figcaption></figcaption></figure>

### Seconde étape :&#x20;

Cn285 permet de créer directement un ***Contract*** à partir du ***ContractTemplate*** sélectionné en cliquant sur le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FZDSZ9p0GXqOUrNmFao4D%2FCleanShot%202023-03-21%20at%2011.58.19.png?alt=media\&token=42914bb7-559e-4280-b0a1-f4b39ec88184).

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FcLUO6aCVdkPSLDiqHzDB%2FCleanShot%202023-03-27%20at%2010.57.49.png?alt=media&amp;token=f00e609a-5653-4ec6-9487-0a452f1d0f94" alt=""><figcaption></figcaption></figure>

Choisir le modèle du ***ContractTemplate*** que l'on souhaite dupliquer.

Remplir les champs "Customer" et "Start Date" du nouveau contrat que l'on souhaite créer.

Cocher la case "Sign Contract" si l'on souhaite que le futur contrat créé soit directement au statut "In Progress" ce qui signifie que la signature du contrat a déjà été validée.

{% hint style="info" %}
Cn285 permet de modifier la quantité de ***ContractTemplate*** que l'on souhaite créer sur le contrat.
{% endhint %}

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FSxvGYjR3GXhtqdzM1rGH%2FCleanShot%202023-03-27%20at%2011.06.07.png?alt=media&amp;token=52e95caa-406c-432d-927e-b5e8d69cd2de" alt=""><figcaption></figcaption></figure>


# Create Contract from Template

Modèle de contrat à dupliquer

## Introduction

Le ***ContractTemplate*** permet de créer un contrat type qu'on pourra dupliquer aussi souvent que l'on veut. Il permet d'éviter la saisie répétitive des ***ContractItems*** dans un contrat.

## Menu et Accès

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

Cliquer sur Filtres et choisir ***ContractTemplates***

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FoxgADnA0oLYgxIc4kM9l%2FCleanShot%202021-12-17%20at%2012.22.00.png?alt=media\&token=ad06fc43-94fc-4790-9337-65087b2b36b2)

## Opérations

### Première étape :&#x20;

Créer le ***ContractTemplate***.

Aller sur le menu Contracts / Contracts / Cliquer sur Créer.

Donner un nom au ***ContractTemplate*** que l'on souhaite créer puis cocher la case "Is Contract Template". Un bandeau rouge apparaît sur le côté du contrat.

Cliquer sur Save.

Créer les lignes du ***ContractTemplate*** avec les ***ContractItems*** souhaités.

Cliquer sur Save. Votre modèle de contrat a été crée.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FTLbIGqUJd2ETQM0eIK2A%2FCleanShot%202021-12-16%20at%2016.20.39.png?alt=media\&token=668e8179-d9b5-41ac-9908-6a4a4c70fda3)

### Seconde étape :&#x20;

Pour créer un contrat à partir d'un ***ContractTemplate***.

Aller sur le menu Contracts / Create Contract From Template

Choisir le modèle du ***ContractTemplate*** que l'on souhaite dupliquer.

Lui donner un nom de contrat. Remplir les champs "Customer" et "Start Date" du nouveau contrat que l'on souhaite créer.

Laisser la case "Sign Contract" cochée si l'on souhaite que le futur contrat créé soit directement au statut "In Progress" ce qui signifie que la signature du contrat a déjà été validée.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FSNcibYeAJvAKmZGRR8Mk%2FCleanShot%202021-12-16%20at%2016.19.40.png?alt=media\&token=0672d723-502a-41f8-8e45-151d104732f2)

Ne pas cocher la case "Sign Contract" si l'on souhaite modifier ou rajouter des informations au contrat créé. Le contrat sera alors au statut Draft.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F28BfRqsSkI5pqR3FUvwb%2FCleanShot%202021-12-16%20at%2016.18.11.png?alt=media\&token=ac23c777-71dd-4fb1-b607-d7f5402d08e1)

##


# Signature

### Introduction <a href="#gestion-de-la-double-signature" id="gestion-de-la-double-signature"></a>

Cn gère la signature des contrats. Cette étape manuelle ou automatique est obligatoire dans Cn et permet d'avoir une date de la validation du contrat par le client.

Il est toutefois possible de paramétrer un comportement par défaut à l'ensemble d'une instance via le menu Cn285 / Configuration / Settings / [Contract](/cn285-documentation/menu-configuration/settings/contract)

### Gestion de la signature (simple et double) du contrat <a href="#gestion-de-la-double-signature" id="gestion-de-la-double-signature"></a>

Cn285 permet de gérer plusieurs méthodes de signature.

* La signature simple
* La double signature
* Le ByPass signature

![Option de Gestion de la signature](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FNA3bFeFBHDZENeTBOijb%2FCleanShot%202022-02-22%20at%2009.37.17%402x.png?alt=media\&token=938ba32a-eeaf-4f14-bba3-9838293dc108)

### Signature simple <a href="#signature-simple" id="signature-simple"></a>

A réception du contrat signé par le client, le bouton Sign permet de signer le ou les items concernés.

**Bouton Sign puis Confirm**&#x20;

**Le statut du contrat passe directement en “In Progress”**

<br>

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F5tfHCcGhDRVs8pFKR4qd%2Fsignature_simple.png?alt=media\&token=ee731a27-ce04-4810-a3d8-8ad131c40a39)

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F09lxQ99oiuWAFSe79mt4%2Fecran_confirm_signature.png?alt=media\&token=66113ace-e6ae-4de4-a672-1672c94bc4f6)

### Signature double <a href="#signature-double" id="signature-double"></a>

En cas d'utilisation d'un système de signature électronique, le processus de signature permet de :

* Tracer la date d'initialisation du processus de signature électronique lors d'une première étape, identique au processus simple, excepté sur le statut du contrat qui est au statut “Signature".

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FlebaoKp5ub8DzbEeWu0S%2Fdouble_signature.png?alt=media\&token=01e7f88a-6d34-4c1e-8eb0-db105f24758a)

* Pour matérialiser la fin du processus de signature électronique et capturer la date de finalisation, le bouton Edit permet d'ouvrir la fenêtre de validation.&#x20;
* Selon que le processus soit&#x20;
  * allé à son terme avec signature OK, alors on aura l'équivalent d'une sélection du bouton “Sign”&#x20;
  * sinon, si signature KO, il y aura un Decline et le contrat ne prendra pas effet.

A noter : dans le cas d'un processus de signature électronique, ces étapes seront automatisées.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FEKskgo6fk3LNa3X8ClSg%2Fretour_processus_signature.png?alt=media\&token=58f3b1f3-e6b7-407f-b243-1ca2194b2754)

### By Pass Signature <a href="#configuration-du-plan-comptable" id="configuration-du-plan-comptable"></a>

L'option Allow to ByPass signature permet le passage du contrat en statut In progress sans nécessiter la signature du ou des ***ContractItems*** qui le composent.&#x20;


# Contract : Advanced features

Gérer un contrat multi produit

## :pick:Gestion des contrats multi produits avec contract items en cascade <a href="#gestion-des-contrats-multi-produits-avec-contract-items-en-cascade" id="gestion-des-contrats-multi-produits-avec-contract-items-en-cascade"></a>

Le contrat ci-dessous comporte 6 contract items de type UTI (Usage Triggered Invoice : c'est à dire à déclenchement de facturation sur consommation) dont 2 sont des items source et 4 sont des items associés ou autrement nommés “en cascade.”

UseCase : nous fournissons à notre client  Market bank des fichiers d'adresse comme suit :&#x20;

* Fichier d'adresse Perso : 0,28€ la ligne d'adresse + forfait de 300€ pour le fichier plus une redevance de 0,28€ par adresse.
* Fichier d'adresse Pro : même conditions

&#x20;La livraison d'un fichier (usage data : nb de lignes de fichier) doit déclencher 3 lignes de facturation comme suit :

* Nb d'adresse \* 0,28
* Forfait 300€
* NB adresse \* 0,01

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FB9AwxRB8TqAh8Bs0jkjQ%2Fimage.png?alt=media\&token=8bfe1246-2fb3-4d44-8f8f-30448bb95e38)

Livraison de 2 fichiers d'adresse (Usage data)

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FU6V8dRz3W4dTwwyaCeIa%2Fimage.png?alt=media\&token=43187c0b-6833-405e-a0bb-3c822718c86d)

Vérification du déclenchement en cascade de 6 lignes d'IS dont 2 forfaitaires à 300€ H.T (360€TTC).

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fqen0LW63o62TbF1LhurX%2Fimage.png?alt=media\&token=1ed58448-9c85-4fd9-9b6c-a1f8fef415b3)


# Menu Billing


# Invoicing Schedules

Un Invoicing Schedule dans Cn permet de gérer une future ligne de facture.

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

L’***InvoicingSchedules*** est la vue qui regroupe l’ensemble des éléments à facturer : les ***InvoicingSchedule*** *(IS)*.

Un ***IS*** représente une future ligne de facture (sauf dans le cas où la facture est composée d'un regroupement de lignes de facture et donc d'IS).

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

La vue des ***InvoicingSchedules*** est accessible via le menu Cn / Billing / Invoicing Schedules.

Les informations liées aux ***InvoicingSchedules*** sont reprises au niveau du Contrat (bouton Invoicing Schedules en haut à gauche du contrat).

## Operations <a href="#operations" id="operations"></a>

La fonction  GROUP BY de l’interface permet de regrouper les ***InvoicingSchedules***

La sélection d’un IS permet d’afficher les boutons d’action suivants :

* Calculate : recalcule le montant de l’IS sur la base d’éventuelles nouvelles données de consommation
* Generate invoices from IS : Génère les factures des IS sélectionnés\
  A noter : Si un IS est associé dans un ***Contract*** à un IS sélectionné alors il sera aussi mis en facturation
* Generate 1 Invoice with IS : Le bouton génère une facture avec les ***InvoiceSchedules*** sélectionnés.
* Crédit Memo : le bouton génère un avoir sur les ***InvoiceSchedules*** sélectionnés.Cn285 pourra uniquement gérer un Crédit Memo sur les IS au statut Invoiced.

{% hint style="danger" %}
**Les IS ne constituent pas un prévisionnel de facturation (les contrats à tarification variable ne sont pas, par définition,  valorisés avant la fin de la période de services et le traitement des&#x20;*****UsageData*****&#x20;ou des&#x20;*****Events*****).**
{% endhint %}

Par exemple :&#x20;

* Le contrat variable de 12 mois, ci-dessous, aura 12 ***InvoicingSchedules***.
* A noter :

  * Si aucune donnée variable n'a été soumise au système, la valeur de l'***IS*** sera à 0
  * Les périodes de services non encore échues impliquent des ***InvoicingSchedule*** au statut Pending, qui signifie que ces ***IS*** sont en attente de données variables du mois.

![IS et Statut d'IS](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F13uE9VkatB6w0kO5AoDM%2Fimage.png?alt=media\&token=11c9e6c7-f470-456a-a50e-3c31176a74b0)

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

Les ***IS*** ont un statut :&#x20;

* Draft : la ligne de facturation est au statut de brouillon, on peut la modifier et l’annuler.
* Pending : La période de facturation n’est pas révolue, l’***IS*** peut être recalculé à tout moment
* Calculated : La période est révolue, le montant de l’***IS*** peut être recalculé et facturé
* Invoiced : L’***IS*** a été facturé
* Canceled : L’***IS*** a été annulé
* Paused : En pause, les IS ne passent alors pas en facturation - Ce cas intervient lorsque le ***ContractItem*** est mis en pause.&#x20;

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

En cliquant sur un ***IS***, on arrive sur la vue formulaire :&#x20;

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fw8uGSBesrbsYtacUmbRX%2Fimage.png?alt=media\&token=ee56816d-dd12-4a07-98ed-11ddd41151f2)

On retrouve toutes les informations liées au contrat, au produit, à la période de facturation ainsi que des informations sur la facturation.

La fenêtre de l'***IS*** permet de vérifier que toutes les informations liées à la future ligne de facturation sont correctes avant le lancement de la facture.

{% hint style="info" %}
Le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FDrvdaQuzSWFkYdfmsHDZ%2FCleanShot%202022-07-08%20at%2012.44.34.png?alt=media\&token=097ff251-2715-4c91-b34e-9fcbd2368609) permet d'actualiser les données qui ont été modifiées par les utilisateurs, s'il y a eu des changements effectués. En lui-même, ce bouton ne fait rien.
{% endhint %}

{% hint style="info" %}
Le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FBsYgq1Q7sygoCXAzDJaL%2FCleanShot%202022-07-08%20at%2012.46.24.png?alt=media\&token=fc74e379-01d9-4c66-82db-9246ace88273)lance un traitement qui va calculer les ***InvoicingSchedules*** par rapport aux ***UsageData***.
{% endhint %}

&#x20;

&#x20;


# Invoices

Liste des factures

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

A chaque ***ContractItem*** est associé :&#x20;

* une durée de service qui entraine la génération d'un Invoicing Schedule selon la périodicité.
* un Invoicing Data Scheduler qui va lancer à une date définie le passage en facturation des Invoices Schedules

{% hint style="danger" %}
Toute facture comptabilisée ne peut être supprimée.
{% endhint %}

Cette opération produit les Invoices de la période pour le contrat concerné.&#x20;

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

La liste des Invoices est accessible avec le menu Cn / Billing / Invoices.

Les informations liées aux Invoices sont reprises au niveau de l'en-tête du Contrat (bouton Invoices).

L'écran des Invoices permet  :

* d'avoir une vue d'ensemble de toutes les factures
* de suivre le paiement d'une facture
* de connaître le temps qu'il reste avant que la facture soit payée

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

![Exemple de facture](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F5YKowaek8tYHbYNfwB3I%2Fimage.png?alt=media\&token=e5510a21-b6e0-49cf-a7ff-7e9d9a8e17fb)

Par défaut les factures sont créées à l'état Brouillon. Il est cependant possible de les créer directement dans l'état Comptabilisé. Pour cela il est nécessaire d'activer la validation automatique du contrat ([Contracts](/cn285-documentation/menu-contracts/contracts#onglet-accounting)) ainsi que la validation automatique globale ( [Invoicing Process](/cn285-documentation/menu-configuration/settings/invoicing-process#validate-generated-invoices))

### Présentation générale d'une facture <a href="#presentation-generale-dune-facture" id="presentation-generale-dune-facture"></a>

![Exemple de facture](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FxK6TxvfFv0WjmY2KMgmC%2Ffacture_schema_2.png?alt=media\&token=b56475f3-323c-4858-952a-604e5293479a)

Une facture ou un élément de facturation est composé d’une entête

1 - Le premier bloc indique le **nom du contrat** et agit en tant que séparateur si la facture ou l'élément de facturation concerne plusieurs contrats

2 - Le second bloc est composé de plusieurs éléments :

* La première ligne est composée : \[**Référence du Contract Item** / **Référence Produit**] **Nom du Contract Item**
* La seconde ligne correspond à la **description du Contract Item** (sur Cn285, cette description est limitée à 400 caractères)

3 - Le troisième bloc contient les informations de l’Invoicing Schedule:

* **Les changements opérés** sur le Contract Item via les Contract Change (changement de prix, changement de quantité, remise, etc ..)
* **La période concernée**
* **Le détail de la quantité facturée**&#x20;

## Mentions obligatoires sur les factures <a href="#mentions-obligatoires-sur-les-factures" id="mentions-obligatoires-sur-les-factures"></a>

Les factures Cn permettent d’être en conformité avec les exigences légales en vigueur.

Nous utilisons le site suivant comme référence:

* <https://www.service-public.fr/professionnels-entreprises/vosdroits/F31808>

N’hésitez pas à nous signaler toute anomalie à ce sujet

### Onglet "Autres Informations"

Cet onglet permet d'afficher des détails spécifiques sur la facture ainsi que sur la comptabilité.

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F3ppoeSAzsUXdvIDQWt0e%2FCleanShot%202022-09-14%20at%2015.34.05.png?alt=media&amp;token=ac20f44f-f626-4769-909e-ff7c89fd4e6a" alt=""><figcaption><p>Exemple de l'onglet "Autres Informations"</p></figcaption></figure>

{% hint style="info" %}
Parmi les éléments affichés dans cet onglet, la référence client est la seule information qui s'affichera sur la facture au format pdf. Cette référence client est automatiquement remplie avec la **Customer Ref** du [Contract](/cn285-documentation/menu-configuration/settings/contract) ou du [Billing Folders](/cn285-documentation/menu-billing/billing-folders).
{% endhint %}

### Onglet "Cn285"

Cet onglet permet d'afficher les détails relatifs à la mise à disposition dont les paramètres sont gérés au niveau des [Contracts](/cn285-documentation/menu-contracts/contracts) ou des [Billing Folders](/cn285-documentation/menu-billing/billing-folders) mais aussi au niveau de l' [Invoice eMail Sending](/cn285-documentation/menu-configuration/settings/master)

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FsDqWVCXstRUdc9aW8U0B%2FCleanShot%202022-09-14%20at%2015.34.36.png?alt=media&amp;token=40e198d4-e03a-4862-8af6-32f0c38f7e73" alt=""><figcaption><p>Exemple de l'onglet "Cn285"</p></figcaption></figure>

### Onglet XSync <a href="#presentation-generale-dune-facture" id="presentation-generale-dune-facture"></a>

Cet onglet fournit les détails de synchronisation de la facture avec un système tiers (voir [Menu XSync](/cn285-documentation/menu-xsync))

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fv2gyXPwofO1HjbNPMNdG%2FCleanShot%202022-09-14%20at%2015.39.34.png?alt=media&amp;token=ac9fb76b-ebab-4577-ab3d-a52184896a45" alt=""><figcaption><p>Exemple de l'onglet "XSync"</p></figcaption></figure>

### &#x20;<a href="#presentation-generale-dune-facture" id="presentation-generale-dune-facture"></a>

###


# Invoice Details

Détails des factures ou d'avoirs

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

Les Invoice Details sont des détails concernant des factures ou des avoirs. Ils sont générées par des [Detail Generators](/cn285-documentation/menu-configuration/detail-generators) lorsque la facture (ou l'avoir) est créée.

Les Invoice Details peuvent être joint à la facture ou à l'avoir du client afin que celui-ci puisse comprendre le montant.

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

Les Invoice Details sont accessibles depuis le menu **Cn285 / Billing / Invoice Details.**&#x20;

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FC9KqlY1lascG6IoqrhHL%2Fimage.png?alt=media&amp;token=7a05ba37-0a09-43c1-83d9-a627a72b9b43" alt=""><figcaption><p>Exemple d'Invoice Detail généré pour une facture</p></figcaption></figure>

## &#x20;<a href="#operations" id="operations"></a>


# Billing Folders

Regroupement de factures

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

Le Billing Folder a pour fonction de regrouper pour un même client, plusieurs factures de contrats différents en une seule.

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

La liste des Billing Folders est accessible avec le menu Cn / Billing / Billing Folders.

## Operations <a href="#operations" id="operations"></a>

Un client dispose de 2 ou plusieurs contrats dans le système. Chaque contrat pouvant contenir un ou plusieurs produits (ou Contract Items).

Par défaut, il recevra une facture par contrat pour la période de référence, soit autant de factures que de contrats. Il est possible de regrouper toutes les éléments de facturation d'une période sur une seule facture grâce au Billing Folder.

Exemple : Ci-dessous, le fonctionnement normal hors Billing folder conduirait Cn285 à générer et envoyer 2 factures&#x20;

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FhdXHgMoEtl6g7UvAtNXN%2Fimage.png?alt=media\&token=ea092eb5-e0ee-4290-b8c4-07d7c621a56f)

Lors de la facturation, le système génère bien 2 factures.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FK9noHYXXXy8EXzBhGIWf%2Fimage.png?alt=media\&token=4c531c5a-1d32-4859-b00a-727de50204b0)

### Création d'un Billing Folder

La création d'un Billing Folder consiste à :&#x20;

* Sélectionner le client pour lequel on souhaite regrouper les factures
* Sélectionner les contrats du client dont on souhaite regrouper les échéances dans une même facture.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FIElYc7EkOjDLWhA6gbcU%2Fimage.png?alt=media\&token=03220494-9aa7-4ef3-ab9c-9efc4393dd41)

### Facturation avec un Billing Folder

Grâce au Billing Folder, le client reçoit une facture pour ses contrats regroupés.

A noter que dans l'exemple ci-dessous, la facture regroupe :

* La ligne de facture pour le service de l'abonnement fixe pour le mois de février (facturation en début de période)
* La ligne de facture pour le service d'abonnement variable de la période du mois de janvier (facturation en fin de période)

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FoIAVobwHcNvFLXAR454N%2Fimage.png?alt=media\&token=dce048fa-89c1-4842-aa56-173ed0e7520c)


# Credit Notes

La gestion des avoirs

## Introduction

L'avoir est un document émis par le vendeur afin d'annuler une facture incorrecte ou de rembourser un achat.

**Un avoir peut être basé sur des % de recrédit ou des quantités**

Cn285 permet de générer des avoirs sur tout ou partie d'une ligne de facture mais également sur plusieurs lignes de factures différentes du même client.

## Menu et Accès

La liste des avoirs est accessible avec le menu Cn / Billing / Credit Notes.

Cn permet de voir tous les avoirs qui ont été générés sur les contrats.

## Génération d'un avoir

**1er cas : Avec Cn285, vous pouvez créer un avoir de toutes ou d'une partie des lignes de facture de différentes factures d'un client.**<br>

Exemple : Vous souhaitez rembourser à votre client :

* 100% des 3 lignes d'abonnement fixe à 1€/mois sur les 3 factures de Décembre - Janvier - février - Jaune
* 50% des 3 lignes de consommation sur l'abonnement à tarification variable - Orange
* 10% du montant variable d'Octobre - Vert

Avec Cn285, vous pouvez générer un seul avoir composé de ces lignes de factures avec toutes les données de référence.

![](https://www.cn285.app/web/image/1988-631d22a4/CleanShot%202022-04-01%20at%2010.42.24%402x.png)

Après avoir sélectionner la première ligne et cliquer sur le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fi1yw66RfvwHZo4P13as6%2FCleanShot%202022-04-05%20at%2014.27.36.png?alt=media&amp;token=6de16f26-e584-4bd3-87a5-d87578b17825" alt="" data-size="line"> : L'interface de création de l'avoir vous permet d'insérer le % à créditer, 10% sur la ligne de facturation variable d'octobre et un motif éventuel.

{% hint style="info" %}
Le Discount (%) général s'applique par défaut à toutes les lignes du Credit Memo mais il est tout à fait possible de changer le % directement sur la ligne du Credit Memo.
{% endhint %}

{% hint style="info" %}
Il est possible de réaliser des Credit Memo en quantité, soit en appliquant un quantité à l'ensemble des lignes soit à chacune de façon indépendante via le champ qui accepte aussi bien des % que des quantités.
{% endhint %}

<br>

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FcpcdJTi4kxni9bhfrDZ3%2FCleanShot%202023-01-03%20at%2009.26.09%402x.png?alt=media&amp;token=158ace38-81e7-422e-bb4c-11ff475ecee1" alt=""><figcaption></figcaption></figure>

<br>

L'interface de gestion de l'avoir vous permet de générer le discount de 100% pour les lignes d'abonnement fixe que vous ajoutez à un avoir déjà créé pour les 10% de la ligne variable

![](https://www.cn285.app/web/image/1982-93fa76cc/CleanShot%202022-04-01%20at%2010.35.16%402x.png)

Après avoir réalisé la même opération avec les lignes de variables, un avoir contenant les lignes recréditées ainsi que leur factures d'origine est généré.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FjQS2CVz2dhCVBWZQSvh8%2FCleanShot%202022-04-05%20at%2015.59.22.png?alt=media\&token=e4271013-2131-4fc8-b7e5-93488a2df2f0)

Cn285 indiquera pour chaque ligne le pourcentage appliqué ainsi que le numéro de facture sur lequel l'avoir a été généré.

<br>

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FMIZBiqxwT0cZxtW66Qsl%2Fimage.png?alt=media\&token=d69147e6-fbbd-4610-afa3-6a4aa47c9e35)

**2nd cas : Avec Cn285, vous pouvez créer un avoir avec une seule ligne qui regroupe plusieurs lignes de factures différentes d'un client.**

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fo8GupROWaCqxS2Ffvrnu%2FCleanShot%202022-06-28%20at%2014.07.53.png?alt=media\&token=bf7575d6-6e10-4e95-8ee0-558e86c40b75)

Après avoir sélectionner les 3 lignes que vous souhaitez rembourser, cliquer sur le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fi1yw66RfvwHZo4P13as6%2FCleanShot%202022-04-05%20at%2014.27.36.png?alt=media&amp;token=6de16f26-e584-4bd3-87a5-d87578b17825" alt="" data-size="line"> . L'écran de création de l'avoir vous permet d'insérer le % à créditer sur les 3 lignes de factures sélectionnées ainsi que la possibilité d'indiquer si besoin la raison de cette remise.

Pour activer le regroupement des lignes de factures sur la même ligne d'avoir, il faut cocher l'option “**Group Credit Lines”.**&#x20;

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FQrnnZU9Nk8V4IScIi5zE%2FCleanShot%202022-06-28%20at%2014.13.58.png?alt=media\&token=ec5ceb1b-0c06-4ce2-a2ad-95e4091252de)

Cn285 regroupera les 2 lignes d'IS (du même contrat et du même contract item) sur la même ligne d'avoir comme on peut le voir ci-dessous dans notre exemple : Abonnement à prix fixe du Contrat test 2.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FlCbWy3LmdVTUCQ2nFAL6%2FCleanShot%202022-06-28%20at%2014.15.48.png?alt=media\&token=443a6bcf-8c9d-43ff-ac43-9c1c356caf7a)


# Menu Fulfillment


# Usage Data

Un Usage Data permet de gérer les données variables d'un Contract Item.

## Introduction

Dans Cn, les "Usage Data" désignent les données de consommation utilisées pour la Facturation des éléments variables d’une période à travers des Contract Item de type:

* Usage Based Recurring Pricing / Tarification Récurrente basée sur les Usages
* Usage Triggered Invoicing / Facturation déclenchée par les Usages

Ces Contract Item sont dits de type "variable".

A la fin de chaque période de facturation d'un Contrat Item de type variable, Cn :

1. collecte tous les Usage Data associés
2. utilise le Usage Data Calculator défini au niveau du Contract Item pour calculer la quantité à facturer sur la période.

Plus précisément une Usage Data est une valeur horodatée liée à un Contract ou un Contract Item.

Les Usages Data peuvent être créées et mises à jour au travers de plusieurs mécanismes:

* via l'interface Web de Cn
* via l'API
* par des imports CSV

Ce document décrit l'utilisation de l'interface Web de Cn et les règles métiers valables pour tous les mécanismes de saisie.

## Menu et Accès

Les Usage Data sont accessibles via le menu Cn / Usage Data / Usage Data

## Structure des Usage Data

L'écran des Usage Data est structuré en plusieurs parties:

* Statut
* Contract Reference
* Timestamp
* Value
* Notes
* Invoicing

### Statut

Le cycle de vie d'une Donnée de Consommation (DC) est le suivant:

* Draft :
  * La Donnée (DC) est en cours de saisie
  * Tous les champs sont modifiables
* Pending
  * la Donnée (DC) est confirmée; elle est en attente de facturation
  * Tous les champs sont bloqués sauf "Notes"
* Collected
  * La Donnée (DC) est utilisée dans une facture. Le champ "Invoicing Schedule" permet d'y accéder.
* Excluded : Donnée non prise en compte

### Contract Reference

Les Usage Data doivent être associées à :&#x20;

**Contract :** Lorsque que les Usage data sont affectées à un contract seulement, le champ ContractItem restant vide, les usage data seront associées à tous les contractitems et pourront être traitées par le Usage Data Calculator de chacun d'entre eux. La saisie du champ Contract est donc obligatoire.&#x20;

Les Usage Data peuvent être associées à un ContractItem unique :

**ContactItem :** Il est possible d'associer les usages data à un seul ContractItem. \
Le champ **External Reference** permet à un système distant de définir une clef d'accès qui lui est propre. Cn permet de retrouver des Données de Consommation à partir des "External Reference".

### Value

**Start** permet d'horodater la "Donnée de Consommation".

**End** permet de gérer les données de consommation correspondantes à des périodes.

**Value :** valeur de la donnée d'usage saisie

* Usage Data Simple&#x20;
* Usage Data Agrégée

  Il existe 2 types de données agrégées :&#x20;

  * **Données agrégées Custom :** Ces données ont pour vocation à être manipulées par les utilisateurs Cn285. Elles doivent donc être présentées dans l'interface de façon intelligibles à travers des champs Custom \
    Exemple de données agrégées custom "muppy.io" : le modèle ci-dessous permet de facturer des services d'une solution Devops en fonction de plusieurs critères : nb de CPU, GB de RAM et typologie (Core, LxC, PostgreSQL)

![Exemple de données agrégées de type custom](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fsr6qHQzaXT22Y6RMCFwC%2FCleanShot%202022-03-23%20at%2014.40.22%402x.png?alt=media\&token=fc8e394f-f949-4fad-973c-03c8c9ff3a20)

* **Données agrégées de type JSON :** Ces données de type complexes, sont issues d'un autre système et n'ont pas vocation à utiliser, visualiser ou interpréter par un utilisateur. Elles sont intégrées dans un JSON

**Qualifier :** permet de définir la donnée d'usage (kg, Km, Mo, GigaOctet, hits, clics, minutes, ...)

**Description :** en cas de besoin

### Analytics

permet d'affecter aux usage data des axes analytiques en vue de traitements BI futurs

Axis1 : Axe analytics

Axis2 : Axe analytics

### Invoicing

**Do not Invoice :** bloque la facturation de l'entrée de Usage Data

**Invoicing Schedule :** Lorsqu'une Donnée de Consommation a été "collectée", ce champ indique l 'IS dont la quantité inclut la Donnée de Consommation&#x20;

**Invoicing Notes** : En cas de besoin

## **Cas d'utilisations**

### **Saisie d'une donnée de Consommation Simple**

Le cas le plus simple correspond à la saisie d'une Donnée de Consommation liée à un Contract Item de type variable.

Pour cela, il faut saisir:

* **Contract**
* **Contract Item** (optionnel)
* **Start**
* **Value** : valeurs simples qui permettent de gérer les données de consommation et qui peuvent être exprimées sous forme de quantités numérique.
  * Par exemple:
    * des kilo octets
    * des minutes
    * des kilowattheures
  * Les valeurs simples sont transmises sous forme de listes de nombres à un **Usage Data Calculator** dont le rôle est de les transformer en quantité (à facturer).
* **State** = Pending

Rappel la Donnée sera ignorée tant que le State sera **Draft**

### **Saisie de données de Consommation Agrégées**&#x20;

Les valeurs agrégées permettent de gérer les cas suivants:

* facturation de **plusieurs Contract Items d'un même Contract** dont les quantités proviennent du même Usage Data.
  * Dans ce cas, les valeurs agrégées sont liées au Contract.

Ce cas correspond à la saisie d'une Donnée de Consommation composite utilisée pour calculer les quantités à facturer de plusieurs Contract Item de type variable.

Dans ce cas, il faut saisir les valeurs des champs:

* Contract
* Start
* JSON Data\
  Ensemble de données (JSON) agrégées permettant de facturer sur la base de modèle plus complexe
  * Les valeurs agrégées sont des objets JSON qui permettent de stocker des données composites ou complexes.
* State = Pending

Rappel la Donnée sera ignorée tant que le State sera **Draft**

* Exemple:

  * {
  * "espace\_disque\_go": 15,
  * "cpu": 8,
  * "espace\_disque\_backup": 13
  * }

* facturation d'**un Contract Item dont la quantité** dépend de plusieurs paramètres.
  * Dans ce cas les valeurs agrégées sont liées au Contract Item
  * Exemple:
    * {
    * "espace\_disque\_utilisee\_go": 1599,
    * "espace\_disque\_inclu\_go": 800,
    * "tarif\_go\_supplementaire\_euro": 1,27
    * }
    * Dans ce magine que le Usage Data Calculator doit calculer le coût des Go en dépassement (espace\_disque\_utilisee\_go - espace\_disque\_inclu\_go) \* tarif\_go\_supplementaire\_euro

Actuellement, un Usage Data Calculator ne peut pas accéder en même temps aux valeurs des champs Values et aux valeurs des champs JSON Data.

Notes

Il s'agit d'un champ texte dont le contenu est disponible pour impression sur les "Relevés de consommations" joints aux factures dans le cas de facturation détaillées.

###

###


# Menu et écran Customers

Création d'un client

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

Un client est une personne physique ou morale qui achète un produit Cn285 ou une prestation de service Cn285 de façon récurrente à une entreprise en échange d’un paiement.

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

Les Clients sont accessibles avec le menu Cn / Customers / Customers.

## Operations <a href="#operations" id="operations"></a>

### Type des Clients <a href="#type-des-clients" id="type-des-clients"></a>

Cn285 gère soit des clients de type **Particulier** ou **Société**.

Si vous cochez l’un ou l’autre de ces 2 types, certains champs apparaîtront ou pas.

Le siret et le numéro de tva sont des exemples de champs obligatoires si le client est une Société.

### Gestion des adresses <a href="#gestion-des-adresses" id="gestion-des-adresses"></a>

Par défaut, un Client a une adresse définie dans le formulaire principal. Il est possible d’en ajouter d’autres (de facturation, de livraison…) dans l’onglet Contacts & Adresses.

### Type d'adresses clients <a href="#type-dadresses-clients" id="type-dadresses-clients"></a>

Si vous ajoutez plusieurs adresses, vous devez préciser le type d'adresse (adresse de livraison etc…) pour que Cn285 puisse déterminer quelle adresse utiliser pour la facture.

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

Certains champs sont obligatoires pour pouvoir créer un client.

Dans l’onglet Ventes & Achats

**Achats / Conditions de paiement :**  choisir les conditions de paiement du client (paiement immédiat, 30J FDM…)

Dans l'onglet Cn285

Le champ **Discount (%)** : permet d'ajouter une remise accordée à un client. Elle sera appliquée à tous les contrats de ce client.


# Menu Products

Création d'un produit Cn

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

Un produit ou un article Cn285 est un consommable ou un service qui va être vendu de façon récurrente.

{% hint style="info" %}
Un produit avec des caractéristique de récurrence est un **Item.**

Un item est lié à un contrat via un [Contract Items](/cn285-documentation/menu-contracts/contract-items).\
Selon la configuration choisie, il est possible ou non de modifier les caractéristiques de récurrence d'un item dans un Contract Item.
{% endhint %}

La base produits est soit:

* créer manuellement
* importée de votre système  <\<IMPORT>>
* importée via l’API <\<API>>


# Products

## Introduction :&#x20;

Pour accéder et créer un produit manuellement, il faut aller sur :

Cn / Products / Products / Create

## Operations <a href="#operations" id="operations"></a>

### Ecran Produit <a href="#ecran-produit" id="ecran-produit"></a>

Donnez un nom à votre produit.

* Can be Sold : le produit peut être vendu ou non (si décoché)
  * Le produit peut être vendu et il doit être coché comme un produit Cn285 pour pouvoir le mettre dans un contrat d’abonnement.
* Can Be Purchased : le produit peut être acheté
  * On peut décocher le produit “peut être acheté” qui n’est pas utilisé actuellement.
* Is a Recurring Product (Cn) : Permet de définir que c’est un produit Cn285 qui entre dans la mécanique de récurrence

### Onglet General Information <a href="#onglet-general-information" id="onglet-general-information"></a>

* Product Type (Types de produits) :
  * Il faudra déterminer si le produit est un produit de type service ou consommable.
  * Le produit de type service est un bien immatériel.
  * Le produit de type consommable est un bien physique dont on ne gère pas les stocks.
  * Actuellement, Cn285 ne gère que les produits de type Service.
* Product Category
  * All : par défaut
  * All / Expenses
  * All / Saleable
* Internal référence : à renseigner si l’on veut donner une référence Cn285 du produit
* Barcode : ce champ permet de renseigner un numéro de code barre
* Sales price : prix de vente du produit
  * Le prix de base du produit correspond au prix auquel l’article est vendu aux clients. Il peut être soit TTC soit HT (voir le champ Customer Taxes ci-dessous pour avoir des explications)
  * Si celui-ci a un prix dégressif ou progressif en fonction de différents paliers, il faudra créer une  [Pricelists](/cn285-documentation/menu-products/pricelists)pour ce produit au niveau du [Contract Items](/cn285-documentation/menu-contracts/contract-items)
* Customer Taxes
  * Si c’est un produit vendu ce sera une TVA collectée. Si on choisit une TVA collectée avec un pourcentage suivi de l’indication TTC, le prix renseigné sera un prix TTC sinon ce sera un prix HT.
* Cost : ce champ est réservé pour une utilisation future

### Onglet Sales

* Invoicing Policy (Politique de facturation)
  * 2 types de facturation existent : on choisit entre “Quantités commandées” et “Quantités livrées”
  * Un champ description permet de décrire des spécificités éventuelles
  * Actuellement, la politique de facturation n’est pas encore gérée dans Cn.

### Onglet Purchase <a href="#onglet-purchase" id="onglet-purchase"></a>

Vendor Taxes : ce champ permet de préciser le taux de TVA lorsque le produit est acheté.

### Onglet Cn285 <a href="#onglet-cn" id="onglet-cn"></a>

Permet de définir les caractéristiques Cn285 du produit

* Product Type (4 types) :

[Fixed Recurring Pricing](/cn285-documentation/menu-products/configuration-des-caracteristiques-de-recurrence/fixed-recurring-pricing): le produit a un prix fixe que Cn285 facture périodiquement.

[Usage Based Recurring Pricing](/cn285-documentation/menu-products/configuration-des-caracteristiques-de-recurrence/usage-based-recurring-pricing) : le produit a un prix variable. Cn285 facture périodiquement un montant calculé en fonction des données d’utilisation.

[Usage Triggered Invoicing](/cn285-documentation/menu-products/configuration-des-caracteristiques-de-recurrence/usage-triggered-invoicing): le produit a un prix variable et la facturation est déclenchée par une livraison. Cn285 crée une facture dès qu’un ensemble de données d’utilisations cohérente est disponible. La facture est émise à une fréquence variable avec un montant variable.

[Billed Once](/cn285-documentation/menu-products/configuration-des-caracteristiques-de-recurrence/billed-once): Cn285 facture une seule fois un montant fixe (ex : frais d’installation)

* Lock Settings :
  * permet de bloquer les paramètres du produit afin que celui-ci ne les change pas dans les paramètres de l’Item Contract.
* Tacit Renewal :
  * autorise sur le produit le renouvellement automatique par tacite reconduction (voir document [Renouvellement](/cn285-documentation/menu-products/configuration-des-caracteristiques-de-recurrence/renouvellement)&#x20;
* Is Termination Allowed :
  * autorise sur le produit la résiliation d'un abonnement en cours (voir doc [Résiliation](/cn285-documentation/menu-products/configuration-des-caracteristiques-de-recurrence/resiliation))

#### **Section Usage Pricing**&#x20;

apparaît si le produit Cn a un prix variable de type “Usage Based Recurring Pricing”&#x20;

#### Usage Pricing&#x20;

* **Free incl. units** : permte de définir un nombre d'unités gratuites pour chaque période (ex.: 3 séances gratuites par mois, les suivantes sont payantes).
* **Maxs Unit.** : permet de définit le nombre maximum d'unité qui seront facturées (ex. : Au delà de la 10ème session, les suivantes sont gratuites)
* [Usage Data Calculator](/cn285-documentation/menu-configuration/usage-data-calculator) : permet de choisir la méthode de calcul du prix en fonction des règles d’usage définies
* **Price :** Renseignement du prix de vente du produit Cn qui a été enregistré dans le champ Sales price de l’onglet Général information

#### **Section** Billing

* **Number of Periods**  : Nombre de périodes d’abonnement par défaut.
* **Number of Free Periods** : indiquer si le produit est gratuit pendant une certaine période (ex 1 mois, 2 mois etc…si le champ Invoicing Period est le mois)
* [Invoicing Date Scheduler](/cn285-documentation/menu-configuration/invoicing-date-scheduler)ce champ précise la date de facturation du produit
* **Invoicing Period** : précise si le produit est facturé tous les mois, trimestres, semestres, années
* **Invoice Periods Boundary** : précise si le produit est facturé :
  * date à date (ex du 13 du mois au 13 du mois suivant),
  * au mois civil (ex la première période du 13 du mois au 31 du même mois puis pour la seconde période du 1er au 31 du mois suivant etc…),
  * au trimestre civil (ex la première période du 13 du mois au 31 du 3ème mois puis pour la seconde période du 1er du 4ème mois au 31 du 6ème mois etc…),
  * au semestre civil (ex pour la première période du 13 du mois au 31 du 6ème mois puis pour la seconde période du 1er du 7ème mois au 31 du 12ème mois etc…),
  * à l’année civile (ex du 13 du mois au 31 du 12ème mois).
* **Truncate first period** : proratisation de la première période de facturation selon ce qui est renseignée dans le Service Periods Boundary (Civil Month, Trimester...). Cette option ne fonctionne pas avec un Service Periods Boundary de type Date to Date.

### Onglet General Terms & Conditions

Les CGVs sont des documents que l'on peut attacher à la facture ou au devis.

Cn permet de joindre également ces documents à un produit ou à une catégorie d'article.

Cliquer sur le trombone![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FBgM1QQ6qXXC6zo7A66ii%2FCleanShot%202022-09-26%20at%2011.48.13.png?alt=media\&token=7460d085-92a1-41c8-9b78-9761c0b99d67)en bas de l'écran et Drag and Drop le ou les fichiers que l'on souhaite ajouter (ce sera obligatoirement un format pdf).

Cliquer sur Ajouter une ligne pour cocher le fichier que l'on souhaite joindre au produit.&#x20;

On a la possibilité également de cliquer sur Créer pour aller télécharger le fichier désiré.

Les documents attachés au produit seront joints à la facture ou au devis. Si le produit apparaît plusieurs fois sur celui-ci, Cn285 n'affichera qu'une seule fois le document.


# Products Categories

## Introduction

Cn285 permet d'organiser les produits en catégories.

## Menu et accès

Le fonctionnement des catégories est simple : un produit appartient à une catégorie.\
Une catégorie peut être associée/incluse dans une catégorie mère.

Ainsi il est possible de réaliser une arborescence de catégorie.

Une catégorie comporte des propriétés de comptes de revenus et de dépenses.

La copie d'écran ci-dessous montre qu'il est possible de synchroniser les catégories depuis un système tiers.&#x20;

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FcvzsdRjLtaY10bz7O6JU%2FCleanShot%202022-01-19%20at%2010.38.08.png?alt=media\&token=32d5e352-484b-475d-8a63-8d5b5fae2d25)


# Pricelists

Liste de prix spécifique

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

Au delà de la liste de prix publique, où un produit est au même tarif dans tous les contrats, Cn285 permet de définir des prix de produits spécifiques dans différentes listes de prix.

Ces listes de prix peuvent être affectées par client.&#x20;

Les Pricelists sont utilisées pour gérer différents types de tarification.

{% hint style="info" %}
La liste de prix affectée à un contrat est celle du client. Si une Pricelist différente est affectée à un ContractItem, alors priorité est donnée à la pricelist du ContractItem.

Lors de la création d'un ContractItem, le prix appliqué est celui en vigueur à la date de création, quelle que soit la date de démarrage du ContractItem (**Il ne peut y avoir d'application rétroactive d'une liste de prix)**.
{% endhint %}

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

Les Pricelists sont accessibles avec le menu Cn / Products / Pricelists.

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

### Public Pricelist <a href="#public-price-list" id="public-price-list"></a>

La Public Pricelist permet de définir le tarif public des produits, ce sont les tarifs qui sont appliqués par défaut.

#### Tarif fixe <a href="#tarif-fixe" id="tarif-fixe"></a>

Dans l'exemple ci-dessous, tous les clients qui souscrivent à l'offre ABO Fixe seront tarifés 5.99€ par unité consommée.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FvGlLTNAgxkDLwIcj6OEW%2Fimage.png?alt=media\&token=8ed36a62-5a00-4ad1-8842-cdc0c2998834)

#### Tarif par palier <a href="#tarif-par-palier" id="tarif-par-palier"></a>

Dans l'exemple ci-dessus, la Pricelist applique à tous les clients ayant souscrit le produit Modulo et soumis à la Public Price List, un tarif unitaire différent en fonction du niveau de consommation.

Exemple : une somme de consommations de 350 unités sera facturée 350\*0,3€. (attention : à ne pas confondre un tarif ou une tarification par tranche qui consisterait à facturer les 200 premières unités à 0,4€ puis les 150 suivantes à 0,3€.

## Les différentes modalités de fixation des prix

### Le périmètre de validité&#x20;

![Formulaire Liste de prix](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FdqBjQtHjOyip4IwM5wOM%2FCleanShot%202022-01-19%20at%2010.47.21.png?alt=media\&token=9528409c-0a4f-4e1f-99fc-997b705ea52d)

Les règles de prix peuvent s'appliquer à l'ensemble des produits (-10% sur tous les produits pendant une période), à une catégorie de produit, à un produit ou à une variante de ce produit sur la base de quantité et de plage de validité.

### Les modes de calcul proposés

#### Mode forfaitaire

On définit un prix forfaitaire applicable au périmètre sélectionné (en général 1 article).

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FDBRnFAaXMq8tR02vERAy%2FCleanShot%202022-01-19%20at%2011.10.15.png?alt=media\&token=cce0c5a0-958c-4ae8-a902-4f2a5a6f4483)

#### Mode Pourcentage (remise)

Une remise sous forme de % s'applique au périmètre sélectionné.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FMRjQmUItcCtjLkInjYMy%2FCleanShot%202022-01-19%20at%2011.11.55.png?alt=media\&token=4e23313c-4add-4cfa-bf69-92e055ce2bc4)

#### Mode Formule

Le mode formule permet d'appliquer des formules au périmètre.&#x20;

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FG3hrWdJLYgvxCu9Qystq%2FCleanShot%202022-01-19%20at%2011.29.22.png?alt=media\&token=8847ca91-a5d1-4743-9dab-598e462cc3bb)

#### Mode Spécifique

En cas de besoin plus spécifique nécessitant des formules plus complexes, il est possible d'insérer directement du code Python dans l'interface.&#x20;

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FF14m5yCiFHrIwdrCM2WS%2FCleanShot%202022-01-19%20at%2011.34.41.png?alt=media\&token=39852de3-9a3d-46cb-a98a-76818bd6fd81)


# Configuration des caractéristiques de récurrence

## Introduction&#x20;

Les caractéristiques de récurrence se gèrent principalement au niveau des produits (***Product/Items***) dans l'onglet Cn285.

![Formulaire Création Product/Item](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FbmSJnOPQfpQ5y8cR87Jr%2FCleanShot%202022-01-19%20at%2012.50.08.png?alt=media\&token=21ecefc4-f515-46ae-8030-a2c98477bfac)

Il est important de noter que : \ <mark style="color:red;">L'activation de l'option</mark> <mark style="color:red;"></mark>*<mark style="color:red;">**Locks Settings**</mark>* <mark style="color:red;"></mark><mark style="color:red;">(jaune ci-dessous), verrouille toutes les caractéristiques de récurrence définies dans l'onglet Cn du produit.</mark>

Selon le verrouillage (ou non) du Lock Settings : les caractéristiques de récurrence peuvent être modifiées (ou non) au moment de l'ajout de l'item dans le ***Contrat Item*** et s'adapter au besoin business et de l'organisation.&#x20;

Il est recommandé de gérer les caractéristiques de récurrence au niveau du produit.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F0JEwmkziQ8K2XiJsSaXY%2FCleanShot%202022-01-19%20at%2012.51.44.png?alt=media\&token=142d641e-8eba-4db7-9540-4312b333aa3c)


# Fixed Recurring Pricing

Contrat d'abonnement à prix fixe

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

On utilise un abonnement basé sur un Item de type *Fixed Recurring Pricing* quand le produit a un prix fixe que Cn285 facture périodiquement.

{% hint style="warning" %}
Les caractéristiques de récurrence sont définies au niveau de l'Item. \
Si ce dernier n'est pas verrouillé via le champs ***Lock Settings*** de l'onglet Cn de la vue formulaire **Product**
{% endhint %}

### Rappel : l'Item ou le produit à prix fixe <a href="#menu-et-acces" id="menu-et-acces"></a>

Le type d'article se choisit au niveau du menu Products / Onglet Cn / Cn Product Type

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FgujyGBouqrDe697av46Z%2Fimage.png?alt=media\&token=569009d3-2c37-4f15-aa5c-33589b50e766)

## Création d'un contract item avec article de type Fixed Recurring Pricing <a href="#creation-dun-contract-item-de-type-fixed-recurring-pricing" id="creation-dun-contract-item-de-type-fixed-recurring-pricing"></a>

Choisir le contract item dans le contrat, le type et le prix fixe de l'article se remplissent automatiquement.

Cliquer sur <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FxsK8oOtAJYmMofQoDZdt%2FCleanShot%202022-02-28%20at%2018.39.24%402x.png?alt=media&amp;token=43a86fab-f0f6-492d-a34c-7ed663de5d29" alt="" data-size="line">pour générer les IS. Etant donné que le prix est fixe, les IS sont tous créé au statut "Calculated".

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FBBgktX0pGcQogkb1Pbjs%2Fimage.png?alt=media\&token=01b0538d-fccb-4590-a5ac-7d9159eebddf)

<br>


# Usage Based Recurring Pricing

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

On utilise le produit de type Usage Based Recurring Pricing quand le produit a :

* un prix variable,
* une facturation périodique.

Cn facture périodiquement un montant calculé en fonction de données d'utilisation. La facture est émise à une fréquence fixe avec un montant variable.

## Rappel : Product/Item de type Usage Base Recurring Pricing <a href="#menu-et-acces" id="menu-et-acces"></a>

Le type d'item se choisit au niveau du menu Products / Onglet Cn / **Cn Product Type**

Exemple avec "Consommation Go"

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FsCzAbhzWRJikvGMj6Rzk%2Fimage.png?alt=media\&token=847ef81c-ace1-420a-b242-4196fc638cf4)

## Création d'un contract item avec article de type Usage Based Recurring Pricing <a href="#creation-dun-contract-item-de-type-usage-based-recurring-pricing" id="creation-dun-contract-item-de-type-usage-based-recurring-pricing"></a>

Choisir le ***Contract Item*** dans le contrat, le champ Item type se remplit automatiquement.

Renseigner le Usage Data Calculator (voir doc [Usage Data Calculator](/cn285-documentation/menu-configuration/usage-data-calculator)).

Cliquer sur Generate Schedules : toutes les périodes de facturation s'affichent avec un prix à 0 car Cn285 attend d'avoir les données d'utilisation (Usage Data) pour calculer un montant, ce qui explique le statut "Pending".

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F6KmIgT9hZOTu0jSan7ZT%2Fimage.png?alt=media\&token=dcd8b34a-8611-43b2-a0d7-5f7840a9adde)

## Création et traitement des données variables <a href="#creation-et-traitement-des-donnees-variables" id="creation-et-traitement-des-donnees-variables"></a>

Le type d'article ***Usage Based Recurring Pricing*** nécessite des données variables.&#x20;

Cliquer sur ***Usage Data**. Créer les Usage Data (A*ttention, les dates des usages datas doivent être comprises dans chaque période du contract item).

Passer les Usages Datas en statut Pending pour qu'elles soient prises en compte pour chaque période. Pour cela, sélectionner les Usage Data concernées. Cliquer sur Action, sélectionner Update State. Choisir le statut Pending. Cliquer sur Apply.

Tous les Usages Datas sélectionnées sont passées au statut Pending.

Cliquer sur le bouton Calculate (en jaune, à gauche de l'écran).

Cn a pris en compte les Usage Datas pour les périodes concernées et a donc calculer le montant de l'Invoicing Schedule pour chaque période.&#x20;

Les lignes du Contract Item concernées par les Usage Datas saisis sont passées du statut “Pending” à “Calculated”.

Pour vérifier que le calcul a bien fonctionné :

* Cliquer sur les ***Usage data***. Ils sont passés du statut “In process” à “Collected”.
* Cliquer sur les Invoicing Schedules. Une ou des lignes d'IS sont apparues au statut “Calculated”.
* Vérifier que le calcul des données variables est correct en ouvrant la fenêtre de l'IS.

Le ou les Invoicing Schedules pourront être facturés.

<br>


# Usage Triggered Invoicing

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

On utilise le produit de type Usage Triggered Invoicing (UTI) quand le produit a :

* un prix variable,
* sa facturation est déclenchée par une livraison.

Cn crée une facture dès qu’un ensemble de données d’utilisation cohérente est disponible. La facture est émise à une fréquence variable avec un montant variable.

## Rappel : Product/Item de type UTI <a href="#menu-et-acces" id="menu-et-acces"></a>

Le type d'item se choisit au niveau du menu Products / Onglet Cn / **Cn Product Type**

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FciGJQOIrOXXwFh8H0tyc%2Fimage.png?alt=media\&token=52b7b69f-6442-40ab-ab67-21fb665c5733)

## Création d'un contract item de type UTI <a href="#creation-dun-contract-item-de-type-uti" id="creation-dun-contract-item-de-type-uti"></a>

Choisir le contract item dans le contrat, le champ Item type se remplit automatiquement

Renseigner le Usage Data Calculator (voir le doc [Usage Data Calculator](/cn285-documentation/menu-configuration/usage-data-calculator)).

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FOWVcMbKNUwaNECPrSsAj%2Fimage.png?alt=media\&token=1968d7d5-02d6-49a5-8f17-e1876f38b543)

Le type d'article UTI nécessite des données variables. Cliquer sur Usages Data. Créer les Usages Data (Attention, les dates des usages datas doivent être comprises dans la période du contrat).

Passer les Usages Datas en statut Pending pour qu'elles soient prises en compte dans la même livraison. Pour cela, sélectionner les Usages Datas concernées. Cliquer sur Action, sélectionner Update state. Choisir le statut Pending. Cliquer sur Apply.

Tous les Usages Datas sélectionnées sont passées au statut Pending.

## Lancement du moteur de traitement des données variables de type UTI <a href="#lancement-du-moteur-de-traitement-des-donnees-variables-de-type-uti" id="lancement-du-moteur-de-traitement-des-donnees-variables-de-type-uti"></a>

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

Cliquer sur ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FnN7BF3RCAZ8PYYqdWo87%2Fimage.png?alt=media\&token=cab9cf14-2224-4647-92b8-a5f97f891d27)

Menu Cn / Configuration / Cn285 Daemons

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FaJhxnoWUcF1VwVdCjcKU%2FCleanShot%202022-01-19%20at%2015.01.10.png?alt=media\&token=b9181d04-bec7-4307-9482-7b32ea096310)

Choisir **Cn Usage Triggered Invoicing Schedule Generator Daemon**

{% 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 %}

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FAuNCXtuQgAW3fv28zP3O%2FCleanShot%202022-01-19%20at%2015.02.47.png?alt=media\&token=be3789cd-9d9b-4b26-8c16-b7ca89b2a70c)

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

Pour tester un contract item de type UTI, 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. Renseigner une date dans le champ Cn Process Now (Attention, cette date doit être postérieure aux dates des Usages Datas renseignées).&#x20;

Cliquer sur Save et sur Run manually.

Le lancement des données variables s'exécute.

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

* Cliquer sur les Usages datas. Ils sont passés du statut “In process” à “Collected”.
* Cliquer sur les Invoicing Schedules. Une ou des lignes d'IS sont apparues au statut “Calculated”.
* Vérifier que le calcul des données variables est correct en ouvrant la fenêtre de l'IS.

L'Invoicing Schedule pourra être facturé.

### 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 Contract Changes s'exécute en automatique toutes les périodes définies (4heures dans l'exemple dessus).

<br>


# Billed Once

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

On utilise le produit de type Billed Once quand :

* Cn facture une seule fois un montant fixe (ex : frais d’installation)

## Rappel : Product/Item de type Billed Once <a href="#menu-et-acces" id="menu-et-acces"></a>

Le type d'item se choisit au niveau du menu Products / Onglet Cn / Cn Product Type

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FY1iG0JgN1toJ7bJaqeHC%2Fimage.png?alt=media\&token=847f1583-2dc8-4d8c-8122-04fbfd904229)

## Création d'un contract item de type Billed Once <a href="#creation-dun-contract-item-de-type-billed-once" id="creation-dun-contract-item-de-type-billed-once"></a>

Choisir le contract item dans le contrat, le type et le prix fixe de l'article se remplissent automatiquement.

Cliquer sur Generate Schedules car le prix est fixe.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FNUrPhVZMcKI8dzjog9Ew%2Fimage.png?alt=media\&token=5b04c253-6126-4f26-81ea-2beb894c8e86)


# Renouvellement

## Introduction  <a href="#la-gestion-de-la-fin-de-contrat-tacite-reconduction" id="la-gestion-de-la-fin-de-contrat-tacite-reconduction"></a>

Le renouvellement tacite (Tacit Renewal) est géré à 2 niveaux :&#x20;

* Le produit
* Le contract item
  * Nota 1 : un produit peut ne pas être en renouvellement tacite (exemple ci-dessous) et être affecté à un contact item qui lui est en renouvellement tacite. Dans ce cas le renouvellement tacite est possible.
  * Nota 2 : Si l'option “Lock Settings” du produit est cochée, les caractéristiques du produit sont verrouillées et donc si l'option “Tacit renewal” n'est pas cochée, le contract item ne pourra pas être en renouvellement tacite.

## &#x20;Tacite reconduction (Tacit renewal)

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FnKt8XX0C9iPUvKPHtP7o%2FCleanShot%202022-03-25%20at%2011.57.54.png?alt=media\&token=2de2f27a-945b-4933-adf5-d287f9064c13)

### Les paramètres de tacite reconduction  <a href="#les-parametres-de-tacite-reconduction" id="les-parametres-de-tacite-reconduction"></a>

Un onglet “Renewal” sur la vue Formulaire des Contracts items permet de gérer les conditions de renouvellement.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FQBz9NUyhpUWU5kF52sLN%2FCleanShot%202022-03-25%20at%2011.46.54.png?alt=media\&token=d5af059f-f9bf-4a3a-a49c-8f2c651a866a)

#### Section Pause  <a href="#section-pause" id="section-pause"></a>

Connexe à une résiliation, la mise en Pause du contrat est possible pour une période définie ou non, selon que l'on remplisse ou non le champ Resumption Start Date qui définit la fin de la mise en pause.

* Pause Start Date : date du début de la pause
* Resumption Start Date : fin de la mise en pause du contrat
* Pause comment : Commentaires éventuels (pour expliquer la mise en pause ou en déterminer les conditions)

Pendant la mise en pause du contrat, les Invoicing Schedules sont générés mais ne sont pas mis en facturation.&#x20;

#### &#x20;Section Renewal Stop

Cette section gère la demande d'arrêt de la tacite reconduction.

* Renewal Stop Limit Time : Date après laquelle la résiliation n'est plus possible pour la période suivante.
* Renewal Stop TimeStamp : Date de la demande de l'arrêt de la tacite reconduction.
* Renewal Stop Reason : Motif de la demande

#### &#x20;Renewal Settings

Cette section gère les conditions de renouvellement

* Renewal Delay (d) : Délai exprimé en jour qui correspond :
  * Au nombre minimal  de jours pour demander le renouvellement d'un contrat qui n'est pas en tacite reconduction
  * Au nombre minimal de jours en deça duquel le contrat est renouvelé tacitement et ne peut plus être résilié pour la période à venir.
* Send Renewal Notice : lorsque cochée, cette fonction envoie un mail de notification du renouvellement de l'abonnement soit au dépassement du Renewal Delay.
* Current Renewal Start Date : ce champ permet de noter la date à laquelle on souhaite faire démarrer les contrats. Il est en général utilisé en cas de reprise de données.
* Send Renewal Reminder : lorsque cochée cette fonction envoie un mail X jours avant (en fonction du Renewal Reminder Delay) pour avertir le client que l'abonnement sera automatiquement renouvelé à la date t.
* Last Renewal Reminded : Date d'envoi du dernier mail de rappel.

Les fonctionnalités précédentes vous permettent de respecter la législation (Loi Chatel,…)

<https://www.service-public.fr/particuliers/vosdroits/F33991>

#### &#x20;Renewal

La dernière section permet de visualiser le nombre de renouvellement comptabilisés sur le contract item. \
A noter : La première période de souscription est considérée comme le renouvellement 0.


# Résiliation

## Introduction :  <a href="#la-gestion-de-la-fin-de-contrat-la-resiliation" id="la-gestion-de-la-fin-de-contrat-la-resiliation"></a>

La résiliation est la gestion de la fin d'un contrat.

Cn285 gère différentes options liées à la résiliation.

Les paramètres de résiliation sont disponibles soit directement dans la fiche produit soit dans le contract item. \
&#x20;

### Rappel  <a href="#rappel" id="rappel"></a>

Les caractéristiques définies pour un produit sont remontées dans l'association du contrat, du produit et du client via le contract item.&#x20;

Si l'option “Lock Setting” d'un produit est cochée, il est impossible de modifier ces caractéristiques de ce produit dans le contract item. Les paramètres de résiliation répondent à cette règle.

### Les fonctionnalités associées à la résiliation <a href="#les-fonctionnalites-associees-a-la-resiliation" id="les-fonctionnalites-associees-a-la-resiliation"></a>

#### Section Résiliation : champs opérationnels <a href="#section-resiliation-champs-operationnels" id="section-resiliation-champs-operationnels"></a>

* Termination Request date : Date de la demande de résiliation
* Requested Termination Date : Date de l'effectivité demandée pour la résiliation

#### &#x20;Section Résiliation : champs paramètres

* Is Termination Allowed : quand cochée, cette fonctionnalité autorise la résiliation d'un abonnement en cours.
* Commitment (in periods) : Nombre de la période minimale d'engagement (exprimée en mois).
* Notice of Termination (d) : Mail de notification envoyé X jours avant la résiliation.
* Commitment End Date : Dernier jour de la période d'engagement, le contract item passe en statut Termination le lendemain.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F0WK7ExS8ukhAI09qZ95u%2Ftermination.png?alt=media\&token=b1bb7680-3660-4e24-9f1b-113567e734c6)


# Menu Accounting


# Revenue Recognition

Cn285 can manage complete Revenue Recognition according to IFRS and U.S. GAAP accounting principles.

## Reference <a href="#reference" id="reference"></a>

Pour des informations générales, voir:

* [IFRS 15 Revenue - le top départ est donné ! La nouvelle norme de comptabilisation du revenu © KPMG](https://assets.kpmg/content/dam/kpmg/pdf/2016/07/fr-IFRS-15-first-Impressions.pdf)
* <https://corporatefinanceinstitute.com/resources/knowledge/accounting/revenue-recognition/>

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

Cn285 implémente la reconnaissance de revenu (RevRec) et l'audit à travers **Cn285 RevRec. Cn285 RevRec** est un système basé sur des règles qui respectent la conformité aux normes IFRS US GAAP. Avec **Cn285 RevRec**, vous pouvez différer ou anticiper les revenus à comptabiliser sur plusieurs périodes selon un ensemble de règles que vous définissez.

Cn285 RevRec:&#x20;

* est un module de Cn285 Core
* traite uniquement les contrats gérés par Cn285 (**Cn RevRec** n'est pas un module générique de Reconnaissance de Revenu).

Dans Cn285, la reconnaissance de revenu est implémentée à l'aide des différents objets suivants:

* Les comptes différés sont définis dans les [Menu Products](/cn285-documentation/menu-products) et [Menu et écran Customers](/cn285-documentation/menu-et-ecran-customers)
* La source du RevRec sont les [Invoicing Schedules](/cn285-documentation/menu-billing/invoicing-schedules)
* Les [RevRec Rules](/cn285-documentation/menu-accounting/revenue-recognition/revrec-rules)

{% hint style="info" %}
La Reconnaissance de Revenu est un processus non automatique : il est nécessaire de lancer manuellement cette opération quand le cycle de facturation d'une période est clos.
{% endhint %}

## Configuration <a href="#revrec-plan" id="revrec-plan"></a>

Afin de configurer la reconnaissance de revenu, il est nécessaire :

* de définir le **RevRec Scheduler** qui définit la date à laquelle la reconnaissance de revenu sera effectuée.&#x20;
* d'appliquer une [RevRec Rules](/cn285-documentation/menu-accounting/revenue-recognition/revrec-rules) à un ContractItem qui comporte les règles de RevRec associées à ce ContractItem. En fonction de votre règle, la date de la reconnaissance du revenu sera alors affichée sur les InvoicingSchedules du ContractItem.

## Génération des écritures de RevRec

Pour lancer la génération des écritures de RevRec pour une période, il suffit de lancer le daemon associé.\
Pour cela, allez dans Cn285 / Settings / Cn285 Daemons et cliquer sur **Cn285 RevRec Daemon.**

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F755JaKSrcuI3vqTTSdZH%2Fimage.png?alt=media\&token=c58ca427-4a9b-4206-92da-6775c19371ea)

Le daemon prend en paramètre l'année et le mois de la période pour laquelle la reconnaissance de revenu va être générée. Dans l'exemple ci-dessus, le daemon va lancer la génération pour la période de janvier 2022.

Le champ **Cn Process Now** permet de forcer la date courante. Lorsque ce démon sera lancé, il considérera cette date comme date courante et exécutera les opérations en fonction de cette date.

{% hint style="info" %}
Nous vous recommandons de lancer ce daemon manuellement lorsque la facturation pour la période a été clôturée. Ainsi les lignes de RevRec seront correctement générées.
{% endhint %}


# RevRec Rules

Espace de définition des RevRec Rules

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

Les RevRec Rules permettent de définir les règles de la reconnaissance de revenu à appliquer sur un [Menu Contracts](/cn285-documentation/menu-contracts).

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FFpXnHv1RnhYslViaeWTj%2Fimage.png?alt=media\&token=38ac108d-a9ae-41bd-b5af-9c027d049e77)

## Menu et Accès

Les RevRec Rules sont accessibles depuis le menu **Cn285 / Accounting / RevRec Rules**.

## Configuration

![Exemple d'une règle de RevRec](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FdQqG9Xx7PgxyDkIRueFE%2Fimage.png?alt=media\&token=2a14c015-05db-4629-b761-57a99b2f84d6)

* **Method :** permet de définir la méthode à appliquer lors du calcul de la date de reconnaissance du revenu.
  * **Punctually**: Reconnaissance de revenu ponctuelle. La date du RevRec sera calculée avec le **RevRec Date Scheduler.**&#x20;
  * **Evenly by periods**: Reconnaissance de revenu répartie sur la période. La date du RevRec sera automatiquement fixée au dernier jour de la période couverte par l'Invoicing Schedule
* **RevRec Date Scheduler** : permet de définir le [RevRec Date Scheduler](/cn285-documentation/menu-accounting/revenue-recognition/revrec-date-scheduler)associée à la règle.
* **Do Not Generate ITI\* Entries** : Lorsque cette option est cochée, les OD de FAE (Facture A Emettre) ainsi que les extournes de ces OD ne sont pas générées à la signature ou au renouvellement du ContractItem mais à la fin de période de service ou à la date de livraison.

(\*) ITI : Invoice To Issue (facture à émettre)


# RevRec Date Scheduler

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

Les RevRec Date Scheduler permettent de définir la date à laquelle la reconnaissance de revenu sera effectuée pour un Contract Item. Cette date est calculée par rapport à la date de début ou la date de fin de l'Invoicing Schedule.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FRwBuiENqwC1jsZ4FIiEL%2Fimage.png?alt=media\&token=026ab447-541c-4f4d-bf67-c820ff32cbf0)

## Menu et Accès

Les RevRec Date Scheduler sont accessibles depuis le menu **Cn285 / Accounting / RevRec Date Scheduler**.

## Configuration

![Exemple de paramétrage d'un RevRec Date Scheduler.](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F4e9Y6TrB5iASJUykBMmJ%2Fimage.png?alt=media\&token=ee4e84f9-b71e-4b6c-a003-bc8c542c5d51)

* **Base Date**: permet de définir la date de base afin de calculer la date de RevRec
  * Period Start Date: Date basée sur la date de début de l'Invoicing Schedule
  * Period End Date: Date basée sur la date de fin de l'Invoicing Schedule
* **Algorithm**: permet de définir l'algorithm de calcul de la date de RevRec. Par défaut le RevRec Date Scheduler utilisera l'algorithm standard de Cn285.

### Onglet Settings

* **Day**: définit le jour de la date de RevRec.
* **Day offset:** définit un nombre de jour de décalage par rapport à la **Base Date.**
* **Month:** définit le mois de la date de RevRec
* **Month offset:** définit un nombre de mois de décalage par rapport à la **Base Date.**
* **Adujstement expr.**: permet d'insérer du code Python pour des besoins particuliers

Dans l'exemple ci-dessus, la date de RevRec correspondra au 15 du mois suivant la date de fin de l'Invoicing Schedule.

### Onglet Tests

Cet onglet permet de tester le calcul de la date de RevRec avec les paramètres sélectionnés:

* Test Contract Item
* Test Invoicing Schedule

Le moteur de test indique :

* Les dates de début et fin du Contract Item testé.
* La date de début et la date de fin de la période de service de l'IS sélectionné

La **zone Test Result** fournit :&#x20;

* RevRec Date : Date de la reconnaissance de revenu

### Onglet Advanced

Le paramètre **Is System** permet de bloquer en écriture les RevRec Date Scheduler fournit en standard par Cn285.


# RevRec Entry Lines

## Introduction

Les RevRec Entry Lines sont les lignes de reconnaissance de revenu générées par le daemon [Revenue Recognition](/cn285-documentation/menu-accounting/revenue-recognition#generation-des-ecritures-de-revrec)  par Cn285 pour des ContractItems.

## Menu et accès

Les RevRec Entries sont accessibles depuis le menu Cn285 / Accounting / RevRec Entries.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FSTiWC5wtL3rVRQ1c0l7U%2Frr_entries.png?alt=media\&token=c770ccc0-fb4e-46c1-85cb-1ae2cc4e8202)

3 vues différentes sont disponibles en cliquant sur les boutons disponibles en haut à droite:

* <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FW7is8kPOPqMzVS8Fkeb8%2FCleanShot%202022-05-06%20at%2009.50.16.png?alt=media&amp;token=865d9ad5-ce69-4364-a52d-4770825a851e" alt="" data-size="line">**Vue Liste**: Cette vue permet d'afficher les données sous formes de lignes.
* <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F2nqFHQfl1zBqwPcIlSKT%2FCleanShot%202022-05-06%20at%2009.50.40.png?alt=media&amp;token=37a41cfa-193b-4758-b178-e93cef97b4d0" alt="" data-size="line">**Vue Graph**: Cette vue permet d'afficher les données sous forme de graphiques.
* <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FcGC1AYkTX7Q6OWfLLnzl%2Fimage.png?alt=media&amp;token=a7b2bf97-45e3-4d17-9e70-6045f07bb6f9" alt="" data-size="line">**Vue Pivot**: Cette vue permet d'afficher les données sous forme de tableaux croisés dynamiques.<br>


# Exemples de Schémas Comptables

Dans cette rubrique sont exposés différents schémas comptables permettant d'appréhender le traitement du RevRec dans différents cas.


# FAE en fin de période de service

Les écritures de Reconnaissance de Revenu dans le cadre d'un contrat impliquant des factures à émettre.

## Factures A Emettre&#x20;

Ci-dessous l'exemple d'un contrat avec prestation mensuelle, livraison en fin de mois et facturation le 15 du mois de la dernière période de service, <mark style="color:red;">avec option sans Facture A Emettre à la signature ou au renouveler.</mark>

### Ecritures de RevRec

Les écritures comptables de reconnaissance de revenu associées à ce contrat sont décrites dans le tableau ci-dessous.

![Ecritures de RevRec](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fsb5wUvF2QVcJjNuvD65e%2FCleanShot%202022-05-31%20at%2012.14.18.png?alt=media\&token=a2add1ac-5b3c-435a-8e3f-cc66f9edd544)

### Le Setup du contrat dans Cn285

Le contrat correspondant à l'exemple ci-dessus contient le **ContractItem** défini ci-dessous :

![Setup du contrat dans Cn285 ](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FG5EqN0it2R4dLVpq5Uyh%2FCleanShot%202022-05-31%20at%2012.43.57.png?alt=media\&token=ddf2a7ca-8e5b-447d-8eab-7faa61284d37)

* Un contrat d'une durée de 3 mois (**Duration: in periods**)
* Une période de service de Date à Date **(Service Periods Boundary)**
* Une facturation tous les 3 mois (**Invoice every**) prévue "le 15 du dernier mois de la période" (**Invoicing Date Scheduler**).&#x20;
* Les règles de RevRec : Contrat avec livraison avec option de ne pas générer de FAE à la signature du contrat. L'option **Do Not Generate ITI Entries** (Invoice to Issue) est activée dans la **RevRecRule** ci-dessous.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FlymteUYf16kFvwmlMKIZ%2FCleanShot%202022-05-31%20at%2012.52.32.png?alt=media\&token=36aae5c1-d3ab-4859-b86c-4106335a7419)

### Ecritures de RevRec dans Cn285

A la fin de chaque période, le moteur de RevRec de Cn285 génère les écritures de RevRec, et à la fin du mois de Mai le tableau ci-dessous.&#x20;

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FOJG4nEfZqakb8HruOptI%2Fimage.png?alt=media\&token=059036b5-2f6e-4f2a-b8de-0d17a2fbc3c6)


# FAE à la signature/Renewal avec PCA

Les écritures de Reconnaissance de Revenu dans le cadre d'un contrat impliquant des factures à émettre.

## Factures A Emettre&#x20;

Ci-dessous l'exemple d'un contrat avec prestation mensuelle, livraison en fin de mois et facturation le 15 du mois de la dernière période de service, <mark style="color:red;">avec Facture A Emettre à la signature ou au renouvellement.</mark>

### Ecritures de RevRec

Les écritures comptables de reconnaissance de revenu associées à ce contrat sont décrites dans le tableau ci-dessous.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FyBjql0c2fn4mtRPRDl4t%2FCleanShot%202022-05-31%20at%2014.00.02.png?alt=media\&token=f4984fd6-b700-47d8-9a72-e32453de6832)

### Le Setup du contrat dans Cn285

Le contrat correspondant à l'exemple ci-dessus contient le **ContractItem** défini ci-dessous :thumbsup:

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FRY1So2kfPWA8tI03aCup%2FCleanShot%202022-05-31%20at%2013.52.13.png?alt=media\&token=6684d94d-7bab-482a-bd96-cb5b2344ee0f)

* Un contrat d'une durée de 12 mois (**Duration: in periods**)
* Une période de service de mois civil **(Service Periods Boundary)**
* Une facturation tous les 6 mois (**Invoice every**) prévue "le 15 du premier mois de la période facturée"
* Les règles de RevRec : le 15 du mois suivant le dernier mois de l'IS - contrat avec livraison avec génération de la FAE à la signature du contrat. \
  L'option **Do Not Generate ITI Entries** (Invoice to Issue) est désactivée dans la **RevRecRule** ci-dessous.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FLxvNte90S1Fgom1VZus3%2FCleanShot%202022-05-31%20at%2013.53.21.png?alt=media\&token=9fa5fd4b-6114-4682-a841-9034a4b8011f)

### Ecritures de RevRec dans Cn285

A la fin de chaque période, le moteur de RevRec de Cn285 génère les écritures de RevRec à date.

On retrouve la FAE au jour de la signature/renouvellement le 01/01 pour la totalité du montant à facturer sur les 12 mois.

La facturation étant prévue tous les 6 mois, en date du 15 du premier mois de la période facturée, une première facture pour les 6 premiers mois est générée le 15/01.

le 15/01&#x20;

* Génération d'une OD de PCA pour les 6 mois facturés et à reconnaitre
* Génération d'une extourne de la FAE correspondant à la facture de Janvier.

A la date définie par la RevRec Rules, on reconnait le CA de la période de service échue.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FCSt6IyYVXfQFLdW7ABV3%2Fimage.png?alt=media\&token=5b8fa7f3-6b7b-4ea2-a94c-ce3ddca49765)


# Reports

## Introduction

Cn285 fournit des rapports permettant de visualiser sous forme graphique, les données:

* **Booking Report**
* **Billing Report**
* **Revenue Report**

Ces 3 reports sont accessibles depuis le menu **Accouting / Reports**

## Booking Report

![Exemple du Booking Report](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FPJKEYvCuBXm9MkOqWfF1%2Fimage.png?alt=media\&token=ddb530b5-4ad2-477b-8cb3-6d3d40678471)

Le Booking Report représente le CA à venir tout contrat confondu.

## Billing Report

![Exemple du Billing Report](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FEwawTkGZAbErZmMRfPkh%2Fimage.png?alt=media\&token=3124c12f-5fd7-483b-b67c-3567ea373438)

Le Billing Report représente le CA réalisé

## Revenue Report

![Exemple du Revenue Report](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F6ZU8PsBvYNd5hCR1nLe4%2Fimage.png?alt=media\&token=9ba108f0-4a26-4cb2-bdec-9b12fee47201)

Le Revenu Report représente le CA actuellement reconnu


# Differed Revenue Report

## Introduction

Le Differed Revenue Report permet de visualiser le solde du PCA pour une période ou le solde en cours pour un ContractItem Renewal.\
Ce report permet aussi de visualiser le montant à reconnaitre, le PCA déjà reconnu, le PCA / période, la règle de RevRec, ..

## Menu & accès

Le **Differed Revenue Report** est disponible depuis le menu **Accounting / Reports / Differed Revenue Report** et depuis la vue formulaire d'un journal en cliquant sur **Action / Detailed Balance Report**

## Configuration

![Exemple de configuration pour le Differed Revenue Report.](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FbzsxtwY64caQbu6HsVeG%2Fdiffered_revenue_report.PNG?alt=media\&token=412a46ad-d251-4a98-826b-c355072ffce4)

Le report possède deux champs permettant de visualiser le report à partir d'une date de début, une date de fin ou pour une période.

Si le champ **Start Date** est renseigné, les données du report débuteront à la date définie.

Si le champ **End Date** est renseigné, les données du report finiront à la date définie.

Si les deux champs sont remplis, alors les données concerneront une période.

Si ces champs ne sont pas remplis, les donnés du report seront à la date du jour.


# Detailed Balance Report

## Introduction

Le **Detailed Balance Report** permet de visualiser sous forme de grand compte, les données pour un journal comptable sur une période.

## Menu & accès

Le **Detailed Balance Report** est disponible depuis le menu **Accounting / Reports / Detailed Balance Report** et depuis la vue formulaire d'un journal en cliquant sur **Action / Detailed Balance Report**

## Configuration

![Exemple de génération d'un Detailed Balance Report](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FqL7P3zzGl2gs6FGZL4yR%2Fdetailed_balance_report.PNG?alt=media\&token=5dbaea3c-8d67-4f2f-a1af-7edfb5be9c38)

Les champs disponibles dans cette interface sont :

* **Journal**: Permet de sélectionner le journal
* **Account**: Compte comptable sur lequel générer le report
* **Start Date:** Critère permettant de définir une date de début de la période souhaitée
* **End Date**: Critère permettant de définir une date de fin de la période souhaitée
* **Report Detail Level**: Niveau de détail du report
  * **Account**: Les lignes sont regroupées par le(s) compte(s) défini(s) dans le champ **Account**
  * **Partner**: Les lignes sont regroupées par [Menu et écran Customers](/cn285-documentation/menu-et-ecran-customers)
  * **Contract**: Les lignes sont regroupées par [Menu Contracts](/cn285-documentation/menu-contracts)
  * **ContractItem**: Les lignes sont regroupées par [Contract Items](/cn285-documentation/menu-contracts/contract-items)
  * **Renewal**: Les lignes sont regroupées par [Contract Item Renewals](/cn285-documentation/menu-contracts/contract-item-renewals)
* **Ignore Account with zero balance**: Lorsque cette option est cochée, les lignes qui possèdent une balance nulle seront ignorées.

Le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FZo3IsUGXrzYQs2680EqT%2Fimage.png?alt=media&amp;token=9a043bcb-8a20-46ef-ad95-23ed6da2ccd6" alt="" data-size="line"> permet de générer les lignes de ce report et ainsi de visualiser les lignes concernées par la période / compte comptable.

Il est également possible d'ouvrir, individuellement ou globalement, les lignes qui ont générées cette balance en cliquant sur le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F9TheeHRx7ZAvagjmUdm8%2Fimage.png?alt=media&amp;token=2cd9e59d-eda3-478f-b5fa-e12658e0e3e8" alt="" data-size="line"> d'une ligne ou sur le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FBDgY55C3JLsm9JtZ2dMU%2Fimage.png?alt=media&amp;token=5f0a0a70-10d2-47f4-9631-b06b04db9db6" alt="" data-size="line">pour ouvrir toutes les lignes.

![Exemple des lignes d'une ligne d'un Balance Report](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FIPX6YAUZGfZ6ztlXyp98%2Fblance_report.PNG?alt=media\&token=d2e44ff8-53fa-465d-af05-6d7e4bbdfe44)

Depuis cette vue détaillée, il est possible d'exporter les données sous forme excel en cliquant sur le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FmQp5oEzOAT0lTS0nW08N%2Fimage.png?alt=media\&token=c4fc3ec1-6e67-4f84-84fa-0aa8c6beea67)situé en haut à gauche de la vue.

Il est également possible de visualiser les données sous forme de tableau croisé dynamique ou sous forme graphique en cliquant sur les boutons <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FvvpCFbcdBhyOy6cXEP4m%2Fimage.png?alt=media&amp;token=4438cdee-2423-4285-a61b-0895466dae8c" alt="" data-size="line"> situés en haut à droite de la vue.


# RevRec Stock Report

## Introduction

Le RevRec Stock Report permet de visualiser le stock de FAE, de PCA ou les mouvements des OD de RevRec sur une date ou une période donnée.

## Menu et Accès

Le **RevRec Stock Report** est disponible depuis le menu **Accounting / Reports / RevRec Stock Report.**

## **Configuration**

![Interface de génération d'un RevRec Stock Report](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FKRVLfv9gL7LmyLLv6ikl%2FCleanShot%202022-05-31%20at%2016.06.11.png?alt=media\&token=efc6ea65-41ba-47cb-9be2-9571b4732c91)

Les champs disponibles dans cette interface sont :

* **Report level** : permet de sélectionner uniquement l'indicateur des Revenus à reconnaitre, ou celui des factures à émettre ou de visualiser les leur regroupement.&#x20;
* **Ignore Entry With Zero Balance** : option permettant de ne pas afficher les écritures dont la balance est à 0 et dont le [Contract Item Renewals](/cn285-documentation/menu-contracts/contract-item-renewals) est dans le passé (Non disponible avec le report "All").
* **Date :** Permet d'établir le rapport à une date donnée.

Le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FZo3IsUGXrzYQs2680EqT%2Fimage.png?alt=media&amp;token=9a043bcb-8a20-46ef-ad95-23ed6da2ccd6" alt="" data-size="line"> permet de générer les lignes de ce report et ainsi de visualiser les lignes concernées par la période / compte comptable.

Le bouton![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fr2Lkv0NO4BXFP1Nsb3rE%2FCleanShot%202022-05-31%20at%2016.31.03.png?alt=media\&token=4b4e0af9-9d66-418d-9db3-3c25b1e9ae76)permet de visualiser le rapport en vue liste afin de pouvoir utiliser les fonctions de filtres et de groupage.

Le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F8w9nF1fgxZBTn6GX0wBu%2FCleanShot%202022-05-31%20at%2016.48.22.png?alt=media\&token=71c7c38a-5239-4079-8049-67a72c94a1d6)permet d'afficher le détail des lignes d'écritures.

![Exemple Differed Revenu"](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F9mZ5JXuHYFzmR2D20HcH%2FCleanShot%202022-06-01%20at%2008.57.41.png?alt=media\&token=4f164371-b867-4df3-a5b4-70c4f435ebe3)


# Summary Entities


# Summary Journals

## **Introduction**

Les journaux de synthèses sont des journaux regroupant des lignes de synthèse. Ces lignes sont générées à partir de lignes d'entrée d'un journal.

En cas de synchronisation avec un système distant ([Menu XSync](/cn285-documentation/menu-xsync)), cela permet de réduire les risque d'erreurs liés à cette synchronisation telle que la perte de connexion, le temps de réponse du système distant, etc..

## Configuration

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F3JwNPkXZVAn1F0P364pc%2Fimage.png?alt=media&amp;token=d05977e2-b239-4ff8-b993-e0515d863e0c" alt=""><figcaption><p>Exemple de configuration d'un journal de synthèse</p></figcaption></figure>

Sous **Accounting / Summary Entities / Summary Journals** cliquer sur **Créer**.

Configurer ensuite les champs suivants:

* **Nom du journal**
* **Type**: Permet de spécifier le type du journal. Par défaut, cette valeur sera renseignée avec la valeur 'Summary'.
* **Synthetized Journal**: Permet d'indiquer quel journal sera synthétisé.
* **Auto Validate**: Lorsque cette case est cochée, toutes les entrées de synthèse générées par le daemon seront automatiquement validées. Elles ne pourront plus être modifiées ni supprimées.

### **Onglet "Pièces comptables"**

L'onglet "Pièces comptables" permet de définir le code du journal ainsi que la période de regroupement des pièces comptables qui seront présentes dans le journal. Il existe deux choix possibles pour la période de regroupement:

* **By day**: Regroupement des pièces comptables journaliers
* **By month**: Regroupement des pièces comptables mensuels

{% hint style="danger" %}
Le champ **Group Period** ne peut être définit uniquement qu'à la création du journal de synthèse. Ce champ ne pourra être modifié plus tard.
{% endhint %}

### Onglet "Cn285"

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FBBgSTtbfxJBmzhTl2GHe%2Fimage.png?alt=media&amp;token=5a63f1c8-c73f-4b07-a4de-8b989c54449f" alt=""><figcaption></figcaption></figure>

* **Rupture Summary Entries:** Permet de définir le type de rupture pour les écritures comptables de synthèse. Les options sont les suivantes:
  * **No Limit**: Cette option permet **de ne pas définir de rupture** dans les écritures comptables. Une seule écriture comptable de synthèse sera alors créée. Cette écriture comportera toutes les lignes de synthèse.
  * **Maximum Lines**: Cette option permet de définir une rupture sur **un nombre maximum de lignes**. Si cette option est cochée, un nouveau champ nommé "**Maximum Lines**" sera disponible. Ce champ permet de définir le nombre maximum de lignes dans une écriture comptable de synthèse.
  * **By Partner**: Cette option permet de définir une rupture pour chaque partenaire présent dans les lignes de l'écriture. **Cn285 générera alors une écriture comptable de synthèse pour chaque partenaire.**
* **RevRec Detail Level**: Permet d'indiquer le niveau de détail souhaité des lignes des écritures comptables de synthèse.
  * **Account**: Regroupe les lignes par compte comptable.
  * **Account / Item**: Regroupe les lignes par Item et par compte comptable.
  * **Account / Entry Type**: Regroupe les lignes par type d'entrée et par compte comptable.
  * **Account / Customer**: Regroupe les lignes par client et par compte comptable.
  * **Account / Customer / Item**: Regroupe les lignes par Item, par client et par compte comptable.
  * **Account / Customer / Entry Type**: Regoupe les lignes par type d'entrée, client et compte comptable.

### Onglet "XSync"

Cet onglet est visible uniquement lorsque le module **XSync** est installé sur votre instance **Cn285**.

Si vous souhaitez configurer les journaux de synthèses avec XSync, veuillez vous réferer à la documentation concernant votre version d'XSync ([Menu XSync](/cn285-documentation/menu-xsync)).

Une fois le journal de synthèse configuré cliquer sur **Sauver.**

## Génération des entrées de synthèses

Les entrées d'un journal de synthèse sont générés par le [Cn285 Daemons](/cn285-documentation/menu-configuration/cn285-daemons#cn285-revrec-summary-journal-daemon).

Ce daemon doit être lancé de façon manuel.


# Summary Entries

## Introduction

Les entrées d'un journal de synthèses sont des entrées synthétisées d'un journal définit dans le[Summary Journals](/cn285-documentation/menu-accounting/summary-entities/summary-journals).

![Entrées des journaux de synthèse](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FMO5fZyBuloFsJceT5a43%2Fimage.png?alt=media\&token=7ea89402-f2be-4b9e-a12e-e11ed36dadfc)

## Menu & Accès

Les entrées des journaux de synthèse sont accessibles depuis le menu **Accounting / Summary Entites / Summary Entries** ou depuis le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FwyickA46C9C570OASH0j%2Fimage.png?alt=media\&token=8eb93051-74d0-428a-b100-970138355437) du journal de synthèse.

## Visualisation des entrées synthétisées

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FEv60PojVW5orG6kd1Pnt%2Fimage.png?alt=media\&token=0af720ac-bca6-42ac-a7ba-d9b30e13dc1d)

Il est possible de visualiser les entrées ainsi que les lignes d'entrées qui ont produit cette entrée synthétisée.

Depuis la vue formulaire d'une entrée synthétisée cliquer sur les boutons <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FqIsoBRW3ZANtJsv1eNIS%2Fimage.png?alt=media&amp;token=25afa384-a29a-41be-b04a-890c9ab3c78a" alt="" data-size="line"> afin de visualiser soit les entrées soit les lignes d'entrées.&#x20;

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FRwK7qkZvoSCxlS7QVTyy%2Fimage.png?alt=media\&token=101eec28-7478-4669-89ce-7e1bf188110e)

Depuis la vue liste des entrées synthétisées, sélectionner les entrées synthétisées dont vous souhaitez visualiser les entrées ou lignes d'entrée sources. Cliquer ensuite sur les boutons <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FdBzjgu34NFeIEVdaqIfF%2Fimage.png?alt=media&amp;token=80e7bfa4-8317-4d2f-ad1c-fb56e03d2733" alt="" data-size="original"> en fonction de ce que vous voulez afficher.


# Banks


# Menu Objects

## Introduction

Dans certaines activités, les abonnements portent sur des logiciels ou des services eux même contenus dans une offre plus large composé d'éléments physiques. C'est le cas des objets connectés (***IoT Objects***), où l'abonnement ne porte pas à proprement parler sur l'objet mais sur le service contenu (application, logiciel) et porté par l'objet.

A ces objets sont associés des évènements (***IoT Events***), dont la survenance et la prise en compte dans Cn285 permet de déclencher des actions. Les classiques étant l'activation et la désactivation.

Ces objets peuvent aussi être concernés par l'association de ***Usage Data*** dans le cadre de modèle de facturation.&#x20;


# Objects

## Introduction

La vue Objects permet donc de gérer des objets qui portent les items.&#x20;

## Menu et accès&#x20;

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FQ2wKcixWiSmeNfNHl7mT%2FCleanShot%202022-02-28%20at%2016.43.02%402x.png?alt=media\&token=664b6238-7c39-4cf4-b8e8-6cd03b0fad07)

La vue formulaire d'un objet contient **tous les champs obligatoires** suivants:

* **Nom de l'objet**

* **Key** : Clé de l'objet

* **Création date** : date de sa création de l'objet (d'un point de vue client) - si cette date n'est pas fournie par le client/l'API alors Cn285 prend la date de création system.

* *Contract* :&#x20;
  * Le contrat client concerné auquel est affecté l'objet.

* *Item* : Le produit d'abonnement associé à l'objet.

* D'autres champs sont disponibles et totalement paramètrables.&#x20;

{% hint style="info" %}
A noter : Selon les cas métier, il est possible de créer directement un objet avec ou sans Contract / Item.
{% endhint %}

### Onglet ContractItems

L'onglet ContractItems liste tous les ***ContractItems*** auxquels a été associé l'objet.

### Onglet Events&#x20;

L'onglet Events centralise l'historique des évènements associés à l'objet (activation, désactivation,...).

### Onglet Notes

Il permet d'ajouter une note associée à l'objet.

### Onglet Technical

Le client peut stocker des données en JSON via l'API et les relire ensuite dans ces process automatisés.

### Onglet Analytics

Lorsque l'option de comptes analytiques est activée, il est possible d'associer l'objet à 2 axes analytics. Ces champs sont particulièrement intéressants lorsque l'on ouvre les sujets d'analyse de la performance.

### Onglet Advanced

Contient des données utiles pour une utilisation plus avancée de l'outil Cn285 avec:

* ID dans la base de données Cn285 de l'objet
* Date de création (du point de vue du system Cn285)/ Utilisateur créateur
* ID du message de création de l'objet (lorsque ce dernier est créé par API)
* Date de dernière mise à jour / Utilisateur

## Gestion des objets

### Création&#x20;

En général les objets sont créés en automatique via l'API toutefois il est possible de réaliser une création directement en manuel, en remplissant à minima les 3 champs obligatoires.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FDncrzkEWg0Hr0LGuiD2G%2FCleanShot%202022-02-28%20at%2017.26.41%402x.png?alt=media\&token=f75875bc-3852-4107-b138-fdada163f6bb)

### Activation

Après avoir passer le statut de l'objet de "Draft" à "Pending", il est possible d'activer cet objet via le Bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FKqFqbaaNqiA30TRzancQ%2FCleanShot%202022-02-28%20at%2017.34.43%402x.png?alt=media&amp;token=d1bdc995-20f7-4288-8b5f-b4f303792b59" alt="" data-size="line">

Cette fonction créé un ***ContractItem*** dans le contrat associé à cet objet via le Wizard - ***Activate Object***

Ce wizard propose d'activer l'objet à une date définie par le champ Timestamp.

Il est possible d'ajouter une description.

{% hint style="info" %}
Il est possible d'activer plusieurs objets simultanément (soit via "Ajouter une ligne" soit en sélectionnant plusieurs objets depuis la vue Liste).
{% endhint %}

{% hint style="danger" %}
Il n'est possible d'activer un objet que si ce dernier est préalablement associé à un contrat et un produit.
{% endhint %}

![Wizard d'activation](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F3h3JkjCpfwRYsklXpk8H%2FCleanShot%202022-02-28%20at%2017.37.25%402x.png?alt=media\&token=b31fe326-70a7-43a3-81e2-606a8a3980b7)

### Deactivation

La Désactivation via le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FKWvoHdrxDvWpcjUPpyMv%2FCleanShot%202022-02-28%20at%2017.45.32%402x.png?alt=media&amp;token=d586de7f-1e65-4b4f-ae35-2b3bea9117f6" alt="" data-size="line">permet de désactiver un ou plusieurs objets à la date spécifiée dans le wizard.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FCwKHL6md1zkFHWrCqpoi%2FCleanShot%202022-02-28%20at%2017.46.08%402x.png?alt=media\&token=8a9fc7cc-edeb-4f00-b5df-66c368978af9)


# Events

## Introduction

Cn285 gère les objets et historise les évènements qui leur sont associés.

{% hint style="info" %}
Les Events permettent d'historiser les évènements liés à un objet à un objet lorsque l'Event concerne un Object géré dans Cn285 à des fins d'historisation et de traçabilité
{% endhint %}

## Menu et accès

On accède aux Events via le menu Objects > Events.

Cn285 gère différents types d'évènements.

![Vue Formulaire "Events"](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F86RSNR0YonM1c9U13mZj%2FCleanShot%202022-01-18%20at%2014.43.46.png?alt=media\&token=1b98835a-8d4b-40f8-837b-74aff07581f0)


# Menu QS

Cn285 contient son propre système de Queue.

## Introduction

Cn285 permet aux utilisateurs d'accéder aux **Messages** traités par la Queue et traiter les erreurs éventuelles.

Cn285 permet aussi d'accéder aux traitements effectués par les **Workers**.

![Menu et accès Qs](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F8gRhMUeMSZ4uarKPCxsa%2FCleanShot%202022-01-26%20at%2017.55.36%402x.png?alt=media\&token=4b57fbff-f137-4f02-8fa4-fb5ab042f299)


# Message

## Introduction

Le Menu Message permet d'accéder à la liste de tous les messages générés par les traitements Cn285.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FcGt6Hgv87KwJG5E46V9h%2FCleanShot%202022-02-02%20at%2016.31.32%402x.png?alt=media\&token=08e1cf76-1a9b-4d63-bccf-5abe3f6ff0c4)

## Exploitation des Messages

Les Messages ont des statuts liés à la bonne fin ou non des traitements.<br>

Dans l'exemple ci-dessous, le message est en statut "Failed", il s'agit de la tentative de synchronisation d'une facture de Cn285 vers NetSuite. Au delà des informations relatives à l'opération,  l'onglet Result permet d'obtenir le message d'erreur renvoyé par le système suite à l'opération et de réaliser les correctifs nécessaires.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FVMx3mzrLdKIk7euKrfkS%2FCleanShot%202022-02-02%20at%2016.35.14.png?alt=media\&token=d3cf3452-8ba8-476b-a7f7-94825b6ea225)

### Onglet Log / Debug

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FnAcCLusa8wmOb2UgABnS%2Fimq_import_log.PNG?alt=media\&token=14e45651-cf79-4ef2-9a5c-379e194c4543)

Il est également possible d'avoir plus d'informations concernant le traitement effectué en allant dans le menu Log / Debug du message. Depuis ce menu, il est possible de suivre l'avancement ou la réalisation des tâches de ce traitement. L'exemple ci-dessus concerne un traitement post import de données. {{Décrire ce que fait le log}}&#x20;

## Recommencer des messages en erreur

Lorsqu'un message est en erreur, il est possible de le relancer unitairement. Cette relance est possible grâce au bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FlFnLaomHMaulLG82boBN%2Fimage.png?alt=media\&token=586bd2a8-7f6e-420e-80fd-1c339c5f416e)disponible dans la barre des statuts. Il est cependant nécessaire de corriger l'erreur survenu lors du premier message avant de cliquer sur ce bouton.


# Workers

## Introduction <a href="#actions-planifiees-cron" id="actions-planifiees-cron"></a>

Cn285 étant un outil d'automatisation des factures de produits à tarification variable, un grand nombre de tâches est automatisé. Toutefois, au moment de la conception des offres, il peut être nécessaire de simuler le comportement d'un contract, d'un contrat item, d'un usage data calculator, …

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fol5eHpZ1ELOtg5mRV12P%2FCleanShot%202022-01-26%20at%2017.55.36%402x.png?alt=media\&token=d23f98c8-8d89-49f1-a35d-112c7d649332)

La vue workers permet de visualiser:

* Les workers
* Les Daemons (ou tâches planifiées)

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FUmfr7bOGaOjBWLzBMLf7%2FCleanShot%202022-01-26%20at%2017.52.31%402x.png?alt=media\&token=077a2a58-4b4f-48c0-9798-13f10e4adf30)

## [Cn285 Daemons](/cn285-documentation/menu-configuration/cn285-daemons) <a href="#lancement-manuel-des-automatisations-manual-deamons" id="lancement-manuel-des-automatisations-manual-deamons"></a>

## &#x20; <a href="#lancement-manuel-des-automatisations-manual-deamons" id="lancement-manuel-des-automatisations-manual-deamons"></a>


# Menu XSync

## Avertissement !

{% hint style="warning" %}
Ce site est en cours de rédaction. Nous utilisons différentes icônes dans le menu en fonction du statut du contenu.

* :pick: Ce document est en cours de rédaction ; ni le contenu ni la syntaxe ne sont aboutis
* :hammer\_pick: Ce document est en cours de relecture ; il ne devrait changer que légèrement
* Pas d'icône, la page est censée être terminée&#x20;
  {% endhint %}

## Introduction

La solution XSync permet de synchroniser des données entre des systèmes distants (**Remote System**) et Cn285.

Cn285 utilise XSync pour ses besoins de synchronisation.

### Principe de fonctionnement

XSync permet de configurer la connexion de Cn285 aux différents systèmes distants qui peuvent être référentiels sur les clients, produits,...Dans ce cas, les systèmes distants sont appelés **Master System**.

XSync permet le mapping et la synchronisation des champs entre les systèmes sur des entités telles que:

* Customers (via des mappers standards, c'est à dire préconfigurés)
* Products (via des mappers standards, c'est à dire préconfigurés)
* Invoices (via des mappers standards, c'est à dire préconfigurés)
* Users (Mapping manuel)
* Payment Terms (Mapping manuel)
* Bank Account (via des mappers standards, c'est à dire préconfigurés)

### Mapping des données

XSync utilise des **mappers** afin de faire correspondre les données entre Cn285 et le système distant.

Pour certaines entités (voir ci-dessus), il est nécessaire de faire un mapping manuel. Pour cela il faut configurer dans l’onglet “**XSync**” de la vue détaillé de l’entité, les champs suivants:

* **Remote System**: Le système distant associé.
* **Remote Record Type**: Le nom technique du type de donnée dans le système distant.
* **Remote Id** : L’identifiant dans le système distant.

![Exemple de mapping manuel pour l'employé Administrator.](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FJl8r9TMHvOBfFnLYunQT%2Fuser.PNG?alt=media\&token=d1da3022-bc9a-41e2-b82c-f693f98497b0)

### Mode synchrone et asynchrone

Lorsqu'une synchronisation est lancée de manière **asynchrone**, un message est créé et mis dans une file d'attente (aussi appelée queue) pour être traité par un ou plusieurs worker(s). Ce mode de fonctionnement permet de suivre l'avancement de la synchronisation, de garder une trace de cette synchronisation et de gérer les éventuelles erreurs. La visualisation des ces messages est possible depuis le menu [Menu QS](/cn285-documentation/menu-qs).

Lorsqu'une synchronisation est lancée de manière **synchrone**, celle-ci est exécutée en direct. Le suivi de la synchronisation n'est donc pas possible. Si une erreur survient durant cette synchronisation, il n'y a aucun moyen de connaitre quel entité est responsable de cette erreur.

{% hint style="warning" %}
Nous vous recommandons de toujours lancer les synchronisations de manière asynchrone.
{% endhint %}


# Remote System

## Introduction

Dans XSync, un système distant est appelé un **Remote System**.&#x20;

Un Remote System peut aussi être un **Master System** s'il est le référentiel des données synchronisée&#x73;**.**

## Création d'un Remote System

Dans le menu XSync/Remote System, cliquer sur 'Créer'

Configurer ensuite:&#x20;

* Le nom du Remote System
* Une description
* La version d'XSync à utiliser

XSync intègre les versions:

* **API Client**: Le Remote System synchronisera des données via l'API.
* **Netsuite 2.01 by Cn**: Cn285 propose un connecteur standard Netsuite.

![Exemple d'un Remote System avec une version Netsuite 2.01 by Cn](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FSE992XNogt4TETWTI8fF%2Fimage.png?alt=media\&token=16f5d1d9-82bf-43f7-a07a-8f8f9b7e39b6)

L'étape suivante consiste à configurer la version d'XSync:

* En version API
* [XSync for Netsuite](/cn285-documentation/menu-xsync/xsync-for-netsuite)


# XSync for Netsuite

## Introduction

XSync for Netsuite est un module d'XSync permettant la communication avec une instance Netsuite. Ce module intègre des fonctionnalités permettant de synchroniser des données en entrée et en sortie (clients, produits, comptes en banque,...).


# Configuration Netsuite

## Introduction

La synchronisation entre Cn285 et Netsuite implique une configuration de Netsuite.

## Activation de SuiteTalk

Pour activer SuiteTalk, aller dans le menu **Setup / Company / Setup Tasks / Enable Features.**

Dans l'onglet **SuiteCloud**, cocher les cases **REST WEB SERVICES** de la rubrique **SuiteTalk (Web Services)** ainsi que **TOKEN-BASED AUTHENTICATION** situé sous la rubrique **Manage Authentication.**

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FzXG46vi0CD9G7d1OtZ6J%2Fimage.png?alt=media\&token=6959edfc-4199-4216-873a-6b8d6ba7b8c5)

Une fois ces deux cases cochées, cliquer sur **Save** disponible en haut du formulaire.

## Création du rôle SuiteTalk Developper

Après l'activation de SuiteTalk, il est fortement conseillé de créer le rôle **SuiteTalk Developper**. XSync pourra alors utiliser ce rôle pour synchroniser les données entre les deux systèmes distants.

Sous le menu **Setup / Users/Roles / Manage Roles** cliquer sur **New**. Configurer les champs suivants:

* Centre Type => Sales Centre
* Accessible subsidiarie => All

### Configuration des permissions

Le rôle **SuiteTalk Developper** nécessite plusieurs permissions, disponibles ci-dessous avec leur niveau d'accès.

Sous l'onglet **Transactions**, ajouter deux nouvelles permissions:

* Invoice => Full
* Invoice Approval => Full
* Make Journal Entry => Full

Sous l'onglet **Reports**, ajouter une nouvelle permission:

* Suite Analytics Workbook => Edit

Sous l'onglet **List**, ajouter les permissions suivantes:

* Accounts => Full
* Bank Account Registers => Full
* Classes => Full
* Customer Record Entries => Full
* Customer Profile => Full
* Customers => Full
* Documents and Files => Full
* Employee Record => Full
* Items => Full
* Locations => Full
* Record Custom Field => Full
* Subsidiaries => Full
* Tax Records => Full
* Tax Schedules => Full

Sous l'onglet **Setup**, ajouter les permissions suivantes:

* Backup Your Data => Full
* Custom Address Form => Full
* Custom Entity Fields => Full
* Custom Entry Forms => Full
* Custom Fields => Full
* Custom Item Fields => Full
* Custom Lists => Full
* Custom Record Types => Full
* Custom Segments => Full
* Custom Sublist => Full
* Custom Sublists => Full
* REST Web Services => Full
* SOAP Web Services => Full
* User Access Token => Full

Sous l'onglet **Customer Record**, ajouter trois nouvelles permissions:

* Bank Details => Full
* Company Bank Details => Full
* Internal Bank Account => Full

{% hint style="info" %}
Si vous souhaitez ajouter ou modifier les permissions, celles-ci doivent être ajustées avec le consultant Netsuite en fonction du périmètre de l'intégration.
{% endhint %}

## Création d'une intégration

Une intégration désigne un objet Netsuite qui matérialise le lien entre une application externe (eg. eCommerce, Cn285,...) et Netsuite via les API.

**Dans la suite de la documentation, nous prendrons Cn285 comme exemple d'intégration d'application externe.**

Dans le menu **Setup / Integration / Manage Integration**, créer une nouvelle intégration nommée **Cn285**. Dans l'authentification décocher la case **TBA;AUTHORIZATION FLOW** ainsi que toutes les cases des groupes **Oauth 2.0** et **User Credentials.**

L'option **Concurrency Limit** permet de limiter/allouer les accès concurrents pour l'intégration.

Sauvegarder cette intégration.

{% hint style="danger" %}
Les **Clients Credentials** ne sont affichés qu'à la création de l'intégration et ne sont plus disponibles par la suite.
{% endhint %}

## Création d'un token

Un **Access Token** fait le lien entre un user, un rôle et une intégration. Avant de créer le token, il est important de lier les utilisateurs qui utiliseront l'API avec le rôle **SuiteTalk Developer**.

Après avoir assigné le rôle aux utilisateurs, aller dans **Setup / Users/Roles / User Management / Access Token**.

Pour ce token le nom de l'application sera **Cn285**, l'utilisateur sera un utilisateur qui possède le rôle **SuiteTalk Develpper** et le rôle sera **SuiteTalk Developer**.

Une fois ces 3 champs renseignés cliquer sur **Save**.

{% hint style="danger" %}
Le **TOKEN ID** ainsi que le **TOKEN SECRET** ne sont affichés qu'à la création du token et ne sont plus disponibles par la suite.
{% endhint %}

## Création des Saved Search

XSync utilise les Saved Searchs pour récupérer les données à synchroniser.

### Création de la Saved Search Customer

Sous **Lists / Searchs / Saved Searchs** cliquer sur **New** puis cliquer sur **Customer**.

Dans le search title, renseigner **Cn285 XSync Customer Search - Do not Modify**

Dans l'onglet **Results**, ajouter les champs suivants:

* Internal ID
* Name
* Email
* Phone
* Office Phone
* Fax
* Primary Contract
* Alt. Email
* Address
* Last Modified

Une fois la Saved Search sauvegardée il est nécessaire de l'éditer afin de changer son identifiant. Pour cela, cliquer sur **Change ID**. Dans **New ID** renseigner **customsearch\_cn\_customer\_sync.** Sauvegarder ensuite la Saved Search.

### Création de la Saved Search Product

Sous **Lists / Searchs / Saved Searchs** cliquer sur **New** puis cliquer sur **Item**.

Dans le search title, renseigner **Cn285 XSync Product Search - Do not Modify**

Dans l'onglet **Results**, ajouter les champs suivants:

* Internal ID
* Name
* Display Name
* Description
* Type
* SubType
* LastModified

Une fois la Saved Search sauvegardée il est nécessaire de l'éditer afin de changer son identifiant.. Pour cela, cliquer sur **Change ID**. Dans **New ID** renseigner **customsearch\_cn\_product\_sync.** Sauvegarder ensuite la Saved Search.

## Création de l'Item Description

Si vous souhaitez synchroniser des factures depuis Cn285 vers Netsuite un **Item Description** sera alors requis. Ce champ permet d'injecter un séparateur basé sur le nom du contrat dans les lignes de facture de Netsuite.

Sous **List / Accounting / Items** cliquer sur **New** puis cliquer sur **Description**.

Dans **Item Name / Number** renseigner **Description4Cn285**

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FYjsK36cqKWVEDoRRsYnv%2Fimage.png?alt=media\&token=7bff3740-b09c-4aaf-8e6e-b8edac2ad6d7)

{% hint style="info" %}
Noter l'identifiant de l'**Item Description**, il sera nécessaire lors de la configuration d'XSync sur Cn285. Vous pouvez récupérer cet identifiant depuis la vue Liste ou depuis l'url du navigateur (chiffre après "id=").
{% endhint %}

Lorsqu'une synchronisation vers Netsuite est réalisée, des champs customs "standard" sont envoyées


# Configuration XSync

Cette documentation nécessite une configuration de Netsuite et la création d’un Remote System avec une version 'Netsuite' dans Cn285.

## Introduction

Après avoir réalisé la [Configuration Netsuite](/cn285-documentation/menu-xsync/xsync-for-netsuite/configuration-netsuite), il faut configurer XSync dans Cn285 pour que les deux systèmes puissent communiquer.

## Configuration environnement staging et production

XSync permet de configurer des connexions à un environnement de staging ou un environnement de production de Netsuite en fonction de votre environnement Cn285.

Un Cn285 staging se connectera au staging Netsuite comme dans l'exemple ci-dessous.

![Exemple de configuration pour un environnement de staging](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FLXWUfA4OhB3UHczDo0hR%2FRemote%20System%20Netsuite.PNG?alt=media\&token=950bb8b2-d414-4fb8-9e63-7ebc019571ca)

### Environnement

Depuis l'onglet Netsuite du **Remote System**, configurer les champs staging/production selon votre besoin:

* **Netsuite ACCOUNT ID**: L'identifiant du compte Netsuite
* **Consumer Key**: La clé du client fournie lors de la création d’une “intégration” Netsuite ([Configuration Netsuite](/cn285-documentation/menu-xsync/xsync-for-netsuite/configuration-netsuite#creation-dune-integration)).
* **Consumer Secret**: Le secret du client fourni lors de la création d’une “intégration” Netsuite.
* **Token ID**:  L’identifiant du token donné par Netsuite lors de sa création ([Configuration Netsuite](/cn285-documentation/menu-xsync/xsync-for-netsuite/configuration-netsuite#creation-dun-token)).
* **Token Secret**: Le secret du token donné par Netsuite lors de sa création.
* **Base Restlet URL**: L’url du système distant.

Après avoir configuré, cliquer sur le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FZzHWyDtPkMlTPJhxE18K%2Fimage.png?alt=media&amp;token=04322c2f-788f-4011-bd4c-0979598e0c3e" alt="" data-size="line"> pour vérifier les informations et établir la connexion avec le système distant.

{% hint style="info" %}
Le résultat de la vérification de la connexion est affiché dans le champ **Connection Status**

Si la connexion entre les deux systèmes distant est réussie, le message "Connection Success !" sera affiché.
{% endhint %}

### Paramètres

Des paramètres supplémentaires sont nécessaires lors d'une synchronisation de factures ou de clients. Ces paramètres sont définis dans l'onglet Netsuite du **Remote System.**

Les différents paramètres sont:

* **Description Item Id**: L'identifiant de l'Item Description de Netsuite ([Configuration Netsuite](/cn285-documentation/menu-xsync/xsync-for-netsuite/configuration-netsuite#creation-de-litem-description)).
* **Synchronize Bank Account**: Permet d'activer ou de désactiver la synchronisation entrante et sortante des comptes bancaires. Si l'option est activée:

#### Configuration du Synchronize Bank Account

* **Payment File Format Id**: Correspond à un identifiant d'un payment file format créé dans Netsuite.&#x20;

{% hint style="info" %}
Nous vous recommandons de créer un payment file format spécifique à Cn285 dans Netsuite pour permettre d'identifier lors d'une synchronisation de Cn285 vers Netsuite les comptes en banques, créés dans des systèmes tiers et dont le format devra être revu dans Netsuite.
{% endhint %}

En cliquant sur le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FCmDW8N4BraEId1mcPnBn%2Fimage.png?alt=media&amp;token=8b388eae-df07-4fc9-b0ca-1bdf08b4ba35" alt="" data-size="line"> les champs **Bank Details CustomRecord Id**, **Payment File Format Type Id** ainsi que **Entity Bank Type Id** seront automatiquement configurés si les champs sont disponibles dans Netsuite. L'aide contextuelle permet d'indiquer le nom technique du champ Netsuite mappé.

![Paramètres de l'onglet Netsuite](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FYjKszyJNu7hORy07smg3%2Fimage.png?alt=media\&token=56293cf5-43b9-4c50-b9ce-a205c53f9f65)

Une fois que Netsuite et XSync sont correctement configurés, la configuration de la synchronisation (entrante ou sortante) pour les différentes entités à synchroniser est possible.


# Customers Inbound Sync

## Introduction

Xsync permet la synchronisation entrante des clients depuis Netsuite. La configuration de cette synchronisation est possible depuis le groupe **Customers** dans l'onglet **Inbound Sync** du **Remote System**.

## Configuration

![Exemple de paramétrage pour la synchronisation entrante des Customers](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FWO08lv1wvA3smUndxj2U%2Fcustomer%20inbound.PNG?alt=media\&token=785d4223-497c-4cc0-a215-afc416c4341c)

Pour sélectionner les clients à synchroniser, XSync utilise le champ **Customers Saved Search scriptId** qui correspond à l'identifiant de la saved search créée dans Netsuite ([Configuration Netsuite](/cn285-documentation/menu-xsync/xsync-for-netsuite/configuration-netsuite#creation-de-la-saved-search-customer)) ainsi que le champ **Sync Customers modified since** en tant que critère de recherche pour interroger Netsuite.

{% hint style="info" %}
Si le champ **Sync Customers modified since** n'est pas défini:

* La saved search de Netsuite renverra tous les clients à synchroniser avec Cn285
* &#x20;La valeur du champ prendra le timestamp de cette synchronisation

Si le champ est défini, la saved search de Netsuite ne renverra que les clients dont la date de modification est postérieure à cette valeur.&#x20;
{% endhint %}

Le résultat de la saved search est ensuite synchronisé avec Cn285 en une ou plusieurs pages. La taille de ces pages est paramétrable par le champ **Synced Customers Page Size,** par défaut définie à **30**.

{% hint style="danger" %}
Nous vous recommandons de ne pas modifier la valeur du champ **Synced Customers Page Size**. Elle permet de garantir les performances optimales pour une synchronisation avec Netsuite. &#x20;
{% endhint %}

Plusieurs paramètres peuvent aussi être configurés dans cette rubrique :

* **Sync Customers using search Results**: Si cette option est cochée, XSync synchronisera toutes les données que retourne la **Saved Search** de Netsuite. Dans ce cas là, la **Saved Search** doit contenir toutes les informations nécessaires à la synchronisation. Si l'option n'est pas cochée, XSync fera un appel pour chaque client pour la récupération des données.
* **Force Refresh of Sync Customers**: Lorsque cette option est cochée, XSync forcera le rafraichissement des données client.
* **User Mapper**: XSync possède de base un driver permettant de faire correspondre un champ standard Netsuite avec un champ Cn285. Pour synchroniser des champs Netsuite personnalisés il convient de surcharger le driver standard avec un [User defined Mappers](/cn285-documentation/menu-xsync/user-defined-mappers).
* **Don’t Update ‘Modified Since’**: Lorsque cette option est cochée, le champ **Sync Customers modified since** ne sera pas mis à jour avec le timestamp de la synchronisation et conservera la valeur de la précédente.
* **Local Customers Search**: Il est possible de spécifier à XSync les entités locales à mettre à jour depuis Netsuite via une recherche Cn285. On peut, par exemple, sélectionner les clients par pays, par ville, etc ...

## Synchronisation entrante des clients

La synchronisation des clients depuis Cn285 peut être lancée via deux modes :

* Mode manuel
* Mode automatique

### Mode manuel

Il est possible de lancer une synchronisation globale des clients en cliquant sur le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FwhD2u29J1RxMKtbkCIgy%2Fimage.png?alt=media\&token=34cfa0fe-944d-4ced-aa94-e8ecaa7816df)situé dans l'onglet **Inbound Sync** du formulaire du **Remote System**.&#x20;

Cette synchronisation globale prend les critères de recherche définis dans l'onglet **Inbound Sync** pour sélectionner les clients à synchroniser.

Il est également possible de lancer une synchronisation unitaire en cliquant sur le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FDF3QssP18EIIYrcXff3y%2Fimage.png?alt=media\&token=9c20da48-d5b6-4682-be5b-2d08ec283f28)situé dans l'onglet **XSync** du formulaire **Customer**. La synchronisation unitaire est uniquement possible lorsque le customer a déjà été synchronisé par XSync.

{% hint style="info" %}
La synchronisation unitaire permet de mettre à jour rapidement un client sans avoir à resynchroniser tous les clients déjà existants. Cette synchronisation est synchrone et se fait donc en direct, contrairement à la synchronisation globale qui elle est asynchrone.
{% endhint %}

### Mode automatique

Cn285 permet aussi une synchronisation automatique des clients. Cette synchronisation se lance via un CRON (tâche) qui s'exécute périodiquement. Pour configurer ou visualiser ce CRON, veuillez vous référer à la [Workers](/cn285-documentation/menu-qs/workers#actions-planifiees-cron-1).

![Exemple de configuration du Daemon](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FKFgldGAEZAKTBt3idoDI%2Fimage.png?alt=media\&token=d0b07ebd-f9d9-45e1-a2f7-799c1c503211)

## Visualiser l'avancement de la synchronisation

Lorsque la synchronisation est manuelle via le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FwhD2u29J1RxMKtbkCIgy%2Fimage.png?alt=media\&token=34cfa0fe-944d-4ced-aa94-e8ecaa7816df)ou automatique (via le CRON), celle-ci est lancée en mode asynchrone. XSync génère un message "**Syncs all 'customers'**" qui va être traité par un worker.

Comme expliqué lors de la configuration, XSync synchronise les données avec Cn285 en plusieurs pages. Une page va générer un message "**Sync page 1/X**" qui lui même va générer plusieurs messages "**Sync Customer**" en fonction de la taille définie par le champ **Synced Customers Page Size**.

Pour visualiser ces messages et ainsi suivre l'avancement de la synchronisation, rendez-vous dans le menu **Cn / Qs / Messages**. ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FmqbeeUV9RPKVkG7AVR00%2Fimage.png?alt=media\&token=a4aaec9b-e071-4c2c-8764-d642205f94f2)

![Exemple de message généré par XSync pour synchroniser une page de 30 Customers.](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FNF8vPw97aR5QduGZBLxc%2Fimq_message_inbound_customer.PNG?alt=media\&token=c6f47bcc-a035-4217-a91f-496a51e5529f)


# Customers Outbound Sync

## Introduction

Xsync permet la synchronisation sortante des clients vers un autre système. La configuration de cette synchronisation est possible depuis le groupe **Customers** dans l'onglet **Outbound Sync** du **Remote System**.

## Configuration

![Exemple de paramétrage pour la synchronisation sortante des Customers.](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FZQ18gMOJjGTT8Vct3JRJ%2Foutbound_customer.PNG?alt=media\&token=c18caf02-a093-4160-83fe-1d5743ab90f9)

XSync dispose d'un système de recherche permettant de définir les clients à synchroniser avec le **Remote System**. Cette recherche est paramétrable via le champ **Customer Selection.**

Le champ **Last Customers Outbound Sync** correspond au timestamp de la dernière synchronisation sortante effectuée. Ce timestamp est utilisé comme critère supplémentaire dans la recherche **Customer Selection** et permet de ne sélectionner que les clients de Cn285 qui ont une date de création / modification postérieure à ce timestamp.&#x20;

Un critère supplémentaire sera automatiquement ajouté à la recherche. Ce critère permet de ne sélectionner que les clients dont le **Master System** est différent du **Remote System** sur lequel la synchronisation va être effectuée.

Les données renvoyées par la recherche seront ensuite synchronisées avec Netsuite en une ou plusieurs pages (appelé aussi batch). La taille de ces pages est paramétrable par le champ **Sync Batch Size,** par défaut défini à **10**.

{% hint style="danger" %}
Nous vous recommandons de ne pas modifier la valeur du champ **Sync Batch Size**. Elle permet de garantir les performances optimales pour une synchronisation vers Netsuite.
{% endhint %}

Plusieurs paramètres peuvent aussi être configurés dans cette rubrique:

* **User Mapper**: XSync possède de base un driver permettant de faire correspondre un champ Cn285 avec un champ standard Netsuite. Pour synchroniser des données Cn285 avec des champs Netsuite personnalisés il convient de surcharger le driver standard avec un [User defined Mappers](/cn285-documentation/menu-xsync/user-defined-mappers).
* **Q for Outbound Customer sync**: Permet de définir une queue dédiée uniquement pour la synchronisation sortante des clients.
* **Run Outbound Sync synchronously**: Lorsque cette option est cochée, la synchronisation est effectuée de manière synchrone. Nous vous recommandons d'utiliser cette option uniquement en mode debug.

## Lancement de la synchronisation

La synchronisation sortante des clients depuis Cn285 peut être lancée via deux modes:

* Mode manuel
* Mode automatique

### Mode manuel

Le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FTwXZcJwsEQ1lG2G1danh%2Fimage.png?alt=media&amp;token=be098306-c869-4160-bdd7-c5ff5d6be79f" alt="" data-size="line">situé dans l'onglet **Outbound Sync** du **Remote System** permet de lancer la synchronisation sortante manuellement avec les critères définis ci-dessus.

Si le champ **Run Outbound Sync synchronously** n'est pas coché alors cette synchronisation est lancée de manière aysnchrone.

### Mode automatique

La synchronisation de manière automatique est effectuée par une action planifiée qui s'exécute périodiquement. La documentation concernant les [Workers](/cn285-documentation/menu-qs/workers) permet de visualiser cette tâche.

![Exemple de configuration du Daemon](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FXCiPyyBbBVdhPpg75M0X%2Fimage.png?alt=media\&token=6e41ad06-0d55-495a-85bb-c674e964f73b)

## Visualiser l'avancement de la synchronisation

Lorsque la synchronisation est lancée de manière asynchrone (soit via le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FaxlBqutZ3V05Cijog1Wr%2Fimage.png?alt=media&amp;token=1dd014fe-90b6-41c2-ba37-14d88589b9d3" alt="" data-size="line">avec la case **Run Outbound Sync synchronously** décoché, soit via la tâche planifiée), XSync génère un message "**Outbound sync on X all 'customers'**" qui va être traité par un worker.

Comme expliqué lors de la configuration, XSync synchronise les données avec Cn285 en plusieurs pages. Une page va générer un message "**Outbound Sync a batch of 'customer()'**" qui lui même va générer plusieurs messages "**Outbound** **Sync Cn**" en fonction de la taille définie par le champ **Sync Batch Size**.

La visualisation des messages et l'avancement de la synchronisation est possible depuis le menu **Cn / Qs / Messages**. ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FmqbeeUV9RPKVkG7AVR00%2Fimage.png?alt=media\&token=a4aaec9b-e071-4c2c-8764-d642205f94f2)

![Exemple de message indiquant la synchronisation globale des Customers vers Netsuite.](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FajHjpw3Akceu8omvTlz2%2Fimq_message_outbound_customer.PNG?alt=media\&token=36eb3492-27ac-447e-a566-e9ef11d219bd)


# Product Inbound Sync

## Introduction

Xsync permet la synchronisation entrante des produits depuis Netsuite. La configuration de cette synchronisation est possible depuis le groupe **Products** dans l'onglet **Inbound Sync** du **Remote System**.

## Configuration

![Exemple de paramétrage pour la synchronisation entrante des Products](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FppHfour9vC1IuPQk48UF%2Fproduct_inbound_sync.PNG?alt=media\&token=8ec8f08a-448f-46fd-89f0-020b8c7f4624)

Pour sélectionner les produits à synchroniser, XSync utilise le champ **Products Saved Search scriptId** qui correspond à l'identifiant de la saved search créée dans Netsuite ([Configuration Netsuite](/cn285-documentation/menu-xsync/xsync-for-netsuite/configuration-netsuite#creation-de-la-saved-search-product)) ainsi que le champ **Sync Products modified since** en tant que critère de recherche pour interroger Netsuite.

{% hint style="info" %}
Si le champ **Sync Products modified since** n'est pas défini:

* La saved search de Netsuite renverra tous les produits à synchroniser avec Cn285
* &#x20;La valeur du champ prendra le timestamp de cette synchronisation

Si le champ est défini, la saved search de Netsuite ne renverra que les produits dont la date de modification est postérieure à cette valeur.&#x20;
{% endhint %}

Le résultat de la saved search est ensuite synchronisée avec Cn285 en une ou plusieurs pages. La taille de ces pages est paramétrable par le champ **Synced Products Page Size,** par défaut définie à **30**.

{% hint style="danger" %}
Nous vous recommandons de ne pas modifier la valeur du champ **Synced Products Page Size**. Elle permet de garantir les performances optimales pour une synchronisation avec Netsuite. &#x20;
{% endhint %}

Plusieurs paramètres peuvent aussi être configurés dans cette rubrique :

* **Sync Products using search Results**: \
  Si cette option est cochée, XSync synchronisera toutes les données que retourne la **Saved Search** de Netsuite. **La** **Saved Search** doit alors contenir toutes les informations nécessaires à la synchronisation. \
  Si l'option n'est pas cochée, XSync fera un appel pour chaque produit pour la récupération des données.
* **Force Refresh of Sync Products** : Lorsque cette option est cochée, XSync forcera le rafraichissement des données produits.
* **User Mapper**: XSync possède de base un driver permettant de faire correspondre un champ standard Netsuite avec un champ Cn285. Pour synchroniser des champs Netsuite personnalisés, il convient de surcharger le driver standard avec un [User defined Mappers](/cn285-documentation/menu-xsync/user-defined-mappers).
* **Don’t Update ‘Modified Since’**: Lorsque cette option est cochée, le champ **Sync Customers modified since** ne sera pas mis à jour avec le timestamp de la synchronisation et conservera la valeur de la précédente.
* **Local Products Search**: Il est possible de spécifier à XSync les entités locales à mettre à jour depuis Netsuite via une recherche Cn285. On peut, par exemple, sélectionner les produits par prix, par catégorie, etc ...

## Synchronisation entrante des produits

La synchronisation des produits depuis Cn285 peut être lancée via deux modes :

* Mode manuel
* Mode automatique

### Mode manuel

Il est possible de lancer une synchronisation globale des produits en cliquant sur le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FDSpxXl3wAq7H3ksWfNas%2Fimage.png?alt=media\&token=98337dd1-f1ae-42c4-ab9a-cfafc567d29f)situé dans l'onglet **Inbound Sync** du formulaire du **Remote System**.&#x20;

Cette synchronisation globale prend les critères de recherche définis dans l'onglet **Inbound Sync** pour sélectionner les produits à synchroniser.

Il est également possible de lancer une synchronisation unitaire en cliquant sur le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FDF3QssP18EIIYrcXff3y%2Fimage.png?alt=media\&token=9c20da48-d5b6-4682-be5b-2d08ec283f28)situé dans l'onglet **XSync** du formulaire produit. La synchronisation unitaire est uniquement possible lorsque le produit a déjà été synchronisé par XSync.

{% hint style="info" %}
La synchronisation unitaire permet de mettre à jour rapidement un produit sans avoir à resynchroniser tous les produits déjà existants. Cette synchronisation est synchrone et se fait donc en direct, contrairement à la synchronisation globale qui elle est asynchrone.
{% endhint %}

### Mode automatique

Cn285 permet aussi une synchronisation automatique des produits. Cette synchronisation se lance via un CRON (tâche) qui s'exécute périodiquement. Pour configurer ou visualiser ce CRON, veuillez vous référer à la [Workers](/cn285-documentation/menu-qs/workers#actions-planifiees-cron-1).

![Exemple de configuration du Daemon](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FBuLKu9W2esUk1i31XJrF%2Fimage.png?alt=media\&token=d3910f39-94c7-4e98-96ca-96008a3f5057)

## Visualiser l'avancement de la synchronisation

Lorsque la synchronisation est manuelle via le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FDSpxXl3wAq7H3ksWfNas%2Fimage.png?alt=media\&token=98337dd1-f1ae-42c4-ab9a-cfafc567d29f)ou automatique (via le CRON), celle-ci est lancée en mode asynchrone. XSync génère un message "**Syncs all 'products'**" qui va être traité par un worker.

Comme expliqué lors de la configuration, XSync synchronise les données avec Cn285 en plusieurs pages. Une page va générer un message "**Sync page 1/X**" qui lui même va générer plusieurs messages "**Sync Product**" en fonction de la taille définie par le champ **Synced Products Page Size**.

Pour visualiser ces messages et ainsi suivre l'avancement de la synchronisation, rendez-vous dans le menu **Cn / Qs / Messages**. ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FmqbeeUV9RPKVkG7AVR00%2Fimage.png?alt=media\&token=a4aaec9b-e071-4c2c-8764-d642205f94f2)

![Exemple de message générérer par XSync pour synchroniser une page de 30 Products](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FLFPsCWpItZgFMhuKDlFn%2Fimq_message_inbound_product.PNG?alt=media\&token=673e301a-7d8d-495f-806e-b5c6d6c54e33)


# Invoice Outbound Sync

## Introduction

XSync permet de synchroniser des factures ou des éléments de facturation de Cn285 avec Netsuite.

{% hint style="info" %}
Avant de synchroniser une facture vers Netsuite, XSync s'assure que le client existe dans Netsuite et qu'il est bien à jour, notamment pour les clients dont des systèmes tiers sont les maîtres. Si les données ne sont pas à jour, XSync synchronisera ce client avant de synchroniser la facture.
{% endhint %}

## Configuration

### Synchronisation sortantes des factures

![Exemple de paramétrage pour la synchronisation sortantes des Invoices.](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FKeT5RDhdw1P9eck5FDq2%2Foutbound_invoice.PNG?alt=media\&token=1a4bb483-4b60-41af-afbe-1107de622f73)

XSync dispose d'un système de recherche permettant de définir les factures (ou éléments de facturation) à synchroniser avec le **Remote System**. Cette recherche est paramétrable via le champ **Invoice Selection.**

Les données renvoyées par la recherche seront ensuite synchronisées avec Netsuite en une ou plusieurs pages (appelé aussi batch). La taille de ces pages est paramétrables par le champ **Sync Batch Size,** par défaut défini à **10**.

{% hint style="danger" %}
Nous vous recommandons de ne pas modifier la valeur du champ **Sync Batch Size**. Elle permet de garantir les performances optimales pour une synchronisation vers Netsuite.
{% endhint %}

Plusieurs paramètres sont aussi disponibles dans cette rubrique:

* **User Mapper**: XSync possède de base un driver permettant de faire correspondre un champ Cn285 avec un champ standard Netsuite. Pour synchroniser des données Cn285 avec des champs Netsuite personnalisés il convient de surcharger le driver standard avec un [User defined Mappers](/cn285-documentation/menu-xsync/user-defined-mappers).
* **Q for Outbound Invoice sync**: Permet de spécifier une autre queue à utiliser pour la synchronisation sortante.
* **Run Outbound Sync synchronously**: Lorsque cette option est cochée, la synchronisation est effectuée de manière synchrone. Nous vous recommandons d'utiliser cette option uniquement lorsque vous souhaitez debugger.
* **Last Invoices Outbound Sync:** Correspond au timestamp de la dernière synchronisation sortante effectuée. Ce timestamp est utilisé comme critère supplémentaire dans la recherche **Invoice Selection** et permet de ne sélectionner que les factures de Cn285 qui ont une date de création / modification postérieure à cette date.

{% hint style="info" %}
Si le champ **Last Invoices Outbound Sync** n'est pas défini:

* La recherche du champ **Invoice Selection** renverra toutes les factures éligibles à la  synchronisation
* La valeur du champ prendra le timestamp de cette synchronisation.
  {% endhint %}

Un critère supplémentaire sera automatiquement ajouté à la recherche. Ce critère permet de ne sélectionner que les clients dont le **Master System** est différent du **Remote System** sur lequel la synchronisation va être effectuée.

Il est également possible de bloquer la synchronisation sortante d'une facture. Cette option est disponible depuis la rubrique **Outbound Sync** dans l'onglet XSync de la vue détaillée de la facture et elle est paramétrable avec le champ **Block Outbound Sync.** Lorsque ce champ est activé, XSync ignora automatiquement la synchronisation de cette facture.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FjTrDBXka53g6zv3du8xn%2Fimage.png?alt=media\&token=d3f50079-caad-4c67-85b6-8593a31e8a15)

### Etat de validation des factures

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FxM1OamK9FXCf4b914z38%2Fimage.png?alt=media\&token=df377a86-cc38-44f9-b6c6-5f357db324a0)

XSync permet aussi de créer une facture dans Netsuite dans différents états d'approbation, selon que l'on souhaite créer des factures validées ou non, ou qu'un workflow de validation est activé.&#x20;

Sous **Cn / Configuration / Settings**, dans la rubrique **Netsuite by Cn285**, configurer les champs suivants:

* **Approval Status At Creation** : Définit le statut de la facture lors de sa création dans NetSuite
  * **Pending Approval** : Crée la facture au statut “pending approval” dans NetSuite.
  * **Open (without approval workflow\*)**  : Crée la facture directement au statut “Approved” dans NetSuite (il n'y a pas de workflow de validation et on créait la facture validée).
  * **Open (with approval workflow\*)** : Crée la facture au statut “pending approval” dans NetSuite puis la valide dans un second temps.
* **Next Approver** : <mark style="color:red;">SI ET SEULEMENT</mark> le module d'approbation des factures NetSuite est installé, ce champ permet de définir le **Next Approver.**  L'utilisateur Cn285 doit donc avoir un **Remote Id** correspond à un identifiant d'employé dans Netsuite.

{% hint style="warning" %}
Dans Netsuite, lorsque le workflow de validation des factures est activé, celui-ci ne permet pas de créer une facture directement dans le statut ‘approved’. Dans ce cas là,  XSync créera dans un premier temps la facture au statut 'Pending Approval' puis dans un second temps, validera cette facture.
{% endhint %}

Une fois la synchronisation sortante effectuée (avec ou sans workflow), XSync lancera une synchronisation entrante afin de récupérer la référence de la facture nouvellement crée dans NetSuite.

## Lancement de la synchronisation

La synchronisation sortante des factures depuis Cn285 peut être lancée via deux modes:

* Mode manuel
* Mode automatique

### Mode manuel

Le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F4hqGJVEyvKPNY7RyWDIt%2Fimage.png?alt=media&amp;token=65b50a22-0f6c-4c00-a51d-a98069217ae1" alt="" data-size="line">situé dans l'onglet **Outbound Sync** du **Remote System** permet de lancer la synchronisation sortante manuellement avec les critères définis ci-dessus.

Si le champ **Run Outbound Sync synchronously** n'est pas coché alors cette synchronisation est lancée de manière aysnchrone.

### Mode automatique

La synchronisation de manière automatique est effectuée par une action planifiée qui s'exécute périodiquement. La documentation concernant les [Workers](/cn285-documentation/menu-qs/workers) permet de visualiser cette tâche.

![Exemple de configuration du Daemon](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fw8fgKccLcSWAA8ljrQEu%2Fimage.png?alt=media\&token=e38177da-2fa9-4062-9d38-b8ae1dd22f99)

## Visualiser l'avancement de la synchronisation

Lorsque la synchronisation est lancée de manière asynchrone (soit via le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FsO1QMqV67npb82uSAwxY%2Fimage.png?alt=media&amp;token=319e381c-bc76-4fa5-a277-195666a4629f" alt="" data-size="line">avec la case **Run Outbound Sync synchronously** décoché, soit via la tâche planifiée), XSync génère un message "**Outbound sync on X all 'invoices'**" qui va être traité par un worker.

Comme expliqué lors de la configuration, XSync synchronise les données avec Cn285 en plusieurs pages. Une page va générer un message "**Outbound Sync a batch of 'invoice()'**" qui lui même va générer plusieurs messages "**Outbound** **Sync Cn**" en fonction de la taille définie par le champ **Sync Batch Size**.

La visualisation des messages et l'avancement de la synchronisation est possible depuis le menu **Cn / Qs / Messages**. ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FmqbeeUV9RPKVkG7AVR00%2Fimage.png?alt=media\&token=a4aaec9b-e071-4c2c-8764-d642205f94f2)

![Exemple de message généré par XSync pour synchroniser une page de 10 Invoices.](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FUytYjLHSXE6XuQS9xJhr%2Fimq_message_outbound_invoice.PNG?alt=media\&token=e0b61304-2fce-40a7-9dfe-5f0cc4957e2a)


# Invoice Status Inbound Sync

## Introduction

Il est possible de suivre dans Cn285, l'avancement du statut d'une facture (ou élément de facturation) déjà synchronisée avec Netsuite.&#x20;

## Configuration

![Configuration de l'Invoice Sync Status](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FcXaKFkTpRjfWApATN0qb%2Fimage.png?alt=media\&token=30d2da28-4d1c-420a-bc4d-d57163141013)

Pour mettre à jour le statut de paiement des factures déjà synchronisées, il est nécessaire de configurer le champ **Local Invoice Search.**&#x20;

Le résultat de cette recherche est ensuite découpé en une ou plusieurs pages. La taille de ces pages est paramétrable par le champ **Synced Invoice Page Size**, par défaut définie à **30**.

{% hint style="danger" %}
Nous vous recommandons de ne pas modifier la valeur du champ **Synced Customers Page Size**. Elle permet de garantir les performances optimales pour une synchronisation avec Netsuite.&#x20;
{% endhint %}

Il est également possible de définir un [User defined Mappers](/cn285-documentation/menu-xsync/user-defined-mappers) via le champ **User Mapper**.

Les différents statuts visibles depuis la vue des Invoices sont:

* **Synced - Pending Approval** : En attente de validation de la facture
* **Synced - Open** : En cours de paiement
* **Synced - Paid In Full** : Payé
* **Synced - Refused** : Refusé

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FXJzI5qFbK4B2RIYWShl8%2Fimage.png?alt=media\&token=32290020-9a39-42a6-af80-4d595bc0ece5)

## Synchronisation entrante des clients

La synchronisation des statuts depuis Cn285 peut être lancée via deux modes :

* Mode manuel
* Mode automatique

### Mode manuel <a href="#mode-manuel" id="mode-manuel"></a>

Il est possible de lancer une synchronisation globale des statuts en cliquant sur le bouton<img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FVmtbhQkP5K7O2xIlgIlb%2Fimage.png?alt=media&amp;token=c2a1fd99-6e75-42a9-885c-a74dcd1e7f22" alt="" data-size="line"> situé dans l'onglet **Inbound Sync** du formulaire du **Remote System**.Cette synchronisation se fera toujours de manière asynchrone.

### Mode automatique <a href="#mode-automatique" id="mode-automatique"></a>

Cn285 permet aussi une synchronisation automatique des statuts. Cette synchronisation se lance via un CRON (tâche) qui s'exécute périodiquement. Pour configurer ou visualiser ce CRON, veuillez vous référer à la rubrique [Workers](/cn285-documentation/menu-qs/workers).

![Exemple de configuration du Daemon.](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FVxURqTfKotvDZA5XeSF9%2Fimage.png?alt=media\&token=2cc88627-17c7-417f-aa87-fbbc8c37a207)

## Visualiser l'avancement de la synchronisation <a href="#visualiser-lavancement-de-la-synchronisation" id="visualiser-lavancement-de-la-synchronisation"></a>

Lorsque la synchronisation est manuelle via le bouton<img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FVmtbhQkP5K7O2xIlgIlb%2Fimage.png?alt=media&amp;token=c2a1fd99-6e75-42a9-885c-a74dcd1e7f22" alt="" data-size="line">ou automatique (via le CRON), celle-ci est lancée en mode asynchrone. XSync génère un message "**Syncs all 'invoices'**" qui va être traité par un worker. Comme expliqué lors de la configuration, XSync synchronise les données avec Cn285 en plusieurs pages. Une page va générer un message "**Sync page 1/X**" qui lui même va générer plusieurs messages "**Sync Invoice**" en fonction de la taille définie par le champ **Synced Invoices Page Size**. Pour visualiser ces messages et ainsi suivre l'avancement de la synchronisation, rendez-vous dans le menu **Cn / Qs / Messages**.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FjXALZBV5rcxWNrLmh0on%2Fimq_message_inbound_invoice.PNG?alt=media\&token=673b9638-b77f-4d52-8d33-26bc85f33d1d)


# Bank Account Sync

## Introduction

XSync permet aussi de synchroniser les comptes bancaires avec Netsuite. La synchronisation entrante et sortante est activée lorsque l'option **Synchronize Bank Account** du **Remote System** est cochée et correctement configurée ([Configuration XSync](/cn285-documentation/menu-xsync/xsync-for-netsuite/configuration-xsync#configuration-du-synchronize-bank-account)).

## Configuration

### Synchronisation entrante

La synchronisation entrante des comptes bancaires est effectuée lorsque le client est synchronisé avec Cn285. Cette synchronisation ne nécessite aucune configuration supplémentaire.

### Synchronisation sortante

![Exemple de paramétrage pour la synchronisation sortante des Bank Account.](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FlBJ8MBRGhXdJMp3rMmdq%2Fimage.png?alt=media\&token=4f62053c-23e9-462e-8d5d-3114a3ff4898)

XSync dispose d'un système de recherche permettant de définir les comptes bancaires à synchroniser avec le **Remote System**. Cette recherche est paramétrable via le champ **Bank Account Selection.**

Le champ **Last Bank Account Outbound Sync** correspond au timestamp de la dernière synchronisation sortante effectuée. Ce timestamp est utilisé comme critère supplémentaire dans la recherche **Bank Account Selection** et permet de ne sélectionner que les comptes bancaires de Cn285 qui ont une date de création / modification postérieure à ce timestamp.&#x20;

Les données renvoyées par la recherche seront ensuite synchronisées avec Netsuite en une ou plusieurs pages (appelé aussi batch). La taille de ces pages est paramétrable par le champ **Sync Batch Size,** par défaut défini à **10**.

{% hint style="danger" %}
Nous vous recommandons de ne pas modifier la valeur du champ **Sync Batch Size**. Elle permet de garantir les performances optimales pour une synchronisation vers Netsuite.
{% endhint %}

Plusieurs paramètres peuvent aussi être configurés dans cette rubrique:

* **User Mapper**: XSync possède de base un driver permettant de faire correspondre un champ Cn285 avec un champ standard Netsuite. Pour synchroniser des données Cn285 avec des champs Netsuite personnalisés il convient de surcharger le driver standard avec un [User defined Mappers](/cn285-documentation/menu-xsync/user-defined-mappers).
* **Q for Outbound Customer sync**: Permet de définir une queue dédiée uniquement pour la synchronisation sortante des comptes bancaires.
* **Run Outbound Sync synchronously**: Lorsque cette option est cochée, la synchronisation est effectuée de manière synchrone. Nous vous recommandons d'utiliser cette option uniquement en mode debug.

Un compte bancaire synchronisé depuis Cn285 comportera la mention **(Created By Cn285)**. Cette mention permet d'indiquer dans Netsuite que ce compte bancaire nécessite une vérification. La mention est paramétrable avec le champ **Suffix Name Bank Account** disponible dans la rubrique **Netsuite by Cn285** du menu **Configuration / Settings.**

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fw4uYwRPk8ACcrckd7l1F%2Fimage.png?alt=media\&token=c3fe399e-c901-459f-aad2-6089c23dab11)

## Lancement de la synchronisation

La synchronisation sortante des comptes bancaires depuis Cn285 peut être lancée via deux modes:

* Mode manuel
* Mode automatique

### Mode manuel

Le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FQ9S5Y0QA5YGwy5AwprKS%2Fimage.png?alt=media&amp;token=84f9b345-7d45-414d-bd7f-7712626c6e8a" alt="" data-size="line">situé dans l'onglet **Outbound Sync** du **Remote System** permet de lancer la synchronisation sortante manuellement avec les critères définis ci-dessus.

Si le champ **Run Outbound Sync synchronously** n'est pas coché alors cette synchronisation est lancée de manière aysnchrone.

### Mode automatique

Il n'existe pas de tâche planifiée pour la synchronisation sortante des comptes bancaire. Les comptes bancaires sont automatiquement synchronisés lorsque le client associé au compte bancaire est synchronisé avec Netsuite.

{% hint style="info" %}
Lorsqu'un compte bancaire est ajouté à un client, la date de modification de ce client est également modifié pour permettre de synchroniser ce client.
{% endhint %}

## Suivi de la synchronisation sortante

Lorsque la synchronisation est lancée de manière asynchrone, XSync génère un message "**Outbound sync on X all 'Bank Account'**" qui va être traité par un worker. Comme expliqué lors de la configuration, XSync synchronise les données avec Cn285 en plusieurs pages. Une page va générer un message "**Outbound Sync a batch of 'bank account()'**" qui lui même va générer plusieurs messages "**Outbound** **Sync Cn**" en fonction de la taille définie par le champ **Sync Batch Size**. La visualisation des messages et l'avancement de la synchronisation est possible depuis le menu **Cn / Qs / Messages**.​


# Journal Entries Outbound Sync

## Introduction

XSync permet de synchroniser des entrées de journal avec Netsuite. Ces entrées de journal peuvent être issues d'un journal de synthèse ([Summary Journals](/cn285-documentation/menu-accounting/summary-entities/summary-journals)) ou d'un journal classique.

## Configuration

![Exemple de configuration des Memo FEC ainsi que du mémo sur les lignes](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F3OfMycWSUexuGV6WXKUg%2Fimage.png?alt=media\&token=5c558db2-8ecd-4bd3-b1ce-c3f4928e2c34)

Lors de la synchronisation d'une entrée de journal, XSync synchronise le Mémo FEC ainsi qu'un mémo sur la ligne de l'entrée. Ces deux paramètres peuvent être personnalisables depuis la vue détaillée d'un journal dans l'onglet XSync

{% hint style="danger" %}
La modification de ces champs requiert des compétences techniques. L'aide contextuelle permet d'indiquer les champs accessibles.
{% endhint %}

### Synchronisation sortante

![Exemple de paramétrage pour la synchronisation des entrées d'un journal](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FTPHKulGLMV4Al2YrUF7X%2Fimage.png?alt=media\&token=1478d50c-9875-41bb-802c-4ab0e40dba93)

XSync permet de sélectionner le journal qui sera synchronisé avec NetSuite via le champ **Journal**.

Les entrées de ce journal sont ensuite découpées en une ou plusieurs pages. La taille de ces pages est paramétrable par le champ **Synced Batch Size**, par défaut définie à **10**.

{% hint style="danger" %}
Nous vous recommandons de ne pas modifier la valeur du champ **Synced Batch Size**. Elle permet de garantir les performances optimales pour une synchronisation avec NetSuite.&#x20;
{% endhint %}

Plusieurs paramètres sont aussi disponibles dans cette rubrique:

* **User Mapper**: XSync possède de base un driver permettant de faire correspondre un champ Cn285 avec un champ standard NetSuite. Pour synchroniser des données Cn285 avec des champs NetSuite personnalisés il convient de surcharger le driver standard avec un [User defined Mappers](/cn285-documentation/menu-xsync/user-defined-mappers).
* **Run Outbound Sync synchronously**: Lorsque cette option est cochée, la synchronisation est effectuée de manière synchrone. Nous vous recommandons d'utiliser cette option uniquement lorsque vous souhaitez debugger.
* **Last Journal Entries Outbound Sync:** Dernière date de synchronisation sortantes des Journal Entries
* **Generate Cn285 extended values**: Lorsque cette option est cochée, Cn285 va synchroniser des champs supplémentaires non standards à NetSuite, ces champs nécessitent donc une création dans celui-ci (voir [Cn285 extended values](/cn285-documentation/menu-xsync/xsync-for-netsuite/cn285-extended-values)).

## Bloquer la synchronisation sortante des écritures de synthèse

Il est possible de ne pas synchroniser avec le Remote System certaines écritures de synthèse via la case à cocher 'Block Outbound Sync' disponible dans la vue formulaire de l'entrée de l'écriture de synthèse <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FnTW1DgJGKAqQwGk1DMrp%2Fimage.png?alt=media&amp;token=f5504b7f-8ad9-43ae-aceb-315c90c48740" alt="" data-size="line">.

Il est également possible de sélectionner plusieurs entrées d'écritures de synthèse et de les bloquer via le bouton 'Block Outbound Sync' disponible sous le menu 'Action'.

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FMvnZqrymYA4eLQl2vHu1%2Fimage.png?alt=media&amp;token=8aa09485-7002-4745-9625-c868ca656929" alt=""><figcaption></figcaption></figure>

## Lancement de la synchronisation

La synchronisation sortante des entrées d'un journal depuis Cn285 peut être lancée uniquement de façon manuelle.

Le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FQ9S5Y0QA5YGwy5AwprKS%2Fimage.png?alt=media&amp;token=84f9b345-7d45-414d-bd7f-7712626c6e8a" alt="" data-size="line">situé dans l'onglet **Outbound Sync** du **Remote System** permet de lancer cette synchronisation sortante.

Si le champ **Run Outbound Sync synchronously** n'est pas coché alors cette synchronisation est lancée de manière aysnchrone.

## Suivi de la synchronisation sortante

Lorsque la synchronisation est lancée de manière asynchrone, XSync génère un message "**Outbound sync on 'X' all 'entries' of X'**" qui va être traité par un worker. Comme expliqué lors de la configuration, XSync synchronise les données avec Cn285 en plusieurs pages. Une page va générer un message "**Outbound Sync a batch of 'journal\_entry()'**" qui lui même va générer plusieurs messages "**Outbound** **Sync Cn**" en fonction de la taille définie par le champ **Sync Batch Size**. La visualisation des messages et l'avancement de la synchronisation est possible depuis le menu **Cn / Qs / Messages**.​


# Cn285 extended values

## Introduction

Cn285 permet de synchroniser des champs dit "**extended**". Ces champs sont des champs non standards dans Netsuite et nécessite une création dans celui-ci.&#x20;

{% hint style="info" %}
La synchronisation des champs extended est livrée en standard d'XSync et ne nécessite pas la création d'un [User defined Mappers](/cn285-documentation/menu-xsync/user-defined-mappers).
{% endhint %}

Afin de synchroniser ces champs il faut donc:

* Cocher la case **Generate Cn285 extended values** disponible dans les options de synchronisation des différentes entités
* Créer les champs dans Netsuite

## Invoice

Lors d'une synchronisation sortante, les champs **extended** suivants sont synchronisés (si l'option est activée):

* **custbody\_cn285InvoiceURL**: Identifiant du champ contenant un lien permettant d'ouvrir la facture synchronisée dans Cn285.

## Journal Entries

Lors d'une synchronisation des entrées d'un journal, les champs **extended** suivants sont synchronisées:

* **custbody\_cn285JournalEntryURL**: Identifiant du champ contenant un lien permettant d'ouvrir l'entrée synchronisée dans Cn285.
* **custbody\_cn285AccountJournalCode:** Identifiant du champ contenant le code du journal qui a été synchronisé. Cette information permet de définir depuis quel journal cette entrée à été synchronisé directement dans Netsuite.

## Création des champs dans Netsuite

Dans **Netsuite**, sous **Customization / Lists, Records & Fields / Transaction Body Fields**, cliquer sur **New**

![Exemple de création du champ custbody\_cn285JournalEntryURL](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FlpVw9V7P2lEgtPIMtaQE%2Fcreation_champ_custom.PNG?alt=media\&token=8be3c3d2-0817-4899-9bf4-5d4a0028d6d8)

Renseigner ensuite le nom du champ ainsi que son identifiant.

{% hint style="info" %}
Nous vous recommandons de nommer votre champ avec un préfix/suffix "**Cn285**", permettant de visualiser que ce champ est strictement rempli de Cn285.
{% endhint %}

Dans l'onglet "**Applies To**", cocher les cases dans lesquelles ce champ sera appliqué. Dans l'exemple ci-dessus, le champ crée concerne uniquement les journaux. La case **Journal** sera donc cochée.&#x20;

L'onglet "**Display**" permet de sélectionner l'emplacement du champ dans la vue.


# XSync for Odoo

## Introduction

XSync for Odoo est un module d'XSync permettant la communication avec une instance Odoo. Ce module intègre des fonctionnalités permettant de synchroniser des données en entrée et en sortie (clients, produits, comptes en banque,...).

XSync for Odoo gère les synchronisations entrantes ou sortantes des versions d'Odoo ci-dessous:

* Odoo 14 Community / Enterprise
* Odoo 15 Community / Enterprise


# Configuration Odoo

## Introduction

La synchronisation entre les deux systèmes distants implique une configuration d'Odoo.

{% hint style="info" %}
La configuration de votre instance Odoo nécessite d'avoir un compte avec accès aux configurations de cette instance.
{% endhint %}

## Création d'un utilisateur dédié à XSync

XSync nécessite d'avoir un utilisateur actif dans votre instance Odoo afin de synchroniser les différentes entitées entre les 2 [Remote System](/cn285-documentation/menu-xsync/remote-system).

Dans le menu principal, cliquer sur **Paramètres /  Utilisateurs et sociétés / Utilisateurs.** Cliquer ensuite sur '**Créer**'.

Configurer ensuite l'utilisateur:

* **Nom**: XSync Cn285
* **Adresse électronique**: XSync Cn285
* **Types d'utilisateur**: Utilisateur interne
* **Comptabilité**: Paramétrage facturation
* **Administration**: Droits d'accès

Cocher ensuite les cases suivantes:

* **Comptabilité analytique**
* **Création de contact**

Cliquer ensuite sur 'Sauver'. Modifier ensuite le mot de passe via le bouton **Action / Modifier le mot de passe**.&#x20;

## Création des filtres personnalisés

XSync utilise deux filtres personnalisés afin de récuperer les données à synchroniser.

Pour accéder aux filtres personnalisés, il est nécessaire d'avoir activer le mode **Développeur** sur votre instance Odoo. Pour cela, cliquer sur le bouton **Activer le mode développeur** disponible en bas de la page dees paramètres généraux.

Une fois que le mode développeur est actif, il est nécessaire d'accéder aux filtres personnalisés disponible dans le menu **Paramètres /  Technique / Filtres personnalisés**.

### Filtre Produit

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FPhSaUUYWg5OOCk7CNZ26%2Fimage.png?alt=media&amp;token=d92bf11d-2f1d-4a71-b362-4433101da007" alt=""><figcaption><p>Configuration du filtre personnalisé des Produits.</p></figcaption></figure>

Dans le menu **Filtres personnalisés,** cliquer sur le bouton **Créer.** Configurer ensuite le filtre avec les options suivantes:

* **Nom de Filtre**: XSync Product
* **Modèle**: Product Template

Modifier ensuite le domaine en fonction de vos paramètres. Par défaut XSync synchronisera tous les produits disponibles dans votre instance Odoo.

Cliquer ensuite sur **Sauver.**

### Filtre Client

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FkSMwD6o9bxxcwbRidTeQ%2Fimage.png?alt=media&amp;token=a44e47f6-7565-4129-9d5a-bcf28838b5bc" alt=""><figcaption><p>Configuration du filtre personnalisé des Clients.</p></figcaption></figure>

Dans le menu **Filtres personnalisés,** cliquer sur le bouton **Créer.** Configurer ensuite le filtre avec les options suivantes:

* **Nom de Filtre**: XSync Customer
* **Modèle**: Contact

Modifier ensuite le domaine avec la valeur suivante:

```
['&', ['is_company', '=', True], ['customer_rank', '=', 1]]
```

Ce domaine permet de sélectionner uniquement les clients qui sont des compagnies facturables. Les contacts & adresses de ces clients seront automatiquement synchronisé par XSync lors de la synchronisation de ceux-ci.

Cliquer ensuite sur **Sauver.**

## Génération de la clé API

Depuis Odoo 14 il est désormais possible de générer une clé API pour un utilisateur. Cet clé API remplace le mot de passe lors de l'authentification ([documentation Odoo](https://www.odoo.com/documentation/14.0/developer/api/external_api.html#api-keys)) .

Si vous souhaitez utilisé une clé API dans XSync, il est nécessaire de se connecter sur le compte voulue.\
Une fois connecté sur ce compte, aller dans dans votre compte en cliquant sur le profil en haut à droite et cliquer sur "Préférences".

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FeGn9iAooBxLFXKrpRqRQ%2Fimage.png?alt=media&amp;token=4671cda0-3b2b-456d-91cb-c7f6d5c96815" alt=""><figcaption></figcaption></figure>

Aller ensuite dans l'onglet "Sécurité du compte" et cliquer sur "Nouvelle clef API"

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Flj5jFg14nFkpyaaBqduM%2Fimage.png?alt=media&amp;token=149966e2-7bc3-46b6-a36f-10d0a9cc65af" alt=""><figcaption></figcaption></figure>

Le mot de passe du compte ainsi qu'une description pour cette clé sera alors demandé. Renseigner les informations puis cliquer sur "Générer clef".

La clé API sera alors affiché à l'écran. Cette clé servira à XSync afin de se connecter à l'instance Odoo.

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FqyOcJ8A34JO8C3D6YwZS%2Fimage.png?alt=media&amp;token=81300654-871e-400e-80a0-b3e8f533e8eb" alt=""><figcaption><p>Example de clé API</p></figcaption></figure>

{% hint style="danger" %}
Noter bien la clé, celle-ci ne sera plus accessible par la suite.
{% endhint %}


# Configuration XSync

Cette documentation nécessite une configuration de votre instance Odoo et la création d’un Remote System avec une version 'Odoo' dans Cn285.

## Introduction

Après avoir réalisé la [Configuration Odoo](/cn285-documentation/menu-xsync/xsync-for-odoo/configuration-odoo), il est nécessaire de configurer XSync dans Cn285 pour que les deux systèmes puissent communiquer.

## Configuration environnement staging et production

XSync permet de configurer des connexions à un environnement de staging ou un environnement de production en fonction de votre environnement Cn285.

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FWY4f3m2gRBm85VTKvMVU%2Fodoo_xsync.PNG?alt=media&amp;token=3204b49f-10b0-4d0e-83e3-f3f0145240fe" alt=""><figcaption><p>Exemple de configuration d'XSync vers un Odoo staging</p></figcaption></figure>

### Environnement

Depuis l'onglet Odoo du **Remote System**, configurer les champs staging/production selon votre besoin:

* **Odoo Base URL**: L’url du système distant (exemple: <https://demo.odoo.com>)
* **Database Name**: Le nom de la base de donnée sur laquelle XSync va se connecter.
* **Username**: Le nom utilisateur sur lequel XSync va se connecter.
* **API Key:** La clé API ([Configuration Odoo](/cn285-documentation/menu-xsync/xsync-for-odoo/configuration-odoo#generation-de-la-cle-api)) ou le mot de passe du compte utilisateur.

Après avoir configuré, cliquer sur le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FZzHWyDtPkMlTPJhxE18K%2Fimage.png?alt=media&amp;token=04322c2f-788f-4011-bd4c-0979598e0c3e" alt="" data-size="line"> pour vérifier les informations et établir la connexion avec le système distant.

{% hint style="info" %}
Le résultat de la vérification de la connexion est affiché dans le champ **Connection Status**

Si la connexion entre les deux systèmes distant est réussie, le message "Connection Success !" sera affiché.
{% endhint %}

### Paramètres

Des paramètres supplémentaires sont nécessaires lors d'une synchronisation de factures ou de clients.

Les différents paramètres sont:

* **Invoice Journal Id**: L'identifiant du journal des ventes dans Odoo.
* **Credit Memo Journal Id**: L'identifiant d'un journal permettant d'enregistrer les avoirs.
* **Journal Entries Id**: L'identifiant d'un journal permettant d'enregistrer les diverses opérations comptables. Ce journal sera, par exemple, utilisé lors de la synchronisation des opérations de reconnaissance de revenu.

Une fois qu'Odoo et XSync sont correctement configurés, la configuration de la synchronisation (entrante ou sortante) pour les différentes entités à synchroniser est possible.


# Customers Inbound Sync

## Introduction

Xsync permet la synchronisation entrante des clients depuis Odoo. La configuration de cette synchronisation est possible depuis le groupe **Customers** dans l'onglet **Inbound Sync** du **Remote System**.

## Configuration

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FpVjOVW1lB2RYVLWKIISK%2Fimage.png?alt=media&amp;token=69610671-d6e8-49d9-b950-6686988adfaf" alt=""><figcaption><p>Exemple de configuration pour la synchronisation entrante des clients</p></figcaption></figure>

Pour sélectionner les clients à synchroniser, XSync utilise le champ **Customers Odoo Filter Name** qui correspond au nom du filtre personnalisé créée dans Odoo ([Configuration Odoo](/cn285-documentation/menu-xsync/xsync-for-odoo/configuration-odoo#filtre-client)) ainsi que le champ **Sync Customers modified since** en tant que critère de recherche pour interroger Odoo.

{% hint style="info" %}
Si le champ **Sync Customers modified since** n'est pas défini:

* Le filtre personnalisé d'Odoo renverra tous les clients à synchroniser avec Cn285
* &#x20;La valeur du champ prendra le timestamp de cette synchronisation

Si le champ est défini, le filtre personnalisé d'Odoo ne renverra que les clients dont la date de modification est postérieure à cette valeur.&#x20;
{% endhint %}

Le résultat renvoyé par le filtre est ensuite synchronisé avec Cn285 en une ou plusieurs pages. La taille de ces pages est paramétrable par le champ **Synced Customers Page Size,** par défaut définie à **30**.

{% hint style="danger" %}
Nous vous recommandons de ne pas modifier la valeur du champ **Synced Customers Page Size**. Elle permet de garantir les performances optimales pour une synchronisation avec Odoo. &#x20;
{% endhint %}

Plusieurs paramètres peuvent aussi être configurés dans cette rubrique :

* **Force Refresh of Sync Customers**: Lorsque cette option est cochée, XSync forcera le rafraichissement des données client.
* **User Mapper**: XSync possède de base un driver permettant de faire correspondre un champ standard Odoo avec un champ Cn285. Pour synchroniser des champs Odoo personnalisés il convient de surcharger le driver standard avec un [User defined Mappers](/cn285-documentation/menu-xsync/user-defined-mappers).
* **Don’t Update ‘Modified Since’**: Lorsque cette option est cochée, le champ **Sync Customers modified since** ne sera pas mis à jour avec le timestamp de la synchronisation et conservera la valeur de la précédente.
* **Local Customers Search**: Il est possible de spécifier à XSync les entités locales à mettre à jour depuis Odoo via une recherche Cn285. On peut, par exemple, sélectionner les clients par pays, par ville, etc ...

## Synchronisation entrante des clients

La synchronisation des clients depuis Cn285 peut être lancée via deux modes :

* Mode manuel
* Mode automatique

### Mode manuel

Il est possible de lancer une synchronisation globale des clients en cliquant sur le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FwhD2u29J1RxMKtbkCIgy%2Fimage.png?alt=media\&token=34cfa0fe-944d-4ced-aa94-e8ecaa7816df)situé dans l'onglet **Inbound Sync** du formulaire du **Remote System**.&#x20;

Cette synchronisation globale prend les critères de recherche définis dans l'onglet **Inbound Sync** pour sélectionner les clients à synchroniser.

Il est également possible de lancer une synchronisation unitaire en cliquant sur le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FDF3QssP18EIIYrcXff3y%2Fimage.png?alt=media\&token=9c20da48-d5b6-4682-be5b-2d08ec283f28)situé dans l'onglet **XSync** du formulaire **Customer**. La synchronisation unitaire est uniquement possible lorsque le customer a déjà été synchronisé par XSync.

{% hint style="info" %}
La synchronisation unitaire permet de mettre à jour rapidement un client sans avoir à resynchroniser tous les clients déjà existants. Cette synchronisation est synchrone et se fait donc en direct, contrairement à la synchronisation globale qui elle est asynchrone.
{% endhint %}

### Mode automatique

Cn285 permet aussi une synchronisation automatique des clients. Cette synchronisation se lance via un CRON (tâche) qui s'exécute périodiquement. Pour configurer ou visualiser ce CRON, veuillez vous référer aux [Workers](/cn285-documentation/menu-qs/workers).

![Exemple de configuration du Daemon](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FKFgldGAEZAKTBt3idoDI%2Fimage.png?alt=media\&token=d0b07ebd-f9d9-45e1-a2f7-799c1c503211)

## Visualiser l'avancement de la synchronisation

Lorsque la synchronisation est manuelle via le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FwhD2u29J1RxMKtbkCIgy%2Fimage.png?alt=media\&token=34cfa0fe-944d-4ced-aa94-e8ecaa7816df)ou automatique (via le CRON), celle-ci est lancée en mode asynchrone. XSync génère un message "**Syncs all 'customers'**" qui va être traité par un worker.

Comme expliqué lors de la configuration, XSync synchronise les données avec Cn285 en plusieurs pages. Une page va générer un message "**Sync page 1/X**" qui lui même va générer plusieurs messages "**Sync Customer**" en fonction de la taille définie par le champ **Synced Customers Page Size**.

Pour visualiser ces messages et ainsi suivre l'avancement de la synchronisation, rendez-vous dans le menu **Cn / Qs / Messages**. ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FmqbeeUV9RPKVkG7AVR00%2Fimage.png?alt=media\&token=a4aaec9b-e071-4c2c-8764-d642205f94f2)

![Exemple de message généré par XSync pour synchroniser une page de 30 Customers.](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FNF8vPw97aR5QduGZBLxc%2Fimq_message_inbound_customer.PNG?alt=media\&token=c6f47bcc-a035-4217-a91f-496a51e5529f)


# Customers Outbound Sync

## Introduction

Xsync permet la synchronisation sortante des clients vers un autre système. La configuration de cette synchronisation est possible depuis le groupe **Customers** dans l'onglet **Outbound Sync** du **Remote System**.

## Configuration

![Exemple de paramétrage pour la synchronisation sortante des Customers.](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FZQ18gMOJjGTT8Vct3JRJ%2Foutbound_customer.PNG?alt=media\&token=c18caf02-a093-4160-83fe-1d5743ab90f9)

XSync dispose d'un système de recherche permettant de définir les clients à synchroniser avec le **Remote System**. Cette recherche est paramétrable via le champ **Customer Selection.**

Le champ **Last Customers Outbound Sync** correspond au timestamp de la dernière synchronisation sortante effectuée. Ce timestamp est utilisé comme critère supplémentaire dans la recherche **Customer Selection** et permet de ne sélectionner que les clients de Cn285 qui ont une date de création / modification postérieure à ce timestamp.&#x20;

Un critère supplémentaire sera automatiquement ajouté à la recherche. Ce critère permet de ne sélectionner que les clients dont le **Master System** est différent du **Remote System** sur lequel la synchronisation va être effectuée.

Les données renvoyées par la recherche seront ensuite synchronisées avec Odoo en une ou plusieurs pages (appelé aussi batch). La taille de ces pages est paramétrable par le champ **Sync Batch Size,** par défaut défini à **10**.

{% hint style="danger" %}
Nous vous recommandons de ne pas modifier la valeur du champ **Sync Batch Size**. Elle permet de garantir les performances optimales pour une synchronisation vers Odoo.
{% endhint %}

Plusieurs paramètres peuvent aussi être configurés dans cette rubrique:

* **User Mapper**: XSync possède de base un driver permettant de faire correspondre un champ Cn285 avec un champ standard Odoo. Pour synchroniser des données Cn285 avec des champs Odoo personnalisés il convient de surcharger le driver standard avec un [User defined Mappers](/cn285-documentation/menu-xsync/user-defined-mappers).
* **Q for Outbound Customer sync**: Permet de définir une queue dédiée uniquement pour la synchronisation sortante des clients.
* **Run Outbound Sync synchronously**: Lorsque cette option est cochée, la synchronisation est effectuée de manière synchrone. Nous vous recommandons d'utiliser cette option uniquement en mode debug.

## Lancement de la synchronisation

La synchronisation sortante des clients depuis Cn285 peut être lancée via deux modes:

* Mode manuel
* Mode automatique

### Mode manuel

Le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FTwXZcJwsEQ1lG2G1danh%2Fimage.png?alt=media&amp;token=be098306-c869-4160-bdd7-c5ff5d6be79f" alt="" data-size="line">situé dans l'onglet **Outbound Sync** du **Remote System** permet de lancer la synchronisation sortante manuellement avec les critères définis ci-dessus.

Si le champ **Run Outbound Sync synchronously** n'est pas coché alors cette synchronisation est lancée de manière aysnchrone.

### Mode automatique

La synchronisation de manière automatique est effectuée par une action planifiée qui s'exécute périodiquement. La documentation concernant les [Workers](/cn285-documentation/menu-qs/workers) permet de visualiser cette tâche.

![Exemple de configuration du Daemon](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FXCiPyyBbBVdhPpg75M0X%2Fimage.png?alt=media\&token=6e41ad06-0d55-495a-85bb-c674e964f73b)

## Visualiser l'avancement de la synchronisation

Lorsque la synchronisation est lancée de manière asynchrone (soit via le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FaxlBqutZ3V05Cijog1Wr%2Fimage.png?alt=media&amp;token=1dd014fe-90b6-41c2-ba37-14d88589b9d3" alt="" data-size="line">avec la case **Run Outbound Sync synchronously** décoché, soit via la tâche planifiée), XSync génère un message "**Outbound sync on X all 'customers'**" qui va être traité par un worker.

Comme expliqué lors de la configuration, XSync synchronise les données avec Cn285 en plusieurs pages. Une page va générer un message "**Outbound Sync a batch of 'customer()'**" qui lui même va générer plusieurs messages "**Outbound** **Sync Cn**" en fonction de la taille définie par le champ **Sync Batch Size**.

La visualisation des messages et l'avancement de la synchronisation est possible depuis le menu **Cn / Qs / Messages**. ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FmqbeeUV9RPKVkG7AVR00%2Fimage.png?alt=media\&token=a4aaec9b-e071-4c2c-8764-d642205f94f2)

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fm4oGzoi60qPZpuH7jhi0%2Fimq_message_outbound_customer.PNG?alt=media&amp;token=8e735027-076e-47eb-b776-b3d904b95658" alt=""><figcaption><p>Exemple de message lors de la synchronisation sortante avec Odoo</p></figcaption></figure>


# Product Inbound Sync

## Introduction

Xsync permet la synchronisation entrante des produits depuis Odoo. La configuration de cette synchronisation est possible depuis le groupe **Products** dans l'onglet **Inbound Sync** du **Remote System**.

## Configuration

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FFSstgU5zsaRtZxs1GhKM%2Fimage.png?alt=media&amp;token=e49f7f05-a927-492f-bbb4-2f23c33a682e" alt=""><figcaption><p>Exemple de paramétrage pour la synchronisation entrante des Products</p></figcaption></figure>

Pour sélectionner les produits à synchroniser, XSync utilise le champ **Products Odoo Filter Name** qui correspond au nom du filtre personnalisé créé dans Odoo ([Configuration Odoo](/cn285-documentation/menu-xsync/xsync-for-odoo/configuration-odoo#filtre-produit)) ainsi que le champ **Sync Products modified since** en tant que critère de recherche pour interroger Odoo.

{% hint style="info" %}
Si le champ **Sync Products modified since** n'est pas défini:

* Le filtre personnalisé d'Odoo renverra tous les produits à synchroniser avec Cn285
* &#x20;La valeur du champ prendra le timestamp de cette synchronisation

Si le champ est défini, le filtre personnalisé d'Odoo ne renverra que les produits dont la date de modification est postérieure à cette valeur.&#x20;
{% endhint %}

Le résultat renvoyé par le filtre personnalisé est ensuite synchronisée avec Cn285 en une ou plusieurs pages. La taille de ces pages est paramétrable par le champ **Synced Products Page Size,** par défaut définie à **30**.

{% hint style="danger" %}
Nous vous recommandons de ne pas modifier la valeur du champ **Synced Products Page Size**. Elle permet de garantir les performances optimales pour une synchronisation avec Odoo. &#x20;
{% endhint %}

Plusieurs paramètres peuvent aussi être configurés dans cette rubrique :

* **Force Refresh of Sync Products** : Lorsque cette option est cochée, XSync forcera le rafraichissement des données produits.
* **User Mapper**: XSync possède de base un driver permettant de faire correspondre un champ standard Odoo avec un champ Cn285. Pour synchroniser des champs Odoo personnalisés, il convient de surcharger le driver standard avec un [User defined Mappers](/cn285-documentation/menu-xsync/user-defined-mappers).
* **Don’t Update ‘Modified Since’**: Lorsque cette option est cochée, le champ **Sync Customers modified since** ne sera pas mis à jour avec le timestamp de la synchronisation et conservera la valeur de la précédente.
* **Local Products Search**: Il est possible de spécifier à XSync les entités locales à mettre à jour depuis Odoo via une recherche Cn285. On peut, par exemple, sélectionner les produits par prix, par catégorie, etc ...

## Synchronisation entrante des produits

La synchronisation des produits depuis Cn285 peut être lancée via deux modes :

* Mode manuel
* Mode automatique

### Mode manuel

Il est possible de lancer une synchronisation globale des produits en cliquant sur le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FDSpxXl3wAq7H3ksWfNas%2Fimage.png?alt=media\&token=98337dd1-f1ae-42c4-ab9a-cfafc567d29f)situé dans l'onglet **Inbound Sync** du formulaire du **Remote System**.&#x20;

Cette synchronisation globale prend les critères de recherche définis dans l'onglet **Inbound Sync** pour sélectionner les produits à synchroniser.

Il est également possible de lancer une synchronisation unitaire en cliquant sur le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FDF3QssP18EIIYrcXff3y%2Fimage.png?alt=media\&token=9c20da48-d5b6-4682-be5b-2d08ec283f28)situé dans l'onglet **XSync** du formulaire produit. La synchronisation unitaire est uniquement possible lorsque le produit a déjà été synchronisé par XSync.

{% hint style="info" %}
La synchronisation unitaire permet de mettre à jour rapidement un produit sans avoir à resynchroniser tous les produits déjà existants. Cette synchronisation est synchrone et se fait donc en direct, contrairement à la synchronisation globale qui elle est asynchrone.
{% endhint %}

### Mode automatique

Cn285 permet aussi une synchronisation automatique des produits. Cette synchronisation se lance via un CRON (tâche) qui s'exécute périodiquement. Pour configurer ou visualiser ce CRON, veuillez vous référer aux [Workers](/cn285-documentation/menu-qs/workers).

![Exemple de configuration du Daemon](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FBuLKu9W2esUk1i31XJrF%2Fimage.png?alt=media\&token=d3910f39-94c7-4e98-96ca-96008a3f5057)

## Visualiser l'avancement de la synchronisation

Lorsque la synchronisation est manuelle via le bouton ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FDSpxXl3wAq7H3ksWfNas%2Fimage.png?alt=media\&token=98337dd1-f1ae-42c4-ab9a-cfafc567d29f)ou automatique (via le CRON), celle-ci est lancée en mode asynchrone. XSync génère un message "**Syncs all 'products'**" qui va être traité par un worker.

Comme expliqué lors de la configuration, XSync synchronise les données avec Cn285 en plusieurs pages. Une page va générer un message "**Sync page 1/X**" qui lui même va générer plusieurs messages "**Sync Product**" en fonction de la taille définie par le champ **Synced Products Page Size**.

Pour visualiser ces messages et ainsi suivre l'avancement de la synchronisation, rendez-vous dans le menu **Cn / Qs / Messages**. ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FmqbeeUV9RPKVkG7AVR00%2Fimage.png?alt=media\&token=a4aaec9b-e071-4c2c-8764-d642205f94f2)

![Exemple de message générérer par XSync pour synchroniser une page de 30 Products](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FLFPsCWpItZgFMhuKDlFn%2Fimq_message_inbound_product.PNG?alt=media\&token=673e301a-7d8d-495f-806e-b5c6d6c54e33)


# Invoice Outbound Sync

## Introduction

XSync permet de synchroniser des factures ou des éléments de facturation de Cn285 avec Odoo.

{% hint style="info" %}
Avant de synchroniser une facture vers Odoo, XSync s'assure que le client existe dans Odooet qu'il est bien à jour, notamment pour les clients dont des systèmes tiers sont les maîtres. Si les données ne sont pas à jour, XSync synchronisera ce client avant de synchroniser la facture.
{% endhint %}

## Configuration

### Synchronisation sortantes des factures

![Exemple de paramétrage pour la synchronisation sortantes des Invoices.](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FKeT5RDhdw1P9eck5FDq2%2Foutbound_invoice.PNG?alt=media\&token=1a4bb483-4b60-41af-afbe-1107de622f73)

XSync dispose d'un système de recherche permettant de définir les factures (ou éléments de facturation) à synchroniser avec le **Remote System**. Cette recherche est paramétrable via le champ **Invoice Selection.**

Les données renvoyées par la recherche seront ensuite synchronisées avec Odoo en une ou plusieurs pages (appelé aussi batch). La taille de ces pages est paramétrables par le champ **Sync Batch Size,** par défaut défini à **10**.

{% hint style="danger" %}
Nous vous recommandons de ne pas modifier la valeur du champ **Sync Batch Size**. Elle permet de garantir les performances optimales pour une synchronisation vers Odoo.
{% endhint %}

Plusieurs paramètres sont aussi disponibles dans cette rubrique:

* **User Mapper**: XSync possède de base un driver permettant de faire correspondre un champ Cn285 avec un champ standard Odoo. Pour synchroniser des données Cn285 avec des champs Odoo personnalisés il convient de surcharger le driver standard avec un [User defined Mappers](/cn285-documentation/menu-xsync/user-defined-mappers).
* **Q for Outbound Invoice sync**: Permet de spécifier une autre queue à utiliser pour la synchronisation sortante.
* **Run Outbound Sync synchronously**: Lorsque cette option est cochée, la synchronisation est effectuée de manière synchrone. Nous vous recommandons d'utiliser cette option uniquement lorsque vous souhaitez debugger.
* **Last Invoices Outbound Sync:** Correspond au timestamp de la dernière synchronisation sortante effectuée. Ce timestamp est utilisé comme critère supplémentaire dans la recherche **Invoice Selection** et permet de ne sélectionner que les factures de Cn285 qui ont une date de création / modification postérieure à cette date.

{% hint style="info" %}
Si le champ **Last Invoices Outbound Sync** n'est pas défini:

* La recherche du champ **Invoice Selection** renverra toutes les factures éligibles à la  synchronisation
* La valeur du champ prendra le timestamp de cette synchronisation.
  {% endhint %}

Un critère supplémentaire sera automatiquement ajouté à la recherche. Ce critère permet de ne sélectionner que les clients dont le **Master System** est différent du **Remote System** sur lequel la synchronisation va être effectuée.

Il est également possible de bloquer la synchronisation sortante d'une facture. Cette option est disponible depuis la rubrique **Outbound Sync** dans l'onglet XSync de la vue détaillée de la facture et elle est paramétrable avec le champ **Block Outbound Sync.** Lorsque ce champ est activé, XSync ignora automatiquement la synchronisation de cette facture.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FjTrDBXka53g6zv3du8xn%2Fimage.png?alt=media\&token=d3f50079-caad-4c67-85b6-8593a31e8a15)

### Etat de validation des factures

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FxM1OamK9FXCf4b914z38%2Fimage.png?alt=media\&token=df377a86-cc38-44f9-b6c6-5f357db324a0)

XSync permet aussi de créer une facture dans Odoo dans différents états selon que l'on souhaite créer des factures validées ou non.

Sous **Cn / Configuration / Settings**, dans la rubrique **Odoo by Cn285**, configurer les champs suivants:

* **Invoice Status At Creation** : Définit le statut de la facture lors de sa création dans Odoo
  * **Draft:** Crée la facture au statut “draft” dans Odoo.
  * **Posted** : Crée la facture au statut “draft” dans Odoo  puis la valide dans un second temps.

Une fois la synchronisation sortante effectuée, XSync lancera une synchronisation entrante afin de récupérer la référence de la facture nouvellement crée dans Odoo.

## Lancement de la synchronisation

La synchronisation sortante des factures depuis Cn285 peut être lancée via deux modes:

* Mode manuel
* Mode automatique

### Mode manuel

Le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F4hqGJVEyvKPNY7RyWDIt%2Fimage.png?alt=media&amp;token=65b50a22-0f6c-4c00-a51d-a98069217ae1" alt="" data-size="line">situé dans l'onglet **Outbound Sync** du **Remote System** permet de lancer la synchronisation sortante manuellement avec les critères définis ci-dessus.

Si le champ **Run Outbound Sync synchronously** n'est pas coché alors cette synchronisation est lancée de manière aysnchrone.

### Mode automatique

La synchronisation de manière automatique est effectuée par une action planifiée qui s'exécute périodiquement. La documentation concernant les [Workers](/cn285-documentation/menu-qs/workers) permet de visualiser cette tâche.

![Exemple de configuration du Daemon](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fw8fgKccLcSWAA8ljrQEu%2Fimage.png?alt=media\&token=e38177da-2fa9-4062-9d38-b8ae1dd22f99)

## Visualiser l'avancement de la synchronisation

Lorsque la synchronisation est lancée de manière asynchrone (soit via le bouton <img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FsO1QMqV67npb82uSAwxY%2Fimage.png?alt=media&amp;token=319e381c-bc76-4fa5-a277-195666a4629f" alt="" data-size="line">avec la case **Run Outbound Sync synchronously** décoché, soit via la tâche planifiée), XSync génère un message "**Outbound sync on X all 'invoices'**" qui va être traité par un worker.

Comme expliqué lors de la configuration, XSync synchronise les données avec Cn285 en plusieurs pages. Une page va générer un message "**Outbound Sync a batch of 'invoice()'**" qui lui même va générer plusieurs messages "**Outbound** **Sync Cn**" en fonction de la taille définie par le champ **Sync Batch Size**.

La visualisation des messages et l'avancement de la synchronisation est possible depuis le menu **Cn / Qs / Messages**. ![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FmqbeeUV9RPKVkG7AVR00%2Fimage.png?alt=media\&token=a4aaec9b-e071-4c2c-8764-d642205f94f2)

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FCXTIbl0zOCqFMn7eT9Zz%2Fimq_message_outbound_invoice.PNG?alt=media&amp;token=b1bed80f-754d-461a-915c-1ae248c9180f" alt=""><figcaption><p>Exemple de message généré par XSync pour synchroniser une page de 10 Invoices.</p></figcaption></figure>


# Invoice Status Inbound Sync

## Introduction

Il est possible de suivre dans Cn285, l'avancement du statut d'une facture (ou élément de facturation) déjà synchronisée avec Odoo.&#x20;

## Configuration

![Configuration de l'Invoice Sync Status](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FcXaKFkTpRjfWApATN0qb%2Fimage.png?alt=media\&token=30d2da28-4d1c-420a-bc4d-d57163141013)

Pour mettre à jour le statut de paiement des factures déjà synchronisées, il est nécessaire de configurer le champ **Local Invoice Search.**&#x20;

Le résultat de cette recherche est ensuite découpé en une ou plusieurs pages. La taille de ces pages est paramétrable par le champ **Synced Invoice Page Size**, par défaut définie à **30**.

{% hint style="danger" %}
Nous vous recommandons de ne pas modifier la valeur du champ **Synced Customers Page Size**. Elle permet de garantir les performances optimales pour une synchronisation avec Odoo.&#x20;
{% endhint %}

Il est également possible de définir un [User defined Mappers](/cn285-documentation/menu-xsync/user-defined-mappers) via le champ **User Mapper**.

Les différents statuts visibles depuis la vue des Invoices sont:

* **Synced** : La facture a été synchronisé en draft&#x20;
* **Synced - Not Paid** : La facture a été synchronisé, validé et est en attente de paiement
* **Synced - In Payment** : La facture a été synchronisé, validé et est en cours de paiement
* **Synced - Paid** : La facture a été synchronisé, validé et est payé
* **Synced - Reversed** : La facture a été synchronisé et validé et remboursé

## Synchronisation entrante des status

La synchronisation des statuts depuis Cn285 peut être lancée via deux modes :

* Mode manuel
* Mode automatique

### Mode manuel <a href="#mode-manuel" id="mode-manuel"></a>

Il est possible de lancer une synchronisation globale des statuts en cliquant sur le bouton<img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FVmtbhQkP5K7O2xIlgIlb%2Fimage.png?alt=media&amp;token=c2a1fd99-6e75-42a9-885c-a74dcd1e7f22" alt="" data-size="line"> situé dans l'onglet **Inbound Sync** du formulaire du **Remote System**.Cette synchronisation se fera toujours de manière asynchrone.

### Mode automatique <a href="#mode-automatique" id="mode-automatique"></a>

Cn285 permet aussi une synchronisation automatique des statuts. Cette synchronisation se lance via un CRON (tâche) qui s'exécute périodiquement. Pour configurer ou visualiser ce CRON, veuillez vous référer à la rubrique [Workers](/cn285-documentation/menu-qs/workers).

![Exemple de configuration du Daemon.](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FVxURqTfKotvDZA5XeSF9%2Fimage.png?alt=media\&token=2cc88627-17c7-417f-aa87-fbbc8c37a207)

## Visualiser l'avancement de la synchronisation <a href="#visualiser-lavancement-de-la-synchronisation" id="visualiser-lavancement-de-la-synchronisation"></a>

Lorsque la synchronisation est manuelle via le bouton<img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FVmtbhQkP5K7O2xIlgIlb%2Fimage.png?alt=media&amp;token=c2a1fd99-6e75-42a9-885c-a74dcd1e7f22" alt="" data-size="line">ou automatique (via le CRON), celle-ci est lancée en mode asynchrone. XSync génère un message "**Syncs all 'invoices'**" qui va être traité par un worker. Comme expliqué lors de la configuration, XSync synchronise les données avec Cn285 en plusieurs pages. Une page va générer un message "**Sync page 1/X**" qui lui même va générer plusieurs messages "**Sync Invoice**" en fonction de la taille définie par le champ **Synced Invoices Page Size**. Pour visualiser ces messages et ainsi suivre l'avancement de la synchronisation, rendez-vous dans le menu **Cn / Qs / Messages**.

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FBOSJIyS0A3dE8RyDtNTc%2Fimq_message_inbound_invoice.PNG?alt=media&amp;token=c7d04754-5339-4bdd-af28-72350ae902a4" alt=""><figcaption></figcaption></figure>


# User defined Mappers

## Introduction

Lorsque XSync synchronise des données avec un **Remote System**, celui-ci doit faire correspondre une donnée de ce Remote System avec Cn285. Pour cela XSync utilise des mappers standards.

Ces mappers sont directement intégrés dans XSync et permettent donc de mapper des champs standards d'un Remote System avec des champs standards de Cn285. Lorsque l'on souhaite utiliser des champs personnalisés, il convient donc de surcharger ces mappers standards.

Cette surcharge est possible avec les **User defined Mappers.**

{% hint style="warning" %}
La configuration des **User defined Mappers** peut nécessiter des compétences techniques dans le langage **Python**.
{% endhint %}

## Configuration

Depuis le menu **Cn/XSync/User defined Mappers**, cliquer sur 'Créer'

Configurer ensuite les champs suivants:

* **Name**: Le nom du **User defined Mappers**
* **Type**: Permet de savoir si le **User defined Mappers** sera codé dans l'onglet **Python Code** ou s'il utilise une méthode interne à Cn285
  * **Internal Method**: La méthode interne à utiliser
  * **Python Code**: Le code Python qui sera appliqué pour mapper
* **Way**: Le sens de synchronisation sur lequel ce **User defined Mappers** sera appliqué

![Un User defined Mappers vierge appliqué à la synchronisation entrante.](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FZhSgnDPU2o9zeIuOsvHY%2Fimage.png?alt=media\&token=4f53f43d-724f-4fdf-808f-a3fab0adceaf)


# Static Mapper

## Introduction

Le Static Mapper permet de mapper des entités qui n'ont pas de correspondance entre elles (Eg: un tax schedule de Netsuite vers une position fiscale de Cn285)

## Configuration

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FBQCvs5hF6ymTLUutR2J1%2Facces_static_mapper.png?alt=media\&token=e5322ca7-63f0-47fa-900d-f87ff79af389)

Sous **Cn / Xsync / Static Mappers**, cliquer sur Créer&#x20;

Configurer les champs suivants :

* **Way**: le sens de synchronisation du Static Mapper
* **Mapping Type**: le type de mapping.
* **Source Value**: la valeur source associée au type de mapping. Le mapping type vous indique le type de valeur à insérer.
* **Mapped Value**: la valeur mappée
* **Note**: Une description
* **Active**: Permet d'activer ou non le Static Mapper

![Exemples de configuration de Static Mapper](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FWiISL7vOdWocunmc9UcJ%2Fimage.png?alt=media\&token=cdf78787-9e37-4a2d-b254-356152f2b6fc)


# Menu Configuration

## Introduction

Le menu configuration vous permet d'accéder à toutes les options et paramètres.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fx0MkqMbaeJn9y1aiBCdQ%2FCleanShot%202022-09-14%20at%2013.35.18.png?alt=media\&token=62ac61e2-0cfb-45d7-ae9d-e0242c4e179c)


# Settings

Regroupe des éléments généraux de configuration

Le Menu Setting permet de gérer:

{% content-ref url="/pages/cSLdf8p3megGyjiHoUVT" %}
[Invoicing Process](/cn285-documentation/menu-configuration/settings/invoicing-process)
{% endcontent-ref %}

{% content-ref url="/pages/-MjVNwFKiiYXMlbMDtHU" %}
[Invoice eMail Sending](/cn285-documentation/menu-configuration/settings/master)
{% endcontent-ref %}

{% content-ref url="/pages/8n72R0XZCU2jvb1x4Nr1" %}
[Contract](/cn285-documentation/menu-configuration/settings/contract)
{% endcontent-ref %}

{% content-ref url="/pages/XsrWQJ5LPRWb5Zfp8yEI" %}
[RevRec](/cn285-documentation/menu-configuration/settings/revrec)
{% endcontent-ref %}

{% content-ref url="/pages/VHbTvqKF9Hp36B0ZYKaA" %}
[NetSuite by Cn285](/cn285-documentation/menu-configuration/settings/netsuite-by-cn285)
{% endcontent-ref %}


# Invoicing Process

## **Introduction**

Cet onglet des paramètres généraux permet de gérer toutes la configuration liée à la facturation

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fzb2ARzdITbZmhHx73Bdb%2FCleanShot%202022-09-14%20at%2013.37.00.png?alt=media&amp;token=29ec84b2-91c0-4cd5-963e-c973dd843796" alt=""><figcaption></figcaption></figure>

### **Invoicing processing delay :**&#x20;

Option qui permet de prendre en compte le délai de compilation et de mise à disposition des données en fin de mois.&#x20;

La facture est générée après un délai de X jours (process Date = date de fin de mois + Invoicing Process Delay) mais reste datée du dernier jour du mois précédent (Invoicing date).

Exemple : Avec un Invoicing Processing Delay de 3, Cn285 généra le 3 du mois n+1, les factures du mois n.

{% hint style="info" %}
Attention, entre la fin du mois et le terme du délai, les factures ne sont pas générées.&#x20;

Exemple: Dans l'exemple précédent, le 2 du mois il n'y aura aucune facture datée du 31 du mois précédent.&#x20;
{% endhint %}

### **Invoicing Start Date**

Option qui permet de facturer le premier jour de service ou non lors de la souscription.

Important dans les cas de services facturés à la journée. &#x20;

### **Invoice Batches size**

Définit la taille maximum des batch de génération des factures. En général, défini au Setup. Il est conseillé de ne pas le modifier sans l'éditeur.

### **Validate Generated Invoices**

Cette option permet de valider le choix da la génération automatique de facture qui doit être complétée par une seconde validation au niveau du contrat.

### **Contract Renewal Batches size**

Définit la taille du batch de renouvellement de contrat. En général, défini au Setup il est conseillé de ne pas le modifier sans l'éditeur.

### **Invoice wording**

permet de définir le libellé sur le report associé à la facture

### **Invoicing Schedule Calculate Batch Size**

permet de définir le nombre d'IS pour lesquels on collectera et traitera en batch les ***UsageData.*** Ce paramètre est défini en phase d'implémentation il est recommandé de ne pas le toucher ou avec un expert Cn285.

### **Group By Invoice Lines**

Les lignes de factures sont regroupées automatiquement quand cela est possible par période, produit, quantité ou prix dans le respect des contraintes légales.

### **Invoice Detail Generator**

Permet de sélectionner un modèle de détail de facture qui sera produit lors de la génération des données détaillées de la facture. \
Lorsque le modèle est défini ici, il s'appliquera à tous les détails de facture.\
Il est possible de définir des ***InvoiceDetailGenerator** au niveau du Contrat et donc d'adapter un détail en fonction de ce dernier.*

### **Credit Memo Detail Generator**

Idem que **l'InvoiceDetailGenerator** mais au niveau du ***CreditMemo.***


# Invoice eMail Sending

Cn permet d'envoyer des factures mais également le détail des factures par mail

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

Cn prend en charge l’envoi des factures client et des “Détails de Facture” par email. Cette fonctionnalité est désactivée par défaut.

Cn gère 2 envois distincts des factures par eMail:

* L’envoi au client
* L’envoi d’une copie à une liste de destinataires

Ces 2 envois peuvent être configurés indépendamment.  Ainsi, dans le cas où la facture est mise à disposition du client par un autre système,  il est possible de configurer Cn pour automatiser uniquement l’envoi d’une copie à ce système ou un outil d’archivage.

A terme, il est prévu de pouvoir envoyer un lien de téléchargement pour savoir si le client a bien téléchargé sa facture. Et éventuellement le relancer si ce n'est pas le cas.

Les factures sont envoyées via un serveur SMTP fourni par le client. Le contrat Cn inclut un serveur SMTP de base dont les performances sont incompatibles avec les besoins d’une base de production.

## Fonctionnement général <a href="#fonctionnement-general" id="fonctionnement-general"></a>

Le fonctionnement général de l’envoi des factures par mail est défini par les options disponibles via le menu Configuration > Settings > Cn dans la rubrique “Invoice eMail Sending”

Les paramètres d’ envoi des factures par email peuvent être ajustés à différents niveaux:

* Contract Template
* Contract
* Billing Folder
* Invoice

### Chronologie de l'envoi des factures <a href="#chronologie-de-lenvoi-des-factures" id="chronologie-de-lenvoi-des-factures"></a>

La Tâche Planifiée  “Email Sender Daemon” (Esdeam) est lancée tous les jours.

Mais Cn permet de gérer des modalités d'envoi différentes selon le mode de règlement:

* CB ; les factures peuvent être envoyées:
  * Avant le paiement
  * Après le paiement (ou une tentative de paiement)
* Prélèvement SEPA ; les factures sont envoyées avant le paiement. En générales ces factures portent  une mention "Le montant de cette facture sera prélevé le XX/XX/XXX sur votre compte: XXXXXXX (N° Mandat: YYYYYYY)”
* Virement Bancaire: La facture est envoyée avant le Paiement. En général elle porte les mentions:

  * Conditions de règlement: A réception de facture
  * Paiement par Virement Bancaire sur le compte: XXXXXXXX

  ## Paramètres de l'envoi des factures par mail <a href="#parametres-de-lenvoi-des-factures-par-mail" id="parametres-de-lenvoi-des-factures-par-mail"></a>

  Les paramètres suivants permettent de configurer l’envoi des factures et détails de facture par email:

  * Send Invoice eMail
  * Send Invoice eMail Copy
  * Attach Invoice Detail
  * Invoice Detail Attachment Format
  * Invoice eMail Sending Chronology
  * Invoice eMail Template
  * Invoice Mail Batches size

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FDlcuBfWYBhopqfxeMxTl%2FCleanShot%202022-09-14%20at%2013.59.11.png?alt=media&amp;token=5e2b82ba-73dc-4135-affd-8c9bf334df80" alt=""><figcaption></figcaption></figure>

### "Send Invoice eMail" <a href="#send-invoice-email" id="send-invoice-email"></a>

Ce paramètre détermine si oui ou non, les factures doivent être envoyées par mail **automatiquement** aux clients.&#x20;

**Important:** Ce paramètre concerne uniquement l’envoi automatique. L’envoi manuel est toujours possible.

Ce paramètre est disponible:

* Globalement: Configuration / Settings / Cn, Rubrique “Invoice eMail Sending”
* Au niveau des Billing Folders (valeur par défaut = Param Global)
* Au niveau des Contracts (valeur par défaut = Billing Folder ou Param Global)
* Au niveau des Invoices

### "Send Invoice eMail Copy" <a href="#send-invoice-email-copy" id="send-invoice-email-copy"></a>

Ce paramètre détermine si oui ou non, une copie du mail envoyé aux clients doit être envoyée **automatiquement** à une liste d’adresses email définies via “Recipients eMails”.

**Important:** Ce paramètre concerne uniquement l’envoi automatique. L’envoi manuel est toujours possible.

Ce paramètre est disponible:

* Globalement: Configuration / Settings / Cn, Rubrique “Invoice eMail Sending”
* Au niveau des Billing Folders (valeur par défaut = Param Global)
* Au niveau des Contracts (valeur par défaut = Billing Folder ou Param Global)
* Au niveau des Invoices

### "Attach Invoice Detail" <a href="#attach-invoice-detail" id="attach-invoice-detail"></a>

Ce paramètre détermine si Cn injecte un report “Invoice Details” en pièce-jointe dans les eMail qui contiennent les Factures.

Ce paramètre est disponible:

* Globalement: Configuration / Settings / Cn, Rubrique “Invoice eMail Sending”
* Au niveau des Billing Folders (valeur par défaut = Param Global)
* Au niveau des Contracts (valeur par défaut = Billing Folder ou Param Global)
* Au niveau des Invoices

### "Invoice Detail Attachment Format" <a href="#invoice-detail-attachment-format" id="invoice-detail-attachment-format"></a>

Le report “Invoice Detail” est disponible dans deux formats:

* PDF
* XLS

Ce paramètre permet de choisir le format de la ou les pièces jointes “Invoice Details” injectées dans le eMail d’envoi de la facture.

Ce paramètre est disponible:

* Globalement: Configuration / Settings / Cn, Rubrique “Invoice eMail Sending”
* Au niveau des Contract Templates (valeur par défaut=param global)
* Au niveau des Contracts (valeur par défaut = Contract Template ou Param Global)
* Au niveau des Billing Folders (valeur par défaut = Param Global)
* Au niveau des Invoices

### "Invoice eMail Sending Chronology" <a href="#invoice-email-sending-chronology" id="invoice-email-sending-chronology"></a>

Ce paramètre ne s’applique que pour les paiements par Carte Bancaire et définit à quel moment, par rapport au paiement, les factures sont envoyées.

* Avant le paiement
* Après la première tentative
* Uniquement en cas de Succès

Ces options ne  sont disponibles que dans les environnements configurés avec un mode de paiement Bancaire.

Ce paramètre global est disponible uniquement via le menu Settings > Cn, rubrique “Invoice eMail Sending”.

### "Invoice eMail Template" <a href="#invoice-email-sending-chronology" id="invoice-email-sending-chronology"></a>

Permet de choisir le template ou modèle de eMail d'accompagnement de l'envoi de la facture.

### "Invoice eMail Batches size" <a href="#invoice-email-sending-chronology" id="invoice-email-sending-chronology"></a>

Permet de définir la taille des batch d'envoi de eMail contenant la facture ( ! spam).

## Mise en oeuvre de l’envoi des Factures <a href="#mise-en-oeuvre-de-lenvoi-des-factures" id="mise-en-oeuvre-de-lenvoi-des-factures"></a>

L’envoi automatique des emails de facture est assurée par l’ action planifiée “Cn Invoice Email Sender Daemon”.

Au niveau de chaque facture il est possible de déclencher l’envoi manuel de l’email de facture au client ou aux adresses en “copie”.

### Action Planifiée “Cn Invoice Email Sender Daemon” <a href="#action-planifiee-cn-invoice-email-sender-daemon" id="action-planifiee-cn-invoice-email-sender-daemon"></a>

C’est l’action planifiée ”Cn Invoice Email Sender Daemon” (accessible via Configuration > Technique > Automatisation > Action Planifiée) qui envoit les factures par mail.

Celle-ci doit être “Active” et “Planifiée” pour que les emails de Factures soient envoyés.

### Envoi manuel des eMails de Factures <a href="#envoi-manuel-des-emails-de-factures" id="envoi-manuel-des-emails-de-factures"></a>

L’onglet Cn permet de gérer les envois de factures par email.

![](https://lh4.googleusercontent.com/6rQM8rkoXihbKYKNQMd101_DtmhR3iC_Sec2QN2zVN-AFmrfjH8e-fYOH4zFyxjVlghE4rZ2yH5k7adYIk3IdMMYsRhzME6cNfGWTFwHcdNujUppP611s1Qpuu1SIw8NElCpyEs)

Dans les rubriques “eMail” et “eMails Copy”, on retrouve tous les paramètres décrits avant. Ceux-ci peuvent être modifiés. Les modifications ne concernent que la facture courante.

A gauche, les 2 boutons permettent d’envoyer immédiatement la facture par mail au client ou aux adresses en copie.

A noter:&#x20;

* Cn enregistre l’heure du dernier envoi
* L’historique de la facture contient la trace de tous les envois ainsi que la version envoyée.

<br>

<br>


# Contract

Cette section des settings permet le paramétrage par défaut pour l'ensemble des devis et contrats d'une instance Cn285 au niveau de :

* La signature : en choisissant

  * **Two-Step signature** : qui implique une double validation
  * **Bypass signature** : le contrat est validé simplement en validant les ***items*** qui le composent.

* Des devis&#x20;
  * **Quote Terms :** Permet de gérer une mention spécifique lors de l'édition d'un devis
  * **General Terms & Conditions:** Permet de fournir un fichier PDF contenant les CGV. Ce fichier sera ajouter sans modification à la fin de chaque impression Devis.\
    Pour télécharger le fichier sur Cn285, cliquer sur le bouton "Upload". Une nouvelle fenêtre s'affichera vous demandant de charger le fichier. Cliquer ensuite sur "Upload"

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FFhoe4ybYpVn99QOBjoh6%2Fimage.png?alt=media&amp;token=2c1637b1-b85a-43ad-8f9c-8a41eab56ab7" alt=""><figcaption></figcaption></figure>


# RevRec

## Introduction

Cn285 possède un module permettant la réalisation de la reconnaissance de revenu ([Revenue Recognition](/cn285-documentation/menu-accounting/revenue-recognition)).

## Configuration

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FX2B4xYjUQi2IUkcY83F6%2FCleanShot%202022-09-14%20at%2015.45.33.png?alt=media&amp;token=26bbea51-ecaa-4afa-8ce4-cd569f1ff74c" alt=""><figcaption></figcaption></figure>

* **RevRec Journal**: Permet de sélectionner le journal qui contiendra les écritures de la reconnaissance de revenu.
* **Invoice To Issue Account:** Compte comptable utilisée lors de la génération des écritures des lignes concernant les factures à établir.
* **VAT on Invoice To Issue Account:** Compte comptable utilisée lors de la génération des écritures des lignes concernant la tva sur les factures à établir.
* **Differed Revenue Account:**  Compte comptable utilisée lors de la génération des écritures des lignes concernant les produits constatés d'avances. (Eg: Compte 487)
* **Differed Income Account :**  Compte comptable utilisée lors de la génération des écritures des lignes concernant les prestations de service (Eg: Compte 706)


# NetSuite by Cn285


# Invoicing Date Scheduler

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

'Invoicing Date Scheduler permet de définir les paramètres d'intervention du moteur de facturation.&#x20;

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FaLLoY32x4iOe969oDPUW%2Finvoice_date_scheduler_2.png?alt=media\&token=432926b0-2c2d-43f5-b0c1-880e550e82f7)

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

Les Invoicing Date Scheduler sont accessibles avec le menu Cn / Configuration / Invoicing Date Scheduler.

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

### Onglet Settings <a href="#onglet-settings" id="onglet-settings"></a>

Champ Base Date : permet de choisir la date de base pour les paramètres de facturation

* Period Start Date : La date de facturation est le premier jour de la période de service
* Period End Date : La date de la facturation est le dernier jour de la période de service.

Algorithm : Standard

Settings :

* Day : jour d'activation
* Day Offset : nombre de jour de décalage entre la date de base et itération du moteur de facturation
* Month
* Month Offset : nombre de mois de décalage avant itération du moteur de facturation
* Adjustment expression : il est possible d'insérer du code pour des besoins particuliers

**Exemple :**&#x20;

* Dans la copie d'écran ci-dessus, pour réaliser des factures au 15 du mois suivant la fin de la période de service, il convient de choisir la base de départ comme étant “Period End Date” soit la date de la fin de période et d'ajouter un délai de 15 jours (soit 15jours de  Day Offset)

&#x20;

### Onglet Tests <a href="#onglet-tests" id="onglet-tests"></a>

un Menu Tests permet de tester les résultats du moteur de facturation avec les paramètres sélectionnés :

* Test Contract Item
* Test Invoicing Schedule

Le moteur de test indique :

* Les dates de début et fin du Contract Item testé.
* La date de début et la date de fin de la période de service de l'IS sélectionné

La **zone Test Result** fournit :&#x20;

* La Process Date : Date du calcul du montant de l'IS
* L'Invoiced Date : Date de la facture

&#x20;

### Onglet Advanced <a href="#onglet-advanced" id="onglet-advanced"></a>

Le paramètre Is System permet de bloquer en écriture les Invoicing Date Scheduler fournit en standard par Cn285.


# Usage Data Calculator

Formule pour calculer les données variables

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

Les Usages Data Calculator est le moteur de calcul qui permet de définir les règles de facturation à appliquer dans le traitement des données d'utilisation (Usage Data) par un Invoicing schedule.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FHOEcMXhlrSDug3JcpWCf%2Fimage.png?alt=media\&token=350143dc-826f-4c65-84fc-b76a2ac20126)

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

La liste des Usage Data Calculator est accessible avec le menu Cn / Configuration / Usage Data Calculator.

Les informations liées aux Usage Data Calculator d'un Contract Item sont reprises au niveau de l'onglet Invoicing / Groupe Pricing.

## Utilisation <a href="#utilisation" id="utilisation"></a>

Il existe des Usage Data Calculator fournit en standard dont les basiques (sum, min, max, last, 1 si valeur >0). \
Une recommandation éditeur concernant un Usage Data Calculator est d'en créer un par contrat item utilisé, quand bien même la fonction utilisée est identique ex. :  Sum.

Il existe 3 types de Usage Data :&#x20;

* Usage data simple,
* Usage Data Agrégées Custom
* Usage Data agrégées JSON

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

* Type : Il existe 2 types de Usage Data Calculator
  * **Internal Code** : qui permet de jouer avec les Internal Method sur les quantités (Qty) :
    * Qty : Last
    * Qty : Min
    * Qty : Max
    * Qty : Sum
* **Inline Python Code** : il permet d'ajouter du code python directement dans l'interface utilisateur et permet d'adapter le moteur de calcul aux besoins métiers du client.
* **Use Aggregated Data** : La fonction Use Aggregated Data permet d'activer le champ Aggregated Data Property
* **Usage Data Required** : Le paramètre Usage Data Required rend obligatoire la présence de données d'usage (Usage Data). Si aucune donnée d'usage n'est présent lors de la date de facturation, alors une erreur sera générée et visible dans l'[Message](/cn285-documentation/menu-qs/message#exploitation-des-messages)
* **Generate Invoice Detail** :&#x20;
  * Lorsqu'elle est cochée la fonction ***Generate Invoice Detail*** active :
    * l'historisation des données d'utilisation ayant servies à la valorisation d'un Invoicing Schedule basée sur des données de consommation.
    * L'apparition des champs permettant le report détaillé :&#x20;
      * **Service : Nom**
      * **Service Unit**&#x20;
      * **Usage Unit**
* Quand un IS est mis en facturation, il est possible d'éditer le report "Invoice Details" un fois que la facture est éditée via le menu ***cn/invoices/** bouton **“imprimer” / invoice details.***

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FCI8ZMKxqgjugUFzfKz4n%2Fimage.png?alt=media\&token=3b0d68f3-0f34-480b-baf0-fddd00f0dc92)

Test Parameters

Une zone de test permet de tester le moteur Usage Data Calculator sur un contrat et un contract item donnés et un Invoicing Schedule et d'afficher les résultats avant s'assurer de l'adéquation des calculs avec le résultat escompté.


# SmartCodes

Le menu SmartCodes regroupe tous les éléments de code insérés à des fins de personnalisation de l'application Cn285

## Introduction

Cn285 permet la personnalisation des traitements applicables aux champs d'un objet ou à un objet lui même, à travers l'insertion de code directement via l'interface utilisateur. Ces traitements sont applicables via des **SmartCodes**.

{% hint style="danger" %}
Certaines personnalisations / mise en place de SmartCode nécessitent une compétence technique dans le langage Python.
{% endhint %}

Il existe différents type de SmartCode:

* Prorator
* LifeCycle Callback
* Event

## Configuration

Les SmartCodes sont accessibles et configurables depuis le menu **Cn285 / Configuration / Smart Codes.**

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FPi2IXWxrxLyWgsiW2fsq%2Fimage.png?alt=media&amp;token=08712b56-287d-4465-9f5a-2ed0e10e8980" alt=""><figcaption><p>Création d'un nouveau SmartCode</p></figcaption></figure>

Différents champs sont accessibles sur ce SmartCode:

* **Nom**: Le nom du SmartCode.
* **Description**: Une description permettant d'indiquer ce que réalise ce SmartCode.
* **Key**: Une clé générée en fonction du nom. Cette clé permet d'identifier le SmartCode. Elle peut être personnalisée.
* **SmartCode Type**: Le type de SmartCode souhaitée.
* **Python Code Type**: Le type de code du SmartCode. Il existe deux types de code pour les SmartCodes:
  * **Internal Code:** Le code utilisé par le SmartCode est une méthode standard livrée par Cn285. Celle-ci ne peut être personnalisée. Lorsque cette option est sélectionnée, un nouveau champ "**Internal Method**" apparait sur le formulaire et permet de sélectionner la méthode standard à utilisé pour ce SmartCode.&#x20;
  * **Inline:** Permet de personnaliser le SmartCode via du code Python directement depuis l'interface. Lorsque cette option est sélectionnée, un nouvel onglet "**Inline Code**" apparaît et permet d'écrire du code Python.

{% hint style="info" %}
Chaque SmartCode possède un exemple de personnalisation dans l'onglet "Inline Code".
{% endhint %}

Les SmartCodes se définissent soit au niveau du ContractItem, soit au niveau du produit.

## SmartCode Type

Comme décrit précédemment, il existe plusieurs type de SmartCode.

### SmartCode "Prorator"

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F6yzN5g0keFx0dS9reTXZ%2Fimage.png?alt=media&amp;token=e9a50e51-0294-47d5-8cd5-36b9ad1a75c8" alt=""><figcaption><p>Exemple de SmartCode "Prorator"</p></figcaption></figure>

Le SmartCode "Prorator" permet de proratiser les différents périodes du ContractItem. Il existe 3 SmartCode "Prorator":

* **Prorator First Period**: Permet de proratiser la premiere période du ContractItem.
* **Prorator Intermediate Period**: Permet de proratiser les différentes périodes intermédiaires du ContractItem.
* **Prorator Last Period**: Permet de proratiser la dernière période du ContractItem.

Cn285 intègre des fonctionnalités standards pour ces 3 SmartCode "Prorator":

* **Nb Days**: Retourne le nombre de jours dans la période.
* **Temporis**: Calcul la quantité en fonction du nombre de jours présents dans la période. Fonctionne uniquement sur de la facturation alignée (mensuel, trimestriel, ..).
* **Whole Period**: Retourne toute la période si au moins un jour est présent.
* **Void Period**: Annule la période si au moins un jour est présent.

{% hint style="info" %}
Chaque SmartCode "Prorator" possède les fonctionnalités standards.
{% endhint %}

### SmartCode "LifeCycle Callback"

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FEnU0iZufOSBiZSyqaCVA%2Fimage.png?alt=media&amp;token=12cbd862-f6bb-41ad-b48e-149f51abc805" alt=""><figcaption><p>Exemple de SmartCode "LifeCycle"</p></figcaption></figure>

Le SmartCode "LifeCycle Callback" est appelé  à différents étapes de la vie d'un **ContractItem** et permet de réaliser différentes actions au cours de la vie d'un ContractItem.

* **beforefirstrenewal**: Le SmartCode est appelé avant le premier renouvellement.
* **beforeotherrenewal**: Le SmartCode est appelé avant les renouvellements intermédiaires.
* **beforelastrenewal**: Le SmartCode est appelé avant le dernier renouvellement de la période.
* **afterfinished**: Le SmartCode est appelé après la fin "naturel" du ContractItem.
* **beforeterminate**: Le SmartCode est appelé avant la résiliation du ContractItem.&#x20;
* **afterterminate**: Le SmartCode est appelé après la résiliation du ContractItem.

Le SmartCode "LifeCycle Callback" se définit au niveau des [Contract Items](/cn285-documentation/menu-contracts/contract-items), dans l'onglet "API / Custom" du formulaire ou au niveau des [Products](/cn285-documentation/menu-products/products) dans l'onglet "Cn285" du formulaire.

### :hammer\_pick: SmartCode "Event"

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F24CGluRo9O8TPD6teEiQ%2Fimage.png?alt=media&amp;token=1d045f5d-50d3-45f2-a0ed-73d6af9aec53" alt=""><figcaption><p>Exemple de SmartCode "Event"</p></figcaption></figure>

:pick:Le SmartCode "Event" permet de réaliser des traitements sur des [Events](/cn285-documentation/menu-objects/events). Ce SmartCode est spécifique puisqu'il n'est pas défini au niveau des ContractItems / Items mais intervient dans le traitement de l'évènement.\
Un évènement, avant d'être traiter par Cn285, est insérer sous forme de [Message](/cn285-documentation/menu-qs/message). Ce message est ensuite traité par un **Message Processor**. Ce **Message Processor** peut être associé à un SmartCode "Event' si celui-ci possède la même clé que son **Selector.** Grâce à l'association entre le **Message Processor** et le SmartCode, il est alors possible de réaliser des traitements sur cet évènement.


# Detail Generators

Les Detail Generators permettent les détails des factures ou des avoirs

## Introduction

Il existe deux types de Detail Generators:

* [Invoice Detail Generator](/cn285-documentation/menu-configuration/detail-generators/invoice-detail-generator): Permet de générer des détails d'une facture.
* [Credit Memo Detail Generator](/cn285-documentation/menu-configuration/detail-generators/credit-memo-detail-generator): Permet de générer des détails d'un avoir.

Chaque Detail Generator est accessibles et définis dans le menu **Cn285 / Configuration / Detail Generators.**

Un Detail Generator peut être de type standard (c'est à dire fourni par Cn285) ou bien être de type personnalisé. Ces Detail Generators sont appelés lorsqu'une facture ou un avoir est générée.

## Configuration

Un Detail Generator est défini de manière globale sur l'instance Cn285, dans les [Settings](/cn285-documentation/menu-configuration/settings). Ce Detail Generator est ensuite injecté dans chaque [Billing Folders](/cn285-documentation/menu-billing/billing-folders) ou [Contracts](/cn285-documentation/menu-contracts/contracts).

{% hint style="warning" %}
Lors de facture ou d'avoir groupé, uniquement le Detail Generator du plus haut niveau (soit Billing Folder soit Contract) est appelé. Il est donc nécessaire de créer un Detail Generator qui soit cohérent pour tous vos ContractItems / Contracts.
{% endhint %}


# Invoice Detail Generator

L'Invoice Detail Generator permet de générer les détails de factures

## Introduction

L'Invoice Detail Generator (IDG) permet de générer les détails sur des factures appartenant à un contrat ou un **Billing Folder**.

{% hint style="danger" %}
L'IDG va générée un détail de factures ou d'avoir pour toutes les lignes présentes quelque soit le type du ContractItem.
{% endhint %}

Il existe 3 types d'Invoice Detail Generator :&#x20;

* **L'IDG fixe**: Permet de générer des [Invoice Details](/cn285-documentation/menu-billing/invoice-details) sur des ContractItems de type fixe.&#x20;
* **L'IDG usage**: Permet de générer des Invoice Details basés sur des [Usage Data](/cn285-documentation/menu-fulfillment/usage-data) des ContractItems de type variable.&#x20;
* **L'IDG event**: Permet de générer des Invoice Details basés sur des [Events](/cn285-documentation/menu-objects/events).

## Configuration

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FB9o6ycOeB7EoTx09lP9d%2Fimage.png?alt=media&amp;token=d87f815e-2b08-4d63-97fc-a2859e76d13e" alt=""><figcaption><p>Création d'un IDG</p></figcaption></figure>

Les **Invoice Detail Generators** sont accessibles depuis le menu **Cn285 / Configuration / Detail Generators / Invoice Detail**.

Plusieurs champs sont disponibles sur la vue formulaire de l'Invoice Detail Generator:

* **Nom**: Nom de l'IDG.
* **Description**: Une description concernant l'IDG.
* **Type**: Le type de code de l'IDG. Le choix "**Internal Code**" concerne des IDG standards. Il est possible de créer et personnaliser son IDG en choisissant le choix "**Inline**".
* **Internal Method**: Ce champ apparaît lorsque le choix "**Internal Code**" est selectionné. Ce champ permet de choisir la fonction standard à utiliser.
* **Service**: Permet de définir le service utilisé de la période afin de le renseigner dans les **Invoice Details**.
* **Service unit**: Permet de définir l'unité de service de la période.
* **Usage Unit** : Permet de définir l'unité des Usage Datas utilisés dans la période.

### Paramétrage de l'IDG

#### Création d'un IDG spécifique

Aller dans Configuration / Detail Generators / Invoice Detail

Par défaut, dans Cn285, il existe 3 IDGs de Type Internal Code (code Python standard) :&#x20;

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FPOp9UQOdXd4KmeFhoqgT%2FCleanShot%202022-09-12%20at%2011.01.59.png?alt=media&amp;token=42f7a981-d909-4231-bd63-3ffd1b373bc6" alt=""><figcaption></figcaption></figure>

Mais, selon le besoin du client, on peut créer des IDGs spécifiques de Type Inline Python Code :&#x20;

Le champ Inline Python Code Type permet de customiser le code qui sera écrit par un développeur informatique.

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FHk4zO4QECUItOint4B1H%2FCleanShot%202022-09-12%20at%2011.33.43.png?alt=media&amp;token=b78154bc-d506-426a-9b5f-66febe94a77c" alt=""><figcaption></figcaption></figure>

#### Pour tous les contrats ou les factures du client :&#x20;

Aller dans Configuration / Settings / Partie Invoicing Process

Dans le champ IDG, choisir l'IDG que l'on veut par défaut pour tous les contrats ou détails de factures du client

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FWOGTrHX0C0wLIERnDX8c%2FCleanShot%202022-09-12%20at%2010.28.08.png?alt=media&amp;token=2e5f8498-7f71-4acc-97b2-5e9aa993c034" alt=""><figcaption></figcaption></figure>

#### Pour un contrat spécifique du client :&#x20;

Aller sur Cn / Contracts / choisir le contrat où l'on veut un IDG spécifique

Aller sur l'onglet Invoice et indiquer l'IDG spécifique que l'on veut pour ce contrat.

On coche les champs que l'on veut voir apparaître sur le détail de facture ainsi que l'IDG spécifique.

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FhqmpMLTQiFpOYz6DsV9F%2FCleanShot%202022-09-12%20at%2010.31.14.png?alt=media&amp;token=cffc5bf4-febb-41bf-8526-6036a81e86d9" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
L'information de l'IDG remonte :&#x20;

* sur le Billing Folder
* sur le Contract au niveau de l'onglet Invoice
  {% endhint %}


# Credit Memo Detail Generator

C'est un générateur de détail sur les avoirs

## Introduction

C'est un générateur de détail sur les Credit Memo qui s'exécute sur tous les contrats ou sur des contrats spécifiques.

Le Credit Memo Detail Generator se base sur les Invoices, il n'en existe qu'un seul contrairement à l'Invoice Detail Generator.

## Paramétrage du Credit Memo Detail Generator

### Création d'un Credit Memo Detail spécifique

Aller dans Configuration / Detail Generators / Credit Memo Detail

Par défaut, dans Cn285, il existe 1 Credit Memo de Type Internal Code (code Python standard) :&#x20;

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2Fa2Lr1jjr0wR4sKfyCTKP%2FCleanShot%202022-09-12%20at%2011.38.41.png?alt=media&amp;token=d5acf57d-9b04-4a8f-b26b-d1115fcfa766" alt=""><figcaption></figcaption></figure>

Mais on peut créer 1 Credit Memo spécifique de Type Inline Python Code selon le besoin du client :&#x20;

Le champ Inline Python Code Type permet de customiser le code qui sera écrit par un développeur informatique.

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FICFj34ehMpVJBl5m90bO%2FCleanShot%202022-09-12%20at%2011.40.57.png?alt=media&amp;token=aeb2cab9-1a91-4d44-8944-b746f0083237" alt=""><figcaption></figcaption></figure>

### Pour tous les contrats ou les avoirs du client :&#x20;

Aller dans Configuration / Settings / Partie Invoicing Process

Dans le champ Credit Memo Detail Generator, choisir le Credit Memo Detail que l'on veut par défaut pour tous les contrats ou détails d'avoirs du client

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F90HtGH9mtGCjeWqHbXDh%2FCleanShot%202022-09-12%20at%2011.44.07.png?alt=media&amp;token=21955d3b-c69b-46ad-bda6-1e78a2554acf" alt=""><figcaption></figcaption></figure>

### Pour un contrat spécifique du client :&#x20;

Aller sur Cn / Contracts / choisir le contrat où l'on veut un Credit Memo Detail spécifique

Aller sur l'onglet Invoice et indiquer le Credit Memo Detail Generator spécifique que l'on veut pour ce contrat.

On coche les champs que l'on veut voir apparaître sur le détail de l'avoir ainsi que le Credit Memo Detail Generator spécifique.

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FPpEsCg010ehIMvnUD1Z5%2FCleanShot%202022-09-12%20at%2011.46.28.png?alt=media&amp;token=a211cca8-82b0-4677-a552-5756c9dda523" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
L'information du Credit Memo Detail Generator remonte :&#x20;

* sur le Billing Folder
* sur le Contract au niveau de l'onglet Invoice
  {% endhint %}

{% hint style="warning" %}
Les colonnes qui apparaissent sur le détail des factures ou des avoirs sont les **mêmes.**

**1 seule colonne supplémentaire apparaît dans le détail des avoirs, c'est la colonne Reversal of (= référence de la facture dont l'avoir a été généré).**
{% endhint %}


# User

### Introduction

Le menu User permet de créer et de gérer les utilisateurs et les paramètres de la société:

{% content-ref url="/pages/GIpDKZwyjXEphDwtIKLJ" %}
[Create user](/cn285-documentation/menu-configuration/user/create-user)
{% endcontent-ref %}

{% content-ref url="/pages/f6xM9VoFclYaCgHqS2gj" %}
[User](/cn285-documentation/menu-configuration/user)
{% endcontent-ref %}

{% content-ref url="/pages/TW2icRMdJQ0GmRcLYBre" %}
[Companies](/cn285-documentation/menu-configuration/user/companies)
{% endcontent-ref %}

&#x20;


# Create user

Création des utilisateurs Cn285

### Introduction <a href="#creation-dun-utilisateur" id="creation-dun-utilisateur"></a>

Le menu Create User permet à l'administrateur fonctionnel de gérer la création des utilisateurs de Cn285.

{% hint style="warning" %}
L'invitation des utilisateurs par mail n'est pas possible en environnement de staging du fait de l'email catcher.
{% endhint %}

### Création d'un utilisateur <a href="#creation-dun-utilisateur" id="creation-dun-utilisateur"></a>

&#x20;Menu Cn, cliquer sur 'Configuration / Create User'<br>

<figure><img src="https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FxkEH6kQlBloceWAUzX0P%2FCleanShot%202022-09-14%20at%2016.17.26.png?alt=media&amp;token=fd3108e1-8771-405c-90bc-1e1fadd6c45e" alt=""><figcaption></figcaption></figure>

La fenêtre **Create User** apparait.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FYKRKPtkzEedZgDIp8PDE%2FCleanShot%202022-01-25%20at%2017.47.27%402x.png?alt=media\&token=f8014fe2-1828-4e87-8d06-4b8b24ca5e18)

Dans ‘User Type’, sélectionner le type d'utilisateur à créer (soit utilisateur simple, soit utilisateur admin)

Renseigner ensuite le nom de l'utilisateur ainsi que son adresse email.

Par défaut, un email d'invitation sera envoyé à l'utilisateur.&#x20;

Décocher ‘Send Email Invitation’ si vous ne souhaitez pas envoyer un email.&#x20;

### Création d'un utilisateur en environnement de staging&#x20;

En environnement de staging, et afin de ne pas envoyer de mail au client (tous les mails sortants sont envoyés à l'adresse admin).&#x20;

L'utilisateur créé en staging doit donc être invité en lui transmettant le lien de connexion (en jaune ci-dessous). \
Le bouton Inviter par email, ne sera à utiliser que sur le serveur de production.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2FFyxDxjARn3PMGSuuANaJ%2FCleanShot%202022-03-22%20at%2016.34.37%402x.png?alt=media\&token=7801cbc4-d74a-4c72-b079-255b06a9ea4b)


# User

## Introduction

Cn285 permet de gérer plusieurs utilisateurs via le menu Configuration - Users > Users&#x20;

La vue liste permet de voir tous les utilisateurs du service Cn285.

![](https://823951457-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjVNWpKJ_CHCQYQ3A5a%2Fuploads%2F2cqtFXiMvsrRHpVBSZ3t%2FCleanShot%202022-01-25%20at%2016.49.20.png?alt=media\&token=526badc5-10e0-46cc-a80f-90e7510d893f)

La vue formulaire permet à l'administrateur Cn285 de promouvoir&#x20;




---

[Next Page](/llms-full.txt/1)

