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_DOCUMENTO 407
#define K_TIPODOC 408 #define K_TIPODOC 408
#define K_PROTIVA 409 #define K_PROTIVA 409
#define K_PROVVISORIO 410 #define K_TOTALE 410
#define K_DESCR 411 #define K_RESIDUO 411
#define K_DATADOC 412 #define K_DESCR 412
#define K_NUMDOC 413 #define K_DATADOC 413
#define K_ANNOES 414 #define K_NUMDOC 414
#define K_DATACOMP 415 #define K_ANNOES 415
#define K_DATACOMP 416
#endif #endif

View File

@ -232,6 +232,7 @@ BEGIN
GROUP 5 GROUP 5
FIELD TOTDOC FIELD TOTDOC
VALIDATE REQIF_FUNC 1 S_TOTDOCVAL VALIDATE REQIF_FUNC 1 S_TOTDOCVAL
MESSAGE COPY,K_TOTALE
END END
NUMBER S_TOTDOCVAL 15 2 NUMBER S_TOTDOCVAL 15 2
@ -289,41 +290,47 @@ BEGIN
FLAGS "DZ" FLAGS "DZ"
END 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 DATE K_DATADOC
BEGIN BEGIN
PROMPT 1 7 "Data del documento " PROMPT 1 5 "Data del documento "
FLAGS "D" FLAGS "D"
END END
STRING K_NUMDOC 7 STRING K_NUMDOC 7
BEGIN 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" FLAGS "D"
END END
@ -332,7 +339,7 @@ BEGIN
PROMPT 60 7 "Riga " PROMPT 60 7 "Riga "
ITEM "K|Saldaconto" ITEM "K|Saldaconto"
ITEM "G|Spese" ITEM "G|Spese"
ITEM "A|Altro" ITEM "A|Normale"
END END
SPREADSHEET F_SHEETCG SPREADSHEET F_SHEETCG

View File

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

View File

@ -453,31 +453,54 @@ real TPrimanota_application::calcola_saldo() const
TString_array& rows = cgs().rows_array(); TString_array& rows = cgs().rows_array();
const int max = rows.items(); const int max = rows.items();
TImporto saldaconto;
const bool pag = is_pagamento();
real tdare, tavere; real tdare, tavere;
for (int i = 0; i < max; i++) for (int i = 0; i < max; i++)
{ {
TToken_string& r = rows.row(i); TToken_string& r = rows.row(i);
tdare += real(r.get(0)); tdare += real(r.get(0));
tavere += real(r.get()); 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); real sbilancio = abs(tdare)-abs(tavere);
switch (sbilancio.sign()) switch (sbilancio.sign())
{ {
case +1: // Il dare supera l'avere in valore assoluto case +1: // Il dare supera l'avere in valore assoluto
curr_mask().set(F_DARE, (tdare-tavere).string()); m.set(F_DARE, (tdare-tavere).string());
curr_mask().reset(F_AVERE); m.reset(F_AVERE);
break; break;
case -1: // L'avere supera il dare in valore assoluto case -1: // L'avere supera il dare in valore assoluto
curr_mask().reset(F_DARE); m.reset(F_DARE);
curr_mask().set(F_AVERE, (tavere-tdare).string()); m.set(F_AVERE, (tavere-tdare).string());
break; break;
default: // Sbilancio nullo default: // Sbilancio nullo
curr_mask().reset(F_DARE); m.reset(F_DARE);
curr_mask().reset(F_AVERE); m.reset(F_AVERE);
break; 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; return sbilancio;
} }

View File

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