Aggiustate alcune indentazioni della maschera clienti

Corretto ricalcolo saldi


git-svn-id: svn://10.65.10.50/trunk@3508 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1996-09-04 07:50:26 +00:00
parent 882a0ec715
commit 8628b88ca1
4 changed files with 412 additions and 394 deletions

File diff suppressed because it is too large Load Diff

View File

@ -384,21 +384,28 @@ bool CG4100_App::sort_sal()
mov.read(); mov.read();
CHECK(mov.good(),"Archivi movimenti e righe inconsistenti"); CHECK(mov.good(),"Archivi movimenti e righe inconsistenti");
scaricato = mov.get_bool(MOV_SCARCON);
causali.zero(); causali.zero();
const char* codcaus = mov.get(MOV_CODCAUS); const char* codcaus = mov.get(MOV_CODCAUS);
// cerca causale
if (*codcaus) tsal = normale;
if (*codcaus) // cerca causale per determinare il tipoo del saldo
{ {
causali.put(CAU_CODCAUS, codcaus); causali.put(CAU_CODCAUS, codcaus);
causali.read(); const int err = causali.read();
CHECK(causali.good(),"Archivi causali e movimenti inconsistenti"); if (err == NOERR)
if (causali.get(CAU_MOVAP) == "A") tsal = apertura; {
else if (causali.get(CAU_MOVAP) == "C") tsal = chiusura; const char ac = causali.get_char(CAU_MOVAP);
if (ac == 'A')
tsal = apertura;
else
if (ac == 'C')
tsal = chiusura;
}
} }
provvis = mov.get(MOV_PROVVIS).not_empty();
datareg = mov.get_date(MOV_DATAREG); scaricato = mov.get_bool(MOV_SCARCON);
provvis = mov.get(MOV_PROVVIS).not_empty();
datareg = mov.get_date(MOV_DATAREG);
sal.reset(); sal.reset();
sal.set_anno_es(_year); sal.set_anno_es(_year);

View File

