Gestione aliquote ICI

git-svn-id: svn://10.65.10.50/trunk@1276 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1995-04-19 13:54:16 +00:00
parent 46b0f9470b
commit 13885e8da0
10 changed files with 230 additions and 64 deletions

View File

@ -1,38 +1,162 @@
#include <relapp.h>
#include <relapp.h>
#include <msksheet.h>
#include <stdtypes.h>
#include <lffiles.h>
#include "ba4.h"
#include "ba4100.h"
#define FIRST_YEAR 1993
class BA4100_application : public TRelation_application
{
TMask* _msk;
TRelation* _rel;
TMask * _msk;
TRelation * _rel;
TLocalisamfile * _alici;
TRecord_array * _alici_rec;
static bool fld_notify(int r, KEY k);
virtual bool user_create() ;
virtual bool user_destroy() ;
virtual TMask* get_mask(int mode) { return _msk;}
virtual bool changing_mask(int mode) { return FALSE;}
virtual TRelation* get_relation() const { return _rel;}
virtual int read(TMask& m);
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
virtual bool remove();
public:
virtual TMask* get_mask(int mode) { return _msk;}
BA4100_application() {}
virtual ~BA4100_application() {}
virtual ~BA4100_application() {}
TRecord_array & alici_rec() { return * _alici_rec; }
};
BA4100_application & app() { return (BA4100_application &) main_app(); }
bool BA4100_application::fld_notify(int r, KEY k)
{
TSheet_field& f = (TSheet_field&) app().get_mask(MODE_QUERY)->field(FLD_CM2_ALIQICI);
if (k == K_INS)
{
TMask& m = f.sheet_mask();
TToken_string & t = f.row(r);
t.format("%d", r + FIRST_YEAR);
t.add("");
t.add("");
}
return TRUE;
}
bool BA4100_application::user_create()
{
_msk = new TMask("ba4100a") ;
TSheet_field& f = (TSheet_field&) _msk->field(FLD_CM2_ALIQICI);
f.set_notify(fld_notify);
_rel = new TRelation(LF_COMUNI);
_alici = new TLocalisamfile(LF_ALICI);
_alici_rec = new TRecord_array(LF_ALICI, "ANNO", FIRST_YEAR);
return TRUE;
}
bool BA4100_application::user_destroy()
{
delete _msk;
delete _rel;
delete _rel;
delete _alici;
delete _alici_rec;
return TRUE;
}
int BA4100_application::read(TMask& m)
{
int err = TRelation_application::read(m);
if (err == NOERR)
{
TRectype r = _alici->curr();
r.zero();
r.put("COM", m.get(FLD_CM1_COM));
err = _alici_rec->read(r);
TSheet_field& f = (TSheet_field&) m.field(FLD_CM2_ALIQICI);
f.destroy();
int last = _alici_rec->last_row();
const int year = TDate(TODAY).year();
if (last < year) last = year;
for (int i = FIRST_YEAR; i <= last; i++)
{
TRectype & r = _alici_rec->row(i, TRUE);
TToken_string & t = f.row(i - FIRST_YEAR);
t = r.get("ANNO");
t.add(r.get("ALIQ"));
t.add(r.get("DETR"));
}
}
return err;
}
int BA4100_application::write(const TMask& m)
{
int err = TRelation_application::write(m);
if (err == NOERR)
{
TSheet_field& f = (TSheet_field&) m.field(FLD_CM2_ALIQICI);
_alici_rec->destroy_rows();
if (m.insert_mode())
_alici_rec->renum_key("COM", m.get(FLD_CM1_COM));
for (int i = 0; i < f.items(); i++)
{
TToken_string & t = f.row(i);
const real aliq(t.get(1));
const real detr(t.get());
if (aliq != ZERO || detr != ZERO)
{
TRectype & r = _alici_rec->row(t.get_int(0), TRUE);
r.put("ALIQ", aliq);
r.put("DETR", detr);
}
}
err = _alici_rec->write();
}
return err;
}
int BA4100_application::rewrite(const TMask& m)
{
int err = TRelation_application::rewrite(m);
if (err == NOERR)
{
TSheet_field& f = (TSheet_field&) m.field(FLD_CM2_ALIQICI);
_alici_rec->destroy_rows();
if (m.insert_mode())
_alici_rec->renum_key("COM", m.get(FLD_CM1_COM));
for (int i = 0; i < f.items(); i++)
{
TToken_string & t = f.row(i);
const real aliq(t.get(1));
const real detr(t.get());
if (aliq != ZERO || detr != ZERO)
{
TRectype & r = _alici_rec->row(t.get_int(0), TRUE);
r.put("ALIQ", aliq);
r.put("DETR", detr);
}
}
err = _alici_rec->rewrite();
}
return err;
}
bool BA4100_application::remove()
{
return TRelation_application::remove() && _alici_rec->remove() == NOERR;
}
int ba4100(int argc, char* argv[])
{
BA4100_application a ;

View File

@ -40,6 +40,9 @@
#define FLD_CM2_COM 135
#define FLD_CM2_DENCOM 136
#define FLD_CM2_DENSTA 137
#define F_ANNO 101
#define F_ICI 102
#define F_DETR 103
#define N_STATO "STATO"
#define N_COM "COM"

View File

@ -4,7 +4,7 @@ TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "Tabella Comuni 1/2" -1 -1 77 16
PAGE "Tabella Comuni 1/2" -1 -1 77 18
GROUPBOX DLG_NULL 75 4
BEGIN
@ -243,7 +243,7 @@ END
ENDPAGE
PAGE "Tabella Comuni 2/2" -1 -1 77 16
PAGE "Tabella Comuni 2/2" -1 -1 77 18
GROUPBOX DLG_NULL 75 4
BEGIN
@ -277,12 +277,12 @@ END
GROUPBOX DLG_NULL 75 5
BEGIN
PROMPT 1 5 "Uffici Vari"
PROMPT 1 4 "Uffici Vari"
END
STRING FLD_CM2_UFFREG 3
BEGIN
PROMPT 2 6 "Registro "
PROMPT 2 5 "Registro "
FIELD LF_COMUNI->UFFREG
FLAGS "U"
USE %URE
@ -298,13 +298,13 @@ END
STRING FLD_CM2_DUFFREG 50
BEGIN
PROMPT 23 6 ""
PROMPT 23 5 ""
FLAGS "D"
END
NUMBER FLD_CM2_UFFCONC 3
BEGIN
PROMPT 2 7 "Concessioni "
PROMPT 2 6 "Concessioni "
FIELD LF_COMUNI->UFFCONC
FLAGS "Z"
USE %UCC
@ -320,13 +320,13 @@ END
STRING FLD_CM2_DUFFCONC 50
BEGIN
PROMPT 23 7 ""
PROMPT 23 6 ""
FLAGS "D"
END
NUMBER FLD_CM2_UFFCSERV 3
BEGIN
PROMPT 2 8 "Centro Servizi "
PROMPT 2 7 "Centro Servizi "
FIELD LF_COMUNI->UFFCSERV
FLAGS "RZ"
USE %UCS
@ -342,18 +342,18 @@ END
STRING FLD_CM2_DUFFCSERV 50
BEGIN
PROMPT 23 8 ""
PROMPT 23 7 ""
FLAGS "D"
END
GROUPBOX DLG_NULL 23 4
BEGIN
PROMPT 1 10 "Esattorie"
PROMPT 1 9 "Esattorie"
END
NUMBER FLD_CM2_UFFESPROV 3
BEGIN
PROMPT 2 11 "Provinciale "
PROMPT 2 10 "Provinciale "
FIELD LF_COMUNI->UFFESPROV
FLAGS "RZ"
HELP "Codice esattoria provinciale competente"
@ -361,25 +361,16 @@ END
NUMBER FLD_CM2_UFFESCOM 3
BEGIN
PROMPT 2 12 "Comunale "
PROMPT 2 11 "Comunale "
FIELD LF_COMUNI->UFFESCOM
FLAGS "RZ"
HELP "Codice esattoria comunale competente"
END
NUMBER FLD_CM2_ALIQICI 6 3
BEGIN
PROMPT 46 11 "Aliquota ICI "
FIELD LF_COMUNI->ALIQICI
FLAGS "R"
HELP "Aliquota ICI applicata dal comune"
WARNING "Aliquota I.C.I. errata"
NUM_EXPR {(#THIS_FIELD>=0) && (#THIS_FIELD<100)}
END
LIST FLD_CM2_TERRMON 18
BEGIN
PROMPT 46 12 "Territorio montano "
PROMPT 34 11 "Territorio montano "
HELP "Codice identificativo di comune residente in territorio montano"
FIELD LF_COMUNI->TERRMON
ITEMS " |Non montano"
@ -389,7 +380,7 @@ END
STRING FLD_CM2_COMAGG 4
BEGIN
PROMPT 2 14 "Comune aggr. "
PROMPT 2 13 "Comune aggr. "
HELP "Codice comune a cui e' stato accorpato il presente comune"
FIELD LF_COMUNI->COMAGG
FLAGS "U"
@ -405,7 +396,7 @@ END
STRING FLD_CM2_DENCOMAGG 50
BEGIN
PROMPT 23 14 ""
PROMPT 23 13 ""
HELP "Denominazione comune a cui e' stato accorpato il presente comune"
USE LF_COMUNI KEY 2 SELECT STATO=""
INPUT DENCOM FLD_CM2_DENCOMAGG
@ -414,5 +405,57 @@ BEGIN
OUTPUT FLD_CM2_DENCOMAGG DENCOM
END
SPREADSHEET FLD_CM2_ALIQICI 36
BEGIN
PROMPT 26 14 ""
ITEM "ANNO@4"
ITEM "ALIQUOTA I.C.I.@15"
ITEM "DETRAZIONI@15"
END
ENDPAGE
ENDMASK
PAGE "I.C.I." -1 -1 70 9
NUMBER F_ANNO 4
BEGIN
PROMPT 2 1 "Anno "
FLAGS "DR"
END
NUMBER F_ICI 6 3
BEGIN
PROMPT 2 3 "Aliquota I.C.I. "
FLAGS "R"
GROUP 1
NUM_EXPR {(#THIS_FIELD>=0) && (#THIS_FIELD<100)}
WARNING "L' aliquota deve esser compresa tra 0 e 100"
END
NUMBER F_DETR 15
BEGIN
PROMPT 2 5 "Importo Detraz. "
FLAGS "R"
PICTURE "."
GROUP 1
END
BUTTON DLG_OK 8 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_CANCEL 8 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_NULL 8 2
BEGIN
PROMPT -33 -1 "~Azzera"
MESSAGE RESET,1@
END
ENDPAGE
ENDMASK

View File

@ -215,7 +215,7 @@ BEGIN
HELP "Codice del comune di nascita della persona fisica"
CHECKTYPE REQUIRED
WARNING "Comune assente"
ADD MASK ba4100a
ADD RUN ba4 -0
END
STRING FLD_AFIS_COMNASC_COMUNI_DENCOM 50
@ -226,7 +226,7 @@ BEGIN
INPUT DENCOM FLD_AFIS_COMNASC_COMUNI_DENCOM
#include <comdden.h>
COPY OUTPUT FLD_AF1_COMNASC
ADD MASK ba4100a
ADD RUN ba4 -0
END
STRING FLD_AFIS_COMNASC_COMUNI_PROV 5
@ -338,7 +338,7 @@ BEGIN
HELP "Codice del comune di residenza"
CHECKTYPE REQUIRED
WARNING "Comune assente"
ADD MASK ba4100a
ADD RUN ba4 -0
END
STRING FLD_AF1_COMRES_COMUNI_PROVCOM 5
@ -366,7 +366,7 @@ BEGIN
OUTPUT FLD_AF1_COMRES_COMUNI_DENCOM DENCOM
OUTPUT FLD_AF1_COMRES_COMUNI_PROVCOM PROVCOM
OUTPUT FLD_ANAG_CAPRES CAPCOM
ADD MASK ba4100a
ADD RUN ba4 -0
END
BOOLEAN CHK_AF4_SOGGNRES
@ -429,7 +429,7 @@ BEGIN
HELP "Inserire il codice del comune di domicilio fiscale"
CHECKTYPE NORMAL
WARNING "Comune assente"
ADD MASK ba4100a
ADD RUN ba4 -0
END
STRING FLD_AF2_COMRF_COMUNI_PROVCOM 5
@ -456,7 +456,7 @@ BEGIN
OUTPUT FLD_AF2_COMRF_COMUNI_DENCOM DENCOM
OUTPUT FLD_AF2_COMRF_COMUNI_PROVCOM PROVCOM
OUTPUT FLD_AF2_CAPRF CAPCOM
ADD MASK ba4100a
ADD RUN ba4 -0
END
ENDPAGE
@ -550,7 +550,7 @@ BEGIN
OUTPUT FLD_AF2_CAPCORR CAPCOM
HELP "Codice del comune al quale spedire la corrispondenza"
CHECKTYPE NORMAL
ADD MASK ba4100a
ADD RUN ba4 -0
WARNING "Comune assente"
END
@ -580,7 +580,7 @@ BEGIN
OUTPUT FLD_AF2_COMCORR_COMUNI_DENCOM DENCOM
OUTPUT FLD_AF2_COMCORR_COMUNI_PROVCOM PROVCOM
OUTPUT FLD_AF2_CAPCORR CAPCOM
ADD MASK ba4100a
ADD RUN ba4 -0
VALIDATE EMPTYCOPY_FUNC FLD_AF1_COMRES_COMUNI_DENCOM
END

View File

@ -258,7 +258,7 @@ BEGIN
HELP "Codice del comune sede della persoan giuridica"
CHECKTYPE REQUIRED
WARNING "Comune assente"
ADD MASK ba4100a
ADD RUN ba4 -0
END
STRING FLD_AG2_COMRES_COMUNI_PROVCOM 5
@ -286,7 +286,7 @@ BEGIN
OUTPUT FLD_AG2_COMRES_COMUNI_DENCOM DENCOM
OUTPUT FLD_AG2_COMRES_COMUNI_PROVCOM PROVCOM
OUTPUT FLD_AG2_CAPRES CAPCOM
ADD MASK ba4100a
ADD RUN ba4 -0
END
BOOLEAN CHK_AG5_NONRES
@ -350,7 +350,7 @@ BEGIN
HELP "Codice del comune domicilio fiscale della ditta"
CHECKTYPE NORMAL
WARNING "Comune assente"
ADD MASK ba4100a
ADD RUN ba4 -0
END
STRING FLD_AG1_COMRF_COMUNI_PROVCOM 5
@ -378,7 +378,7 @@ BEGIN
OUTPUT FLD_AG1_COMRF_COMUNI_DENCOM DENCOM
OUTPUT FLD_AG1_COMRF_COMUNI_PROVCOM PROVCOM
OUTPUT FLD_AG1_CAPRF CAPCOM
ADD MASK ba4100a
ADD RUN ba4 -0
END
BOOLEAN F_VARDF
@ -483,7 +483,7 @@ BEGIN
HELP "Codice del comune a cui mandare la corrispondenza"
CHECKTYPE NORMAL
WARNING "Comune assente"
ADD MASK ba4100a
ADD RUN ba4 -0
END
STRING FLD_AG2_COMCORR_COMUNI_PROVCOM 5
@ -512,7 +512,7 @@ BEGIN
OUTPUT FLD_AG2_COMCORR_COMUNI_DENCOM DENCOM
OUTPUT FLD_AG2_COMCORR_COMUNI_PROVCOM PROVCOM
OUTPUT FLD_AG2_CAPCORR CAPCOM
ADD MASK ba4100a
ADD RUN ba4 -0
VALIDATE EMPTYCOPY_FUNC FLD_AG2_COMRES_COMUNI_DENCOM
END
@ -613,7 +613,7 @@ BEGIN
HELP "Codice del comune dove e' stata costituita la societa'"
CHECKTYPE NORMAL
WARNING "Comune assente"
ADD MASK ba4100a
ADD RUN ba4 -0
END
STRING F_DENCOMCOST 50 46
@ -625,7 +625,7 @@ BEGIN
#include <comdden.h>
COPY OUTPUT F_COMCOST
CHECKTYPE NORMAL
ADD MASK ba4100a
ADD RUN ba4 -0
END
DATE FLD_AG3_DATACOST

View File

@ -310,7 +310,7 @@ BEGIN
HELP "Codice del comune in cui e' iscritta all'albo"
CHECKTYPE NORMAL
WARNING "Comune assente"
ADD MASK ba4100a
ADD RUN ba4 -0
GROUP 3
END
@ -333,7 +333,7 @@ BEGIN
OUTPUT FLD_GD1_COMAA COM
OUTPUT FLD_GD1_COMAA_COMUNI_DESCR DENCOM
OUTPUT FLD_GD1_CAPAA CAPCOM
ADD MASK ba4100a
ADD RUN ba4 -0
GROUP 3
END

View File

@ -28,7 +28,6 @@ BEGIN
MESSAGE COPY,2@
CHECKTYPE FORCED
WARNING "Ditta assente"
ADD MASK ba4300a
END
STRING FLD_UL1_CODDITTA_NDITTE_RAGSOC 50
@ -43,7 +42,6 @@ BEGIN
COPY OUTPUT FLD_UL1_CODDITTA
HELP "Ragione sociale della ditta di riferimento"
MESSAGE COPY,3@
ADD MASK BA4300A
END
NUMBER FLD_UL1_CODULC 3
@ -105,7 +103,7 @@ BEGIN
MESSAGE COPY,7@
CHECKTYPE REQUIRED
WARNING "Comune assente"
ADD MASK ba4100a
ADD RUN ba4 -0
END
STRING FLD_UL1_COMULC_COMUNI_PROVCOM 2
@ -136,7 +134,7 @@ BEGIN
OUTPUT FLD_UL1_COMULC_COMUNI_PROVCOM PROVCOM
OUTPUT FLD_UL1_CAPULC CAPCOM
MESSAGE COPY,10@
ADD MASK ba4100a
ADD RUN ba4 -0
END
GROUPBOX DLG_NULL 76 6
@ -203,7 +201,7 @@ BEGIN
COPY DISPLAY FLD_UL1_COMULC_COMUNI_DENCOM
OUTPUT FLD_UL1_COMCCIAA COM
OUTPUT FLD_UL1_COMCCIAA_COMUNI_DENCOM DENCOM
ADD MASK ba4100a
ADD RUN ba4 -0
END
GROUPBOX DLG_NULL 76 4
@ -401,7 +399,7 @@ BEGIN
OUTPUT FLD_UL2_COMTRIB COM
OUTPUT FLD_UL2_COMTRIB_COMUNI_DENCOM DENCOM
OUTPUT FLD_UL2_CAPTRIB CAPCOM
ADD MASK ba4100a
ADD RUN ba4 -0
END
GROUPBOX DLG_NULL 76 3

View File

@ -196,7 +196,6 @@ BEGIN
DISPLAY "N.ro civico@10" CIVULC
OUTPUT FLD_AT1_CODULIVA11 CODULC
HELP "Codice dell'unita' locale"
ADD MASK ba4400a
END
LIST LST_AT1_TIPOATT 26
@ -455,7 +454,7 @@ BEGIN
HELP "Codice del comune in cui sono tenuti i registri"
CHECKTYPE NORMAL
WARNING "Comune assente"
ADD MASK ba4100a
ADD RUN ba4 -0
END
STRING FLD_AT2_COMUNI_PROVCOM 5

View File

@ -240,7 +240,7 @@ OUTPUT F_PROVCF PROVCOM
HELP "Codice del comune del recapito"
CHECKTYPE NORMAL
WARNING "Comune assente"
ADD MASK ba4100a
ADD ba4 -0
END
STRING F_DENCOMCF 50
@ -253,7 +253,7 @@ DISPLAY "Stato" STATO
DISPLAY "Codice" COM
COPY OUTPUT F_COMCF
HELP "Nome del comune del recapito"
ADD MASK ba4100a
ADD ba4 -0
END
LIST F_TIPOPERS 1 11
@ -506,7 +506,7 @@ BEGIN
PROMPT 2 16 "Data "
FIELD LF_CLIFO->DATANASC
GROUP 5
HELP "Data di nascita del clinete/fornitore"
HELP "Data di nascita del cliente/fornitore"
END
NUMBER F_STATONASC 3
@ -522,7 +522,6 @@ OUTPUT F_STATONASC CODTAB
HELP "Stato di nascita del cliente/fornitore"
CHECKTYPE NORMAL
WARNING "Nazione assente"
ADD MASK ba4100a
END
STRING F_COMNASC 4
@ -541,7 +540,7 @@ OUTPUT F_DENCOMNASC DENCOM
HELP "Codice del comune di nascita del cliente/fornitore"
CHECKTYPE NORMAL
WARNING "Comune assente"
ADD MASK ba4100a
ADD ba4 -0
END
STRING F_DENCOMNASC 50
@ -553,7 +552,7 @@ INPUT DENCOM F_DENCOMNASC
COPY DISPLAY F_DENCOMCF
COPY OUTPUT F_COMNASC
HELP "Nome del comune di nascita"
ADD MASK ba4100a
ADD ba4 -0
END
ENDPAGE

View File

@ -68,7 +68,7 @@ BEGIN
OUTPUT F_DENCOMI DENCOM
CHECKTYPE NORMAL
WARNING "Comune assente"
ADD MASK ba4100a
ADD ba4 -0
HELP "Codice del comune del cliente/fornitore"
GROUP 1
END
@ -84,7 +84,7 @@ BEGIN
DISPLAY "Codice" COM
COPY OUTPUT F_COMI
CHECKTYPE NORMAL
ADD MASK ba4100a
ADD ba4 -0
GROUP 1
END