103 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#ifndef __EF0101_H
 | 
						|
#define __EF0101_H
 | 
						|
 | 
						|
#ifndef __RELATION_H
 | 
						|
#include <relation.h>
 | 
						|
#endif
 | 
						|
#ifndef __RECTYPES_H
 | 
						|
#include <rectypes.h>
 | 
						|
#endif
 | 
						|
#ifndef __RECARRAY_H
 | 
						|
#include <recarray.h>
 | 
						|
#endif
 | 
						|
#include <effetti.h>
 | 
						|
#include <reffetti.h>
 | 
						|
#include <cession.h>
 | 
						|
 | 
						|
////////////////////////////////////////////////////////////
 | 
						|
// Definizione dell'oggetto Effetto con la classe TEffetto//
 | 
						|
////////////////////////////////////////////////////////////
 | 
						|
class TEffetto:public TRectype
 | 
						|
{
 | 
						|
  TRecord_array  _righe;// righe dell'effetto
 | 
						|
  TRecord_array  _cess;// cessionari dell'effetto
 | 
						|
protected:
 | 
						|
  // ritorna la prossima chiave
 | 
						|
  long get_next_key(const long codcf) const;
 | 
						|
  // permette di leggere il record passato nel file passato
 | 
						|
  int leggi(TLocalisamfile& f, const TRectype& rec, word lockop = _nolock);
 | 
						|
public:
 | 
						|
  // Duplica l'effetto
 | 
						|
  virtual TObject* dup() const;
 | 
						|
  // rinumera la chiave 1
 | 
						|
  long renum(long numeff = 0);
 | 
						|
  // ritorna un riferimento alla testata dell'effetto
 | 
						|
  const TRectype& head() const { return *this; }
 | 
						|
  // ritorna un riferimento alla testata dell'effetto
 | 
						|
  TRectype& head() { return *this; }
 | 
						|
  // ritorna un riferimento alle righe dell'effetto
 | 
						|
  TRecord_array& righe() {return _righe;}
 | 
						|
  // ritorna un riferimento ai cessionari dell'effetto
 | 
						|
  TRecord_array& cess() {return _cess;}
 | 
						|
  // ritorna la riga i_esima dei cessionari
 | 
						|
  TRectype& row_c(int i, bool create=FALSE) { return _cess.row(i,create); }
 | 
						|
  // ritorna la riga i delle righe
 | 
						|
  TRectype& row_r(int i, bool create=FALSE) { return _righe.row(i,create); }
 | 
						|
  // ritorna il numero delle righe presenti nelle righe effetto
 | 
						|
  int rows_r() const { return _righe.rows(); }
 | 
						|
  // ritorna il numero delle righe presenti nei cessionari
 | 
						|
  int rows_c() const { return _cess.rows(); }
 | 
						|
  // elimina l'elemento riga nella posizione n nelle righe effetto
 | 
						|
  bool destroy_row_r(int n, bool pack = FALSE) { return _righe.destroy_row(n, pack); }
 | 
						|
  // elimina tutti gli elementi riga nelle righe effetto
 | 
						|
  void destroy_rows_r() { _righe.destroy_rows(); }
 | 
						|
  // elimina l'elemento riga nella posizione n nei cessionari
 | 
						|
  bool destroy_row_c(int n, bool pack = FALSE) { return _cess.destroy_row(n, pack); }
 | 
						|
  // elimina tutti gli elementi riga nei cessionari
 | 
						|
  void destroy_rows_c() { _cess.destroy_rows(); }
 | 
						|
  // restituisce il prossimo effetto
 | 
						|
  int next(TBaseisamfile& f);
 | 
						|
  // legge il record passato, con chiave 1
 | 
						|
  int read(TLocalisamfile& f, const TRectype& rec, word lockop = _nolock);
 | 
						|
  // legge il record passato, con chiave 4
 | 
						|
  int read(TLocalisamfile& f, char tipodist, long ndist, int nrigadist, word lockop = _nolock);
 | 
						|
  // scrive l'effetto, sempre usando la chiave 1
 | 
						|
  int write(TLocalisamfile& f, bool force = FALSE);
 | 
						|
  // riscrive l'effetto
 | 
						|
  int rewrite(TLocalisamfile& f) { return write(f, TRUE); }
 | 
						|
  // rimuove l'effetto
 | 
						|
  int remove(TLocalisamfile& f)const;
 | 
						|
  // restituisce il numero progressivo dell'effetto estraendolo dal record
 | 
						|
  long numero() const { return get_long(EFF_NPROGTR); }
 | 
						|
  // restituisce il codice del cliente intestatario dell'effetto estraendolo dal record
 | 
						|
  long codicec() const { return get_long(EFF_CODCF); }
 | 
						|
  // restituisce la data di scadenza dell'effetto estraendola dal record
 | 
						|
  TDate datasc() const { return get_date(EFF_DATASCAD); }
 | 
						|
  // restituisce il tipo di distinta a cui appartiene l'effetto estraendolo dal record
 | 
						|
  char tipodist() const { return get_char(EFF_TIPODIST); }
 | 
						|
  // restituisce il numero della distinta a cui appartiene l'effetto estraendolo dal record
 | 
						|
  long ndist() const { return get_long(EFF_NDIST); }
 | 
						|
  // restituisce il numero della riga distinta a cui appartiene l'effetto estraendolo dal record
 | 
						|
  int nrgdist() const { return get_int(EFF_NRIGADIST); }
 | 
						|
  // restituisce l'importo dell'effetto
 | 
						|
  real importo() const { return get_real(EFF_IMPORTO); }
 | 
						|
  // setta i campi per la quarta chiave del file
 | 
						|
  void put_key(TRectype& rec,char tipodist, long ndist, int nrigadist = 0);
 | 
						|
  // setta i campi per la prima chiave del file
 | 
						|
  void put_key(TRectype& rec,long numeff) const;
 | 
						|
  // restituisce true se l'effetto si riferisce ad una sola fattura
 | 
						|
  bool fatt(long num);
 | 
						|
  // restituisce i dati relativi alle fatture a cui si riferisce l'effetto
 | 
						|
  TToken_string* dati_fatt(long num);
 | 
						|
  // costruttore di default
 | 
						|
  TEffetto();
 | 
						|
  // costuisce l'effetto con il record passato
 | 
						|
  TEffetto(TRectype& rec);
 | 
						|
  // costuttore di copia
 | 
						|
  TEffetto(const TEffetto& eff);
 | 
						|
  // distruttore di default
 | 
						|
  virtual ~TEffetto() {}
 | 
						|
};
 | 
						|
 | 
						|
#endif//__EF0101_H
 |