Aggiornamento residuo
git-svn-id: svn://10.65.10.50/trunk@1898 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
a887382158
commit
49c942c927
13
cg/cg2100.h
13
cg/cg2100.h
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user