campo-sirio/ef/ef0101.h
guy 501a4cf167 SEPA
git-svn-id: svn://10.65.10.50/branches/R_10_00@23163 c028cbd2-c16b-5b4b-a496-9718f37d4682
2015-12-21 11:21:54 +00:00

106 lines
4.8 KiB
C++
Executable File

#ifndef __EF0101_H
#define __EF0101_H
#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 la riga i delle righe
const TRectype& row_r(int i) const { return _righe.row(i); }
// 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 bool valuta = false) const { return get_real(valuta ? EFF_IMPORTOVAL : EFF_IMPORTO); }
const bool in_valuta() const;
const char get_tipo() const ;
// 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() const;
// restituisce i dati relativi alle fatture a cui si riferisce l'effetto
TToken_string& dati_fatt(long num, const bool valuta, TToken_string& dati);
// restituisce i dati codnum, ndoc, anno relativi alle fatture a cui si riferisce l'effetto
TToken_string& altridati_fatt(long num, TToken_string& dati);
// costruttore di default
TEffetto();
// costuisce l'effetto con il record passato
TEffetto(const TRectype& rec);
// costuttore di copia
TEffetto(const TEffetto& eff);
// distruttore di default
virtual ~TEffetto() {}
};
#endif//__EF0101_H