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

View File

@ -738,15 +738,12 @@ NUMBER F_GRUPPO 3
BEGIN
PROMPT 2 11 "Gruppo "
FIELD GRUPPO
FLAGS "R"
HELP "Codice del gruppo"
END
NUMBER F_CONTO 3
BEGIN
PROMPT 27 11 "Conto "
FIELD CONTO
FLAGS "R"
USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="")&&(TMCF=#F_TIPOCF)
INPUT GRUPPO F_GRUPPO
INPUT CONTO F_CONTO
@ -756,7 +753,6 @@ USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="")&&(TMCF=#F_TIPOCF)
OUTPUT F_GRUPPO GRUPPO
OUTPUT F_CONTO CONTO
OUTPUT F_DESCONTO DESCR
HELP "Inserire il gruppo"
CHECKTYPE NORMAL
WARNING "Il conto deve essere di tipo clienti o fornitori"
ADD RUN cg0 -0

View File

@ -384,19 +384,26 @@ bool CG4100_App::sort_sal()
mov.read();
CHECK(mov.good(),"Archivi movimenti e righe inconsistenti");
scaricato = mov.get_bool(MOV_SCARCON);
causali.zero();
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.read();
CHECK(causali.good(),"Archivi causali e movimenti inconsistenti");
if (causali.get(CAU_MOVAP) == "A") tsal = apertura;
else if (causali.get(CAU_MOVAP) == "C") tsal = chiusura;
const int err = causali.read();
if (err == NOERR)
{
const char ac = causali.get_char(CAU_MOVAP);
if (ac == 'A')
tsal = apertura;
else
if (ac == 'C')
tsal = chiusura;
}
}
scaricato = mov.get_bool(MOV_SCARCON);
provvis = mov.get(MOV_PROVVIS).not_empty();
datareg = mov.get_date(MOV_DATAREG);

View File

@ -10,8 +10,6 @@
#include <utility.h>
#include "cg4300.h"
#define CHECK_ROUND(m,x) if(m==13)x.round(ROUND_MILLELIRE)
// -------------------- QUI comincia l'avventura --------------------------
// Datemi un punto di appoggio ******************
// e mi ci appoggero' ******************

View File

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