API Reference : Clients

Description

Création d’une proposition commerciale correspondant à un document de vente de type Devis en statut Saisi.
L’application d’exemple Catalogues et Stocks permet aux utilisateurs d’optimiser leurs actions commerciales en saisissant en direct, depuis leur smartphone une proposition commerciale, voir : Exemples / Catalogues et stocks.
Les lignes de la proposition pourront soit correspondre à une ligne d’article, soit à une ligne de commentaire.

Propriétés de l’entête

propriété Type Description Longueur
datePrevisionnelle datetime date estimée de signature  

Propriétés du body des lignes

propriété Type Description Longueur
articleId string Identifiant de l’article ou C Plus d'infos  
description string Description de la ligne ou du commentaire Plus d'infos 69
enumereGamme1Id string Identifiant de l’énuméré de gamme 1  
enumereGamme2Id string Identifiant de l’énuméré de gamme 2  
prixHT double Prix HT  
quantite double Quantité  
remise double Remise  

Route

Verbe Power Automate Power Apps
Créer une proposition commerciale ProposerByDatasetidAndKey

Exemple

Dans cet exemple les éléments suivants sont définis :

Set(currentCompanyId;{idCompany});; // Id de la société courante
Set(currenClientID;{idClient});;    // Id du client courant
Set(datePrevisionnelle;Today());;   // Date prévisionnelle de signature
ClearCollect(ColPanier;{id:0;articleid:"";intitule:"";reference:"";gamme1:"";enumgam1:"";enumgam1id:"";gamme2:"";enumgam2:"";enumgam2id:"";qte:0;prixHT:0;remise:0;description:"";typeNomenclature:""});;  // Collection du panier contenant les articles sélectionnés

Le code suivant va créer la structure de la proposition commerciale d’après les lignes de la collection ColPanier, les id currentCompanyID et currentClientID et avec la date prévisionnelle datePrevisionnelle.

Notez :


Clear(propositionCommercialeLigne);;

//Variable pour itérer sur les lignes de commentaires
Set(colIterate;"||||||||||||||||||||||||||||||||||||");;

ForAll(Sort(ColPanier;id);
    // On découpe une ligne de commentaire en x lignes de 69 car. Priorité à la découpe si retour de ligne sinon blocs de 69 car.
    If(articleid="C";
       Remove(lignes;lignes);;
       Collect(lignes;Split(Substitute(Substitute(description;Char(10);"|");"||";"|");"|"));;
       ForAll(lignes;
            Remove(cptLig;cptLig);;
            ForAll(Split(Left(colIterate;RoundUp(Len(lignes[@Result])/69;0)-1);"|");
                Collect(propositionCommercialeLigne;{description:Mid(lignes[@Result];CountRows(cptLig)*69+1;69)});;
                Collect(cptLig;{})
            )
        )
        ;
      // Si pas ligne de commentaire alors c'est une ligne d'article  
       Collect(propositionCommercialeLigne;{
           articleId:articleid;
           enumereGamme1Id:enumgam1id;
           enumereGamme2Id:enumgam2id;
           quantite:qte;
           prixHT:prixHT;
           remise:Coalesce(remise;0);
           description:description
           }
       )
    )
);;

// On peut à présent créer la proposition commerciale
Sage100cloud.ClientsProposerByDatasetidAndKey(
    currentCompanyId;
    currentClientId;
    propositionCommercialeLigne;
    {datePrevisionnelle:Text(datePrevisionnelle;"[$-en-US]yyyy-mm-ddThh:mm:ssZ")}
);;

Informations