Leggere modifiche all'handler della data di competenza

git-svn-id: svn://10.65.10.50/trunk@246 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1994-09-15 10:14:37 +00:00
parent 7d961ec520
commit a333152c88
8 changed files with 3833 additions and 3830 deletions

View File

@ -1,291 +1,291 @@
#include "cg0500.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "" -1 -1 77 20
GROUPBOX DLG_NULL -1 3
BEGIN
PROMPT 1 0 ""
END
STRING F_COD_CAUS 3
BEGIN
PROMPT 3 1 "Codice "
FIELD LF_CAUSALI->CODCAUS
KEY 1
FLAGS "U"
USE LF_CAUSALI
INPUT CODCAUS F_COD_CAUS
DISPLAY "Cod. causale" CODCAUS
DISPLAY "Descrizione @50" DESCR
DISPLAY "Tipo documento" TIPODOC
DISPLAY "Codice registro" REG
DISPLAY "Tipo movimento" TIPOMOV
OUTPUT F_COD_CAUS CODCAUS
OUTPUT F_DESCR DESCR
HELP "Codice causale"
CHECKTYPE REQUIRED
END
STRING F_DESCR 40
BEGIN
PROMPT 17 1 "Descrizione "
FIELD LF_CAUSALI->DESCR
COPY USE F_COD_CAUS
INPUT CODCAUS F_COD_CAUS
INPUT DESCR F_DESCR
DISPLAY "Cod. causale" CODCAUS
DISPLAY "Descrizione @50" DESCR
DISPLAY "Tipo documento" TIPODOC
DISPLAY "Codice registro" REG
DISPLAY "Tipo movimento" TIPOMOV
OUTPUT F_COD_CAUS CODCAUS
OUTPUT F_DESCR DESCR
HELP "Descrizione della causale"
END
STRING F_TIPO_DOC 2
BEGIN
PROMPT 2 4 "Tipo doc. "
FIELD LF_CAUSALI->TIPODOC
USE %TPD
INPUT CODTAB F_TIPO_DOC
DISPLAY "Tipo " CODTAB
DISPLAY "Descrizione @50 " S0
OUTPUT F_TIPO_DOC CODTAB
HELP "Tipo documento"
CHECKTYPE NORMAL
// MESSAGE SHOW, 2@
// MESSAGE EMPTY HIDE, 2@
FLAGS "U"
END
STRING F_COD_REG 3
BEGIN
PROMPT 23 4 "Cod. reg. "
FIELD LF_CAUSALI->REG
USE REG
INPUT CODTAB[1,4] F_ANNOES
INPUT CODTAB[5,7] F_COD_REG
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Codice registro " CODTAB[5,7]
DISPLAY "Tipo" I0
DISPLAY "Registro corrispettivi" B0
DISPLAY "Descrizione @50" S0
OUTPUT F_ANNOES CODTAB[1,4]
OUTPUT F_COD_REG CODTAB[5,7]
OUTPUT F_TIPO_REG I0
OUTPUT F_CORRISP B0
HELP "Codice registro"
CHECKTYPE NORMAL
FLAGS "D"
END
// Questo rimane sempre nascosto
STRING F_TIPO_MOV 2
BEGIN
PROMPT 68 4 ""
FIELD LF_CAUSALI->TIPOMOV
FLAGS "H"
END
// Viene mostrato questo se TPD non vuoto e diverso da IN AN PG
LISTBOX F_TIPO_MOV_1 1 20
BEGIN
PROMPT 44 4 "Tipo mov. "
FIELD LF_CAUSALI->TIPOMOV
HELP "Tipo movimento"
ITEM " |Nessuno" MESSAGE COPY,F_TIPO_MOV
ITEM "1|Fattura" MESSAGE COPY,F_TIPO_MOV
ITEM "2|Nota credito" MESSAGE COPY,F_TIPO_MOV
// GROUP 2
END
// Viene mostrato questo se TPD vuoto o uguale a IN AN PG
LISTBOX F_TIPO_MOV_2 1 20
BEGIN
PROMPT 44 4 "Tipo mov. "
FIELD LF_CAUSALI->TIPOMOV
HELP "Inserire il tipo movimento"
ITEM " |Nessuno" MESSAGE COPY,F_TIPO_MOV
ITEM "3|Incasso/pagamento " MESSAGE COPY,F_TIPO_MOV
ITEM "5|Insoluto" MESSAGE COPY,F_TIPO_MOV
ITEM "6|Pagamento insoluto" MESSAGE COPY,F_TIPO_MOV
FLAGS "H"
END
STRING F_ANNOES 4
BEGIN
PROMPT 2 6 ""
FLAGS "H"
END
STRING F_TIPO_REG 4
BEGIN
PROMPT 23 5 ""
FLAGS "H"
END
BOOLEAN F_CORRISP
BEGIN
PROMPT 33 5 ""
FLAGS "H"
END
SPREADSHEET F_SHEET_GCS
BEGIN
PROMPT 0 7 ""
ITEM "Tipo conto@21"
ITEM "C/F"
ITEM "Gr."
ITEM "Co."
ITEM "Sottoc."
ITEM "D/A"
ITEM "Descrizione@50"
ITEM "Descr. agg."
ITEM "Iva"
ITEM "Cod.Iva"
END
ENDPAGE
PAGE "" -1 -1 77 20
GROUPBOX DLG_NULL -1 3
BEGIN
PROMPT 1 0 "@BCampi obbligatori in caricamento documenti"
END
BOOLEAN F_DATA_DOC
BEGIN
PROMPT 2 1 "Data documento"
FIELD LF_CAUSALI->DATADOC
HELP ""
CHECKTYPE NORMAL
END
BOOLEAN F_NUM_DOC
BEGIN
PROMPT 34 1 "Numero documento"
FIELD LF_CAUSALI->NUMDOC
CHECKTYPE NORMAL
END
BOOLEAN F_AUTO_FAT
BEGIN
PROMPT 2 4 "Autofattura art.34"
FIELD LF_CAUSALI->AUTOFATT
CHECKTYPE NORMAL
GROUP 2
END
BOOLEAN F_ALLEGAT
BEGIN
PROMPT 34 4 "Doc. non va in allegati fine anno"
FIELD LF_CAUSALI->ALLEG
GROUP 2
END
BOOLEAN F_FAT_RITARDO
BEGIN
PROMPT 2 6 "Fattura in ritardo"
FIELD LF_CAUSALI->RITFATT
GROUP 2
END
STRING F_COD_CAUS_IM 3
BEGIN
PROMPT 34 6 "Codice causale per l'incasso immediato "
FIELD LF_CAUSALI->CODCAUSIM
COPY USE F_COD_CAUS
INPUT CODCAUS F_COD_CAUS_IM
COPY DISPLAY F_COD_CAUS
OUTPUT F_COD_CAUS_IM CODCAUS
CHECKTYPE NORMAL
// MESSAGE CLEAR, F_M_770
GROUP 2
END
BOOLEAN F_OP_INTRACOM
BEGIN
PROMPT 2 8 "Operazione intracomunitaria"
FIELD LF_CAUSALI->INTRACOM
// MESSAGE TRUE "X", F_MOV_VALU | DISABLE, F_MOV_VALU
// MESSAGE FALSE "", F_MOV_VALU | ENABLE, F_MOV_VALU
GROUP 2
END
BOOLEAN F_VALINTRA
BEGIN
PROMPT 34 8 "Gestione valuta per operazioni intrac."
FIELD LF_CAUSALI->VALINTRA
GROUP 2
END
BOOLEAN F_MOV_VALU
BEGIN
PROMPT 2 10 "Movimento in valuta"
FIELD LF_CAUSALI->MOVVAL
GROUP 2
END
BOOLEAN F_MOV_SEZ
BEGIN
PROMPT 34 10 "Movimento solo sezionale"
FIELD LF_CAUSALI->MOVSEZ
FLAGS "H"
END
LISTBOX F_OP_FINE_ANNO 1 10
BEGIN
PROMPT 2 12 "Operazioni di fine anno "
ITEM " | "
ITEM "C|Chiusura"
ITEM "A|Apertura"
FIELD LF_CAUSALI->MOVAP
FLAGS "H"
END
LISTBOX F_COLL_CESP 1 40
BEGIN
PROMPT 2 14 "Collegamento cespiti "
FIELD LF_CAUSALI->COLLCESP
HELP "Inserire il tipo di collegamento cespiti"
ITEM " |Nessuno"
ITEM "A|Acquisto cespite"
ITEM "B|Rettifica acquisto"
ITEM "C|Sostenimento costi"
ITEM "E|Eliminazione dal processo produttivo"
ITEM "M|Rivalutazione monetaria"
ITEM "P|Reinvestimento plusvalenze"
ITEM "R|Rivalutazione economica"
ITEM "T|Trasferimento"
ITEM "V|Vendita cespite"
ITEM "Z|Rettifica vendita"
END
LISTBOX F_M_770 1 40
BEGIN
PROMPT 2 16 "Collegamento Mod.770 "
FIELD LF_CAUSALI->M770
HELP "Inserire il tipo di collegamento Mod.770"
ITEM " |Nessuno" // MESSAGE ENABLE,F_COD_CAUS_IM
ITEM "1|Ricevuta e/o pagamento fattura percip." // MESSAGE CLEAR,F_COD_CAUS_IM
ITEM "2|Versamento ritenute percip." // MESSAGE CLEAR,F_COD_CAUS_IM
ITEM "3|Versamento ritenute dipendente" // MESSAGE CLEAR,F_COD_CAUS_IM
ITEM "4|Versamento contributi dipendente" // MESSAGE CLEAR,F_COD_CAUS_IM
ITEM "5|Compensi non soggetti" // MESSAGE CLEAR,F_COD_CAUS_IM
ITEM "6|Ritenute per operazioni occasionali" // MESSAGE CLEAR,F_COD_CAUS_IM
END
ENDPAGE
ENDMASK
#include "cg0500b.uml"
#include "cg0500.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "" -1 -1 77 20
GROUPBOX DLG_NULL -1 3
BEGIN
PROMPT 1 0 ""
END
STRING F_COD_CAUS 3
BEGIN
PROMPT 3 1 "Codice "
FIELD LF_CAUSALI->CODCAUS
KEY 1
FLAGS "U"
USE LF_CAUSALI
INPUT CODCAUS F_COD_CAUS
DISPLAY "Cod. causale" CODCAUS
DISPLAY "Descrizione @50" DESCR
DISPLAY "Tipo documento" TIPODOC
DISPLAY "Codice registro" REG
DISPLAY "Tipo movimento" TIPOMOV
OUTPUT F_COD_CAUS CODCAUS
OUTPUT F_DESCR DESCR
HELP "Codice causale"
CHECKTYPE REQUIRED
END
STRING F_DESCR 40
BEGIN
PROMPT 17 1 "Descrizione "
FIELD LF_CAUSALI->DESCR
COPY USE F_COD_CAUS
INPUT CODCAUS F_COD_CAUS
INPUT DESCR F_DESCR
DISPLAY "Cod. causale" CODCAUS
DISPLAY "Descrizione @50" DESCR
DISPLAY "Tipo documento" TIPODOC
DISPLAY "Codice registro" REG
DISPLAY "Tipo movimento" TIPOMOV
OUTPUT F_COD_CAUS CODCAUS
OUTPUT F_DESCR DESCR
HELP "Descrizione della causale"
END
STRING F_TIPO_DOC 2
BEGIN
PROMPT 2 4 "Tipo doc. "
FIELD LF_CAUSALI->TIPODOC
USE %TPD
INPUT CODTAB F_TIPO_DOC
DISPLAY "Tipo " CODTAB
DISPLAY "Descrizione @50 " S0
OUTPUT F_TIPO_DOC CODTAB
HELP "Tipo documento"
CHECKTYPE NORMAL
// MESSAGE SHOW, 2@
// MESSAGE EMPTY HIDE, 2@
FLAGS "U"
END
STRING F_COD_REG 3
BEGIN
PROMPT 23 4 "Cod. reg. "
FIELD LF_CAUSALI->REG
USE REG
INPUT CODTAB[1,4] F_ANNOES
INPUT CODTAB[5,7] F_COD_REG
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Codice registro " CODTAB[5,7]
DISPLAY "Tipo" I0
DISPLAY "Registro corrispettivi" B0
DISPLAY "Descrizione @50" S0
OUTPUT F_ANNOES CODTAB[1,4]
OUTPUT F_COD_REG CODTAB[5,7]
OUTPUT F_TIPO_REG I0
OUTPUT F_CORRISP B0
HELP "Codice registro"
CHECKTYPE NORMAL
FLAGS "D"
END
// Questo rimane sempre nascosto
STRING F_TIPO_MOV 2
BEGIN
PROMPT 68 4 ""
FIELD LF_CAUSALI->TIPOMOV
FLAGS "H"
END
// Viene mostrato questo se TPD non vuoto e diverso da IN AN PG
LISTBOX F_TIPO_MOV_1 1 20
BEGIN
PROMPT 44 4 "Tipo mov. "
FIELD LF_CAUSALI->TIPOMOV
HELP "Tipo movimento"
ITEM " |Nessuno" MESSAGE COPY,F_TIPO_MOV
ITEM "1|Fattura" MESSAGE COPY,F_TIPO_MOV
ITEM "2|Nota credito" MESSAGE COPY,F_TIPO_MOV
// GROUP 2
END
// Viene mostrato questo se TPD vuoto o uguale a IN AN PG
LISTBOX F_TIPO_MOV_2 1 20
BEGIN
PROMPT 44 4 "Tipo mov. "
FIELD LF_CAUSALI->TIPOMOV
HELP "Inserire il tipo movimento"
ITEM " |Nessuno" MESSAGE COPY,F_TIPO_MOV
ITEM "3|Incasso/pagamento " MESSAGE COPY,F_TIPO_MOV
ITEM "5|Insoluto" MESSAGE COPY,F_TIPO_MOV
ITEM "6|Pagamento insoluto" MESSAGE COPY,F_TIPO_MOV
FLAGS "H"
END
STRING F_ANNOES 4
BEGIN
PROMPT 2 6 ""
FLAGS "H"
END
STRING F_TIPO_REG 4
BEGIN
PROMPT 23 5 ""
FLAGS "H"
END
BOOLEAN F_CORRISP
BEGIN
PROMPT 33 5 ""
FLAGS "H"
END
SPREADSHEET F_SHEET_GCS
BEGIN
PROMPT 0 7 ""
ITEM "Tipo conto@21"
ITEM "C/F"
ITEM "Gr."
ITEM "Co."
ITEM "Sottoc."
ITEM "D/A"
ITEM "Descrizione@50"
ITEM "Descr. agg."
ITEM "Iva"
ITEM "Cod.Iva"
END
ENDPAGE
PAGE "" -1 -1 77 20
GROUPBOX DLG_NULL -1 3
BEGIN
PROMPT 1 0 "@BCampi obbligatori in caricamento documenti"
END
BOOLEAN F_DATA_DOC
BEGIN
PROMPT 2 1 "Data documento"
FIELD LF_CAUSALI->DATADOC
HELP ""
CHECKTYPE NORMAL
END
BOOLEAN F_NUM_DOC
BEGIN
PROMPT 34 1 "Numero documento"
FIELD LF_CAUSALI->NUMDOC
CHECKTYPE NORMAL
END
BOOLEAN F_AUTO_FAT
BEGIN
PROMPT 2 4 "Autofattura art.34"
FIELD LF_CAUSALI->AUTOFATT
CHECKTYPE NORMAL
GROUP 2
END
BOOLEAN F_ALLEGAT
BEGIN
PROMPT 34 4 "Doc. non va in allegati fine anno"
FIELD LF_CAUSALI->ALLEG
GROUP 2
END
BOOLEAN F_FAT_RITARDO
BEGIN
PROMPT 2 6 "Fattura in ritardo"
FIELD LF_CAUSALI->RITFATT
GROUP 2
END
STRING F_COD_CAUS_IM 3
BEGIN
PROMPT 34 6 "Codice causale per l'incasso immediato "
FIELD LF_CAUSALI->CODCAUSIM
COPY USE F_COD_CAUS
INPUT CODCAUS F_COD_CAUS_IM
COPY DISPLAY F_COD_CAUS
OUTPUT F_COD_CAUS_IM CODCAUS
CHECKTYPE NORMAL
// MESSAGE CLEAR, F_M_770
GROUP 2
END
BOOLEAN F_OP_INTRACOM
BEGIN
PROMPT 2 8 "Operazione intracomunitaria"
FIELD LF_CAUSALI->INTRACOM
// MESSAGE TRUE "X", F_MOV_VALU | DISABLE, F_MOV_VALU
// MESSAGE FALSE "", F_MOV_VALU | ENABLE, F_MOV_VALU
GROUP 2
END
BOOLEAN F_VALINTRA
BEGIN
PROMPT 34 8 "Gestione valuta per operazioni intrac."
FIELD LF_CAUSALI->VALINTRA
GROUP 2
END
BOOLEAN F_MOV_VALU
BEGIN
PROMPT 2 10 "Movimento in valuta"
FIELD LF_CAUSALI->MOVVAL
GROUP 2
END
BOOLEAN F_MOV_SEZ
BEGIN
PROMPT 34 10 "Movimento solo sezionale"
FIELD LF_CAUSALI->MOVSEZ
FLAGS "H"
END
LISTBOX F_OP_FINE_ANNO 1 10
BEGIN
PROMPT 2 12 "Operazioni di fine anno "
ITEM " | "
ITEM "C|Chiusura"
ITEM "A|Apertura"
FIELD LF_CAUSALI->MOVAP
FLAGS "H"
END
LISTBOX F_COLL_CESP 1 40
BEGIN
PROMPT 2 14 "Collegamento cespiti "
FIELD LF_CAUSALI->COLLCESP
HELP "Inserire il tipo di collegamento cespiti"
ITEM " |Nessuno"
ITEM "A|Acquisto cespite"
ITEM "B|Rettifica acquisto"
ITEM "C|Sostenimento costi"
ITEM "E|Eliminazione dal processo produttivo"
ITEM "M|Rivalutazione monetaria"
ITEM "P|Reinvestimento plusvalenze"
ITEM "R|Rivalutazione economica"
ITEM "T|Trasferimento"
ITEM "V|Vendita cespite"
ITEM "Z|Rettifica vendita"
END
LISTBOX F_M_770 1 40
BEGIN
PROMPT 2 16 "Collegamento Mod.770 "
FIELD LF_CAUSALI->M770
HELP "Inserire il tipo di collegamento Mod.770"
ITEM " |Nessuno" // MESSAGE ENABLE,F_COD_CAUS_IM
ITEM "1|Ricevuta e/o pagamento fattura percip." // MESSAGE CLEAR,F_COD_CAUS_IM
ITEM "2|Versamento ritenute percip." // MESSAGE CLEAR,F_COD_CAUS_IM
ITEM "3|Versamento ritenute dipendente" // MESSAGE CLEAR,F_COD_CAUS_IM
ITEM "4|Versamento contributi dipendente" // MESSAGE CLEAR,F_COD_CAUS_IM
ITEM "5|Compensi non soggetti" // MESSAGE CLEAR,F_COD_CAUS_IM
ITEM "6|Ritenute per operazioni occasionali" // MESSAGE CLEAR,F_COD_CAUS_IM
END
ENDPAGE
ENDMASK
#include "cg0500b.uml"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,152 +1,152 @@
#ifndef __CG2102_H
#define __CG2102_H
#ifndef __MSKSHEET_H
#include <msksheet.h>
#endif
#ifndef __RELAPP_H
#include <relapp.h>
#endif
#ifndef __CGLIB_H
#include "cglib.h"
#endif
#ifndef __CG2101_H
#include "cg2101.h"
#endif
#ifndef __CG2103_H
#include "cg2103.h"
#endif
class TPrimanota_application : public TRelation_application
{
TMovimentoPN* _rel;
TLocalisamfile* _tabcom;
TLocalisamfile* _tab;
TLocalisamfile* _caus;
TLocalisamfile* _rcaus;
TLocalisamfile* _clifo;
TLocalisamfile* _pcon;
TLocalisamfile* _attiv;
TLocalisamfile* _saldo;
TLocalisamfile* _comuni;
TLocalisamfile* _occas;
TLocalisamfile* _nditte;
TCausale _causale; // Causale corrente
TLibro_giornale _giornale; // Libro giornale corrente
TipoIVA _iva; // Tipo di IVA corrente
TSaldo_agg _saldi; // Saldi da aggiornare
TMask* _msk[4]; // Maschere di query, cg, iva
long _lastreg; // Numero ultima registrazione
int _mode; // Modo maschera corrente
static bool suspended_handler(TMask_field& f, KEY k);
static bool num_handler(TMask_field& f, KEY key);
static bool caus_query_handler(TMask_field& f, KEY key);
static bool caus_modify_handler(TMask_field& f, KEY key);
static bool datareg_handler(TMask_field& f, KEY key);
static bool datacomp_handler(TMask_field& f, KEY key);
static bool data74ter_handler(TMask_field& f, KEY key);
static bool reg_handler(TMask_field& f, KEY key);
static bool clifo_handler(TMask_field& f, KEY key);
static bool totale_handler(TMask_field& f, KEY key);
static bool ritfis_handler(TMask_field& f, KEY key);
static bool ritsoc_handler(TMask_field& f, KEY key);
static bool main_codiva_handler(TMask_field& f, KEY key);
static bool visval_handler(TMask_field& f, KEY key);
static bool occas_code_handler(TMask_field& f, KEY key);
static bool occas_handler(TMask_field& f, KEY key);
static bool solaiva_handler(TMask_field& f, KEY key);
static bool descr_handler(TMask_field& f, KEY k);
static bool imponibile_handler(TMask_field& f, KEY key);
static bool codiva_handler(TMask_field& f, KEY key);
static bool imposta_handler(TMask_field& f, KEY key);
static bool dareavere_handler(TMask_field& f, KEY k);
static bool iva_notify(int r, KEY key);
static bool iva_handler(TMask_field& f, KEY key);
static bool cg_notify(int r, KEY key);
static bool cg_handler(TMask_field& f, KEY key);
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual void print();
virtual bool changing_mask(int mode);
virtual TMask* get_mask(int mode);
virtual TRelation* get_relation() const { return _rel; }
virtual void init_query_mode(TMask& m);
virtual void init_insert_mode(TMask& m);
virtual void init_modify_mode(TMask& m);
virtual const char* get_next_key();
virtual int read(TMask& m);
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
virtual bool remove();
void genera_incasso(const char* causimm);
TMask* load_mask(int n);
TMask& occas_mask() { return *load_mask(3); }
bool get_conto(const TRectype& r, TConto& c) const;
void put_conto(TRectype& r, const TConto& c) const;
void mask2rel(const TMask& m);
TipoIVA iva() const { return _iva; }
TMask& TPrimanota_application::mask() const;
void fill_sheet(TMask& m) const;
void init_mask(TMask& m);
TSheet_field& cgs() const;
TSheet_field& ivas() const;
static int bill2pos(const TConto& conto, char tipo);
static TipoIVA reg2IVA(const char* registro, int anno);
static TipoIVA cau2IVA(const char* causale, int anno);
static int type2pos(char tipo);
static const real& cod2IVA(const TMask& m);
static real scorpora(real& imponibile, const real& percentuale);
static bool detraibile(int tipodet);
int bill2contr(const TConto& c, char sezione) const;
int bill_used(const TConto& conto) const;
int det_used(char detraib) const;
bool read_caus(const char* cod, int year);
TCausale& causale() { return _causale; }
TLibro_giornale& giornale() { return _giornale; }
bool test_swap(bool ritsoc);
TImporto real2imp(const real& r, char tipo);
real totale_documento();
void set_cgs_imp(int n, const TImporto& importo);
TImporto get_cgs_imp(int n);
void add_cgs_imp(int n, const TImporto& importo);
void sub_cgs_imp(int n, const real& imp);
void cgs_pack();
real calcola_saldo() const;
real calcola_imp() const;
void set_ivas_row(int n, const char* codiva, TConto& tc, const char* desc);
int set_cgs_row(int n, const TImporto& importo, TConto& conto, const char* desc, char tipo);
void disable_cgs_cells(int n, char tipo);
void add_cgs_tot(TMask& m);
void add_cgs_rit(bool fisc);
public:
TPrimanota_application();
};
#endif
#ifndef __CG2102_H
#define __CG2102_H
#ifndef __MSKSHEET_H
#include <msksheet.h>
#endif
#ifndef __RELAPP_H
#include <relapp.h>
#endif
#ifndef __CGLIB_H
#include "cglib.h"
#endif
#ifndef __CG2101_H
#include "cg2101.h"
#endif
#ifndef __CG2103_H
#include "cg2103.h"
#endif
class TPrimanota_application : public TRelation_application
{
TMovimentoPN* _rel;
TLocalisamfile* _tabcom;
TLocalisamfile* _tab;
TLocalisamfile* _caus;
TLocalisamfile* _rcaus;
TLocalisamfile* _clifo;
TLocalisamfile* _pcon;
TLocalisamfile* _attiv;
TLocalisamfile* _saldo;
TLocalisamfile* _comuni;
TLocalisamfile* _occas;
TLocalisamfile* _nditte;
TCausale _causale; // Causale corrente
TLibro_giornale _giornale; // Libro giornale corrente
TipoIVA _iva; // Tipo di IVA corrente
TSaldo_agg _saldi; // Saldi da aggiornare
TMask* _msk[4]; // Maschere di query, cg, iva
long _lastreg; // Numero ultima registrazione
int _mode; // Modo maschera corrente
static bool suspended_handler(TMask_field& f, KEY k);
static bool num_handler(TMask_field& f, KEY key);
static bool caus_query_handler(TMask_field& f, KEY key);
static bool caus_modify_handler(TMask_field& f, KEY key);
static bool datareg_handler(TMask_field& f, KEY key);
static bool datacomp_handler(TMask_field& f, KEY key);
static bool data74ter_handler(TMask_field& f, KEY key);
static bool reg_handler(TMask_field& f, KEY key);
static bool clifo_handler(TMask_field& f, KEY key);
static bool totale_handler(TMask_field& f, KEY key);
static bool ritfis_handler(TMask_field& f, KEY key);
static bool ritsoc_handler(TMask_field& f, KEY key);
static bool main_codiva_handler(TMask_field& f, KEY key);
static bool visval_handler(TMask_field& f, KEY key);
static bool occas_code_handler(TMask_field& f, KEY key);
static bool occas_handler(TMask_field& f, KEY key);
static bool solaiva_handler(TMask_field& f, KEY key);
static bool descr_handler(TMask_field& f, KEY k);
static bool imponibile_handler(TMask_field& f, KEY key);
static bool codiva_handler(TMask_field& f, KEY key);
static bool imposta_handler(TMask_field& f, KEY key);
static bool dareavere_handler(TMask_field& f, KEY k);
static bool iva_notify(int r, KEY key);
static bool iva_handler(TMask_field& f, KEY key);
static bool cg_notify(int r, KEY key);
static bool cg_handler(TMask_field& f, KEY key);
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual void print();
virtual bool changing_mask(int mode);
virtual TMask* get_mask(int mode);
virtual TRelation* get_relation() const { return _rel; }
virtual void init_query_mode(TMask& m);
virtual void init_insert_mode(TMask& m);
virtual void init_modify_mode(TMask& m);
virtual const char* get_next_key();
virtual int read(TMask& m);
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
virtual bool remove();
void genera_incasso(const char* causimm);
TMask* load_mask(int n);
TMask& occas_mask() { return *load_mask(3); }
bool get_conto(const TRectype& r, TConto& c) const;
void put_conto(TRectype& r, const TConto& c) const;
void mask2rel(const TMask& m);
TipoIVA iva() const { return _iva; }
TMask& TPrimanota_application::mask() const;
void fill_sheet(TMask& m) const;
void init_mask(TMask& m);
TSheet_field& cgs() const;
TSheet_field& ivas() const;
static int bill2pos(const TConto& conto, char tipo);
static TipoIVA reg2IVA(const char* registro, int anno);
static TipoIVA cau2IVA(const char* causale, int anno);
static int type2pos(char tipo);
static const real& cod2IVA(const TMask& m);
static real scorpora(real& imponibile, const real& percentuale);
static bool detraibile(int tipodet);
int bill2contr(const TConto& c, char sezione) const;
int bill_used(const TConto& conto) const;
int det_used(char detraib) const;
bool read_caus(const char* cod, int year);
TCausale& causale() { return _causale; }
TLibro_giornale& giornale() { return _giornale; }
bool test_swap(bool ritsoc);
TImporto real2imp(const real& r, char tipo);
real totale_documento();
void set_cgs_imp(int n, const TImporto& importo);
TImporto get_cgs_imp(int n);
void add_cgs_imp(int n, const TImporto& importo);
void sub_cgs_imp(int n, const real& imp);
void cgs_pack();
real calcola_saldo() const;
real calcola_imp() const;
void set_ivas_row(int n, const char* codiva, TConto& tc, const char* desc);
int set_cgs_row(int n, const TImporto& importo, TConto& conto, const char* desc, char tipo);
void disable_cgs_cells(int n, char tipo);
void add_cgs_tot(TMask& m);
void add_cgs_rit(bool fisc);
public:
TPrimanota_application();
};
#endif

