Patch level : 12.0 1030

Files correlati     : cg1.exe
Commento            :

Corretta stampa bilanci di verifica
This commit is contained in:
Alessandro Bonazzi 2021-02-09 03:30:49 +01:00
parent 0bc9462312
commit e5c7066e37

View File

@ -245,8 +245,8 @@ bool TStampa_bilanci::mask_datalim (TMask_field& f, KEY k)
if (!esercizi().exist(data) || (esercizio(data).codice() != anno))
return f.error_box (TR("La data limite deve appartenere all'esercizio indicato"));
}
else
m.field(F_DATALIM).set(esercizio(anno).fine());
// else
// m.field(F_DATALIM).set(esercizio(anno).fine());
app()._annoapp = anno;
}
else //anno == 0
@ -280,8 +280,8 @@ bool TStampa_bilanci::mask_dataini(TMask_field& f, KEY k)
if (!esercizi().exist(data) || (esercizio(data).codice() != anno))
return f.error_box(TR("La data iniziale deve appartenere all'esercizio indicato"));
}
else
m.field(F_DATALIM).set(esercizio(anno).inizio());
// else
// m.field(F_DATAINI).set(esercizio(anno).inizio());
app()._annoapp = anno;
}
else //anno == 0
@ -707,7 +707,7 @@ bool TStampa_bilanci::bil_sez_contr()
if (_tipo_stampa == 1) //bil. a sez. contrapposte per data limite
{
#ifdef CONT_SEP
movimentato = sld.saldo_cont_sep(_tipo_data,g, c, s, _annoes, _datalim, indbil_conto, _cont_sep, _stampa_mov_prov) ;
movimentato = sld.saldo_cont_sep(_tipo_data,g, c, s, _annoes, _al, indbil_conto, _cont_sep, _stampa_mov_prov) ;
#else
movimentato = sld.data_limite_bilancio(_tipo_data, g, c, s, _dataini, _al, indbil_conto, _stampa_mov_prov);
#endif
@ -881,7 +881,7 @@ bool TStampa_bilanci::ricerca_sottoc_clifo(int g,int c, bool compensa, int indbi
if (_tipo_stampa == 1) //bil. a sez. contrapposte per data limite
{
#ifdef CONT_SEP
movimentato = sld.saldo_cont_sep(_tipo_data, g, c, s, _annoes, _datalim, indbil_conto, _cont_sep, _stampa_mov_prov);
movimentato = sld.saldo_cont_sep(_tipo_data, g, c, s, _annoes, _al, indbil_conto, _cont_sep, _stampa_mov_prov);
#else
movimentato = sld.data_limite_bilancio(_tipo_data ,g,c,s,_dataini,_al,indbil_conto,_stampa_mov_prov);
#endif
@ -1212,7 +1212,7 @@ bool TStampa_bilanci::bil_verifica()
_indbil = indbil_conto;
if (_tipo_stampa == 1) //bil. di verifica per data limite
{
//modifica del 21/11/95
_mov_ap = false;
//modifica del 19/06/95
movimentato = calcola(g,c,s);
@ -1225,67 +1225,31 @@ bool TStampa_bilanci::bil_verifica()
saldo_iniziale = _saldo_ini_dare - _saldo_ini_avere;
else //discorso flag "movimentato" (video)
{
TLocalisamfile saldi(LF_SALDI); // W96SALDI
saldi.zero(); // Modifica SALDI per movimenti
saldi.put(SLD_ANNOES, _annoes); // scaricati del 05-06-96
saldi.put(SLD_FLSCA, false); // Ho aggiunto saldi.put(SLD_FLSCA, false);
saldi.put(SLD_GRUPPO, g); // In questo modo considero il record con
saldi.put(SLD_CONTO, c); // la somma fra progressivi normali e scaricati
saldi.put(SLD_SOTTOCONTO, s);
if (saldi.read() == NOERR)
{
const real ss = saldi.get_real(SLD_SALDO);
if (ss.is_zero())
{
if (_annoes != 0 && (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5))
{
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov);
//modifica del 21/11/95
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
else
_saldo_ini_avere = -saldo_iniziale;
//fine
}
}
else
{
const char fsi = saldi.get_char(SLD_FLAGSALINI);
if (fsi == 'D')
{
saldo_iniziale = ss;
_saldo_ini_dare = ss;
}
else
{
saldo_iniziale = -ss;
_saldo_ini_avere = ss;
}
}
}
}
sld.ultima_immissione_verifica(_annoes, g, c, s, _indbil, _stampa_mov_prov);
saldo_iniziale = sld.saldoini();
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
else
_saldo_ini_avere = -saldo_iniziale;
}
}
else // !movimentato -> _mov_ap e' di sicuro false
{
if (_annoes != 0 && (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5))
{
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov);
//modifica del 21/11/95
sld.ultima_immissione_verifica(g, c, s, _indbil, _stampa_mov_prov);
saldo_iniziale = sld.saldoini();
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
else _saldo_ini_avere = -saldo_iniziale;
//fine
else
_saldo_ini_avere = -saldo_iniziale;
if (_stampav == 1 && sld.significativo())
movimentato = true;
}
}
}
if (movimentato || _stampav != 1)
{
_nuovo_tot_saldo_d += _mov_periodo_dare;
_nuovo_tot_saldo_a += _mov_periodo_avere;
_nuovo_tot_saldo_d += _saldo_ini_dare;
@ -1474,6 +1438,7 @@ bool TStampa_bilanci::calcola(int g, int c, long s)
int annoe;
bool conto_mov = false;
TDecoder causali(LF_CAUSALI, CAU_MOVAP);
_mov_periodo_dare = ZERO;
_mov_periodo_avere = ZERO;
@ -1486,12 +1451,14 @@ bool TStampa_bilanci::calcola(int g, int c, long s)
// TDate data_start = _dataini;
// Calcolo progressivi precedenti:
// e non è indicato l'anno esercizio, prende il primo giorno dell'anno indicato da _datada
if (_annoes == 0 && !_dataini.ok())
{
_dataini = _dal;
_dataini.set_day(1);
_dataini.set_month(1);
}
if (_annoes == 0)
{
_dataini = _dal;
_dataini.set_day(1);
_dataini.set_month(1);
}
else
_dataini = esercizi().esercizio(_annoes).inizio();
TCursor cur(new TRelation(LF_RMOV), "", 2);
TRectype& rmov = cur.file().curr();
@ -1517,67 +1484,55 @@ bool TStampa_bilanci::calcola(int g, int c, long s)
const TDate data = get_date_mov(mov, _tipo_data);
const TString4 provvis = mov.get(MOV_PROVVIS);
const TString& codcaus = mov.get(MOV_CODCAUS);
const TCausale & caus = cached_causale(codcaus);
const char causap = causali.decode(codcaus)[0];
if (!_quadratura && causap == 'C')
if (_quadratura || !caus.chiusura())
{
// Si tratta di causale di chiusura:
// Non e' richiesta la quadratura con il Libro Giornale (Modifica
// del 18-06-96 richiesta da Patrizia in seguito alla modifica dei SALDI)
continue;
}
const char sezione = rmov.get_char(RMV_SEZIONE);
const real importo = rmov.get_real(RMV_IMPORTO);
const char sezione = rmov.get_char(RMV_SEZIONE);
const real importo = rmov.get_real(RMV_IMPORTO);
if (importo.is_zero())
continue;
//calcolo i movimenti del periodo
if ( data >= _dal && data <= _al)
if ((causap == 'A' && _dataini.ok() && _dataini != _dal) ||
(causap != 'A'))
if (check_mov(_stampa_mov_prov, provvis))
{
conto_mov = true;
if (sezione == 'D')
_mov_periodo_dare += importo;
else
_mov_periodo_avere += importo;
_u_max = fnc_max(_u_max, data);
if (causap == 'A')
_mov_ap = true;
}
//il saldo inizio es. e' dato dall'importo dare - importo avere di quei movimenti che hanno causale == apertura e data reg >= data inizio es. e <= data limite sup.
if (_dal == _dataini) //calcolo il saldo iniziale
{
if ((_stampa_mov_prov & 0x1) && (causap == 'A'))
if (importo != ZERO)
{
if ( (data >= _dataini) && (data <= _al) )
//calcolo i movimenti del periodo
if (check_mov(_stampa_mov_prov, provvis))
{
if (sezione == 'D')
_saldo_ini_dare += importo;
else
_saldo_ini_avere += importo;
conto_mov = true;
_u_max = fnc_max(_u_max, data);
conto_mov = _mov_ap = true;
if ((data >= _dataini) && (data < _dal)) //calcolo i progressivi precedenti
{
_mov_ap |= caus.apertura();
if (sezione == 'D')
_prg_prec_dare += importo;
else
_prg_prec_avere += importo;
}
else
if (data >= _dal && data <= _al && !caus.apertura())
{
if (sezione == 'D')
_mov_periodo_dare += importo;
else
_mov_periodo_avere += importo;
}
}
}
}
else
if ( (data >= _dataini) && (data < _dal) ) //calcolo i progressivi precedenti
if (check_mov(_stampa_mov_prov, provvis))
{
if (sezione == 'D')
_prg_prec_dare += importo;
else
_prg_prec_avere += importo;
_u_max = fnc_max(_u_max, data);
conto_mov = true;
if (causap == 'A')
_mov_ap = true;
}
//il saldo inizio es. e' dato dall'importo dare - importo avere di quei movimenti che hanno causale == apertura e data reg >= data inizio es. e <= data limite sup.
if (_dal == _dataini) //calcolo il saldo iniziale
{
if ((_stampa_mov_prov & 0x1) && caus.apertura() &&
(data >= _dataini) && (data <= _al))
{
_mov_ap = true;
conto_mov = true;
_u_max = fnc_max(_u_max, data);
if (sezione == 'D')
_saldo_ini_dare += importo;
else
_saldo_ini_avere += importo;
}
}
}
}
}
return conto_mov;
}
@ -1603,9 +1558,8 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin
if (_tipo_stampa == 1) //bil. di verifica per data limite
{
//modifica del 21/11/1995
_mov_ap = false;
//modifica del 19/06. Vedi appunti per capire
bool movimentato = calcola(g,c,s);
if (_stampa_mov_prov & 0x1)
@ -1613,77 +1567,27 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin
if (movimentato)
{
if (_mov_ap)
{
saldo_iniziale = _saldo_ini_dare - _saldo_ini_avere;
}
else
{
TLocalisamfile saldi(LF_SALDI);
saldi.zero();
saldi.put(SLD_ANNOES,_annoes);
saldi.put(SLD_FLSCA, false); // W96SALDI del 05-06-96
saldi.put(SLD_GRUPPO,g); // Ho aggiunto in chiave saldi.put(SLD_FLSCA, false);
saldi.put(SLD_CONTO,c); // in questa maniera reperisco il record dei saldi
saldi.put(SLD_SOTTOCONTO,s); // contenente la somma degli scaricati e non scaricati
if (saldi.read() == NOERR)
{
//se il saldo iniziale e' diverso da zero non lo devo considerare
//perche' l'ho gia' considerato nella funzione calcola
const real ss = saldi.get_real(SLD_SALDO);
if (ss.is_zero())
{
if (_annoes != 0 && (ib == 1 || ib == 2 || ib == 5))
{
saldo_iniziale += sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov);
//modifica del 21/11/1995
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
else
_saldo_ini_avere = -saldo_iniziale;
//fine
}
}
else
{
const char fsi = saldi.get_char(SLD_FLAGSALINI);
if (fsi == 'D')
{
saldo_iniziale = ss;
_saldo_ini_dare = ss;
}
else
{
saldo_iniziale = -ss;
_saldo_ini_avere = ss;
}
}
}
else
if (_annoes != 0 && (ib == 1 || ib == 2 || ib == 5))
{
saldo_iniziale += sld.saldofin_esprec(_annoes, g, c, s, false, _stampa_mov_prov);
//modifica del 21/11/1995
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
else
_saldo_ini_avere = -saldo_iniziale;
//fine
}
sld.ultima_immissione_verifica(_annoes, g, c, s, _indbil, _stampa_mov_prov);
saldo_iniziale = sld.saldoini();
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
else
_saldo_ini_avere = -saldo_iniziale;
}
}
else
{
if (_annoes != 0 && (ib == 1 || ib == 2 || ib == 5))
{
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov);
//modifica del 21/11/1995
sld.ultima_immissione_verifica(g, c, s, _indbil, _stampa_mov_prov);
saldo_iniziale = sld.saldoini();
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
else
_saldo_ini_avere = -saldo_iniziale;
//fine
else
_saldo_ini_avere = -saldo_iniziale;
movimentato = sld.significativo();
}
}
@ -2109,9 +2013,8 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf)
if (_tipo_stampa == 1) //bilancio di verifica per data limite
{
//modifica del 21/11/1995
_mov_ap = false;
//modifica del 19/06/95
_indbil = cerca_indbil(g,c);
movimentato = calcola(g,c,codcf);
@ -2120,12 +2023,13 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf)
if (_indbil == 1 || _indbil == 2 || _indbil == 5)
if (_annoes != 0) //cioe' se sto ragionando per competenza
{
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,codcf,false,_stampa_mov_prov);
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
else _saldo_ini_avere = -saldo_iniziale;
sld.ultima_immissione_verifica(_annoes, g, c, codcf, _indbil, _stampa_mov_prov);
saldo_iniziale = sld.saldoini();
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
else
_saldo_ini_avere = -saldo_iniziale;
}
if (movimentato)
{
//modifica del 21/11/1995
@ -2133,33 +2037,14 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf)
saldo_iniziale = _saldo_ini_dare - _saldo_ini_avere;
else
{
TLocalisamfile saldi(LF_SALDI);
saldi.zero();
saldi.put(SLD_ANNOES, _annoes); // W96SALDI del 05-06-96
saldi.put(SLD_FLSCA, false);
saldi.put(SLD_GRUPPO, g);
saldi.put(SLD_CONTO, c);
saldi.put(SLD_SOTTOCONTO, codcf);
if (saldi.read() == NOERR)
{
const real s = saldi.get_real(SLD_SALDO);
if (_stampa_mov_prov & 0x1)
if (_indbil == 1 || _indbil == 2 || _indbil == 5)
if (s.is_zero() && _annoes != 0) //competenza!!!
{
saldo_iniziale += sld.saldofin_esprec(_annoes,g,c,codcf,false,_stampa_mov_prov);
//modifica del 21/11/1995
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
else _saldo_ini_avere = -saldo_iniziale;
//fine
}
}
sld.ultima_immissione_verifica(g, c, codcf, _indbil, _stampa_mov_prov);
saldo_iniziale = sld.saldoini();
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
else
_saldo_ini_avere = -saldo_iniziale;
}
}
//fine modifica del 19/06/95
//movimentato = calcola(g,c,codcf);
if (movimentato || _stampac != 1 || saldo_iniziale != ZERO)
{
if (_dal == _dataini)
@ -3468,11 +3353,7 @@ void TStampa_bilanci::stampa_un_bilancio(const TMask& m)
_verifica = m.get_int(F_VERIFICA); //tipo di bilancio di verifica da stampare
_print_full_code = _verifica == 1 && m.get_bool(F_PRINT_FULL_CODE);
_tipo_stampa = m.get_int(F_STAMPA);
if (_tipo_stampa == 1)
{
_dal = m.get_date(F_DATAINI);
_al = m.get_date(F_DATALIM);
}
if ((_verifica == 1) || (_verifica == 2)) //bilancio di verifica:1bilancio,2saldi mastro
{
_stampav = atoi(m.get(F_STAMPAV));
@ -3527,6 +3408,16 @@ bool TStampa_bilanci::set_print(int)
_quadratura = m.get_bool(F_QUADRATURA);
_hide_clifo = m.get_bool(F_HIDE_CLIFO);
_noseparator = m.get_bool(F_SEPARATOR);
_dal = m.get_date(F_DATAINI);
_al = m.get_date(F_DATALIM);
if (_annoes != 0)
{
if (!_dal.ok())
_dal = esercizi().esercizio(_annoes).inizio();
if (!_al.ok())
_al = esercizi().esercizio(_annoes).fine();
}
_tipo_data = (_annoes == 0 ? Registrazione : (m.get_bool(F_COMPCR) ? CostiRicavi : Competenza));
#ifdef CONT_SEP
_cont_sep = m.get(F_CONTSEP);