Nuovi dari per CU git-svn-id: svn://10.65.10.50/branches/R_10_00@23176 c028cbd2-c16b-5b4b-a496-9718f37d4682
124 lines
3.5 KiB
C++
Executable File
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(); }
|