Définitions des types

// Entete des définition de type et de constantes

#ifndef __GESBANQ_DEF
#define __GESBANQ_DEF

#define LONG_ENR0 65
#define LONG_ENR 71
#define LONG_VISU 80
#define LONG_CODE 10
#define LONG_CREDIT 8
#define LONG_DEBIT 9
#define LONG_LIB 30
#define LONG_LIB_AFF 25
#define LONG_TYPPAI 9
#define LONG_NOM_FICHIER 81
#define LONG_AFF_NOM_FICH 17
#define LONG_NUM_COMPTE 12
#define LONG_SOLDE 13

#define INVERSE 1+(7<<4)
#define NORMAL 15+(1<<4)

#define NOM_FICHIER "fichier"
#define EXT_COMPTE ".cpt"
#define EXT_AUTO ".aut"
#define VERSION "10.0b2"

#define __MINMAX_DEFINED
#define max(a,b)        (((a) > (b)) ? (a) : (b))
#define min(a,b)        (((a) < (b)) ? (a) : (b))

#include <classlib\date.h>
#include "montant.h"

typedef struct ctxt {
  char numero_compte[LONG_NUM_COMPTE+1];
  TDate date_creation;
  int suivant;
  int rang_max;
  TMontant solde_banque;
  TMontant solde_reel;
  TMontant solde_banque_init;
  TMontant solde_reel_init;
  TDate date_sys;
  long num_chq;
  TDate date_utilisation;
  int nb_op_auto;
  char Supplement[30];        // pour des évolutions futures sans conversion
  // Valeurs non sauvegardees
  int nb_code;
  int again;
  char nom_fichier[LONG_NOM_FICHIER];
  char nom_fich_code[LONG_NOM_FICHIER];
  char Nom_auto[LONG_NOM_FICHIER];
} ctxt, *pctxt;


#define TYPE_CHEQUE 0x80
#define TYPE_CB 0x81
#define TYPE_PREL 0x82
#define TYPE_VIR  0x83
#define TYPE_TIP  0x84
#define TYPE_AUTRE 0x85

typedef struct {
    long numero_chq;
    unsigned char type;
} Mode_Paiement, *PMode_Paiement;

#define ANNEE_NON_MARQ 1970

typedef struct {
  TDate Date_Op;
  Mode_Paiement mode_paiement;
  char libelle[LONG_LIB];
  TMontant montant;
  char code[LONG_CODE];
  TDate Date_Marquage;
} Fiche, *PFiche;

#define RET_VIDE -1
#define RET_ESCAPE -2

#endif