Interfaces de programmation caisse

------------------------- dŽbut LIPE-RFC-2-1-a-----------------------
LIPE-RFC-N¡   : 2-1
Status        : Provisoire rev. a
Date          : 26-03-2000
Auteurs       : Alain Couchot 
Sujet         : Interface de programmation de la Caisse enregistreuse LIPE
Mots ClŽs     : RFC, LIPE, LIPE-RFC, API, Caisse
Destinataires : Architecture,
Contenu       :

Ce RFC dŽtermine les interfaces de programmation de la Caisse enregistreuse
LIPE, a l'exclusion de toute modalitŽ d'implŽmentation

L'application Caisse est dŽcomposŽe en trois parties : l'interface utilisateur,
le "moteur" de calcul et l'Žcriture du journal. Le premier groupes d'API (Haut
niveau) fixe la communication entre l'interface utilisateur et le moteur de
calcul, le second groupe (Bas niveau) fixe la communication avec le journal.
Les API de bas niveau sont appelŽes par les fonctions correspondant aux API de
haut niveau.

1) API de bas niveau : gestion du journal

struct  jcl_jour;
struct  jcl_ticket;

int jcl_open( jcl _jour *pj);
        initialise le journal de caisse (rŽouvre le fichier ou se connecte au
        serveur)

int jcl_close(jcl _jour *pj);
        referme le journal de caisse (sortie du programme)

int  jcl_ticknew(jcl_jour *pj, jcl_ticket  *pt)
        initialise un nouveau ticket

int jcl_tickline(jcl_jour *pj, jcl_ticket  *pt,char *cat, char *prix_TTC,  char
* val_TVA)
        ecrit une ligne de ticket : tous les arguments (catŽgorie, prix TTC,
        montant TVA) sont sous forme de texte

int jcl_ticktotal(jcl_jour *pj, jcl_ticket  *pt,char *mod_pai, char *vendeur,
char *tot_TTC, char *tot_TVA)
        ecrit une ligne de total (mode de paiement, vendeur, total TTC, total
        TVA)
int jcl_RAZ(jcl_jour *pj, jcl_ticket  *pt,char *tot_TTC, char *tot_TVA)
        ecrit une ligne de remise a zero quotidienne

2) API de haut niveau

struct  cais_data;
struct  cais_ticket;

int cais_open(cais_data *pd);
        initialise la caisse
int cais_close(cais_data *pd);
        referme la caisse
int  cais_getvend( char ** vendeurs, int nvend);
        retourne le tableau des vendeurs
int  cais_getfam( char ** famille,  int nfam);
        retourne le tableau des familles de produits
int  cais_getmoy( char ** moyens, int nmoy);
        retourne le tableau des moyens de paiement
int  cais_ticknew(cais_data *pd, cais_ticket *pt)
        initialise un nouveau ticket
int  cais_tickline(cais_data *pd, cais_ticket *pt,int cat, int qte, float
px_TTC)
        enregistre une ligne de ticket (la categorie et la quantite sont des
        index dans les tableaux correspondants)
int cais_total(cais_data *pd, cais_ticket *pt,int vend, int moy,float
*tot_TTC, float *tot_TVA)
        enregistre la fn du ticket Žcrit la ligne et renvoie les deux totaux
        (le total TVA est calculŽ a partir des taux de TVA de chaque famille)
int cais_RAZ(cais_data *pd,float  *tot_TTC, float *tot_TVA)
        ecrit une lignede remise a zero quotidienne et renseigne les deux totaux
int cais_req(cais_data *pd, cais_ticket *pt,int vend, int, moy, int fam,float
*tot_TTC, float *tot_TVA)
        recalcule le total par vendeur, moyen et
        famille depuis la dernire remise ˆ zŽro

Toutes les fonctions renvoient 0 si elles se sont bien dŽroulŽes.

------------------------- fin LIPE-RFC-2-1-a-------------------------