From 2b1f7adf0b5ba4978416c1dfe1427f1fdc4855a6 Mon Sep 17 00:00:00 2001 From: AlexBonazzi Date: Mon, 28 Jan 2019 17:47:45 +0100 Subject: [PATCH] Patch level : 12.0 686 Files correlati : cg3.exe cg3200a.msk cg3600a.msk cg3600b.msk Commento : Stampa e visualizzazione mastrini per data competenza IVA --- src/cg/cg3200.cpp | 57 ++++++++++++++++++++++++++++++--------------- src/cg/cg3200a.uml | 7 ++++++ src/cg/cg3600.cpp | 58 +++++++++++++++++++++++++++++++++++----------- src/cg/cg3600.h | 7 +++--- src/cg/cg3600a.uml | 31 +++++++++++++++---------- src/cg/cg3600b.uml | 6 +++++ 6 files changed, 118 insertions(+), 48 deletions(-) diff --git a/src/cg/cg3200.cpp b/src/cg/cg3200.cpp index 35b2c124f..20c795324 100755 --- a/src/cg/cg3200.cpp +++ b/src/cg/cg3200.cpp @@ -106,7 +106,7 @@ class TMastrini_application : public TPrintapp bool _stampato,_devi_stampare_footer; 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; long _sottoc,_numreg,_numgio,_protiva; bool _stampa_progressivi_si,_competenza,/*_inizio_stampa,*/_puoi_stampare,_stampa_footer_si; @@ -144,6 +144,8 @@ protected: bool mask2sheet(); bool sheet2mask(); + const TDate get_filter_date(const TRectype & mov, const TRectype & rmov) const; + const char* real2str(const real& r) const; #ifdef CONT_SEP @@ -577,7 +579,7 @@ bool TMastrini_application::almeno_un_record() { const int annoes = rmov.get_int (RMV_ANNOES); 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())) { trovato = true; @@ -633,11 +635,12 @@ bool TMastrini_application::data_fine(TMask_field& f, KEY k) int annoes = m.get_int(F_ANNO); TDate data = m.get_date(F_DATAFINE); TDate data_ini = m.get_date(F_DATAINI); - app()._annomsk = annoes; - + if (k == K_ENTER) { - if (annoes != 0) + app()._annomsk = annoes; + app()._data_liq_iva = m.get_bool(F_DATA_LIQ); + if (annoes != 0) { app().data_fine_esercizio(annoes); @@ -1432,20 +1435,17 @@ bool TMastrini_application::preprocess_page(int file, int counter) if (((_annoes == _annomsk) || (_annomsk == 0)) && (!_totale_saldo.is_zero())) { _sezione = rmov.get(RMV_SEZIONE); + _datareg = get_filter_date(mov, rmov.curr()); - if (_annomsk == 0) - { - _datareg = mov.get(MOV_DATAREG); - - _datareg_stampa = _datareg; - } - else - if (_annomsk != 0) - { - _datareg = mov.get(MOV_DATACOMP); - _datareg_stampa = mov.get(MOV_DATAREG); - } - + if (_data_liq_iva) + _datareg_stampa = _datareg; + else + { + if (_annomsk == 0) + _datareg_stampa = _datareg; + else + _datareg_stampa = mov.get(MOV_DATAREG); + } 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()) { 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 #ifdef CONT_SEP @@ -3720,6 +3720,25 @@ bool TMastrini_application::sheet2mask() 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() { TToken_string exp; diff --git a/src/cg/cg3200a.uml b/src/cg/cg3200a.uml index 32371d33b..bf8de530a 100755 --- a/src/cg/cg3200a.uml +++ b/src/cg/cg3200a.uml @@ -37,6 +37,13 @@ BEGIN FLAGS "A" 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 BEGIN PROMPT 51 2 "Esercizio " diff --git a/src/cg/cg3600.cpp b/src/cg/cg3600.cpp index ac0096186..d069ff347 100755 --- a/src/cg/cg3600.cpp +++ b/src/cg/cg3600.cpp @@ -161,7 +161,8 @@ class TMastrino : public TObject int _esercizio; // Esercizio di riferimento (eventualmente 0) TDate _da_data, _a_data; // Date 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_per, _pavere_per; @@ -183,7 +184,7 @@ public: void read(const TBill& conto, 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(); 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_avere_iniziale() const { return _pavere_ini; } 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_avere_finale() const { return _pavere_fin; } @@ -211,6 +213,7 @@ public: const TBill& conto() const { return _conto; } int esercizio() const { return _esercizio; } + bool data_liq_iva() const { return _comp_IVA; } const TDate& inizio_periodo() const { return _da_data; } const TDate& fine_periodo() const { return _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); } +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, int ae, const TDate& dd, const TDate& ad, const TString& dc, const TString& ac, - bool provvis) + bool provvis, bool compIVA) { TEsercizi_contabili esercizi; @@ -318,6 +340,8 @@ void TMastrino::read(const TBill& conto, const TDate& inizio_esercizio = esercizi[ae].inizio(); _da_data = dd.ok() ? dd : inizio_esercizio; _a_data = ad.ok() ? ad : esercizi[ae].fine(); + _comp_IVA = compIVA; + const bool test_caus = !(dc.blank() && ac.blank()); _da_caus = dc; @@ -337,6 +361,9 @@ void TMastrino::read(const TBill& conto, else 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: // 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_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_codcaus (mov_rec, MOV_CODCAUS); @@ -447,7 +474,7 @@ void TMastrino::read(const TBill& conto, 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) continue; @@ -481,7 +508,7 @@ void TMastrino::read(const TBill& conto, TRiga_mastrino* r = new TRiga_mastrino(riga_mastrino, rmov().recno(), mov().recno(), - _pdare_per, _pavere_per, rmov_datareg); + _pdare_per, _pavere_per, data_corrente); _riga.append(r); } } @@ -493,7 +520,7 @@ void TMastrino::read(const TBill& conto, 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) @@ -1689,7 +1716,7 @@ public: void destroy(); void read(const TBill& conto, 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(); 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, 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(); - _mastrino.read(conto, annoes, dd, ad, dc, ac, provv); + _mastrino.read(conto, annoes, dd, ad, dc, ac, provv, compIVA); update(); update_mask(); } @@ -2099,8 +2126,9 @@ void TMastrini_grid::update_mask() const { TMask& gm = mask(); - gm.set(F_ESERCIZIO, _mastrino.esercizio()); - gm.set(F_DADATA, _mastrino.inizio_periodo()); + 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_ADATA, _mastrino.fine_periodo()); set_imp(gm.field(F_TOTPRO_SAL), _mastrino.saldo_iniziale()); @@ -2641,17 +2669,19 @@ void TQuery_mask::do_query() const TBill conto(g, c, s, t); const int annoes = get_int(F_ESERCIZIO); + //qui const TDate da_data(get(F_DADATA)); const TDate a_data(get(F_ADATA)); const TString& da_caus = get(F_DACAUSALE); 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); 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); _gm->run(); diff --git a/src/cg/cg3600.h b/src/cg/cg3600.h index edbe71aa8..cacf02cbd 100755 --- a/src/cg/cg3600.h +++ b/src/cg/cg3600.h @@ -26,11 +26,12 @@ #define F_ACAUSALE 115 #define F_ADESCAUS 116 #define F_PROVVIS 117 +#define F_COMP_IVA 118 #ifdef CONT_SEP -#define F_CONTSEP 118 -#define F_END 119 +#define F_CONTSEP 119 +#define F_END 120 #else -#define F_END 118 +#define F_END 119 #endif #define F_MASTRINI 200 diff --git a/src/cg/cg3600a.uml b/src/cg/cg3600a.uml index b93e21a4e..4501b6fa8 100755 --- a/src/cg/cg3600a.uml +++ b/src/cg/cg3600a.uml @@ -276,15 +276,22 @@ BEGIN GROUP 3 4 END -GROUPBOX DLG_NULL 76 4 +GROUPBOX DLG_NULL 76 5 BEGIN PROMPT 1 11 "@bPeriodo" FLAGS "R" 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 BEGIN - PROMPT 2 12 "Cod. esercizio " + PROMPT 2 13 "Cod. esercizio " FLAGS "Z" USE ESC INPUT CODTAB F_ESERCIZIO @@ -298,35 +305,35 @@ END DATE F_DADATA BEGIN - PROMPT 26 12 "Dalla data " + PROMPT 26 13 "Dalla data " END DATE F_ADATA BEGIN - PROMPT 52 12 "Alla data " + PROMPT 52 13 "Alla data " VALIDATE DATE_CMP_FUNC >= F_DADATA WARNING "La data finale deve essere maggiore di quella iniziale" END BOOLEAN F_PROVVIS BEGIN - PROMPT 2 13 "Includi movimenti provvisori" + PROMPT 2 14 "Includi movimenti provvisori" END BOOLEAN F_END BEGIN - PROMPT 40 13 "Posizionamento in fondo al mastrino" + PROMPT 40 14 "Posizionamento in fondo al mastrino" END GROUPBOX DLG_NULL 76 5 BEGIN - PROMPT 1 15 "@bCausali" + PROMPT 1 16 "@bCausali" FLAGS "R" END STRING F_DACAUSALE 3 BEGIN - PROMPT 2 16 "Da causale " + PROMPT 2 17 "Da causale " FLAGS "UZ" USE LF_CAUSALI INPUT CODCAUS F_DACAUSALE @@ -342,7 +349,7 @@ END STRING F_DADESCAUS 50 BEGIN - PROMPT 23 16 "" + PROMPT 23 17 "" USE LF_CAUSALI KEY 2 INPUT DESCR F_DADESCAUS DISPLAY "Descrizione@50" DESCR @@ -354,7 +361,7 @@ END STRING F_ACAUSALE 3 BEGIN - PROMPT 2 17 "A causale " + PROMPT 2 18 "A causale " FLAGS "UZ" COPY USE F_DACAUSALE INPUT CODCAUS F_ACAUSALE @@ -369,7 +376,7 @@ END STRING F_ADESCAUS 50 BEGIN - PROMPT 23 17 "" + PROMPT 23 18 "" COPY USE F_DADESCAUS INPUT DESCR F_ADESCAUS COPY DISPLAY F_DADESCAUS @@ -381,7 +388,7 @@ END #ifdef CONT_SEP STRING F_CONTSEP 6 BEGIN - PROMPT 2 18 "Contabilità separata " + PROMPT 2 19 "Contabilità separata " USE &NPENT INPUT CODTAB F_CONTSEP DISPLAY "Codice@6" CODTAB diff --git a/src/cg/cg3600b.uml b/src/cg/cg3600b.uml index 4cda17211..5ed420fd0 100755 --- a/src/cg/cg3600b.uml +++ b/src/cg/cg3600b.uml @@ -81,6 +81,12 @@ BEGIN FLAGS "D" END +BOOLEAN F_COMP_IVA +BEGIN + PROMPT 52 1 "Comp.IVA" + FLAGS "D" +END + BUTTON DLG_USER 10 BEGIN PROMPT 64 1 "Partite"