Afficher le texte sourceAnciennes révisionsLiens de retourHaut de page Table des matières Méthodes Principe général Authentification Correspondances API et ressources CashRegisters Users Rôles Places TariffAreas Resources Categories Compositions Cashes DiscountProfiles Customers Locations Stocks Attributes Tickets CashMvts Correspondances des actions Actions génériques Actions spécifiques Point de vente spec, sales Ekylibre utilise Pastèque comment logiciel de point de vente. Il implémente l'API serveur pour qu'il puisse être utilisé directement depuis une appli Pastèque cliente. Ekylibre doit pouvoir échanger avec les POS Pastèque. Pour cela il doit être compatible avec l'API v5 de Pastèque et les concepts généraux. Méthodes Principe général Un middleware (rack) redirigera les requêtes Pastèque vers les bons contrôleurs. Exemple de mise en place du middleware : Le middleware permettra de convertir les « requêtes Pastèque » en « requêtes Rails ». Voir rack-proxy ou rack-rewrite. Authentification Pour s'authentifier sur le serveur, il faut transmettre le nom d'utilisateur et mot de passe à chaque requête via les paramètres user et password. Correspondances API et ressources Chaque API de pastèque correspond à un contrôleur REST d'Ekylibre se trouvant dans /pasteque/v5/. Le nom du contrôleur sous Ekylibre est correspond au nom de l'API Pastèque en remplaçant le “API” final par “Controller”. Exemple : VersionAPI ⇒ VersionController, CurrenciesAPI ⇒ CurrenciesController, CashMvtsAPI ⇒ CashMvtsController. Ressource Pastèque Définition Modèle Ekylibre VersionAPI Version de l'API - CashRegistersAPI Caisse enregistreuse Cash UsersAPI Utilisateurs User RolesAPI Rôles (avec droits) Role PlacesAPI Places et tables dans un restaurant Product (filtrés) CurrenciesAPI Monnaies des types de vente disponibles Nomenclature::Currency définies par les types de ventes utilisables TaxesAPI TVA et taux TaxCategory ~ Nomenclature::TaxNature, Taxes ~ Taxes TariffAreasAPI Zones tarifaires TariffArea ~ Catalog, Price ~ CatalogPrice ResourcesAPI Image, texte… ≠ ∅ CategoriesAPI Catégories d'articles ProductNatureCategory ProductsAPI Article à la vente ProductNatureVariant ImagesAPI Images Attaque différents modèles CompositionsAPI Packs de produits ≠ ∅ CashesAPI Session ≠ CashSession DiscountProfilesAPI Profils de remise ≠ ∅ CustomersAPI Clients Entity.clients LocationsAPI Lieux de stockage ≠ Product (filtrés) StocksAPI Niveaux de stock Product AttributesAPI Attributs d'options ≠ ∅ TicketsAPI Affair CashMvtsAPI ≠ CashTransfer CashRegisters Les Cash de nature “cash_box” sous Ekylibre doivent disposer de 2 informations de plus : container_id (facultatif) référençant un produit (comme une BuildingDivision par exemple) qui précise l'endroit où se trouve la caisse. last_number contenant le dernier numéro de ticket utilisé pour la caisse. (Même principe que dans Sequence) Users La notion de card sous Pastèque n'est pas encore défini et ne sera pas implémenté dans l'immédiat. Pour la mise à jour du mot de passe, il suffit d'utiliser la méthode update : Rôles Il existe la correspondance des tables/modèles entre Pastèque et Ekylibre via un transcodage des droits. Les permissions sont attendues sous forme de liste de noms séparés par des espaces : fr.pasteque.pos.panels.JPanelCloseMoney fr.pasteque.pos.panels.JPanelPrinter Liste des droits ID Nom Droit Ekylibre button.opendrawer Ouvrir le tiroir caisse button.openmoney Ouvrir la caisse open-cash_sessions button.print Imprimer un aperçu de ticket fr.pasteque.pos.config.JPanelConfiguration Accéder à l'écran de configuration fr.pasteque.pos.customers.CustomersPayment Accéder à l'écran de règlement client fr.pasteque.pos.panels.JPanelCloseMoney Clôturer la caisse close-cash_sessions fr.pasteque.pos.panels.JPanelPayments Effectuer des mouvements de caisse fr.pasteque.pos.panels.JPanelPrinter Accéder à l'écran d'afficheur client et d'imprimante fr.pasteque.pos.panels.ReprintZTicket Rechercher et imprimer d'anciens tickets Z fr.pasteque.pos.sales.JPanelTicketEdits Accéder à l'écran d'édition des ventes write-sales fr.pasteque.pos.sales.JPanelTicketSales Accéder à l'écran des ventes read-sales Menu.BackOffice Ouvrir l'interface de gestion Menu.ChangePassword Changer le mot de passe de l'utilisateur payment.cash Autoriser le paiement en espèces payment.cheque Autoriser le paiement par chèque payment.debt Autoriser le paiement par dette payment.free Autoriser le paiement gratuit payment.magcard Autoriser le paiement par carte bleue payment.paper Autoriser le paiement par coupon payment.prepaid Autoriser le paiement par pré-paiement refund.cash Autoriser le remboursement en espèces refund.cheque Autoriser le remboursement par chèque refund.magcard Autoriser le remboursement par carte bleue refund.paper Autoriser le remboursement par coupon refund.prepaid Autoriser le remboursement par pré-paiement sales.ChangeTaxOptions Changer de taxe sales.EditLines Modifier les lignes d'un ticket sales.EditTicket Modifier un ticket sales.PrintTicket Imprimer un ticket sales.RefundTicket Rembourser un ticket sales.Total Enregistrer le paiement d'un ticket Places Sous Ekylibre, nous avons l'équivalence avec les BuildingDivision qui représente des salles (floors). Pour le mode “Restaurant” de Pastèque, le niveau en-dessous est le niveau “table”. Pour cela, il est nécessaire de rajouter une variété “table”. (À ajouter dans la nomenclature pour l'instant). Pour la détermination de x et y au sens Pastèque, il n'est pas possible de les définir et stocker sous Ekylibre dans l'immédiat. Dans une vision cours-terme, nous allons simuler qu'il y 4 colonnes de tables, triées par id. Exemple : 1 2 5 12 15 17 23 TariffAreas L′id sous Ekylibre sera utilisé pour fournir le dispOrder des TariffAreas. Resources Retourner du 404/NOT_FOUND pour l'instant. Categories Il n'y a pas d'arborescence de catégories à implémenter car aucune sous Ekylibre. Compositions Les compositions sont des produits vendus par ensemble. Exemple : “3 brosses à dent”. Il n'y a pas d'équivalence dans Ekylibre. Non nécessaire pour le client Pastèque. Le serveur doit répondre comme si la table existait mais vide. Cashes Les ouvertures de caisse sont définies par un modèle spécifique : CashSession. Ce modèle contient entre autres : cash_id : Référence à la caisse (Cash sous ERP / cashRegisterId sous Pasteque) started_at : Début de l'ouverture stopped_at : Fin de l'ouverture currency : Monnaie (cf Nomenclature) noticed_start_amount : Montant réel en caisse au début noticed_stop_amount : Montant réel en caisse à la fin expected_stop_amount : Montant attendu en caisse à la fin sequence_id : Référence à la séquence utilisée par cette caisse. Séquence non périodique obligatoirement. De plus, il faut un lien facultatif entre Affair et CashSession pour la production de Z-tickets 1). DiscountProfiles Les profils de réduction sont un modèle spécifique. Le serveur doit répondre comme si la table existait mais vide. Customers “Prepaid Amount” : Le fonctionnement reste à déterminer avec l'équipe Pastèque. Locations Les Locations sont des emplacements générique au niveau Building pour l'instant. Stocks La population des produits est utilisée sous Ekylibre pour fournir la quantité des stocks. max, attrSetInstId et security ne sont pas implémentés pour l'instant. Attributes Les attributs permettent de spécifier les options pour un produit. Exemple : Pour des t-Shirt, la taille (S, M, L, XL, XXL…) et la couleur (rouge, vert, noir…). Le serveur doit répondre comme si la table existait mais vide. Tickets Un ticket correspond approximativement à une Affair à 1 vente (Sale) et n règlements (IncomingPayment) chez Ekylibre. Cela définit une vente et les règlements associés. Pour identifier clairement les tickets au sein des affaires, une colonne booléenne doit être ajoutée à la table affairs. Un scope “tickets” doit être défini au niveau du modèle Affair pour les retrouver en se basant sur ce booléen. Pas de gestion des attributs au niveau des lignes de ticket. Partage de ticket Pas d'équivalence pour l'instant. Tous les tickets peuvent être considéré comme partagés. Paiements Les types de paiement sous Pastèque sont : cash, cheque, debt, free, magcard, paper, prepaid (cf. la liste des droits sur types de paiement). Pour réaliser la correspondance avec les types d'encaissement (IncomingPaymentMode) sous Ekylibre, il faut… CashMvts Les mouvements d'espèces sont les entrées/sorties d'argent au cours de l'ouverture de la caisse. Ils permettent de rajouter ou sortir des sous de la caisse. Seuls les types cashin et cashout sont disponibles comme type de paiement. Pour l'instant, aucun moyen de faire la correspondance avec Ekylibre de manière juste.. Donc l'opération d'ajout échouera à chaque fois via un retour rej. Correspondances des actions Actions génériques Mode Pastèque Ekylibre GET get show GET getAll index POST update update POST delete destroy Actions spécifiques Mode Pastèque Ekylibre POST UsersAPI#updPwd users#update_password GET CurrenciesAPI#getMain currencies#main GET CategoriesAPI#getChildren categories#children GET ProductsAPI#getCategory product_nature_variants#category GET CashesAPI#search sessions#search GET CustomersAPI#getTop customers#index?mode=top POST CustomersAPI#addPrepaid customers#update_prepaid 1) Un Z-ticket est un ticket récapitulatif de l'ensemble des tickets pour une session donnée. fr/specs/point-of-sale.txt Dernière modification: 2016/08/26 21:06(modification externe)