diff --git a/src/cg/cg0800.cpp b/src/cg/cg0800.cpp
index 8b2a68824..7ab176b1b 100644
--- a/src/cg/cg0800.cpp
+++ b/src/cg/cg0800.cpp
@@ -71,27 +71,39 @@ void TRiepilogoIVA_app::main_loop()
rep.load(repname);
if (recset != NULL)
{
- const int anno = m.get_int(F_ANNO);
+ int anno = m.get_int(F_ANNO);
int damese = m.get_int(F_DAMESE);
int amese = m.get_int(F_AMESE);
+ recset->freeze();
+ recset->set_da_mese_var(damese);
+ recset->set_a_mese_var(amese);
if (damese == 13)
{
damese = 1;
amese = 12;
- recset->set_annuale(true);
+ recset->set_annual(true);
}
+ recset->set_anno(anno);
+ recset->set_da_mese(damese);
+ recset->set_a_mese(amese);
+ if (damese == 13)
+ {
+ damese = 1;
+ amese = 12;
+ recset->set_annual(true);
+ }
+ recset->set_da_mese(damese);
+ recset->set_a_mese(amese);
const TDate da(1, damese, anno);
TDate a(1, amese, anno);
+ if (m.get_long(F_DAMESE) == 13)
+ a.addyear();
a.set_end_month();
- recset->freeze();
recset->set_from(da);
recset->set_to(a);
- recset->set_var("#ANNO", m.get_long(F_ANNO), true);
- recset->set_var("#DAMESE", m.get_long(F_DAMESE), true);
- recset->set_var("#AMESE", m.get_long(F_AMESE), true);
recset->unfreeze();
rep.set_recordset(recset);
diff --git a/src/cg/cg0800a.rep b/src/cg/cg0800a.rep
index c4b1dcb78..6f6fafbaa 100644
--- a/src/cg/cg0800a.rep
+++ b/src/cg/cg0800a.rep
@@ -18,74 +18,70 @@
#PAGE
-
-
+
+
-
-
+
+
#ANNO
-
-
-
-
-
+
+
#DAMESE
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
#AMESE
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/src/cg/cg0800a.uml b/src/cg/cg0800a.uml
index cf3252366..93360b762 100644
--- a/src/cg/cg0800a.uml
+++ b/src/cg/cg0800a.uml
@@ -63,7 +63,7 @@ END
LIST F_AMESE 20
BEGIN
- PROMPT 2 7 " A mese "
+ PROMPT 35 5 " A mese "
ITEM "13|13a liquid."
FLAGS "MP"
WARINIG "Il mese di inizio non puņ essere successico al mese di fine"
diff --git a/src/cg/cg4304.cpp b/src/cg/cg4304.cpp
index d92871195..b11bf6048 100755
--- a/src/cg/cg4304.cpp
+++ b/src/cg/cg4304.cpp
@@ -1159,9 +1159,10 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool
// calcola nuovo prorata per ogni attivita' (miste: 1+2)
real pr;
const real rsa = ris - (e3-e5) - (e4-e6) - vrc;
- if (!rsa.is_zero())
+ const real rsn = rsa - e1;
+
+ if (!rsa.is_zero())
{
- const real rsn = rsa - e1;
pr = CENTO - (rsn * CENTO / rsa); // Percentuale di indetraibilita: reciproco della percentuale di detraibilita'
pr.round(0);
}
@@ -1210,7 +1211,9 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool
dd->_r8 = e5;
dd->_r9 = e6;
dd->_r10 = vrc;
- t->_arr.add(dd);
+ dd->_ra0 = rsa;
+ dd->_ra1 = rsn;
+ t->_arr.add(dd);
}
}
}
@@ -2825,10 +2828,8 @@ bool TLiquidazione_app::set_annual(_DescrItem& d)
set_row(row++, FR("%% PRO-RATA (%s%%) ed IVA non detraibile (%s%%)@69g%r"), (const char*)s1, (const char*)s2, &(d._r6));
else
set_row(row++, FR("%% PRO-RATA (%s%%)"), (const char*)s1);
- const real denom = vol_aff - rev_charge;
- const real num = denom - d._r1 - d._r4 - d._r5 + d._r8 - d._r7 + d._r9;
- set_row(row++, FR("Numeratore pro-rata @69g%r"), &num);
- set_row(row++, FR("Denominatore @69g%r"), &denom);
+ set_row(row++, FR("Numeratore pro-rata @69g%r"), &(d._ra1));
+ set_row(row++, FR("Denominatore @69g%r"), &(d._ra0));
// set_row(row++,FR("C1 - Operazioni esenti escluse da nr. 1 a 9 e 11 art. 10 @69g%r"), &(d._r1));
// set_row(row++,FR("C2 - Operazioni esenti di cui nr. 11 art. 10 @69g%r"), &(d._r4));
// set_row(row++,FR("C3 - Operazioni esenti da nr. 1 a 9 art. 10 @69g%r"), &(d._r5));
diff --git a/src/cg/cg4b00.cpp b/src/cg/cg4b00.cpp
index f14980be7..f81cd3c9d 100644
--- a/src/cg/cg4b00.cpp
+++ b/src/cg/cg4b00.cpp
@@ -25,6 +25,29 @@ bool TRiepilogoIVA_mask::on_field_event(TOperable_field& o, TField_event e, long
switch (o.dlg())
{
+ case F_DAMESE:
+ if (e == fe_modify || e == fe_close)
+ {
+ if (atoi(o.get()) > m.get_int(F_AMESE))
+ m.set(F_AMESE, o.get());
+ if (e == fe_modify && (atoi(o.get()) == 13))
+ {
+ TDate d(1, 1, m.get_int(F_ANNO));
+
+ m.set(F_DADATA, d);
+ d.set_month(12);
+ d.set_end_month();
+ m.set(F_ADATA, d);
+ }
+ }
+ break;
+ case F_AMESE:
+ if (e == fe_modify || e == fe_close)
+ {
+ if (atoi(o.get()) < m.get_int(F_DAMESE))
+ o.set(m.get(F_DAMESE));
+ }
+ break;
case F_DADATA:
if (e == fe_modify || e == fe_close)
{
@@ -38,34 +61,6 @@ bool TRiepilogoIVA_mask::on_field_event(TOperable_field& o, TField_event e, long
if (TDate(o.get()) < m.get_date(F_DADATA))
o.set(m.get(F_DADATA));
}
- case F_DASOTTOC:
- if (e == fe_modify || e == fe_close)
- {
- TString da; da.format("%03d%03d%06ld", m.get_int(F_DAGRUPPO), m.get_int(F_DACONTO), m.get_long(F_DASOTTOC));
- TString a; a.format("%03d%03d%06ld", m.get_int(F_AGRUPPO), m.get_int(F_ACONTO), m.get_long(F_ASOTTOC));
-
- if (da > a)
- {
- m.set(F_AGRUPPO, da.left(3));
- m.set(F_ACONTO, da.mid(3, 3));
- m.set(F_ASOTTOC, da.right(6), 0x3);
- }
- }
- break;
- case F_ASOTTOC:
- if (e == fe_modify || e == fe_close)
- {
- TString da; da.format("%03d%03d%06ld", m.get_int(F_DAGRUPPO), m.get_int(F_DACONTO), m.get_long(F_DASOTTOC));
- TString a; a.format("%03d%03d%06ld", m.get_int(F_AGRUPPO), m.get_int(F_ACONTO), m.get_long(F_ASOTTOC));
-
- if (da > a)
- {
- m.set(F_AGRUPPO, da.left(3));
- m.set(F_ACONTO, da.mid(3, 3));
- m.set(F_ASOTTOC, da.right(6), 0x3);
- }
- }
-
default:
break;
}
@@ -78,20 +73,10 @@ bool TRiepilogoIVA_mask::on_field_event(TOperable_field& o, TField_event e, long
class TRiepilogoIVAcompetenza_recordset : public TRiepilogoIVA_recordset
{
- bool _competenzaperiodo;
- bool _competenzadiversa;
- bool _registrazioneritardo;
public:
- virtual bool set_competenzaperiodoIVA(bool on) { _competenzaperiodo = on; return on; }
- virtual bool set_competenzadiversaIVA(bool on) { _competenzadiversa = on; return on; }
- virtual bool set_registrazioneIVAritardo(bool on) { return _registrazioneritardo = on; return on; }
- virtual bool competenzaperiodoIVA() const { return _competenzaperiodo; }
- virtual bool competenzadiversaIVA() const { return _competenzadiversa; }
- virtual bool registrazioneIVAritardo() const { return _registrazioneritardo; }
virtual bool is_competenza() const { return true; }
-
TRiepilogoIVAcompetenza_recordset() {}
virtual ~TRiepilogoIVAcompetenza_recordset() { }
};
@@ -121,34 +106,27 @@ void TRiepilogoIVA_app::main_loop()
rep.load(repname);
if (recset != NULL)
{
- recset->freeze();
- recset->set_competenzaperiodoIVA(m.get_bool(F_COMPUG));
- recset->set_competenzadiversaIVA(m.get_bool(F_COMPDIV));
- recset->set_registrazioneIVAritardo(m.get_bool(F_REGRIT));
- recset->set_from(m.get_date(F_DADATA));
- recset->set_to(m.get_date(F_ADATA));
- recset->set_annuale((m.get_date(F_DADATA).month() == 1) && (m.get_date(F_ADATA).month() == 12)
- );
+ int anno = m.get_int(F_ANNO);
+ int damese = m.get_int(F_DAMESE);
+ int amese = m.get_int(F_AMESE);
- recset->set_from_conto(m.get_long(F_DAGRUPPO), m.get_long(F_DACONTO), m.get_long(F_DASOTTOC));
- if (m.get_long(F_DAGRUPPO) != 0)
- recset->set_to_conto(m.get_long(F_AGRUPPO), m.get_long(F_ACONTO), m.get_long(F_ASOTTOC));
- recset->set_var("#COMPUG", m.get_bool(F_COMPUG), true);
- recset->set_var("#COMPDIV", m.get_bool(F_COMPDIV), true);
- recset->set_var("#REGRIT", m.get_bool(F_REGRIT), true);
- recset->set_var("#TODATE", m.get_date(F_ADATA), true);
- recset->set_var("#FROMDATE", m.get_date(F_DADATA), true);
- recset->set_var("#TODATE", m.get_date(F_ADATA), true);
- recset->set_var("#DAGRUPPO", m.get_long(F_DAGRUPPO), true);
- recset->set_var("#DACONTO", m.get_long(F_DACONTO), true);
- recset->set_var("#DASOTTOCONTO", m.get_long(F_DASOTTOC), true);
- recset->set_var("#AGRUPPO", m.get_long(F_AGRUPPO), true);
- recset->set_var("#ACONTO", m.get_long(F_ACONTO), true);
- recset->set_var("#ASOTTOCONTO", m.get_long(F_ASOTTOC), true);
- recset->unfreeze();
- rep.set_recordset(recset);
-
- rep.print_or_preview();
+ recset->freeze();
+ recset->set_da_mese_var(damese);
+ recset->set_a_mese_var(amese);
+ if (damese == 13)
+ {
+ damese = 1;
+ amese = 12;
+ recset->set_annual(true);
+ }
+ recset->set_anno(anno);
+ recset->set_da_mese(damese);
+ recset->set_a_mese(amese);
+ recset->set_from(m.get_date(F_DADATA));
+ recset->set_to(m.get_date(F_ADATA));
+ recset->unfreeze();
+ rep.set_recordset(recset);
+ rep.print_or_preview();
}
}
}
diff --git a/src/cg/cg4b00a.h b/src/cg/cg4b00a.h
index c807659a0..5d7d1555a 100644
--- a/src/cg/cg4b00a.h
+++ b/src/cg/cg4b00a.h
@@ -1,18 +1,10 @@
#define F_CODDITTA 101
#define F_RAGSOC 102
-#define F_DADATA 103
-#define F_ADATA 104
-#define F_DAGRUPPO 105
-#define F_DACONTO 106
-#define F_DASOTTOC 107
-#define F_AGRUPPO 108
-#define F_ACONTO 109
-#define F_ASOTTOC 110
-#define F_DADESCR 111
-#define F_ADESCR 112
-#define F_COMPUG 113
-#define F_COMPDIV 114
-#define F_REGRIT 115
+#define F_ANNO 103
+#define F_DAMESE 104
+#define F_AMESE 105
+#define F_DADATA 106
+#define F_ADATA 107
#define F_REPORT 200
#define F_PROFILO 201
diff --git a/src/cg/cg4b00a.rep b/src/cg/cg4b00a.rep
index 3eb4ec099..0ec843aed 100644
--- a/src/cg/cg4b00a.rep
+++ b/src/cg/cg4b00a.rep
@@ -18,108 +18,84 @@
#PAGE
-
-
+
+
-
-
+
+
+ #ANNO
+
+
+
+ #DAMESE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #AMESE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
#FROMDATE
-
-
+
+
-
-
+
+
#TODATE
-
-
-
-
-
- #THIS
-#COMPUG @
-0
-=
-IF
-HIDE
-ELSE
-SHOW
-THEN
-
-
-
- #THIS
-#COMPDIV @
-0
-=
-IF
-HIDE
-ELSE
-SHOW
-THEN
-
-
-
- #THIS
-#REGRIT @
-0
-=
-IF
-HIDE
-ELSE
-SHOW
-THEN
-
-
-
-
-
-
- #DAGRUPPO
-
-
-
- #DACONTO
-
-
-
- #DASOTTOCONTO
-
-
-
-
-
-
- #AGRUPPO
-
-
-
- #ACONTO
-
-
-
- #ASOTTOCONTO
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/src/cg/cg4b00a.uml b/src/cg/cg4b00a.uml
index 7e29a7e83..1f2f17c59 100644
--- a/src/cg/cg4b00a.uml
+++ b/src/cg/cg4b00a.uml
@@ -46,151 +46,43 @@ BEGIN
FLAGS "D"
END
+NUMBER F_ANNO 4
+BEGIN
+ PROMPT 2 3 "Anno "
+ FLAGS "AP"
+ CHECKTYPE REQUIRED
+END
+
+LIST F_DAMESE 20
+BEGIN
+ PROMPT 2 5 "Da mese "
+ ITEM "13|13a liquid."
+ FLAGS "MP"
+ MESSAGE COPY,F_AMESE
+END
+
+LIST F_AMESE 20
+BEGIN
+ PROMPT 35 5 " A mese "
+ ITEM "13|13a liquid."
+ FLAGS "MP"
+ WARINIG "Il mese di inizio non puņ essere successico al mese di fine"
+ VALIDATE F_DAMESE<=F_AMESE
+END
+
+
DATE F_DADATA
BEGIN
- PROMPT 2 3 "Da: data "
+ PROMPT 2 7 "Da: data registrazione "
END
DATE F_ADATA
BEGIN
- PROMPT 2 5 " A: data "
+ PROMPT 2 9 " A: data registrazione "
WARINIG "La data di inizio non puņ essere successico alla data di fine"
VALIDATE DATE_CMP_FUNC >= F_>ADATA
END
-NUMBER F_DAGRUPPO 3
-BEGIN
- PROMPT 2 7 "Da: Gruppo "
- USE LF_PCON KEY 1 SELECT (CONTO="")
- INPUT GRUPPO F_DAGRUPPO
- DISPLAY "Gruppo" GRUPPO
- DISPLAY "Descrizione@50" DESCR
- OUTPUT F_DAGRUPPO GRUPPO
- CHECKTYPE NORMAL
-END
-
-NUMBER F_DACONTO 3
-BEGIN
- PROMPT 23 7 "Conto "
- USE LF_PCON KEY 1 SELECT (SOTTOCONTO="")
- INPUT GRUPPO F_DAGRUPPO
- INPUT CONTO F_DACONTO
- DISPLAY "Gruppo" GRUPPO
- DISPLAY "Conto" CONTO
- DISPLAY "Descrizione@50" DESCR
- OUTPUT F_DACONTO CONTO
- OUTPUT F_DAGRUPPO GRUPPO
- CHECKTYPE NORMAL
-END
-
-NUMBER F_DASOTTOC 6
-BEGIN
- PROMPT 36 7 "Sottoconto "
- USE LF_PCON
- INPUT GRUPPO F_DAGRUPPO
- INPUT CONTO F_DACONTO
- INPUT SOTTOCONTO F_DASOTTOC
- DISPLAY "Gruppo" GRUPPO
- DISPLAY "Conto" CONTO
- DISPLAY "Sottoconto" SOTTOCONTO
- DISPLAY "Descrizione@50" DESCR
- OUTPUT F_DASOTTOC SOTTOCONTO
- OUTPUT F_DAGRUPPO GRUPPO
- OUTPUT F_DACONTO CONTO
- OUTPUT F_DADESCR DESCR
- CHECKTYPE NORMAL
-END
-
-STRING F_DADESCR 50
-BEGIN
- PROMPT 14 9 ""
- USE LF_PCON KEY 2
- INPUT DESCR F_DADESCR
- DISPLAY "Descrizione@50" DESCR
- DISPLAY "Gruppo" GRUPPO
- DISPLAY "Conto" CONTO
- DISPLAY "Sottoconto" SOTTOCONTO
- OUTPUT F_DASOTTOC SOTTOCONTO
- OUTPUT F_DACONTO CONTO
- OUTPUT F_DAGRUPPO GRUPPO
- OUTPUT F_DADESCR DESCR
- CHECKTYPE NORMAL
-END
-
-NUMBER F_AGRUPPO 3
-BEGIN
- PROMPT 2 11 " A: Gruppo "
- USE LF_PCON KEY 1 SELECT (CONTO="")
- INPUT GRUPPO F_AGRUPPO
- DISPLAY "Gruppo" GRUPPO
- DISPLAY "Descrizione@50" DESCR
- OUTPUT F_AGRUPPO GRUPPO
- CHECKTYPE NORMAL
-END
-
-NUMBER F_ACONTO 3
-BEGIN
- PROMPT 23 11 "Conto "
- USE LF_PCON KEY 1 SELECT (SOTTOCONTO="")
- INPUT GRUPPO F_AGRUPPO
- INPUT CONTO F_ACONTO
- DISPLAY "Gruppo" GRUPPO
- DISPLAY "Conto" CONTO
- DISPLAY "Descrizione@50" DESCR
- OUTPUT F_ACONTO CONTO
- OUTPUT F_AGRUPPO GRUPPO
- CHECKTYPE NORMAL
-END
-
-NUMBER F_ASOTTOC 6
-BEGIN
- PROMPT 36 11 "Sottoconto "
- USE LF_PCON
- INPUT GRUPPO F_AGRUPPO
- INPUT CONTO F_ACONTO
- INPUT SOTTOCONTO F_ASOTTOC
- DISPLAY "Gruppo" GRUPPO
- DISPLAY "Conto" CONTO
- DISPLAY "Sottoconto" SOTTOCONTO
- DISPLAY "Descrizione@50" DESCR
- OUTPUT F_ASOTTOC SOTTOCONTO
- OUTPUT F_AGRUPPO GRUPPO
- OUTPUT F_ACONTO CONTO
- OUTPUT F_ADESCR DESCR
- CHECKTYPE NORMAL
-END
-
-STRING F_ADESCR 50
-BEGIN
- PROMPT 14 13 ""
- USE LF_PCON KEY 2
- INPUT DESCR F_ADESCR
- DISPLAY "Descrizione@50" DESCR
- DISPLAY "Gruppo" GRUPPO
- DISPLAY "Conto" CONTO
- DISPLAY "Sottoconto" SOTTOCONTO
- OUTPUT F_ASOTTOC SOTTOCONTO
- OUTPUT F_ACONTO CONTO
- OUTPUT F_AGRUPPO GRUPPO
- OUTPUT F_ADESCR DESCR
- CHECKTYPE NORMAL
-END
-
-BOOLEAN F_COMPUG
-BEGIN
- PROMPT 2 15 "Movimenti con competenza uguale alla registrazione"
-END
-
-BOOLEAN F_COMPDIV
-BEGIN
- PROMPT 2 17 "Movimenti con competenza diversa dalla registrazione"
-END
-
-BOOLEAN F_REGRIT
-BEGIN
- PROMPT 2 19 "Movimenti registrati in ritardo"
-END
-
STRING F_REPORT 256 50
BEGIN
PROMPT 2 -3 "Tipo di stampa "
diff --git a/src/cg/cglib05.cpp b/src/cg/cglib05.cpp
index ef3e2bbb4..1f865064b 100644
--- a/src/cg/cglib05.cpp
+++ b/src/cg/cglib05.cpp
@@ -69,27 +69,12 @@ void TRiepilogoIVA_recordset::requery()
int p = wrk.find("FROMDATE");
if (p > 0)
- query << wrk.left(p) << _from_date.string();
+ query << wrk.sleft(p) << _from_date.string();
wrk.ltrim(p + 8);
p = wrk.find("TODATE");
if (p > 0)
- {
- query << wrk.left(p);
- if (competenzaperiodoIVA() && !competenzadiversaIVA() && !registrazioneIVAritardo())
- query << _to_date.string();
- else
- {
- TDate to(_to_date);
-
- to.set_day(31);
- to.set_month(12);
- if (_to_date.month() == 12)
- to.addyear(1);
- query << to.string();
- }
- query << wrk.mid(p + 6);
- }
+ query << wrk.sleft(p) << _to_date.string()<< wrk.smid(p + 6);
TISAM_recordset recset(query);
@@ -101,94 +86,62 @@ void TRiepilogoIVA_recordset::requery()
long conto = recset.get(RMI_CONTO).as_int();
long sottoconto = recset.get(RMI_SOTTOCONTO).as_int();
- if (((gruppo >= _from_gruppo) && (gruppo <= _to_gruppo)) &&
- ((conto >= _from_conto) && (conto <= _to_conto)) &&
- ((sottoconto >= _from_sottoconto) && (conto <= _to_sottoconto)))
+ TRegistro reg(recset.get(reg_fieldname).as_string());
+ TipoIVA t = reg.iva();
+ TDate data = recset.get(datareg_fieldname).as_date();
+ const int meseliq = recset.get(meseliq_fieldname).as_int();
+ const TDate datadoc = recset.get(datadoc_fieldname).as_date();
+ const TipoIVA tipo = reg.iva(); // 1=Vendite; 2=Acquisti
+ const bool fatt_rit_2018 = recset.get(TOSTRING(LF_MOV) "." MOV_DATAREG).as_bool() && (data.year() >= 2018);
+ const int year_diff = data.year() - datadoc.year();
+ const bool fattritind = ((tipo == iva_acquisti) && fatt_rit_2018) && ((year_diff > 2) || ((year_diff >= 1) && data.month() >= 5));
+ const bool fattrit = ((tipo == iva_acquisti) && !fattritind && fatt_rit_2018) && (year_diff >= 1);
+
+ if (is_competenza())
{
- TRegistro reg(recset.get(reg_fieldname).as_string());
- TipoIVA t = reg.iva();
- TDate data = recset.get(datareg_fieldname).as_date();
- const int meseliq = recset.get(meseliq_fieldname).as_int();
- const TDate datadoc = recset.get(datadoc_fieldname).as_date();
- const TipoIVA tipo = reg.iva(); // 1=Vendite; 2=Acquisti
- const bool fatt_rit_2018 = recset.get(TOSTRING(LF_MOV) "." MOV_DATAREG).as_bool() && (data.year() >= 2018);
- const int year_diff = data.year() - datadoc.year();
- const bool fattritind = ((tipo == iva_acquisti) && fatt_rit_2018) && ((year_diff > 2) || ((year_diff >= 1) && data.month() >= 5));
- const bool fattrit = ((tipo == iva_acquisti) && !fattritind && fatt_rit_2018) && (year_diff >= 1);
-
- if (is_competenza())
+ if (meseliq != 0)
{
- if (meseliq != 0)
- {
- data.set_month(meseliq);
- data.set_end_month();
- if (competenzadiversaIVA())
- {
- if (data < _from_date || data > _to_date)
- continue;
- }
- else
- continue;
-
- }
- else
- if (competenzadiversaIVA() && !competenzaperiodoIVA())
- continue;
-
- if (fattrit)
- {
- if (registrazioneIVAritardo())
- {
- if (!annuale() || _to_date.year() != datadoc.year())
- continue;
- }
- else
- continue;
- }
- else
- if (competenzaperiodoIVA() && (data < _from_date || data > _to_date))
- continue;
+ if (meseliq > data.month())
+ data.addyear(-1);
+ data.set_month(meseliq);
+ data.set_end_month();
}
- else
- {
- if (fattrit)
- {
- if (!annuale() || _to_date.year() != datadoc.year())
- continue;
- }
- else
- if (data < _from_date || data > _to_date)
- continue;
- }
-
- if (rec == NULL)
- work_array.add(cod, rec = new TRiepilogoIVA_record(cod));
- if (t == iva_acquisti)
- {
- real & r = rec->impacq();
- r += recset.get(RMI_IMPONIBILE).as_real();
- real & r1 = rec->ivaacq();
- r1 += recset.get(RMI_IMPOSTA).as_real();
- }
- else
- if (t == iva_vendite)
- {
- if (reg.corrispettivi())
- {
- real & r = rec->impcorr();
- r += recset.get(RMI_IMPONIBILE).as_real();
- real & r1 = rec->ivacorr();
- r1 += recset.get(RMI_IMPOSTA).as_real();
- }
- else
- {
- real & r = rec->impven();
- r += recset.get(RMI_IMPONIBILE).as_real();
- real & r1 = rec->ivaven();
- r1 += recset.get(RMI_IMPOSTA).as_real();
- }
- }
}
+ if (fattrit)
+ {
+ data.addyear(-1);
+ data.set_month(12);
+ data.set_end_month();
+ }
+ if (data.year() != _anno || (data.year() == _anno && (data.month() < _da_mese || data.month() > _a_mese)))
+ continue;
+ if (rec == NULL)
+ work_array.add(cod, rec = new TRiepilogoIVA_record(cod));
+ if (t == iva_acquisti)
+ {
+ real & r = rec->impacq();
+ r += recset.get(RMI_IMPONIBILE).as_real();
+ real & r1 = rec->ivaacq();
+ r1 += recset.get(RMI_IMPOSTA).as_real();
+ }
+ else
+ if (t == iva_vendite)
+ {
+ if (reg.corrispettivi())
+ {
+ real & r = rec->impcorr();
+ r += recset.get(RMI_IMPONIBILE).as_real();
+ real & r1 = rec->ivacorr();
+ r1 += recset.get(RMI_IMPOSTA).as_real();
+ }
+ else
+ {
+ real & r = rec->impven();
+ r += recset.get(RMI_IMPONIBILE).as_real();
+ real & r1 = rec->ivaven();
+ r1 += recset.get(RMI_IMPOSTA).as_real();
+ }
+ }
}
TString_array keys;
@@ -317,8 +270,7 @@ const TVariant& TRiepilogoIVA_recordset::get(unsigned int column) const
}
TRiepilogoIVA_recordset::TRiepilogoIVA_recordset() : TRecordset(), _pos(0), _from_date(botime), _to_date(eotime),
-_from_gruppo(0), _from_conto(0), _from_sottoconto(0L),
-_to_gruppo(999), _to_conto(999), _to_sottoconto(999999L), _freezed(false), _annuale(false)
+ _freezed(false), _annuale(false), _anno(0), _da_mese(1), _a_mese(12)
{
add_field(_alfafld, 101, 4, COD);
diff --git a/src/cg/cglib05.h b/src/cg/cglib05.h
index 6447a5231..11f76e221 100644
--- a/src/cg/cglib05.h
+++ b/src/cg/cglib05.h
@@ -21,18 +21,15 @@
class TRiepilogoIVA_recordset : public TRecordset
{
TArray _rows;
- long _pos;
- TDate _from_date;
- TDate _to_date;
- long _from_gruppo;
- long _from_conto;
- long _from_sottoconto;
- long _to_gruppo;
- long _to_conto;
- long _to_sottoconto;
TArray _info;
- bool _freezed;
- bool _annuale;
+ long _pos;
+ TDate _from_date;
+ TDate _to_date;
+ int _anno;
+ int _da_mese;
+ int _a_mese;
+ bool _freezed;
+ bool _annuale;
protected:
virtual const TVariant& get_field(int num, const char* field) const;
@@ -51,21 +48,20 @@ public:
// const TString& col2name(unsigned int column) const;
virtual const TVariant& get(unsigned int column) const;
+ TDate set_from(const TDate& from) { set_var("#FROMDATE", from, true); return _from_date = from; }
+ TDate set_to(const TDate& to) { set_var("#TODATE", to, true); return _to_date = to; }
+ int set_anno(const int anno) {set_var("#ANNO", (long) anno, true); return _anno = anno; };
+ void set_da_mese_var(const int mese) { set_var("#DAMESE", (long)mese, true); }
+ void set_a_mese_var(const int mese) { set_var("#AMESE", (long)mese, true); }
+ int set_da_mese(const int mese) { return _da_mese = mese; }
+ int set_a_mese(const int mese) { return _a_mese = mese; }
- TDate set_from(const TDate& from) { return _from_date = from; }
- TDate set_to(const TDate& to) { return _to_date = to; }
- void set_from_conto(int gruppo, int conto, long sottoconto) { _from_gruppo = gruppo; _from_conto = conto; _from_sottoconto = sottoconto; }
- void set_to_conto(int gruppo, int conto, long sottoconto) { _to_gruppo = gruppo; _to_conto = conto; _to_sottoconto = sottoconto; }
-
- virtual bool set_competenzaperiodoIVA(bool on) { return true; }
- virtual bool set_competenzadiversaIVA(bool on) { return false; }
- virtual bool set_registrazioneIVAritardo(bool on) { return false; }
- virtual bool set_annuale(bool on) { _annuale = on; return _annuale; }
- virtual bool competenzaperiodoIVA() const { return true; }
- virtual bool competenzadiversaIVA() const { return false; }
- virtual bool registrazioneIVAritardo() const { return true; }
- virtual bool annuale() const { return _annuale; }
+ bool set_annual(bool on) { return _annuale = on; }
+ bool annuale() const { return _annuale; }
virtual bool is_competenza() const { return false; }
+ int anno() const { return _anno; }
+ int da_mese() { return _da_mese; }
+ int a_mese() { return _a_mese; }
TRiepilogoIVA_recordset();
virtual ~TRiepilogoIVA_recordset() { }