campo-sirio/cg/cg5500.h
guy 5fde0436de Nuova comunicazione annuale IVA
Nuovi dari per CU

git-svn-id: svn://10.65.10.50/branches/R_10_00@23176 c028cbd2-c16b-5b4b-a496-9718f37d4682
2016-02-25 11:30:51 +00:00

124 lines
3.5 KiB
C++
Executable File

#include <applicat.h>
#include <mask.h>
#include <msksheet.h>
#include <tabutil.h>
// IVA a debito da riportare al mese successivo
class TSheet_field;
class TViswin;
class Visliq_app : public TSkeleton_application
{
TString _freqviva;
int _year;
long _firm;
TRelation* _nditte;
TArray_sheet* _ditte;
TString_array _nomiditte;
TTable* _lim;
TTable* _lam;
TTable* _lia;
TTable* _del;
TRectype* _lim_r;
TRectype* _lam_r;
TRectype* _del_r;
TRecfield* _del_ditta;
TRecfield* _del_anno;
TRecfield* _del_mese;
TRecfield* _del_tipo;
TRecfield* _lim_anno;
TRecfield* _lim_mese;
TRecfield* _lam_anno;
TRecfield* _lam_mese;
TSheet_field* _vers_sheet, *_liq_sheet;
TArray _vers_rows, _liq_rows;
TMask* _mask;
bool _from_one;
bool _is_annual;
bool _sh_dirty, _sv_dirty;
const char* itoname(int m);
bool is_trim(int x);
bool is_month_ok(int x, int month = -1);
protected:
virtual void main_loop();
virtual bool create();
virtual bool destroy();
// handlers
static bool set_ditta(TMask_field&, KEY);
static bool set_ragsoc(TMask_field&, KEY);
static bool sel_mese_sh1 (TMask_field&, KEY);
static bool sel_mese_sh2 (TMask_field&, KEY);
static bool ch_year_handler(TMask_field& f, KEY key);
static const char* link_handler(TMask&, int, const char*, bool doubleclick);
static bool sheet_action(TSheet_field& s, int r, KEY k);
static bool vers_action(TSheet_field& s, int r, KEY k);
public:
virtual bool firm_change_enabled() const { return false; }
static Visliq_app& app() { return (Visliq_app&)main_app(); }
TArray_sheet* get_ditte_sheet() { return _ditte; }
void build_ditte_sheet();
void build_nomiditte();
bool look_lia(long ditta = 0l, int year = 0);
bool look_lim(int m);
bool look_del(int month, int type, bool create = false);
void read_general(TMask& m);
void write_general(TMask& m);
void write_liq();
void write_del();
void set_freqviva();
void set_freqviva(const char* f) { _freqviva = f; }
void set_mask_freq(TMask&);
void set_year(const char* y) { _year = atoi(y); }
void set_year(int y) { _year = y; }
void reset_fields();
void set_liq_rows (TSheet_field& s) { _liq_rows = s.rows_array(); }
void set_vers_rows(TSheet_field& s) { _vers_rows = s.rows_array(); }
// 2 palle
TMask* get_main_mask() { return _mask; }
bool select_butt(TMask& m);
TTable* del() { return _del; }
real Visliq_app::min_vers(int anno, int month);
// riaggiusta la liquidazione del mese dato
void recalc_liq_data(TViswin* v, real& rimb, real& rett, real& vers, real& acc,
real& varimp, real& impnonver, real& credspec,
TString& d1, TString& d2, TString& d3, TDate& date,
TString& abi, TString& cab, TString& con);
// Calcolo del credito utilizzato IVA ed F24
real credito_utilizzato(int year, int month) const;
// riaggiusta le liquidazioni successive se serve
void recalc_next_liq(int start_month, TSheet_field* sl, TSheet_field* sv);
// workhorses
void vis_liq();
bool vis_all();
bool vis_one(int);
Visliq_app() : _vers_sheet(NULL), _liq_sheet(NULL) {}
virtual ~Visliq_app() {}
};
inline Visliq_app& app() { return (Visliq_app&) main_app(); }