File diff suppressed because it is too large Load Diff

View File

@ -1,221 +1,221 @@
#include "cg3100.h"
PAGE "Stampa Lista Movimenti" -1 -1 76 20
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
END
DATE F_DATASTAMPA
BEGIN
PROMPT 48 1 "Data stampa "
FLAGS "A"
END
NUMBER F_ANNO 4
BEGIN
GROUP 3
PROMPT 2 3 "Anno esercizio "
USE ESC
CHECKTYPE NORMAL
INPUT CODTAB F_ANNO
DISPLAY "Anno" CODTAB
DISPLAY "Data inizio esercizio" D0
DISPLAY "Data fine esercizio" D1
OUTPUT F_ANNO CODTAB
FLAGS "RZ"
END
RADIOBUTTON F_MOVIMENTI 38
BEGIN
PROMPT 30 3 "Scelta stampa "
HELP "Indicare il tipo di stampa"
ITEM "0|Lista movimenti"
MESSAGE SHOW,F_CONTROLLO|SHOW,1@|SHOW,F_REGISTROFIN|SHOW,F_REGISTROINI
ITEM "1|Lista movimenti di sola prima nota"
MESSAGE HIDE,F_CONTROLLO|HIDE,1@|HIDE,F_REGISTROFIN|HIDE,F_REGISTROINI|HIDE,F_STAMPA
END
LIST F_CONTROLLO 23
BEGIN
PROMPT 2 7 "Controllo movimenti errati "
HELP "La scelta 1 stampa solo le registrazioni non errate; la scelta 2 permette di listare tutte le registrazioni inserite, segnalando quelle errate; la scelta 3 stampa solo le registrazioni errate"
ITEM "3|No" MESSAGE HIDE,1@
ITEM "2|Si" MESSAGE SHOW,1@
ITEM "1|Stampa movimenti errati" MESSAGE SHOW,1@
END
TEXT DLG_NULL
BEGIN
GROUP 1
PROMPT 2 8 "Stampa messaggi : "
END
BOOLEAN F_ANNOC
BEGIN
GROUP 1
PROMPT 20 8 "anno di competenza "
END
BOOLEAN F_ALLEGATO
BEGIN
GROUP 1
PROMPT 20 9 "allegato iva "
MESSAGE TRUE DISABLE,F_STAMPA|COPY,F_STAMPA
MESSAGE FALSE ENABLE,F_STAMPA
END
RADIOBUTTON F_DECIDI 10
BEGIN
PROMPT 2 10 "Stampa "
ITEM "2|data" MESSAGE DISABLE,2@|RESET,2@|ENABLE,3@
ITEM "1|numero" MESSAGE DISABLE,3@|RESET,3@|ENABLE,2@
END
DATE F_DATAINI
BEGIN
PROMPT 19 11 "Stampa mov. dalla data "
//HELP "Se non indicato nessun valore viene effettuata una stampa completa in ordine di data"
GROUP 3
END
DATE F_DATAFIN
BEGIN
PROMPT 55 11 "alla data "
GROUP 3
END
NUMBER F_NUMEROINI 7
BEGIN
PROMPT 19 12 "Stampa mov. dal numero "
USE LF_MOV KEY 1
INPUT NUMREG F_NUMEROINI
DISPLAY "Numero registrazione" NUMREG
DISPLAY "Descrizione@50" DESCR
OUTPUT F_NUMEROINI NUMREG
CHECKTYPE NORMAL
FLAGS "R"
GROUP 2
END
NUMBER F_NUMEROFIN 7
BEGIN
PROMPT 55 12 "al numero "
COPY USE F_NUMEROINI
INPUT NUMREG F_NUMEROFIN
COPY DISPLAY F_NUMEROINI
OUTPUT F_NUMEROFIN NUMREG
CHECKTYPE NORMAL
FLAGS "R"
GROUP 2
END
STRING F_CAUSALEINI 3
BEGIN
PROMPT 2 14 "Stampa dalla causale "
USE LF_CAUSALI KEY 1
INPUT CODCAUS F_CAUSALEINI
DISPLAY "Codice causale" CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CAUSALEINI CODCAUS
FLAGS "UR"
HELP "Introdurre codice causale di inizio stampa: vuoto = inizio archivio"
END
STRING F_CAUSALEFIN 3
BEGIN
PROMPT 40 14 "alla causale "
COPY USE F_CAUSALEINI
INPUT CODCAUS F_CAUSALEFIN
DISPLAY "Codice causale" CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CAUSALEFIN CODCAUS
FLAGS "UR"
HELP "Introdurre codice causale di fine stampa: vuoto = fine archivio"
END
STRING F_REGISTROINI 3
BEGIN
PROMPT 2 15 "Stampa dal registro iva "
USE REG SELECT I0<"3"
//INPUT CODTAB[1,5] F_ANNO SELECT
//INPUT CODTAB[1,5] ""
INPUT CODTAB[5,7] F_REGISTROINI
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Cod. registro iva" CODTAB[5,7]
DISPLAY "Descrizione@40" S0
OUTPUT F_REGISTROINI CODTAB[5,7]
FLAGS "UR"
//CHECKTYPE NORMAL
HELP "Introdurre cod. registro iva di inizio stampa: vuoto = inizio archivio"
END
STRING F_REGISTROFIN 3
BEGIN
PROMPT 40 15 "al reg. iva "
COPY USE F_REGISTROINI
//INPUT CODTAB[1,5] F_ANNO SELECT
//INPUT CODTAB[1,5] ""
INPUT CODTAB[5,7] F_REGISTROFIN
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Cod. registro iva" CODTAB[5,7]
DISPLAY "Descrizione@40" S0
OUTPUT F_REGISTROFIN CODTAB[5,7]
FLAGS "UR"
//CHECKTYPE NORMAL
HELP "Introdurre cod. registro iva di fine stampa: vuoto = fine archivio"
END
BOOLEAN F_STAMPA
BEGIN
PROMPT 2 16 "Stampa imponibili, imposte e codici iva "
END
BOOLEAN F_STAMPAMOVP
BEGIN
PROMPT 2 17 "Stampa movimenti provvisori "
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 2 17 "N.B. se non indicato nessun valore stampa completa in ordine di data"
END
*/
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK
#include "cg3100.h"
PAGE "Stampa Lista Movimenti" -1 -1 76 20
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
END
DATE F_DATASTAMPA
BEGIN
PROMPT 48 1 "Data stampa "
FLAGS "A"
END
NUMBER F_ANNO 4
BEGIN
GROUP 3
PROMPT 2 3 "Anno esercizio "
USE ESC
CHECKTYPE NORMAL
INPUT CODTAB F_ANNO
DISPLAY "Anno" CODTAB
DISPLAY "Data inizio esercizio" D0
DISPLAY "Data fine esercizio" D1
OUTPUT F_ANNO CODTAB
FLAGS "RZ"
END
RADIOBUTTON F_MOVIMENTI 38
BEGIN
PROMPT 30 3 "Scelta stampa "
HELP "Indicare il tipo di stampa"
ITEM "0|Lista movimenti"
MESSAGE SHOW,F_CONTROLLO|SHOW,1@|SHOW,F_REGISTROFIN|SHOW,F_REGISTROINI
ITEM "1|Lista movimenti di sola prima nota"
MESSAGE HIDE,F_CONTROLLO|HIDE,1@|HIDE,F_REGISTROFIN|HIDE,F_REGISTROINI|HIDE,F_STAMPA
END
LIST F_CONTROLLO 23
BEGIN
PROMPT 2 7 "Controllo movimenti errati "
HELP "La scelta 1 stampa solo le registrazioni non errate; la scelta 2 permette di listare tutte le registrazioni inserite, segnalando quelle errate; la scelta 3 stampa solo le registrazioni errate"
ITEM "3|No" MESSAGE HIDE,1@
ITEM "2|Si" MESSAGE SHOW,1@
ITEM "1|Stampa movimenti errati" MESSAGE SHOW,1@
END
TEXT DLG_NULL
BEGIN
GROUP 1
PROMPT 2 8 "Stampa messaggi : "
END
BOOLEAN F_ANNOC
BEGIN
GROUP 1
PROMPT 20 8 "anno di competenza "
END
BOOLEAN F_ALLEGATO
BEGIN
GROUP 1
PROMPT 20 9 "allegato iva "
MESSAGE TRUE DISABLE,F_STAMPA|COPY,F_STAMPA
MESSAGE FALSE ENABLE,F_STAMPA
END
RADIOBUTTON F_DECIDI 10
BEGIN
PROMPT 2 10 "Stampa "
ITEM "2|data" MESSAGE DISABLE,2@|RESET,2@|ENABLE,3@
ITEM "1|numero" MESSAGE DISABLE,3@|RESET,3@|ENABLE,2@
END
DATE F_DATAINI
BEGIN
PROMPT 19 11 "Stampa mov. dalla data "
//HELP "Se non indicato nessun valore viene effettuata una stampa completa in ordine di data"
GROUP 3
END
DATE F_DATAFIN
BEGIN
PROMPT 55 11 "alla data "
GROUP 3
END
NUMBER F_NUMEROINI 7
BEGIN
PROMPT 19 12 "Stampa mov. dal numero "
USE LF_MOV KEY 1
INPUT NUMREG F_NUMEROINI
DISPLAY "Numero registrazione" NUMREG
DISPLAY "Descrizione@50" DESCR
OUTPUT F_NUMEROINI NUMREG
CHECKTYPE NORMAL
FLAGS "R"
GROUP 2
END
NUMBER F_NUMEROFIN 7
BEGIN
PROMPT 55 12 "al numero "
COPY USE F_NUMEROINI
INPUT NUMREG F_NUMEROFIN
COPY DISPLAY F_NUMEROINI
OUTPUT F_NUMEROFIN NUMREG
CHECKTYPE NORMAL
FLAGS "R"
GROUP 2
END
STRING F_CAUSALEINI 3
BEGIN
PROMPT 2 14 "Stampa dalla causale "
USE LF_CAUSALI KEY 1
INPUT CODCAUS F_CAUSALEINI
DISPLAY "Codice causale" CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CAUSALEINI CODCAUS
FLAGS "UR"
HELP "Introdurre codice causale di inizio stampa: vuoto = inizio archivio"
END
STRING F_CAUSALEFIN 3
BEGIN
PROMPT 40 14 "alla causale "
COPY USE F_CAUSALEINI
INPUT CODCAUS F_CAUSALEFIN
DISPLAY "Codice causale" CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CAUSALEFIN CODCAUS
FLAGS "UR"
HELP "Introdurre codice causale di fine stampa: vuoto = fine archivio"
END
STRING F_REGISTROINI 3
BEGIN
PROMPT 2 15 "Stampa dal registro iva "
USE REG SELECT I0<"3"
//INPUT CODTAB[1,5] F_ANNO SELECT
//INPUT CODTAB[1,5] ""
INPUT CODTAB[5,7] F_REGISTROINI
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Cod. registro iva" CODTAB[5,7]
DISPLAY "Descrizione@40" S0
OUTPUT F_REGISTROINI CODTAB[5,7]
FLAGS "UR"
//CHECKTYPE NORMAL
HELP "Introdurre cod. registro iva di inizio stampa: vuoto = inizio archivio"
END
STRING F_REGISTROFIN 3
BEGIN
PROMPT 40 15 "al reg. iva "
COPY USE F_REGISTROINI
//INPUT CODTAB[1,5] F_ANNO SELECT
//INPUT CODTAB[1,5] ""
INPUT CODTAB[5,7] F_REGISTROFIN
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Cod. registro iva" CODTAB[5,7]
DISPLAY "Descrizione@40" S0
OUTPUT F_REGISTROFIN CODTAB[5,7]
FLAGS "UR"
//CHECKTYPE NORMAL
HELP "Introdurre cod. registro iva di fine stampa: vuoto = fine archivio"
END
BOOLEAN F_STAMPA
BEGIN
PROMPT 2 16 "Stampa imponibili, imposte e codici iva "
END
BOOLEAN F_STAMPAMOVP
BEGIN
PROMPT 2 17 "Stampa movimenti provvisori "
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 2 17 "N.B. se non indicato nessun valore stampa completa in ordine di data"
END
*/
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

