Aggiornamento residuo

git-svn-id: svn://10.65.10.50/trunk@1898 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1995-09-26 17:18:28 +00:00
parent a887382158
commit 49c942c927
5 changed files with 74 additions and 43 deletions

View File

@ -118,11 +118,12 @@
#define K_DOCUMENTO 407
#define K_TIPODOC 408
#define K_PROTIVA 409
#define K_PROVVISORIO 410
#define K_DESCR 411
#define K_DATADOC 412
#define K_NUMDOC 413
#define K_ANNOES 414
#define K_DATACOMP 415
#define K_TOTALE 410
#define K_RESIDUO 411
#define K_DESCR 412
#define K_DATADOC 413
#define K_NUMDOC 414
#define K_ANNOES 415
#define K_DATACOMP 416
#endif

View File

@ -232,6 +232,7 @@ BEGIN
GROUP 5
FIELD TOTDOC
VALIDATE REQIF_FUNC 1 S_TOTDOCVAL
MESSAGE COPY,K_TOTALE
END
NUMBER S_TOTDOCVAL 15 2
@ -289,41 +290,47 @@ BEGIN
FLAGS "DZ"
END
STRING K_CODCAUS 3
BEGIN
PROMPT 1 5 "Causale "
FLAGS "D"
END
STRING K_DESCRCAUS 50
BEGIN
PROMPT 25 5 ""
FLAGS "D"
END
LIST K_PROVVISORIO 1 25
BEGIN
PROMPT 1 6 "Movimento provvisorio "
ITEM " |No (movimento normale)"
ITEM "P|Si (cancellabile)"
FLAGS "D"
END
STRING K_TIPODOC 2
BEGIN
PROMPT 60 6 "Tipo documento "
FLAGS "D"
END
DATE K_DATADOC
BEGIN
PROMPT 1 7 "Data del documento "
PROMPT 1 5 "Data del documento "
FLAGS "D"
END
STRING K_NUMDOC 7
BEGIN
PROMPT 38 7 "Num. "
PROMPT 38 5 "Numero documento "
FLAGS "D"
END
STRING K_TIPODOC 2
BEGIN
PROMPT 65 5 "Tipo doc. "
FLAGS "D"
END
STRING K_CODCAUS 3
BEGIN
PROMPT 1 6 "Causale "
FLAGS "D"
END
STRING K_DESCRCAUS 50
BEGIN
PROMPT 25 6 ""
FLAGS "D"
END
NUMBER K_TOTALE 15
BEGIN
PROMPT 1 7 "Totale doc. "
PICTURE "."
FLAGS "D"
END
NUMBER K_RESIDUO 15
BEGIN
PROMPT 32 7 "Residuo "
PICTURE "."
FLAGS "D"
END
@ -332,7 +339,7 @@ BEGIN
PROMPT 60 7 "Riga "
ITEM "K|Saldaconto"
ITEM "G|Spese"
ITEM "A|Altro"
ITEM "A|Normale"
END
SPREADSHEET F_SHEETCG

View File

@ -465,7 +465,7 @@ BEGIN
PROMPT 1 13 "Totale documento "
HELP "Totale del documento generante il movimento"
FIELD TOTDOC
PICTURE "."
PICTURE "."
END
NUMBER S_TOTDOCVAL 15 2

View File

@ -453,31 +453,54 @@ real TPrimanota_application::calcola_saldo() const
TString_array& rows = cgs().rows_array();
const int max = rows.items();
TImporto saldaconto;
const bool pag = is_pagamento();
real tdare, tavere;
for (int i = 0; i < max; i++)
{
TToken_string& r = rows.row(i);
tdare += real(r.get(0));
tavere += real(r.get());
if (pag)
{
const char sez = tdare.is_zero() ? 'A' : 'D';
const TImporto importo(sez, sez == 'A' ? tavere : tdare);
const char tipo = row_type(r);
if (strchr("ACGKP", tipo) != NULL)
saldaconto += importo;
}
}
TMask& m = curr_mask();
real sbilancio = abs(tdare)-abs(tavere);
switch (sbilancio.sign())
{
case +1: // Il dare supera l'avere in valore assoluto
curr_mask().set(F_DARE, (tdare-tavere).string());
curr_mask().reset(F_AVERE);
m.set(F_DARE, (tdare-tavere).string());
m.reset(F_AVERE);
break;
case -1: // L'avere supera il dare in valore assoluto
curr_mask().reset(F_DARE);
curr_mask().set(F_AVERE, (tavere-tdare).string());
m.reset(F_DARE);
m.set(F_AVERE, (tavere-tdare).string());
break;
default: // Sbilancio nullo
curr_mask().reset(F_DARE);
curr_mask().reset(F_AVERE);
m.reset(F_DARE);
m.reset(F_AVERE);
break;
}
if (pag)
{
const char sez = causale().sezione(1);
saldaconto.normalize(sez);
real t(m.get(F_TOTALE));
t -= saldaconto.valore();
m.set(K_RESIDUO, t.string());
}
return sbilancio;
}

View File

@ -227,7 +227,7 @@ protected:
public:
static char row_type(const TToken_string& s);
TCausale& causale() { return *_causale; }
TCausale& causale() const { return *_causale; }
TPartite_array& partite() { return _partite; } // Partite editate
int nuovo_pagamento(TPartita& p, int nriga, int rata, int rmov);
bool edit_pagamento(TPartita& p, int nriga, int nrata, int nrigp);