Prime correzioni alla personalizzazione CGP1

git-svn-id: svn://10.65.10.50/trunk@5001 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1997-07-31 14:43:20 +00:00
parent 71067401ae
commit ace3ea0609
2 changed files with 99 additions and 106 deletions

View File

@ -38,8 +38,6 @@ class TMastrini_application : public TPrintapp
static bool memorizza_handler(TMask_field& f, KEY k);
static bool scelte_notify(TSheet_field& s, int r, KEY k);
static bool filter_rmov(const TRelation *);
TDociva_array _b;
TRelation* _rel1,*_rel2;
TMask* _msk;
@ -338,7 +336,7 @@ bool TMastrini_application::sottoc_handler_fine(TMask_field& f, KEY key)
if ( key == K_TAB && f.mask().is_running())
{
if (id == F_SOTTOCFINE_CONTO)
if (id == F_SOTTOCFINE_CONTO && (gruppo != 0 || conto != 0 || sottoconto != 0L))
{
TLocalisamfile pconti (LF_PCON);
pconti.zero();
@ -614,13 +612,6 @@ bool TMastrini_application::movcas_cdc_handler(TMask_field& f, KEY key)
return TRUE;
}
bool TMastrini_application::filter_rmov(const TRelation *r)
{
TLocalisamfile& rmov = r->lfile(-RMOV_ALIAS);
const long cdc = rmov.get_long(RMV_NUMGIO);
return cdc == app()._cdc;
}
bool TMastrini_application::scelte_notify(TSheet_field& s, int r, KEY k)
{
bool ok = TRUE;
@ -1528,6 +1519,7 @@ bool TMastrini_application::preprocess_page(int file, int counter)
//per i mastrini che si trovano a cavallo fra una pagina e quella successiva.
//In quest'ultimo caso infatti quando vado a pagina nuova devo stampare l'intestazione
//ma senza il flag rischio di stamparla due volte.
if (_nummast == 3)
_gia_stampata_intestazione = FALSE;
@ -1549,6 +1541,10 @@ bool TMastrini_application::preprocess_page(int file, int counter)
_s_contr = rmov.get(RMV_SOTTOCONTOC);
_centrodicosto = rmov.get(RMV_NUMGIO);
// Se non ha il richiesto numero di centro di costo salta la stampa di questa riga di movimento
if (_cdc != 0L && _cdc != atol(_centrodicosto))
return FALSE;
// Stampa solo quelli che hanno anno esercizio uguale a quello specificato
// nella maschera. Se non viene specificato li stampa tutti
@ -2480,10 +2476,6 @@ bool TMastrini_application::set_print(int)
a.put(SLD_CONTO,contofine);
a.put(SLD_SOTTOCONTO,sottocontofine);
current_cursor()->setregion(da, a);
if (_cdc != 0L)
current_cursor()->set_filterfunction(filter_rmov,TRUE);
else
current_cursor()->set_filterfunction(NULL);
if (_stampatotiva)
_b.destroy();
@ -3200,8 +3192,6 @@ void TMastrini_application::calcola_progressivi()
* non occorra considerare il saldo di chiusura (SALDOFIN) aggiunto al
* record */
if (_cdc || _movcas_print)
return;
TLocalisamfile saldi(LF_SALDI, FALSE);
real progdare_attuale,progavere_attuale,progdare_prec,progavere_prec;
@ -3215,105 +3205,108 @@ void TMastrini_application::calcola_progressivi()
// Ricerca sull'archivio saldi dei record con gruppo,conto,sottoconto
// uguali a quelli di rmov per il calcolo dei progressivi precedenti
saldi.setkey(2);
saldi.zero();
saldi.put(SLD_GRUPPO, _gruppo);
saldi.put(SLD_CONTO, _conto);
saldi.put(SLD_SOTTOCONTO, _sottoc);
TRectype record(saldi.curr());
if (!_cdc && !_movcas_print)
{
saldi.setkey(2);
saldi.zero();
saldi.put(SLD_GRUPPO, _gruppo);
saldi.put(SLD_CONTO, _conto);
saldi.put(SLD_SOTTOCONTO, _sottoc);
for (saldi.read(_isgteq); saldi.good() && saldi.curr() == record; saldi.next())
{
if (!saldi.get_bool(SLD_FLSCA))
{
int annoes_saldi = saldi.curr().get_int(SLD_ANNOES);
//Calcola i progressivi dell'esercizio attuale
if (annoes_saldi == _anno_corrente)
TRectype record(saldi.curr());
for (saldi.read(_isgteq); saldi.good() && saldi.curr() == record; saldi.next())
{
if (!saldi.get_bool(SLD_FLSCA))
{
progdare_attuale = saldi.get_real(SLD_PDARE);
progavere_attuale = saldi.get_real(SLD_PAVERE);
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);
}
//Calcola i progressivi dell'esercizio precedente
if (annoes_saldi == _anno_precedente)
{
pdarep = saldi.get_real(SLD_PDARE);
paverep = saldi.get_real(SLD_PAVERE);
if (_stampa_mov_prov)
int annoes_saldi = saldi.curr().get_int(SLD_ANNOES);
//Calcola i progressivi dell'esercizio attuale
if (annoes_saldi == _anno_corrente)
{
progredare_eseprec = pdarep + saldi.get_real(SLD_PDAREPRO);
progreavere_eseprec = paverep + saldi.get_real(SLD_PAVEREPRO);
progdare_attuale = saldi.get_real(SLD_PDARE);
progavere_attuale = saldi.get_real(SLD_PAVERE);
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);
}
// cerca eventuale record scaricati
}
// Se il saldo dell'esercizio attuale e' diverso da 0 allora significa che
// quello corrisponde al saldo finale dell'esercizio precedente. Per ottenere
// i progressivi dell'esercizio precedente devo a questo punto sommare i
// progressivi dell'esercizio e i progressivi di quelli scaricati, tenendo
// conto del flag salini per sapere se il saldo e' dare oppure avere.
/*
if (_annomsk != 0 && _anno_corrente == annoes_saldi)
{
if (saldo != ZERO)
{
if (salini == 'D')
//Calcola i progressivi dell'esercizio precedente
if (annoes_saldi == _anno_precedente)
{
progredare_eseprec = saldo;// + pdarescap + pdarep;
pdarep = saldi.get_real(SLD_PDARE);
paverep = saldi.get_real(SLD_PAVERE);
if (_stampa_mov_prov)
{
progredare_eseprec = pdarep + saldi.get_real(SLD_PDAREPRO);
progreavere_eseprec = paverep + saldi.get_real(SLD_PAVEREPRO);
}
// cerca eventuale record scaricati
}
// Se il saldo dell'esercizio attuale e' diverso da 0 allora significa che
// quello corrisponde al saldo finale dell'esercizio precedente. Per ottenere
// i progressivi dell'esercizio precedente devo a questo punto sommare i
// progressivi dell'esercizio e i progressivi di quelli scaricati, tenendo
// conto del flag salini per sapere se il saldo e' dare oppure avere.
/*
if (_annomsk != 0 && _anno_corrente == annoes_saldi)
{
if (saldo != ZERO)
{
if (salini == 'D')
{
progredare_eseprec = saldo;// + pdarescap + pdarep;
progdare_prec = saldo;
}
else if (salini == 'A')
{
progreavere_eseprec = saldo;// + paverescap + paverep;
progavere_prec = saldo;
}
}
}
*/
} // if (!saldi.get_bool(SLD_FLSCA))
} // FOR
//Se il saldo dell'esercizio attuale non e' diverso da zero, allora il saldo
// finale dell'esercizio precedente devo calcolarmelo tenendo conto dell'indbil
if (_annomsk != 0 /*&& saldo == ZERO*/) // Guy: Non capisco perche' sia commentato!
{
if ((_indbil == 1) || (_indbil == 2) || (_indbil == 5))
{
const TRecnotype pos = saldi.recno();
// 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);
saldi.readat(pos);
if (saldo> ZERO)
{
progredare_eseprec = saldo;
progdare_prec = saldo;
}
else if (salini == 'A')
else if (saldo < ZERO)
{
progreavere_eseprec = saldo;// + paverescap + paverep;
saldo = -saldo;
progreavere_eseprec = saldo;
progavere_prec = saldo;
}
}
}
*/
} // if (!saldi.get_bool(SLD_FLSCA))
} // FOR
} // If (!_movcas_print && !_cdc)
//Se il saldo dell'esercizio attuale non e' diverso da zero, allora il saldo
// finale dell'esercizio precedente devo calcolarmelo tenendo conto dell'indbil
if (_annomsk != 0 /*&& saldo == ZERO*/) // Guy: Non capisco perche' sia commentato!
{
if ((_indbil == 1) || (_indbil == 2) || (_indbil == 5))
{
const TRecnotype pos = saldi.recno();
// 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,FALSE);
saldi.readat(pos);
if (saldo> ZERO)
{
progredare_eseprec = saldo;
progdare_prec = saldo;
}
else if (saldo < ZERO)
{
saldo = -saldo;
progreavere_eseprec = saldo;
progavere_prec = saldo;
}
}
}
calcola_progressivi_al();
//Calcolo dei progressivi precedenti: somma di tutti quei movimenti di rmov