@ -10,13 +10,11 @@
#include <utility.h> #include <utility.h>
#include "cg4300.h" #include "cg4300.h"
#define CHECK_ROUND(m,x) if(m==13)x.round(ROUND_MILLELIRE)
// -------------------- QUI comincia l'avventura -------------------------- // -------------------- QUI comincia l'avventura --------------------------
// Datemi un punto di appoggio ****************** // Datemi un punto di appoggio ******************
// e mi ci appoggero' ****************** // e mi ci appoggero' ******************
// ----------------------------------------------------- ****************** // ----------------------------------------------------- ******************
bool TLiquidazione_app::recalc_all() bool TLiquidazione_app::recalc_all()
{ {
_prind = new TProgind(_selected.ones()*2, _printonly ? _prind = new TProgind(_selected.ones()*2, _printonly ?

View File

@ -6,9 +6,11 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#include <stdlib.h> #include <stdlib.h>
#include <prefix.h> #include <prefix.h>
#include <utility.h>
#include <saldi.h> #include <saldi.h>
#include <utility.h>
#include "cglib.h" #include "cglib.h"
class TContoExt : public TConto class TContoExt : public TConto
@ -64,37 +66,41 @@ void TTab_conti::aggiorna_conto(const TBill& tcon,
const real i(somma ? importo.valore() : -importo.valore()); const real i(somma ? importo.valore() : -importo.valore());
if (movap == apertura) if (provv)
{ {
if (importo.sezione() == 'D') if (importo.sezione() == 'D')
tc->saldo() += i; tc->darepro() += i;
else else
tc->saldo() -= i; tc->averepro() += i;
}
else if (movap == chiusura)
{
if (importo.sezione() == 'D')
tc->saldofin() += i;
else
tc->saldofin() -= i;
} }
else else
{ {
if (provv) if (movap == apertura)
{ {
if (importo.sezione() == 'D') if (importo.sezione() == 'D')
tc->darepro() += i; tc->saldo() += i;
else else
tc->averepro() += i; tc->saldo() -= i;
} }
else else
{ {
if (importo.sezione() == 'D') if (movap == chiusura)
tc->dare() += i; {
else if (importo.sezione() == 'D')
tc->avere() += i; tc->saldofin() += i;
} else
tc->saldofin() -= i;
}
else
{
if (importo.sezione() == 'D')
tc->dare() += i;
else
tc->avere() += i;
}
}
} }
// rimuovo dalla tabella il conto se dare e avere vanno a zero // rimuovo dalla tabella il conto se dare e avere vanno a zero
if (!movimentato) if (!movimentato)
@ -225,7 +231,10 @@ void TSaldo_agg::registra()
saldi.put(SLD_FLAGSALINI, flag_salini); saldi.put(SLD_FLAGSALINI, flag_salini);
saldi.put(SLD_SALDO, si); saldi.put(SLD_SALDO, si);
saldi.put(SLD_PDARE, tcon.dare()); saldi.put(SLD_PDARE, tcon.dare());
saldi.put(SLD_PAVERE, tcon.avere());
saldi.put(SLD_PDAREPRO, tcon.darepro());
saldi.put(SLD_PAVEREPRO, tcon.averepro());
real sf = tcon.saldofin(); real sf = tcon.saldofin();
char flag_salfin = sf < ZERO ? 'A' : 'D'; char flag_salfin = sf < ZERO ? 'A' : 'D';
if (flag_salfin == 'A') sf = -sf; if (flag_salfin == 'A') sf = -sf;
@ -233,7 +242,6 @@ void TSaldo_agg::registra()
saldi.put(SLD_FLAGSALFIN, flag_salfin); saldi.put(SLD_FLAGSALFIN, flag_salfin);
saldi.put(SLD_SALDOFIN, sf); saldi.put(SLD_SALDOFIN, sf);
saldi.put(SLD_PAVERE, tcon.avere());
if (_num_ulmov != 0L) saldi.put(SLD_NUMULTMOV, _num_ulmov); if (_num_ulmov != 0L) saldi.put(SLD_NUMULTMOV, _num_ulmov);
if (_data_ulmov.ok()) saldi.put(SLD_DATAULMOV, _data_ulmov); if (_data_ulmov.ok()) saldi.put(SLD_DATAULMOV, _data_ulmov);
update = saldi.write() == _isreinsert; update = saldi.write() == _isreinsert;
@ -279,10 +287,19 @@ void TSaldo_agg::registra()
r = saldi.get_real(SLD_PDARE); r = saldi.get_real(SLD_PDARE);
r += tcon.dare(); r += tcon.dare();
saldi.put(SLD_PDARE, r); saldi.put(SLD_PDARE, r);
r = saldi.get_real(SLD_PAVERE); r = saldi.get_real(SLD_PAVERE);
r += tcon.avere(); r += tcon.avere();
saldi.put(SLD_PAVERE, r); saldi.put(SLD_PAVERE, r);
r = saldi.get_real(SLD_PDAREPRO);
r += tcon.darepro();
saldi.put(SLD_PDAREPRO, r);
r = saldi.get_real(SLD_PAVEREPRO);
r += tcon.averepro();
saldi.put(SLD_PAVEREPRO, r);
const int err = saldi.rewrite(); const int err = saldi.rewrite();
if (err != NOERR) if (err != NOERR)
yesnofatal_box("Errore %d nell'aggiornamento del saldo %d %d %ld", yesnofatal_box("Errore %d nell'aggiornamento del saldo %d %d %ld",
@ -345,8 +362,8 @@ void TEsercizi_contabili::check()
{ {
#ifdef DBG #ifdef DBG
if (_firm != 0) if (_firm != 0)
error_box("Questo programma carinissimo usa gli esercizi, " error_box("Questo programma carinissimo usa gli esercizi,\n"
"ma purtroppo non tiene conto del cambio ditta!"); "purtroppo non tiene conto del cambio ditta!");
#endif #endif
update(); update();
} }