Patch level : ve0.exe ve6.exe

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :

GF20112
Quando un documento viene contabilizzato per la seconda volta SENZA aver
cancellato il movimento preesistente,
il programma giustamente sovrascrive il movimento di prima nota, ma non
sistema correttamente i saldi.


git-svn-id: svn://10.65.10.50/trunk@11664 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2003-12-15 14:25:45 +00:00
parent 86bd2efaf6
commit 08b4f24e64
8 changed files with 45 additions and 46 deletions

View File

@ -444,9 +444,9 @@ void TMotore_application::ini2mask(TConfig& ini, TMask& msk, bool query)
if (stricmp(key, RDOC_DESCR) == 0) // Trattamento speciale per la descrizione
{
const TString s(esc(val));
TString s = esc(val); s.rtrim();
int split_pos = s.find('\n');
const int descr_len = rec.length("DESCR");
const int descr_len = rec.length(RDOC_DESCR);
if (split_pos < 0 && s.len() > descr_len)
split_pos = descr_len;
if (split_pos > descr_len)
@ -454,13 +454,13 @@ void TMotore_application::ini2mask(TConfig& ini, TMask& msk, bool query)
if (split_pos > 0)
{
rec.put(RDOC_DESCR, s.left(split_pos));
rec.put(RDOC_DESCLUNGA, "X");
rec.put(RDOC_DESCLUNGA, "X");
rec.put(RDOC_DESCEST, s.mid(split_pos));
}
else
{
rec.put(RDOC_DESCR, s);
rec.put(RDOC_DESCLUNGA, "");
rec.zero(RDOC_DESCLUNGA);
rec.zero(RDOC_DESCEST);
}

View File

@ -894,14 +894,14 @@ bool TDocumento_form::validate(TForm_item &cf, TToken_string &s)
if (code == "_DESCRIGA")
{
// Messaggio per reperire la descrizione estesa sulle righe del documento
TLocalisamfile &rdoc= (cursor())->file(LF_RIGHEDOC);
TString descrizione = rdoc.get("DESCR");
const bool desclunga = rdoc.get_bool("DESCLUNGA");
const TRectype &rdoc= cursor()->curr(LF_RIGHEDOC);
TString descrizione = rdoc.get(RDOC_DESCR);
const bool desclunga = rdoc.get_bool(RDOC_DESCLUNGA);
if (desclunga)
{
const TString & dest = rdoc.get("DESCEST");
descrizione << dest;
const TString& dest = rdoc.get(RDOC_DESCEST);
if (!dest.blank())
descrizione << dest;
}
int nfields = s.items();
for (int j = 1; j < nfields; j++)
@ -909,8 +909,8 @@ bool TDocumento_form::validate(TForm_item &cf, TToken_string &s)
const TString & fld = s.get(j);
TForm_item & f = cf.find_field(fld);
const TString & val = f.get();
if (val.not_empty())
descrizione << " " << val;
if (!val.blank())
descrizione << ' ' << val;
}
cf.set(descrizione);
TParagraph_string p(descrizione, cf.width());

View File

@ -795,9 +795,8 @@ void TRiga_documento::autosave(TSheet_field & f)
for (int l = 0; l<4 ; l++)
doc().livelli().pack_grpcode(liv,row.get(f.cid2index(FR_LIV1+l)),l+1);
put( RDOC_LIVELLO, liv); // da modificare
TString s(row.get(f.cid2index(FR_DESCR)));
int split_pos = s.find('\n');
TString s = row.get(f.cid2index(FR_DESCR)); s.rtrim();
int split_pos = s.find('\n');
const int descr_len = length(RDOC_DESCR);
if (split_pos < 0 && s.len() > descr_len)
split_pos = descr_len;
@ -806,8 +805,9 @@ void TRiga_documento::autosave(TSheet_field & f)
if (split_pos > 0)
{
put(RDOC_DESCR, s.left(split_pos));
const TString& dest = s.mid(split_pos);
put(RDOC_DESCLUNGA, "X");
put(RDOC_DESCEST, s.mid(split_pos));
put(RDOC_DESCEST, dest);
}
else
{
@ -880,9 +880,9 @@ void TRiga_documento::autoload(TSheet_field & f)
for (int l = 0; l<4 ; l++)
row.add(doc().livelli().unpack_grpcode(liv,l+1), f.cid2index(FR_LIV1+l ));
TString s(1024); s = get(RDOC_DESCR);
TString s = get(RDOC_DESCR);
if (get_bool(RDOC_DESCLUNGA))
s << get("DESCEST");
s << get(RDOC_DESCEST);
row.add(s, f.cid2index(FR_DESCR ));
row.add( get( RDOC_UMQTA ), f.cid2index(FR_UMQTA ));
row.add( get( RDOC_PREZZO ), f.cid2index(FR_PREZZO ));

View File

@ -774,10 +774,9 @@ void TDocumento::set_riga_esenzione()
(const char *) v_esenzione, (const char *) v_data_esenzione,
(const char *) n_registrazione, (const char *) n_data_registrazione);
_esenzione->put( "DESCR", d.left(50));
_esenzione->put("DESCLUNGA", "X");
_esenzione->put("DESCEST", d.mid(50));
_esenzione->put(RDOC_DESCR, d.left(50));
_esenzione->put(RDOC_DESCLUNGA, "X");
_esenzione->put(RDOC_DESCEST, d.mid(50));
}
}