File diff suppressed because it is too large Load Diff

View File

@ -1,115 +1,115 @@
#ifndef __CGLIB_H
#define __CGLIB_H
#ifndef __ISAM_H
#include <isam.h>
#endif
#ifndef __REAL_H
#include <real.h>
#endif
#ifndef __DATE_H
#include <date.h>
#endif
#include <assoc.h>
//#include <utility.h>
//#include <config.h>
//#include <applicat.h>
#include "conto.h"
TLocalisamfile * get_descr_cf(TLocalisamfile * pconti,
TLocalisamfile * clifo , int g, int c, long s);
class TClifo_list : public TArray
{
public:
TClifo_list(int g, int c, char tipocf);
TRectype& clifo(int i)const { return(TRectype&)this->operator[](i); }
};
class Saldo
{
real _saldo, _saldo_iniziale, _prg_dare, _prg_avere;
int _indbil;
TLocalisamfile * _saldi, *_rmov, *_clifo, *_mov;
TRectype* _rec;
public:
bool causale_mov(long, const TDate&, const TDate&, TString&);
const char* causale_chiusura_es();
const char* causale_apertura_es();
bool calcola_data_limite(int,int,int,long,const TDate&,const TDate&,int,bool,
const TDate&,const TDate&,const TDate&,bool);
bool calcola_ultima_immissione(int, int, int, int, long, int);
real calcola_saldo_iniziale(int, int, int, long, int);
bool calcola_clifo(int, int, int, int, int);
TRectype& ricerca_progr_prec(int, int, int, long);
real saldofin_esprec(int,int,int,long);
real saldo() {return _saldo;}
real saldoini() {return _saldo_iniziale;}
real prgdare() {return _prg_dare;}
real prgavere() {return _prg_avere;}
bool calcola(int,int,int,int,long,const TDate&,const TDate&,int,bool,
const TDate&,const TDate&,const TDate&,bool);
bool prg_attuali(int,TConto&,int,real&,real&);
bool prg_mov_eliminati(int,TConto&,int,real&,real&);
Saldo();
~Saldo();
};
class TTab_conti : public TAssoc_array
{
void do_agg(TConto* tc, int anno_es, const real& importo, char sezione,
bool movap, bool provv, bool somma, const char* key);
public:
void aggiorna_conto(const TConto& tc, int anno_es, const real& importo,
char sezione, bool movap, bool provv, bool somma);
void aggiorna_conto (int gruppo, int conto, long sottoconto, int anno_es,
const real& importo, char sezione, bool movap,
bool provv, bool somma);
};
class TSaldo_agg : public TObject
{
TTab_conti _tab_conti;
bool _movap; // se e' mov. d'apertura (aggiorno SALDO e FLAGSALINI in
// saldi)
bool _provv;
int _anno_es; // anno esercizio
TDate _data_ulmov; // data ultimo movimento
long _num_ulmov; // numero ultimo movimento
TConto& tconti() { return *(TConto*)_tab_conti.get(); }
public:
void clear_saldi(int year);
void registra();
void aggiorna (const TConto& tc, const real& importo, char sezione,
bool somma=TRUE);
void aggiorna (int gruppo, int conto, long sottoconto, const real& importo,
char sezione, bool somma=TRUE);
void set_anno_es(int anno) { _anno_es = anno; }
int anno_es() const { return _anno_es; }
void set_movap (bool movap) { _movap = movap; }
bool movap() const { return _movap; }
void set_movprovv (bool p) { _provv = p; }
bool movprovv() { return _provv; }
void set_data_ulmov (const TDate& data) { _data_ulmov = data; }
const TDate& data_ulmov() const { return _data_ulmov; }
void set_num_ulmov (long num) { _num_ulmov = num; }
long num_ulmov() const { return _num_ulmov; }
void reset(); // pulisce l'array dei conti
TSaldo_agg();
int items() const { return _tab_conti.items();}
};
#endif
#ifndef __CGLIB_H
#define __CGLIB_H
#ifndef __ISAM_H
#include <isam.h>
#endif
#ifndef __REAL_H
#include <real.h>
#endif
#ifndef __DATE_H
#include <date.h>
#endif
#include <assoc.h>
//#include <utility.h>
//#include <config.h>
//#include <applicat.h>
#include "conto.h"
TLocalisamfile * get_descr_cf(TLocalisamfile * pconti,
TLocalisamfile * clifo , int g, int c, long s);
class TClifo_list : public TArray
{
public:
TClifo_list(int g, int c, char tipocf);
TRectype& clifo(int i)const { return(TRectype&)this->operator[](i); }
};
class Saldo
{
real _saldo, _saldo_iniziale, _prg_dare, _prg_avere;
int _indbil;
TLocalisamfile * _saldi, *_rmov, *_clifo, *_mov;
TRectype* _rec;
public:
bool causale_mov(long, const TDate&, const TDate&, TString&);
const char* causale_chiusura_es();
const char* causale_apertura_es();
bool calcola_data_limite(int,int,int,long,const TDate&,const TDate&,int,bool,
const TDate&,const TDate&,const TDate&,bool);
bool calcola_ultima_immissione(int, int, int, int, long, int);
real calcola_saldo_iniziale(int, int, int, long, int);
bool calcola_clifo(int, int, int, int, int);
TRectype& ricerca_progr_prec(int, int, int, long);
real saldofin_esprec(int,int,int,long);
real saldo() {return _saldo;}
real saldoini() {return _saldo_iniziale;}
real prgdare() {return _prg_dare;}
real prgavere() {return _prg_avere;}
bool calcola(int,int,int,int,long,const TDate&,const TDate&,int,bool,
const TDate&,const TDate&,const TDate&,bool);
bool prg_attuali(int,TConto&,int,real&,real&);
bool prg_mov_eliminati(int,TConto&,int,real&,real&);
Saldo();
~Saldo();
};
class TTab_conti : public TAssoc_array
{
void do_agg(TConto* tc, int anno_es, const real& importo, char sezione,
bool movap, bool provv, bool somma, const char* key);
public:
void aggiorna_conto(const TConto& tc, int anno_es, const real& importo,
char sezione, bool movap, bool provv, bool somma);
void aggiorna_conto (int gruppo, int conto, long sottoconto, int anno_es,
const real& importo, char sezione, bool movap,
bool provv, bool somma);
};
class TSaldo_agg : public TObject
{
TTab_conti _tab_conti;
bool _movap; // se e' mov. d'apertura (aggiorno SALDO e FLAGSALINI in
// saldi)
bool _provv;
int _anno_es; // anno esercizio
TDate _data_ulmov; // data ultimo movimento
long _num_ulmov; // numero ultimo movimento
TConto& tconti() { return *(TConto*)_tab_conti.get(); }
public:
void clear_saldi(int year);
void registra();
void aggiorna (const TConto& tc, const real& importo, char sezione,
bool somma=TRUE);
void aggiorna (int gruppo, int conto, long sottoconto, const real& importo,
char sezione, bool somma=TRUE);
void set_anno_es(int anno) { _anno_es = anno; }
int anno_es() const { return _anno_es; }
void set_movap (bool movap) { _movap = movap; }
bool movap() const { return _movap; }
void set_movprovv (bool p) { _provv = p; }
bool movprovv() { return _provv; }
void set_data_ulmov (const TDate& data) { _data_ulmov = data; }
const TDate& data_ulmov() const { return _data_ulmov; }
void set_num_ulmov (long num) { _num_ulmov = num; }
long num_ulmov() const { return _num_ulmov; }
void reset(); // pulisce l'array dei conti
TSaldo_agg();
int items() const { return _tab_conti.items();}
};
#endif