#ifndef __774100_H
#define __774100_H

#include <mailbox.h>
#include "77lib.h"
           
// Usato in generazione per evitare di leggere due volte lo stesso versamento
class TVersamenti : public TAssoc_array
{
    TString80 _key;   
  public:
    bool find (TSchedaP& sch, const long numvers);
    void set (TSchedaP& scheda, const long numvers);  

    TVersamenti() {}
};

bool filter_func(const TRelation *);
                                 
class TGenera  
{ 
  friend bool filter_func(const TRelation *);
    
  TVersamenti* _righe_gia_presenti;
    
  TRecnotype _items_rpag;
  int        _annodic,_annopag,_mesepag,_causale,_artbil;
  int        _ab1015, _ct1015, _codtrib;      
  long       _codditta;                                 
  real       _riteff,_ritver;
  TDate      _datavers;
  char       _luovers,_tipover,_liv;
  TString    _serie,_numero,_codqua,_cq1015,_rss,_note,_sNprog;
  bool       _ver1015;
  
  bool  azzera_quadroL();               
  bool  causale1015 (int codcaus);
  void  causale (int causale);
  bool  genera_riga (TCursor*);
  void  dati_rver   (TLocalisamfile&, TSchedaP& scheda, long numvers); 
  void  dati_scperc (TSchedaP& scheda);
  int   controllo_parametri();

public:
  bool    set(const long codditta, TConfig* cnf, const char* section="77");
  void    arrotonda();
  
  TGenera(char livello) : _liv(toupper(livello)),_annodic(0),_annopag(0),
  _mesepag(0),_causale(0),_artbil(0),_ab1015(0), _ct1015(0), _codtrib(0)  {}
  
  virtual ~TGenera() {}
};

#endif