View File

@ -86,25 +86,24 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
}
// Setta la descrizione se vuota
if (rout.get("DESCR").empty())
rout.put("DESCR", riferimento);
if (rout.get(RDOC_DESCR).empty())
rout.put(RDOC_DESCR, riferimento);
else
{
// Altrimenti aggiungi il riferimento al memo
TString memo(1024);
memo = rout.get("DESCEST");
memo = rout.get(RDOC_DESCEST);
if (memo.empty())
{
TString80 rif(rout.get("DESCR"));
TString80 rif(rout.get(RDOC_DESCR));
rif << '\n';
rout.put("DESCR", rif);
rout.put("DESCLUNGA", "X");
rout.put(RDOC_DESCR, rif);
rout.put(RDOC_DESCLUNGA, "X");
}
else
memo << '\n';
memo << riferimento;
rout.put("DESCEST", memo);
rout.put(RDOC_DESCEST, memo);
}
}

View File

@ -2740,14 +2740,15 @@ error_type TContabilizzazione::write_all(TDocumento& doc, TMovimentoPN_VE & movi
// basta solo ritornare qualcosa di != da no_error, per evitare le operazioni successive
// a write_all
TRectype& head = movimento.curr();
long numreg = head.get_long(MOV_NUMREG);
const long numreg = head.get_long(MOV_NUMREG);
if (test_swap())
{
const real totdoc = -head.get_real(MOV_TOTDOC);
const real totdocval = -head.get_real(MOV_TOTDOCVAL);
head.put(MOV_TOTDOC, totdoc);
// head.put(MOV_TOTDOCVAL, totdocval); // Non cambio segno! :-( LL700285
// Non cambio segno! :-( LL700285
// const real totdocval = -head.get_real(MOV_TOTDOCVAL);
// head.put(MOV_TOTDOCVAL, totdocval);
const int items = movimento.iva_items();
for (int i = items - 1 ; i >= 0; i--)
@ -3447,7 +3448,7 @@ void TContabilizzazione::aggiorna_saldi(TSaldo_agg& saldo, TMovimentoPN& mv, boo
{
const TRectype& mov = mv.curr();
const TDate datareg = mov.get(MOV_DATAREG);
const TString8 codcaus = mov.get(MOV_CODCAUS);
const TString4 codcaus = mov.get(MOV_CODCAUS);
tiposal tsal = normale;
if (codcaus != _caus->codice()) // Should never happen, but ...
@ -3458,8 +3459,8 @@ void TContabilizzazione::aggiorna_saldi(TSaldo_agg& saldo, TMovimentoPN& mv, boo
else
tsal = _caus->apertura() ? apertura : (_caus->chiusura() ? chiusura : normale);
if (save)
saldo.reset(); // Inizializza saldi
// if (save) saldo.reset(); // Bella ca%%ata: distrugge i saldi del vecchio movimento!
saldo.set_movprovv(FALSE);
saldo.set_tipo_saldo(tsal);
saldo.set_anno_es(mov.get_int(MOV_ANNOES));
@ -3472,7 +3473,7 @@ void TContabilizzazione::aggiorna_saldi(TSaldo_agg& saldo, TMovimentoPN& mv, boo
{
const TRectype& r = mv.cg(i);
TBill conto; conto.get(r);
TImporto import(r.get_char("SEZIONE"), r.get_real("IMPORTO"));
TImporto import(r.get_char(RMV_SEZIONE), r.get_real(RMV_IMPORTO));
saldo.aggiorna(conto, import, save);
}
if (save)

View File

@ -317,25 +317,25 @@ bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o
// Setta la descrizione se vuota
if (rout.get("DESCR").empty())
rout.put("DESCR", riferimento);
if (rout.get(RDOC_DESCR).empty())
rout.put(RDOC_DESCR, riferimento);
else
{
// Altrimenti aggiungi il riferimento al memo
TString memo(1024);
memo = rout.get("DESCEST");
memo = rout.get(RDOC_DESCEST);
if (memo.empty())
{
TString80 rif(rout.get("DESCR"));
TString80 rif(rout.get(RDOC_DESCR));
rif << '\n';
rout.put("DESCR", rif);
rout.put("DESCLUNGA", "X");
rout.put(RDOC_DESCR, rif);
rout.put(RDOC_DESCLUNGA, "X");
}
else
memo << '\n';
memo << riferimento;
rout.put("DESCEST", memo);
rout.put(RDOC_DESCEST, memo);
}
}

View File

@ -676,7 +676,7 @@ bool codart_handler(TMask_field& f, KEY key )
new_row.put(RDOC_CODARTMAG, r.articolo());
new_row.put(RDOC_LIVELLO, r.giacenza());
new_row.zero(RDOC_DESCR);
new_row.put(RDOC_DESCLUNGA, "X");
new_row.zero(RDOC_DESCLUNGA);
new_row.zero(RDOC_DESCEST);
new_row.put(RDOC_CHECKED, "");
new_row.put(RDOC_UMQTA, r.um());