View source | Discuss this page | Page history | Printable version   

Openbravo POS Scripting Tutorial/fr

Contents

Introduction

Ce guide se réfère à la version Openbravo POS 2.10 et ultérieures. Dans cette version Openbravo POS a étendu les capacités de scripts disponibles dans les versions précédentes pour donner aux développeurs plus de pouvoir pour créer des règles et adapter Openbravo POS à leur règle de négoce et les règlementations des pays.

Les capacités de script de cette version offre les bénéfices suivants:

Exécution des scripts

Il y a deux moments distincts où le script est exécuté: Les boutons du panneau de ventes et les évènements du panneau de ventes. Tous les timings d'exécution sont définis dans la ressource Ticket.Buttons.

Boutons

Les boutons de scripts apparaissent en haut et alignés à droite du panneau de ventes et peuvent exécuter un modèle ou un script quand un utilisateur clique sur le bouton.

Bouton de script Openbravo POS .

Un bouton est définie comme un nouveau noeud de type button crée dans la ressource Ticket.Buttons. Voici un exemple de deux boutons:

<button key="button.print" name="button.print" template="Printer.TicketPreview"/>
<button key="button.discount" name="button.discount" code="Script.Discount"/>

Les attributs d'un bouton sont:

Évènements

Les évènements sont des scripts exécutés quand une action est exécutée dans le panneau de ventes.

Un évènement est définie comme un nouveau nœud de type button crée dans la ressource Ticket.Buttons. Voici l'exemple d'un évènement exécuté quand une nouvelle ligne est ajoutée au ticket:

<event key="ticket.addline" code="event.addline"/>

Les attributs d'un évènement sont:

Le modèle objet

Il y a cinq objets qui peuvent être passés à un script: ticket qui contient les données du ticket en cours, taxes qui contient la liste des taxes disponibles, place en mode restaurant il contient les objets tables, et null dans les autres modes, user qui contient l'objet utilisateur et sales qui contient les méthodes du panneau de ventes.

Les attributs

Les lignes de ticket et produits ont une liste de propriétés appelées attributes. Ces attributs peuvent être utilisé pour les besoins du développeur. Lors de l'ajout d'une nouvelle ligne, Openbravo POS copie les attributs du produit dans la ligne; Openbravo POS ne gère pas le contenu et les valeurs de ces attributs, c'est le développeur des scripts de boutons et évènements qui est responsable de la gestion de ces valeurs.

Ces attributs sont stockés dans la base de donnée et peuvent être édités dans le panneau des produits comme fichier XML. Voici un exemple:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    <comment>Attributs salade asiatique</comment>
    <entry key="notes">Disponible uniquement au printemps.</entry>
    <entry key="ingrédients">Laitues, et autres légumes</entry>
</properties>

Exemples

Voici une liste de fonctionnalités qui peuvent être implémentées avec des scripts:

Ajouter des notes à des lignes

Avec cette fonctionnalité vous créez un bouton et lorsque une ligne est sélectionnée dans le ticket cela vous permet d'éditer les notes associées à cette ligne. Le script du bouton est:

index = sales.getSelectedIndex(); 
if (index >= 0) {   
    line = ticket.getLine(index);   
    value = javax.swing.JOptionPane.showInputDialog("Line notes", line.getProperty("notes")); 
    if (value != null) { 
        // the user pressed OK 
        line.setProperty("notes", value); 
    } 
}

Supprimer les taxes d'un ticket

Avec cette fonctionnalité vous créez un bouton et lorsqu'il est cliqué une taxe de 0% est appliquée à toutes les lignes du ticket.

// Tax Exempt
// The ID "3a727b12-0064-4290-a227-e25d5e524b7e" refers to the tax record of rate 0%
taxexempt = taxes.get("3a727b12-0064-4290-a227-e25d5e524b7e");
for (i = 0; i < ticket.getLinesCount(); i++) { 
    ticket.getLine(i)
        .setTaxInfo(taxexempt);
}

Ajouter une remise à la ligne sélectionnée

Le code suivant associé à un bouton vous permettra d'ajouter une remise (en pourcentage) à la ligne sélectionnée.

 // % remise ligne
 
  import com.openbravo.format.Formats;
  import com.openbravo.pos.ticket.TicketLineInfo;
  import com.openbravo.pos.ticket.TicketProductInfo;
 
  discountrate = sales.getInputValue() / 100.0;
  index = sales.getSelectedIndex();
 
  if (index >= 0) {
     line = ticket.getLine(index);
     if (line.getPrice() > 0.0 && discountrate > 0.0) { 

         sdiscount = Formats.PERCENT.formatValue(discountrate);  
         ticket.insertLine(index + 1,
             new TicketLineInfo(
                     "Remise " + line.getProductName() + " " + sdiscount,
                     line.getProductTaxCategoryID(),
                     line.getMultiply(), 
                     -line.getPrice () * discountrate,
                     line.getTaxInfo()));  
         sales.setSelectedIndex(index + 1); 
     }
     else {  
          java.awt.Toolkit.getDefaultToolkit().beep();  
     }
  } else {
     java.awt.Toolkit.getDefaultToolkit().beep();  
 }

Ajouter une remise au total d'un ticket

Le code suivant associé à un bouton applique une remise (en pourcentage) sur le total du ticket. Si le ticket contient des produits avec des taxes distinctes une ligne de remise sera crée pour chaque groupe de taxes.

 // % Remise globale sur ticket  
 
  import com.openbravo.format.Formats;
  import com.openbravo.pos.ticket.TicketLineInfo;
  import com.openbravo.pos.ticket.TicketProductInfo; 
  import java.util.Properties;
 
   discountrate = sales.getInputValue() / 100.0;
   total = ticket.getTotal();  
 
  if (total > 0.0 && discountrate > 0.0) {  
     sdiscount = Formats.PERCENT.formatValue(discountrate);  

     taxes = ticket.getTaxLines();  
     for (int i = 0; i < taxes.length; i++) {  
         taxline = taxes[i];  
         ticket.insertLine(ticket.getLinesCount(),
             new TicketLineInfo(
                 "Remise totale " + sdiscount,   
                 taxline.getTaxInfo().getTaxCategoryID(),
                 1.0, 
                 -taxline.getSubTotal() * discountrate,
                 taxline.getTaxInfo()));  
     }  
     sales.setSelectedIndex(ticket.getLinesCount() - 1);
  } else {  
     java.awt.Toolkit.getDefaultToolkit().beep();  
 }

Retrieved from "http://wiki.openbravo.com/wiki/Openbravo_POS_Scripting_Tutorial/fr"

This page has been accessed 14,755 times. This page was last modified on 27 September 2009, at 23:10. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.