View File

@ -1227,7 +1227,7 @@ bool TStampaBilanciCDC_application::bil_sez_contr()
bool TStampaBilanciCDC_application::ricerca_sottoc_clifo(int g,int c, bool compensa, int indbil_conto,real& saldo)
{
TSaldo sld;
TCGPSaldo sld(_movcas_print, _cdc_cod);
int aep=0;
long s, items;
bool esiste_sc = FALSE;
@ -1253,8 +1253,8 @@ bool TStampaBilanciCDC_application::ricerca_sottoc_clifo(int g,int c, bool compe
if (_tipo_stampa == 1) //bil. a sez. contrapposte per data limite
movimentato = sld.data_limite_bilancio(_bilancio,g,c,s,_dataini,_datalim,indbil_conto,_stampa_mov_prov);
else if (_tipo_stampa == 2) //bil. a sez. contrapposte all'ultima immissione es. in corso
movimentato = sld.ultima_immissione_bilancio(_annoes,g,c,s,indbil_conto,_stampa_mov_prov);
//else if (_tipo_stampa == 2) //bil. a sez. contrapposte all'ultima immissione es. in corso
// movimentato = sld.ultima_immissione_bilancio(_annoes,g,c,s,indbil_conto,_stampa_mov_prov);
if (!movimentato)
if (!sld.esiste_saldo() || !sld.significativo())
@ -2076,7 +2076,7 @@ bool TStampaBilanciCDC_application::ricerca_cf(int g,int c,char tipocf,int ib, r
//solo se e' un conto patrimoniale
if (ib == 1 || ib == 2 || ib == 5)
{
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,FALSE,TRUE);
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,FALSE);
movimentato = sld.significativo();
}
}
@ -2524,7 +2524,7 @@ void TStampaBilanciCDC_application::leggi_clifo(const TArray& gccf)
if (_stampa_mov_prov != 3)
if (!movimentato /* && _stampac!=1 */ )
if (_indbil == 1 || _indbil == 2 || _indbil == 5)
saldo_iniziale = sld.saldofin_esprec(anno,g,c,codcf,FALSE,TRUE);
saldo_iniziale = sld.saldofin_esprec(anno,g,c,codcf,FALSE);
if (movimentato)
saldo_iniziale = sld.saldoini();