diff --git a/ve/velib04f.cpp b/ve/velib04f.cpp index 8fd68f8b1..d00aba0b7 100755 --- a/ve/velib04f.cpp +++ b/ve/velib04f.cpp @@ -1,4 +1,5 @@ #include +#include #include #include "velib04.h" @@ -363,8 +364,28 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis } else { - datareg = datacomp = TDate(TODAY); + const TDate datadoc(doc.get(DOC_DATADOC)); + datareg = datacomp = datadoc; annoes = datareg.year(); + doc.riferimento(descr); + if (descr.empty()) + descr = doc.tipo().descrizione(); + + const TString8 rif = doc.get(DOC_NUMDOCRIF); + TCausale & caus = (TCausale &) doc2caus(doc); + const bool use_rif = caus.iva() == iva_acquisti && rif.not_empty(); + if (use_rif) + { + descr << TR(" n. ") << rif; + descr << TR(" del ") << doc.get(DOC_DATADOCRIF); + } + else + { + descr << TR(" n. ") << doc.numero(); + descr << TR(" del ") << datadoc; + } + + dare = doc.get_char(DOC_TIPOCF) == 'F'; if (doc.is_nota_credito()) dare= !dare; @@ -480,13 +501,21 @@ bool TContabilizzazione_analitica::elabora(TLista_documenti& doc_in, TLista_docu const TDate& data_elab, bool interattivo) { const TImporto zero; + TViswin v; + + v.open_modal(); for (int i = 0; i < doc_in.items(); i++) { - if (elabora(doc_in[i], 0, NULL, true)) + if (elabora(doc_in[i], 0, &v, true)) doc_in[i].stato(get_char("S4")); else break; } + v.close_print(); + v.close_modal(); + if (v.run() == K_CTRL+'S') // Ho premuto Stampa + printer().print_txt(v.text()); + return true; }