Patch level : 12.0 686

Files correlati     : cg3.exe cg3200a.msk cg3600a.msk cg3600b.msk
Commento            :
 Stampa e visualizzazione mastrini per data competenza IVA
This commit is contained in:
AlexBonazzi 2019-01-28 17:47:45 +01:00
parent 5f23e9a02c
commit 2b1f7adf0b
6 changed files with 118 additions and 48 deletions

View File

@ -106,7 +106,7 @@ class TMastrini_application : public TPrintapp
bool _stampato,_devi_stampare_footer; bool _stampato,_devi_stampare_footer;
int _stampa_saldo_des; int _stampa_saldo_des;
int _annomsk,_annoesmsk,_annoes,_annomsksucc,_tipo_mask,_anno_ghost; int _annomsk,_annoesmsk,_annoes,_annomsksucc,_tipo_mask,_anno_ghost, _data_liq_iva;
int _anno_corrente,_anno_precedente,_indbil,_numero_pag; int _anno_corrente,_anno_precedente,_indbil,_numero_pag;
long _sottoc,_numreg,_numgio,_protiva; long _sottoc,_numreg,_numgio,_protiva;
bool _stampa_progressivi_si,_competenza,/*_inizio_stampa,*/_puoi_stampare,_stampa_footer_si; bool _stampa_progressivi_si,_competenza,/*_inizio_stampa,*/_puoi_stampare,_stampa_footer_si;
@ -144,6 +144,8 @@ protected:
bool mask2sheet(); bool mask2sheet();
bool sheet2mask(); bool sheet2mask();
const TDate get_filter_date(const TRectype & mov, const TRectype & rmov) const;
const char* real2str(const real& r) const; const char* real2str(const real& r) const;
#ifdef CONT_SEP #ifdef CONT_SEP
@ -577,7 +579,7 @@ bool TMastrini_application::almeno_un_record()
{ {
const int annoes = rmov.get_int (RMV_ANNOES); const int annoes = rmov.get_int (RMV_ANNOES);
const TString4 provvis (mov.get(MOV_PROVVIS)); const TString4 provvis (mov.get(MOV_PROVVIS));
const TDate datareg = _annomsk ? mov.get_date(MOV_DATACOMP) : rmov.get_date(RMV_DATAREG); const TDate datareg = get_filter_date(mov, rmov);
if ( ((annoes==_annomsk) || (_annomsk==0)) && ((datareg>=_data_ini) && (datareg<=_data_fine)) && (_stampa_mov_prov || provvis.blank())) if ( ((annoes==_annomsk) || (_annomsk==0)) && ((datareg>=_data_ini) && (datareg<=_data_fine)) && (_stampa_mov_prov || provvis.blank()))
{ {
trovato = true; trovato = true;
@ -633,10 +635,11 @@ bool TMastrini_application::data_fine(TMask_field& f, KEY k)
int annoes = m.get_int(F_ANNO); int annoes = m.get_int(F_ANNO);
TDate data = m.get_date(F_DATAFINE); TDate data = m.get_date(F_DATAFINE);
TDate data_ini = m.get_date(F_DATAINI); TDate data_ini = m.get_date(F_DATAINI);
app()._annomsk = annoes;
if (k == K_ENTER) if (k == K_ENTER)
{ {
app()._annomsk = annoes;
app()._data_liq_iva = m.get_bool(F_DATA_LIQ);
if (annoes != 0) if (annoes != 0)
{ {
app().data_fine_esercizio(annoes); app().data_fine_esercizio(annoes);
@ -1432,21 +1435,18 @@ bool TMastrini_application::preprocess_page(int file, int counter)
if (((_annoes == _annomsk) || (_annomsk == 0)) && (!_totale_saldo.is_zero())) if (((_annoes == _annomsk) || (_annomsk == 0)) && (!_totale_saldo.is_zero()))
{ {
_sezione = rmov.get(RMV_SEZIONE); _sezione = rmov.get(RMV_SEZIONE);
_datareg = get_filter_date(mov, rmov.curr());
if (_annomsk == 0) if (_data_liq_iva)
{
_datareg = mov.get(MOV_DATAREG);
_datareg_stampa = _datareg; _datareg_stampa = _datareg;
}
else else
if (_annomsk != 0)
{ {
_datareg = mov.get(MOV_DATACOMP); if (_annomsk == 0)
_datareg_stampa = _datareg;
else
_datareg_stampa = mov.get(MOV_DATAREG); _datareg_stampa = mov.get(MOV_DATAREG);
} }
const TString4 provvis = mov.get(MOV_PROVVIS); const TString4 provvis = mov.get(MOV_PROVVIS);
@ -2971,7 +2971,7 @@ void TMastrini_application::calcola_progressivi_al(const TDate& data_fin)
if (_stampa_mov_prov || mov.get(MOV_PROVVIS).blank()) if (_stampa_mov_prov || mov.get(MOV_PROVVIS).blank())
{ {
const int annoes = rmov.get_int (RMV_ANNOES); const int annoes = rmov.get_int (RMV_ANNOES);
const TDate datareg = mov.get_date(_annomsk ? MOV_DATACOMP : RMV_DATAREG); const TDate datareg = get_filter_date(mov, rmov);
//Legge movimenti con data > inizio esercizio e < data_fin //Legge movimenti con data > inizio esercizio e < data_fin
#ifdef CONT_SEP #ifdef CONT_SEP
@ -3720,6 +3720,25 @@ bool TMastrini_application::sheet2mask()
return ok; return ok;
} }
const TDate TMastrini_application::get_filter_date(const TRectype & mov, const TRectype & rmov) const
{
if (_data_liq_iva)
{
const int mese_prec = mov.get_int(MOV_MESELIQ);
const TDate datareg(rmov.get_date(RMV_DATAREG));
if (mese_prec == 0)
return datareg;
TDate data_comp_iva(1, mese_prec, rmov.get_date(RMV_DATAREG).year());
data_comp_iva.set_end_month();
return data_comp_iva;
}
if (_annomsk == 0)
return rmov.get_date(RMV_DATAREG);
return mov.get_date(MOV_DATACOMP);
}
bool TMastrini_application::user_create() bool TMastrini_application::user_create()
{ {
TToken_string exp; TToken_string exp;

View File

@ -37,6 +37,13 @@ BEGIN
FLAGS "A" FLAGS "A"
END END
BOOLEAN F_DATA_LIQ
BEGIN
PROMPT 31 2 "Stampa per competenza IVA "
MESSAGE TRUE CLEAR,F_ANNO
MESSAGE FALSE ENABLE,F_ANNO
END
NUMBER F_ANNO 4 NUMBER F_ANNO 4
BEGIN BEGIN
PROMPT 51 2 "Esercizio " PROMPT 51 2 "Esercizio "

View File

@ -162,6 +162,7 @@ class TMastrino : public TObject
TDate _da_data, _a_data; // Date limite TDate _da_data, _a_data; // Date limite
TString _da_caus, _a_caus; // Causali limite TString _da_caus, _a_caus; // Causali limite
bool _provvis; // Includi provvisori bool _provvis; // Includi provvisori
bool _comp_IVA; // mastrino per data competenza IVA
real _pdare_ini, _pavere_ini; real _pdare_ini, _pavere_ini;
real _pdare_per, _pavere_per; real _pdare_per, _pavere_per;
@ -183,7 +184,7 @@ public:
void read(const TBill& conto, void read(const TBill& conto,
int annoes, const TDate& dd, const TDate& ad, int annoes, const TDate& dd, const TDate& ad,
const TString& dc, const TString& ac, bool provvis); const TString& dc, const TString& ac, bool provvis, bool compIVA);
void reread(); void reread();
TRiga_mastrino& operator[](long n) const { return row(n); } TRiga_mastrino& operator[](long n) const { return row(n); }
@ -200,6 +201,7 @@ public:
const real& progressivo_dare_iniziale() const { return _pdare_ini; } const real& progressivo_dare_iniziale() const { return _pdare_ini; }
const real& progressivo_avere_iniziale() const { return _pavere_ini; } const real& progressivo_avere_iniziale() const { return _pavere_ini; }
TImporto saldo_iniziale() const; TImporto saldo_iniziale() const;
const TDate get_filter_date(const TRectype & mov, const TRectype & rmov) const;
const real& progressivo_dare_finale() const { return _pdare_fin; } const real& progressivo_dare_finale() const { return _pdare_fin; }
const real& progressivo_avere_finale() const { return _pavere_fin; } const real& progressivo_avere_finale() const { return _pavere_fin; }
@ -211,6 +213,7 @@ public:
const TBill& conto() const { return _conto; } const TBill& conto() const { return _conto; }
int esercizio() const { return _esercizio; } int esercizio() const { return _esercizio; }
bool data_liq_iva() const { return _comp_IVA; }
const TDate& inizio_periodo() const { return _da_data; } const TDate& inizio_periodo() const { return _da_data; }
const TDate& fine_periodo() const { return _a_data; } const TDate& fine_periodo() const { return _a_data; }
void periodo(TDate& dd, TDate& ad) const { dd = _da_data; ad = _a_data; } void periodo(TDate& dd, TDate& ad) const { dd = _da_data; ad = _a_data; }
@ -290,10 +293,29 @@ long TMastrino::last(tipo_riga_mastrino tipo) const
return pred(items(), tipo); return pred(items(), tipo);
} }
const TDate TMastrino::get_filter_date(const TRectype & mov, const TRectype & rmov) const
{
if (_comp_IVA)
{
const int mese_prec = mov.get_int(MOV_MESELIQ);
const TDate datareg(rmov.get_date(RMV_DATAREG));
if (mese_prec == 0)
return datareg;
TDate data_comp_iva(1, mese_prec, rmov.get_date(RMV_DATAREG).year());
data_comp_iva.set_end_month();
return data_comp_iva;
}
if (_esercizio == 0)
return rmov.get_date(RMV_DATAREG);
return mov.get_date(MOV_DATACOMP);
}
void TMastrino::read(const TBill& conto, void TMastrino::read(const TBill& conto,
int ae, const TDate& dd, const TDate& ad, int ae, const TDate& dd, const TDate& ad,
const TString& dc, const TString& ac, const TString& dc, const TString& ac,
bool provvis) bool provvis, bool compIVA)
{ {
TEsercizi_contabili esercizi; TEsercizi_contabili esercizi;
@ -318,6 +340,8 @@ void TMastrino::read(const TBill& conto,
const TDate& inizio_esercizio = esercizi[ae].inizio(); const TDate& inizio_esercizio = esercizi[ae].inizio();
_da_data = dd.ok() ? dd : inizio_esercizio; _da_data = dd.ok() ? dd : inizio_esercizio;
_a_data = ad.ok() ? ad : esercizi[ae].fine(); _a_data = ad.ok() ? ad : esercizi[ae].fine();
_comp_IVA = compIVA;
const bool test_caus = !(dc.blank() && ac.blank()); const bool test_caus = !(dc.blank() && ac.blank());
_da_caus = dc; _da_caus = dc;
@ -337,6 +361,9 @@ void TMastrino::read(const TBill& conto,
else else
max_data_reg = esercizi[ae].fine(); max_data_reg = esercizi[ae].fine();
} }
else
if (_comp_IVA)
max_data_reg = esercizi[ae].fine();
// Valori dei saldi fino alla data di inizio stampa: // Valori dei saldi fino alla data di inizio stampa:
// Vengono inizializzati con i saldi iniziali dell'esercizio, // Vengono inizializzati con i saldi iniziali dell'esercizio,
@ -391,7 +418,7 @@ void TMastrino::read(const TBill& conto,
const TRecfield rmov_sezione (rmov_rec, RMV_SEZIONE); const TRecfield rmov_sezione (rmov_rec, RMV_SEZIONE);
const TRecfield rmov_importo (rmov_rec, RMV_IMPORTO); const TRecfield rmov_importo (rmov_rec, RMV_IMPORTO);
const TRecfield mov_datacomp (mov_rec, MOV_DATACOMP); // const TRecfield mov_datacomp (mov_rec, MOV_DATACOMP);
const TRecfield mov_provvis (mov_rec, MOV_PROVVIS); const TRecfield mov_provvis (mov_rec, MOV_PROVVIS);
const TRecfield mov_codcaus (mov_rec, MOV_CODCAUS); const TRecfield mov_codcaus (mov_rec, MOV_CODCAUS);
@ -447,7 +474,7 @@ void TMastrino::read(const TBill& conto,
continue; continue;
} }
const TDate data_corrente = _esercizio <= 0 ? rmov_datareg : TDate((const char*)mov_datacomp); const TDate data_corrente = get_filter_date(mov_rec, rmov_rec);
if (data_corrente > _a_data) if (data_corrente > _a_data)
continue; continue;
@ -481,7 +508,7 @@ void TMastrino::read(const TBill& conto,
TRiga_mastrino* r = new TRiga_mastrino(riga_mastrino, TRiga_mastrino* r = new TRiga_mastrino(riga_mastrino,
rmov().recno(), mov().recno(), rmov().recno(), mov().recno(),
_pdare_per, _pavere_per, rmov_datareg); _pdare_per, _pavere_per, data_corrente);
_riga.append(r); _riga.append(r);
} }
} }
@ -493,7 +520,7 @@ void TMastrino::read(const TBill& conto,
void TMastrino::reread() void TMastrino::reread()
{ {
read(_conto, _esercizio, _da_data, _a_data, _da_caus, _a_caus, _provvis); read(_conto, _esercizio, _da_data, _a_data, _da_caus, _a_caus, _provvis, _comp_IVA);
} }
void TMastrino::position_rel(long n) void TMastrino::position_rel(long n)
@ -1689,7 +1716,7 @@ public:
void destroy(); void destroy();
void read(const TBill& conto, void read(const TBill& conto,
int annoes, const TDate& dd, const TDate& ad, int annoes, const TDate& dd, const TDate& ad,
const TString& dc, const TString& ac, bool provv); const TString& dc, const TString& ac, bool provv, bool compIVA);
void reread(); void reread();
TMastrino& mastrino() { return _mastrino; } TMastrino& mastrino() { return _mastrino; }
@ -2079,10 +2106,10 @@ bool TMastrini_grid::on_resize_column(short cid, int new_size)
void TMastrini_grid::read(const TBill& conto, void TMastrini_grid::read(const TBill& conto,
int annoes, const TDate& dd, const TDate& ad, int annoes, const TDate& dd, const TDate& ad,
const TString& dc, const TString& ac, bool provv) const TString& dc, const TString& ac, bool provv, bool compIVA)
{ {
destroy(); destroy();
_mastrino.read(conto, annoes, dd, ad, dc, ac, provv); _mastrino.read(conto, annoes, dd, ad, dc, ac, provv, compIVA);
update(); update();
update_mask(); update_mask();
} }
@ -2100,6 +2127,7 @@ void TMastrini_grid::update_mask() const
TMask& gm = mask(); TMask& gm = mask();
gm.set(F_ESERCIZIO, _mastrino.esercizio()); gm.set(F_ESERCIZIO, _mastrino.esercizio());
gm.set(F_COMP_IVA, _mastrino.data_liq_iva());
gm.set(F_DADATA, _mastrino.inizio_periodo()); gm.set(F_DADATA, _mastrino.inizio_periodo());
gm.set(F_ADATA, _mastrino.fine_periodo()); gm.set(F_ADATA, _mastrino.fine_periodo());
@ -2641,17 +2669,19 @@ void TQuery_mask::do_query()
const TBill conto(g, c, s, t); const TBill conto(g, c, s, t);
const int annoes = get_int(F_ESERCIZIO); const int annoes = get_int(F_ESERCIZIO);
//qui
const TDate da_data(get(F_DADATA)); const TDate da_data(get(F_DADATA));
const TDate a_data(get(F_ADATA)); const TDate a_data(get(F_ADATA));
const TString& da_caus = get(F_DACAUSALE); const TString& da_caus = get(F_DACAUSALE);
const TString& a_caus = get(F_ACAUSALE); const TString& a_caus = get(F_ACAUSALE);
const bool provv = get_bool(F_PROVVIS); const bool provv = get_bool(F_PROVVIS);
const bool compIVA = get_bool(F_COMP_IVA);
conto.set(*_gm, F_GRUPPO, F_CONTO, F_SOTTOCONTO, 0, F_DESSOTTOC); conto.set(*_gm, F_GRUPPO, F_CONTO, F_SOTTOCONTO, 0, F_DESSOTTOC);
TMastrini_grid& gf = _gm->grid(); TMastrini_grid& gf = _gm->grid();
gf.read(conto, annoes, da_data, a_data, da_caus, a_caus, provv); gf.read(conto, annoes, da_data, a_data, da_caus, a_caus, provv, compIVA);
gf.select(get_bool(F_END) ? gf.items() -1 : 0); gf.select(get_bool(F_END) ? gf.items() -1 : 0);
_gm->run(); _gm->run();

View File

@ -26,11 +26,12 @@
#define F_ACAUSALE 115 #define F_ACAUSALE 115
#define F_ADESCAUS 116 #define F_ADESCAUS 116
#define F_PROVVIS 117 #define F_PROVVIS 117
#define F_COMP_IVA 118
#ifdef CONT_SEP #ifdef CONT_SEP
#define F_CONTSEP 118 #define F_CONTSEP 119
#define F_END 119 #define F_END 120
#else #else
#define F_END 118 #define F_END 119
#endif #endif
#define F_MASTRINI 200 #define F_MASTRINI 200

View File

@ -276,15 +276,22 @@ BEGIN
GROUP 3 4 GROUP 3 4
END END
GROUPBOX DLG_NULL 76 4 GROUPBOX DLG_NULL 76 5
BEGIN BEGIN
PROMPT 1 11 "@bPeriodo" PROMPT 1 11 "@bPeriodo"
FLAGS "R" FLAGS "R"
END END
BOOLEAN F_COMP_IVA
BEGIN
PROMPT 2 12 "Stampa per competenza IVA "
MESSAGE TRUE CLEAR,F_ESERCIZIO
MESSAGE FALSE ENABLE,F_ESERCIZIO
END
NUMBER F_ESERCIZIO 4 NUMBER F_ESERCIZIO 4
BEGIN BEGIN
PROMPT 2 12 "Cod. esercizio " PROMPT 2 13 "Cod. esercizio "
FLAGS "Z" FLAGS "Z"
USE ESC USE ESC
INPUT CODTAB F_ESERCIZIO INPUT CODTAB F_ESERCIZIO
@ -298,35 +305,35 @@ END
DATE F_DADATA DATE F_DADATA
BEGIN BEGIN
PROMPT 26 12 "Dalla data " PROMPT 26 13 "Dalla data "
END END
DATE F_ADATA DATE F_ADATA
BEGIN BEGIN
PROMPT 52 12 "Alla data " PROMPT 52 13 "Alla data "
VALIDATE DATE_CMP_FUNC >= F_DADATA VALIDATE DATE_CMP_FUNC >= F_DADATA
WARNING "La data finale deve essere maggiore di quella iniziale" WARNING "La data finale deve essere maggiore di quella iniziale"
END END
BOOLEAN F_PROVVIS BOOLEAN F_PROVVIS
BEGIN BEGIN
PROMPT 2 13 "Includi movimenti provvisori" PROMPT 2 14 "Includi movimenti provvisori"
END END
BOOLEAN F_END BOOLEAN F_END
BEGIN BEGIN
PROMPT 40 13 "Posizionamento in fondo al mastrino" PROMPT 40 14 "Posizionamento in fondo al mastrino"
END END
GROUPBOX DLG_NULL 76 5 GROUPBOX DLG_NULL 76 5
BEGIN BEGIN
PROMPT 1 15 "@bCausali" PROMPT 1 16 "@bCausali"
FLAGS "R" FLAGS "R"
END END
STRING F_DACAUSALE 3 STRING F_DACAUSALE 3
BEGIN BEGIN
PROMPT 2 16 "Da causale " PROMPT 2 17 "Da causale "
FLAGS "UZ" FLAGS "UZ"
USE LF_CAUSALI USE LF_CAUSALI
INPUT CODCAUS F_DACAUSALE INPUT CODCAUS F_DACAUSALE
@ -342,7 +349,7 @@ END
STRING F_DADESCAUS 50 STRING F_DADESCAUS 50
BEGIN BEGIN
PROMPT 23 16 "" PROMPT 23 17 ""
USE LF_CAUSALI KEY 2 USE LF_CAUSALI KEY 2
INPUT DESCR F_DADESCAUS INPUT DESCR F_DADESCAUS
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
@ -354,7 +361,7 @@ END
STRING F_ACAUSALE 3 STRING F_ACAUSALE 3
BEGIN BEGIN
PROMPT 2 17 "A causale " PROMPT 2 18 "A causale "
FLAGS "UZ" FLAGS "UZ"
COPY USE F_DACAUSALE COPY USE F_DACAUSALE
INPUT CODCAUS F_ACAUSALE INPUT CODCAUS F_ACAUSALE
@ -369,7 +376,7 @@ END
STRING F_ADESCAUS 50 STRING F_ADESCAUS 50
BEGIN BEGIN
PROMPT 23 17 "" PROMPT 23 18 ""
COPY USE F_DADESCAUS COPY USE F_DADESCAUS
INPUT DESCR F_ADESCAUS INPUT DESCR F_ADESCAUS
COPY DISPLAY F_DADESCAUS COPY DISPLAY F_DADESCAUS
@ -381,7 +388,7 @@ END
#ifdef CONT_SEP #ifdef CONT_SEP
STRING F_CONTSEP 6 STRING F_CONTSEP 6
BEGIN BEGIN
PROMPT 2 18 "Contabilità separata " PROMPT 2 19 "Contabilità separata "
USE &NPENT USE &NPENT
INPUT CODTAB F_CONTSEP INPUT CODTAB F_CONTSEP
DISPLAY "Codice@6" CODTAB DISPLAY "Codice@6" CODTAB

View File

@ -81,6 +81,12 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
BOOLEAN F_COMP_IVA
BEGIN
PROMPT 52 1 "Comp.IVA"
FLAGS "D"
END
BUTTON DLG_USER 10 BUTTON DLG_USER 10
BEGIN BEGIN
PROMPT 64 1 "Partite" PROMPT 64 1 "Partite"