Patch level : 12.0 618

Files correlati     :
Commento            : np0.exe npmenu.men

Corretti saldi iniziali  mastrini per contabilità separata.
Aggiunta chiusura al menu
This commit is contained in:
AlexBonazzi 2018-08-26 08:55:04 +02:00
parent 63a708a083
commit fb98823f08
3 changed files with 97 additions and 40 deletions

View File

@ -97,7 +97,7 @@ class TMastrini_application : public TPrintapp
TString _descrizione,_sezione,_numdoc,_descrizionemov,_numrivd,_descr;
TString _dataregs, _datadocs;
int _gruppocontr,_contocontr,_nummast,_pagina;
#ifdef _CONT_SEP
#ifdef CONT_SEP
TString _cont_sep;
#endif
long _sottocontocontr;
@ -1451,7 +1451,10 @@ bool TMastrini_application::preprocess_page(int file, int counter)
_dataregs = _datareg_stampa.string();
#ifdef CONT_SEP
if (_cont_sep.full() && _cont_sep != mov.get(MOV_CONTSEP))
return false;
#endif
if ((_stampa_mov_prov)||((!_stampa_mov_prov)&&(provvis.blank())))
{
if ((_datareg >= _data_ini) && (_datareg <= _data_fine))
@ -2257,15 +2260,15 @@ bool TMastrini_application::set_print(int m)
// altrimenti estrae il primo elemento sovrascrivendo la maschera corrente.
// Questa figata cerca di correggere gli errori MI6185 e MI3592 in una botta
#ifdef CONT_SEP
TString cont_sep = _msk->get(F_CONTSEP);
_cont_sep = _msk->get(F_CONTSEP);
if (cont_sep.full())
/* if (_cont_sep.full())
{
TString filter("(FLSCA!=\" \")");
filter << "&&(CONTSEP==\"" << cont_sep << "\")";
filter << "&&(" << LF_MOV << "->CONTSEP==\"" << _cont_sep << "\")";
current_cursor()->setfilter(filter);
}
} */
#endif
TSheet_field& sht = _msk->sfield(F_SCELTE);
if (sht.items() != 0)
@ -2933,13 +2936,15 @@ void TMastrini_application::calcola_progressivi_al(const TDate& data_fin)
const TDate data_inizio = _annomsk ? _data_inizioese : _inizioes;
if (_annomsk == _last_year && data_inizio == _last_inizio && data_fin == _last_date &&
#ifndef CONT_SEP
if (_annomsk == _last_year && data_inizio == _last_inizio && data_fin == _last_date &&
_last_provv == _stampa_mov_prov && _last_bill == TBill(_gruppo, _conto, _sottoc))
{
_totale_prima_dare = _last_dare;
_totale_prima_avere = _last_avere;
return;
}
#endif
TLocalisamfile& rmov_file = current_cursor()->file(LF_RMOV);
const TRecnotype record = rmov_file.recno();
@ -2969,15 +2974,18 @@ void TMastrini_application::calcola_progressivi_al(const TDate& data_fin)
const TDate datareg = mov.get_date(_annomsk ? MOV_DATACOMP : RMV_DATAREG);
//Legge movimenti con data > inizio esercizio e < data_fin
if (((annoes==_annomsk)||(_annomsk == 0))&&(datareg >= data_inizio)&&(datareg <= data_fin))
{
const char sezione = rmov.get_char(RMV_SEZIONE);
const real importo = rmov.get_real(RMV_IMPORTO);
if (sezione == 'D')
_totale_prima_dare += importo;
else
_totale_prima_avere += importo;
}
#ifdef CONT_SEP
if (_cont_sep.blank() || _cont_sep == mov.get(MOV_CONTSEP))
#endif
if (((annoes==_annomsk)||(_annomsk == 0))&&(datareg >= data_inizio)&&(datareg <= data_fin))
{
const char sezione = rmov.get_char(RMV_SEZIONE);
const real importo = rmov.get_real(RMV_IMPORTO);
if (sezione == 'D')
_totale_prima_dare += importo;
else
_totale_prima_avere += importo;
}
}
}
@ -3026,6 +3034,15 @@ void TMastrini_application::calcola_progressivi(bool finali)
//Calcola i progressivi dell'esercizio attuale
if (annoes_saldi == _anno_corrente)
{
#ifdef CONT_SEP
TDate datalim;
_sld->saldo_cont_sep(_gruppo, _conto, _sottoc, annoes_saldi, esercizi().esercizio(annoes_saldi).fine(), _indbil, _cont_sep, _stampa_mov_prov);
saldo = _sld->saldo();
saldoini_attuale = saldo;
saldofine_attuale = _sld->saldofin();
#else
progdare_attuale = saldi.get_real(SLD_PDARE);
progavere_attuale = saldi.get_real(SLD_PAVERE);
if (_stampa_mov_prov)
@ -3035,13 +3052,14 @@ void TMastrini_application::calcola_progressivi(bool finali)
}
saldo = saldi.get_real(SLD_SALDO);
salini = saldi.get(SLD_FLAGSALINI)[0];
_ultima_data_reg = saldi.get_date(SLD_DATAULMOV);
saldoini_attuale = saldi.get_real(SLD_SALDO);
salini_attuale = saldi.get_char(SLD_FLAGSALINI);
saldofine_attuale = saldi.get_real(SLD_SALDOFIN);
salfine_attuale = saldi.get_char(SLD_FLAGSALFIN);
}
saldoini_attuale = saldi.get_real(SLD_SALDO);
saldofine_attuale = saldi.get_real(SLD_SALDOFIN);
#endif
salini = saldi.get(SLD_FLAGSALINI)[0];
_ultima_data_reg = saldi.get_date(SLD_DATAULMOV);
salini_attuale = saldi.get_char(SLD_FLAGSALINI);
salfine_attuale = saldi.get_char(SLD_FLAGSALFIN);
}
} // if (!saldi.get_bool(SLD_FLSCA))
} // FOR
@ -3051,24 +3069,38 @@ void TMastrini_application::calcola_progressivi(bool finali)
if (_annomsk != 0)
{
if ((_indbil == 1) || (_indbil == 2) || (_indbil == 5))
{
const TRecnotype pos = saldi.recno();
{
const TRecnotype pos = saldi.recno();
#ifdef CONT_SEP
const int esp = esercizi().pred(_anno_corrente);
_sld->saldo_cont_sep(_gruppo, _conto, _sottoc, esp, esercizi().esercizio(esp).fine(), _indbil, _cont_sep, _stampa_mov_prov, true);
saldo = _sld->saldo();
#else
// W96SALDI del 18-07-96 saldofin_esprec usa il flag TRUE xche' deve
// considerare anche il saldo finale
saldo = _sld->saldofin_esprec(_anno_corrente,_gruppo,_conto,_sottoc,TRUE, _stampa_mov_prov);
saldi.readat(pos);
if (saldo > ZERO)
{
progredare_eseprec = saldo;
progdare_prec = saldo;
}
else if (saldo < ZERO)
{
saldo = -saldo;
progreavere_eseprec = saldo;
progavere_prec = saldo;
}
#endif
saldi.readat(pos);
if (saldo > ZERO)
{
progredare_eseprec = saldo;
progdare_prec = saldo;
progreavere_eseprec = ZERO;
progavere_prec = ZERO;
}
else if (saldo < ZERO)
{
progredare_eseprec = ZERO;
progdare_prec = ZERO;
saldo = -saldo;
progreavere_eseprec = saldo;
progavere_prec = saldo;
}
}
}
@ -3699,6 +3731,7 @@ bool TMastrini_application::user_create()
exp.add("CONTO=CONTO");
exp.add("SOTTOCONTO=SOTTOCONTO");
_rel->add(LF_RMOV,exp,2,LF_SALDI);
_rel->add(LF_MOV, "NUMREG==NUMREG", 1, LF_RMOV);
_rel->add("CMS", "CODTAB==CODCMS", 1, LF_RMOV, 501);
_rel->add("FSC", "CODTAB==FASCMS", 1, LF_RMOV, 502);

View File

@ -344,7 +344,29 @@ void TMastrino::read(const TBill& conto,
// vanno dall'inizio dell'esercizio al giorno precedente
// la data di inizio stampa
TBalance saldo(_conto, ae, true, provvis);
#ifdef CONT_SEP
TSaldo saldo;
int aep = esercizi.pred(ae);
saldo.saldo_cont_sep(_conto.gruppo(), _conto.conto(), _conto.sottoconto(), aep, esercizi.esercizio(aep).fine(), _conto.indicatore_bilancio(), app().query_mask().get(F_CONTSEP), provvis, true);
real saldoini = saldo.saldo();
if (saldoini > ZERO)
{
_pdare_ini = saldoini;
_pavere_ini = ZERO;
}
else
{
_pdare_ini = ZERO;
_pavere_ini = -saldoini;
}
// Valori dei saldi finali:
// Comprendono i movimenti di apertura, chiusura ed i progressivi attuali
_pdare_fin = saldo.prgdare();
_pavere_fin = saldo.prgavere();
#else
TBalance saldo(_conto, ae, true, provvis);
_pdare_ini = saldo.progressivo_dare_iniziale();
_pavere_ini = saldo.progressivo_avere_iniziale();
@ -353,6 +375,7 @@ void TMastrino::read(const TBill& conto,
saldo.read(_conto, ae, false, provvis);
_pdare_fin = saldo.progressivo_dare_finale();
_pavere_fin = saldo.progressivo_avere_finale();
#endif
// Valori dei saldi del perido in esame:
// Vengono inizializzati a zero e poi si incrementa man mano

View File

@ -4,7 +4,8 @@ Picture = <cg01>
Module = 2
Flags = ""
Item_01 = "Tabelle ditta", [NPMENU_002]
Item_01 = "Stampe", [NPMENU_003]
Item_02 = "Stampe", [NPMENU_003]
Item_03 = "Apertura/Chiusura", "np0 -1", "F"
[NPMENU_002]
Caption = "Tabelle ditta"