#ifndef __CG2101_H #define __CG2101_H #ifndef __RECARRAY_H #include #endif #ifndef __RELATION_H #include #endif #ifndef __MOV_H #include #endif #ifndef __RMOV_H #include #endif #ifndef __RMOVIVA_H #include #endif #ifndef __CGLIB01_H class TRegistro; #endif #ifndef __CG2103_H class TCausale; #endif class TMovimentoPN : public TRelation { // class TMovimentoPN : public TRelation // @END // @DPRIV TRecord_array _cg, _iva; TDate _olddataliq; // @END protected: // @FPROT int registra(bool re, bool force); int read_mov_rows(); bool detraibile(const TRectype& row, const TCausale& cau) const; // @END public: // @FPUB virtual int next(TReclock lockop = _nolock) { return (file().next(lockop) || read_mov_rows()); } virtual int prev(TReclock lockop = _nolock) { return (file().prev(lockop) || read_mov_rows()); } virtual int first(TReclock lockop = _nolock) { return (file().first(lockop) || read_mov_rows()); } virtual int last(TReclock lockop = _nolock) { return (file().last(lockop) || read_mov_rows()); } virtual int skip(TRecnotype nrec, TReclock lockop = _nolock) { return (file().skip(nrec, lockop) || read_mov_rows()); } virtual int read(TIsamop op = _isgteq, TReclock lockop = _nolock); virtual int write (bool force = TRUE); virtual int rewrite(bool force = TRUE); virtual int remove(); const TRecord_array& cg_rows() const { return _cg; } const TRecord_array& iva_rows() const { return _iva; } TRectype& cg(int i); TRectype& iva(int i); int cg_items() const { return _cg.rows(); } int iva_items() const { return _iva.rows(); } void destroy_rows(long numreg); void destroy_cg_row(int i); int date2liq(const TDate& data) const; // Estrae dalla data il mese di liquidazione char frequenza_versamenti(int year) const; // Ritorna 'M'ensile o 'T'rimestrale bool controlla_liquidazione(const TDate& data, TRegistro& reg, bool reset = FALSE) const; void adjust_rowtypes(); TMovimentoPN(); virtual ~TMovimentoPN() {} }; #endif