= API d'Appel d'offre de Clariprint = L'API d'Appel d'Offre permet de lancer des calculs en lots. == API CSV == L'api CSV est adaptée pour des données provenant d'un tableur (Excel). === Base === * Type de requête : POST * url : mon_domaine/optimprokect/csv.wcl === Création d'un appel d'offre === Données du formulaire : * '''key''' : clef API define au niveau du Client Optimproject * '''action''' => "creation" * '''callback''' : URL appelée par le système à la fin du calcul (à tester) * '''sheets''' : tableau de nom de feuille. ex : sheets[]="A"&sheets[]="B") * '''columns''' : tableau des colonne indexé sur les feuilles. ex : columns[A]="projet;code;hauteur;largeur;" * '''rows''' : tableau indexe des ligne de calcul (les projet à calculer) * la clef d'index contient "!" : le nom de la feuille doit correspondre à une feuille de '''sheets''', le num de ligne doit juste permette une clef unique. sous un tableur on utilise le numéro de la ligne * valeurs : sous la forme d'une liste séparée par un ";" qui doit correspondre au colonnes (columns) définies. ==== Données retournées ==== Données retournées en mode CSV. Une ligne retournant la clef de session {{{ SESSION; }}} Pour chaque projet identifié, retourne une ligne {{{ PROJECT;-;;CREATE }}} === Demande de résultats === Données du formulaire : * '''key''' : clef API define au niveau du Client Optimproject * '''session''' : le code session * '''action'''' :"status" * '''nb_responses''' : nombre de résultats retournés par lignes // par default 1 Données retournées : Pour chaque projet, une ligne de type : {{{ PROJET;;;;;;;; }}} En mode CALCUL, les autres données sont vides. == Structures des colonnes == laisser vide si pas de certitudes de l'information. boolean : oui = 1,y,o ||= Colonne =||= Valeurs possible =||= Informations =|| || "ref", "reference", "code", "numero" || texte || référence du produit / devis || "type" || dépliant / folded / feuillet / leaflet / brochure / book / chemise / folder || type de produit || || "procédé" || || vide pour automatique, sinon une liste parmi : of, ouv, or, oc, n || "quantité totale", "qt" || entier || nombre total d'exemplaires du produit || "livré à plat", "flat" || booléen ||pour un dépliant ou une chemise indique si il est livré à plat va || "assemblage","binding" || || || || "PerfectBinding","DCC" || Dos Carré Collé || || "PerfectBindingPUR","DCCPUR" || Brochage Dos Carré Collé PUR || || "SewnBinding","DCCC" || Brochage Dos Carré Cousu || || "Stitching2","PC","piqure cheval","piqûre cheval" || 2 agrafes || || "Stitching3" || 3 agrafes || || "Stitching4" || 4 agrafes || || "OpenEyesStitching2","PB", "piqure bouclette", "piqûre bouclette" || 2 bouclettes || || "OpenEyesStitching3" || 3 bouclettes || || "OpenEyesStitching4" || 4 bouclettes || || "WireO","WO" || Spirales || || "InlineStiching","PL" || Piqûre en ligne || || "GluedOnFold","CP" || Collage au pli || || "Free","FreeBinding" || libre, dans liaison || || "Folded","NA" || plié non assemblé || "orientation assemblage" || "portrait","landscape" || si vide ou les valeurs données, à la française || "pliage" || || code JDF ou voir liste ci-dessous || "découpe" || || cf code découpe || "forme exitante" || bool || si non, le coût de création de la forme de découpe || "nbr de modèle" || entier || // "4" || "quantité par tirage " || entier || quantité par tirage la colonne peut être dupliqué par modèles || "nbr de version (changement/modèle)" || nombre de version par modèle si applicable || "largeur fini", "width" || || en cm || "hauteur fini", "height" || || en cm || "largeur à plat","largeur a plat", "flat width" || || en cm, pour dépliant et chemise || "hauteur à plat","hauteur a plat", "flat height" || || en cm, pour dépliant et chemise || "marque de papier", "brand" || || marque de papier || "type de papier", "qualite de papier" || csv2qualitePapier(current,data), // "Couché Moderne sans bois Brillant" || "grammage" || csv2grammagePapier(current,data), // "150" || "encre r" || csvAddEncreRecto(current,lower_data), // "Q" || "encre v" || csvAddEncreVerso(current,lower_data), // "Q" || "r modif version" || csvChangeEncreRecto(current,lower_data), // "Aucune modification" || "v modif version" || csvChangeEncreVerso(current,lower_data), // "Aucune modification" || "finition r" || csvAddFinitionRecto(current,lower_data), // "Vernis Acrylique Satin avec réserve tampon" || "finition v" || csvAddFinitionRecto(current,lower_data), // "Vernis Acrylique Satin" || "trous" || csv2trous(current,lower_data), // "" || "perforation" || csv2perforation(current,lower_data), // "" || "numérotation" || csv2numerotation(current,lower_data), // "" || "rainage" || csv2rainage(current,lower_data), // "Automatique" || "gauffrage hauteur", "gauffrage h" || csv2gauffrageH(current,lower_data), // "" || "gauffrage largeur", "gauffrage l" || csv2gauffrageL(current,lower_data), // "" || "dorure" || csv2dorureM(current,lower_data), // "" || "dorure hauteur", "dorure h" || csv2dorureH(current,lower_data), // "" || "dorure largeur", "dorure l" || csv2dorureL(current,lower_data), // "" || "dorure matière", "dorure matiere" || csv2dorureM(current,lower_data), // "" || "forme de découpe" || csv2decoupeExitante(current,lower_data), // "" || "quantité conditionnee" || csv2conditionnementQ(product,lower_data), // "3500" || "nbr de lot" || csv2conditionnementLot(product,lower_data), // "4" || "emballage" || csv2conditionnementEmballage(product,lower_data), // "film" || "exemplaire" || csv2conditionnementEmballageQt(product,lower_data), // "25" || "nbr de point de livraison" || none, // "1" || "livraison point" || csv2livraison(dev,data), // "FR-08" || "livraison quantité" || csv2livraisonQt(dev,data), // "11900" || "composant","produit" || (if (product % opFrontProduct/ProduitComposite) when x := csv2composant(product,lower_data) in ( product.composants :add x, current := x)), // "" || "type de produit" || none, // "" || "nbr de pages","pages" || {