campo-sirio/cg/cg2101.h

89 lines
2.4 KiB
C
Raw Normal View History

#ifndef __CG2101_H
#define __CG2101_H
#ifndef __CG2103_H
#include "cg2103.h"
#endif
#ifndef __CGLIB03_H
#include "cglib03.h"
#endif
#ifndef __RECARRAY_H
#include <recarray.h>
#endif
#ifndef __RELATION_H
#include <relation.h>
#endif
#ifndef __MOV_H
#include <mov.h>
#endif
#ifndef __RMOV_H
#include <rmov.h>
#endif
#ifndef __RMOVIVA_H
#include <rmoviva.h>
#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();
// @END
public:
real indetraibile_al(const TString& codind, const TCausale& caus, int annodoc) const;
// @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; }
TRecord_array& cg_rows() { return _cg; }
const TRecord_array& iva_rows() const { return _iva; }
TRecord_array& iva_rows() { 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);
void destroy_iva_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;
int analizza_riga_IVA(const real& imptot, const real& ivatot, const TCausale& caus,
int annodoc, const TString& codiva, const TString& codind,
real& imp_det, real& iva_det, real& imp_ind, real& iva_ind) const;
void adjust_rowtypes();
TMovimentoPN();
virtual ~TMovimentoPN() {}
};
#endif