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;
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;

View File

@ -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 "

View File

@ -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();

View File

@ -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

View File

@ -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

View File

@ -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"