Patch level : 10.0
Files correlati : ve6 Ricompilazione Demo : [ ] Commento : Creata fantastica macro FOR_EACH_PHYSICAL_RDOC(doc, i, rdoc) git-svn-id: svn://10.65.10.50/trunk@19640 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
69a74a7e58
commit
fdc9f46eda
@ -854,11 +854,10 @@ public:
|
||||
virtual ~TDocumento();
|
||||
};
|
||||
|
||||
#define FOR_EACH_PHYSICAL_RDOC(__doc, __rdoc) TRiga_documento* __rdoc=NULL; TRecord_array& __b = (__doc).body(); \
|
||||
for (int __r = __b.first_row(); __b.exist(__r) && (__rdoc=&(__doc)[__r])!=NULL; __r=__b.succ_row(__r))
|
||||
#define FOR_EACH_PHYSICAL_RDOC_BACK(__doc, __rdoc) TRiga_documento* __rdoc=NULL; TRecord_array& __b = (__doc).body(); \
|
||||
for (int __r = __b.last_row(); __r>0 && (__rdoc=&(__doc)[__r])!= NULL; __r = __b.pred_row(__r))
|
||||
|
||||
#define FOR_EACH_PHYSICAL_RDOC(__doc, __r, __rdoc) TRiga_documento* __rdoc=NULL; \
|
||||
for (int __r = (__doc).body().first_row(); (__doc).body().exist(__r) && (__rdoc=&(__doc)[__r])!=NULL; __r=(__doc).body().succ_row(__r))
|
||||
#define FOR_EACH_PHYSICAL_RDOC_BACK(__doc, __r, __rdoc) TRiga_documento* __rdoc=NULL; \
|
||||
for (int __r = (__doc).body().last_row(); __r>0 && (__rdoc=&(__doc)[__r])!= NULL; __r = (__doc).body().pred_row(__r))
|
||||
|
||||
class TCurrency_documento : public TCurrency
|
||||
{
|
||||
|
@ -149,7 +149,7 @@ void TFatturazione_bolle::elabora_riga(TRiga_documento& r, TDocumento& doc_out,
|
||||
// se la riga non contiene solo una descrizione
|
||||
if (ragg_rig && !rindesc && da_raggruppare(rin)) // Se devo raggruppare le righe ...
|
||||
{
|
||||
FOR_EACH_PHYSICAL_RDOC(doc_out, rout) // ... cerca una riga compatibile
|
||||
FOR_EACH_PHYSICAL_RDOC(doc_out, r, rout) // ... cerca una riga compatibile
|
||||
{
|
||||
if (rout->sola_descrizione()) // Ignora le righe descrittive
|
||||
continue;
|
||||
@ -192,7 +192,7 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
|
||||
if (usa_dcons)
|
||||
{
|
||||
bool da_elaborare = FALSE;
|
||||
FOR_EACH_PHYSICAL_RDOC(doc_in, rin)
|
||||
FOR_EACH_PHYSICAL_RDOC(doc_in, r, rin)
|
||||
{
|
||||
TDate data_cons = rin->get_date(RDOC_DATACONS);
|
||||
if (!data_cons.ok())
|
||||
@ -273,17 +273,21 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
|
||||
memo = rout.get(RDOC_DESCR);
|
||||
if (rout.get_bool(RDOC_DESCLUNGA))
|
||||
memo << rout.get(RDOC_DESCEST);
|
||||
if (memo.full())
|
||||
memo << " - ";
|
||||
memo << riferimento;
|
||||
if (riferimento.full())
|
||||
{
|
||||
if (memo.full())
|
||||
memo << " - ";
|
||||
memo << riferimento;
|
||||
}
|
||||
|
||||
if (memo.len() < rout.length(RDOC_DESCR))
|
||||
const int maxlen = rout.length(RDOC_DESCR);
|
||||
if (memo.len() < maxlen && memo.find('\n') < 0)
|
||||
rout.put(RDOC_DESCR, memo);
|
||||
else
|
||||
{
|
||||
rout.put(RDOC_DESCR, memo.left(rout.length(RDOC_DESCR)));
|
||||
rout.put(RDOC_DESCEST, memo.mid(rout.length(RDOC_DESCR)));
|
||||
rout.put(RDOC_DESCLUNGA, "X");
|
||||
rout.put(RDOC_DESCR, memo.left(maxlen));
|
||||
rout.put(RDOC_DESCEST, memo.mid(maxlen));
|
||||
rout.put(RDOC_DESCLUNGA, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -299,9 +303,9 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
|
||||
if (memo.empty())
|
||||
{
|
||||
TString80 rif(rout.get(RDOC_DESCR));
|
||||
rif << '\n';
|
||||
rif << '\n'; // Strano \n in un campo di testo normale?????????????????????????
|
||||
rout.put(RDOC_DESCR, rif);
|
||||
rout.put(RDOC_DESCLUNGA, "X");
|
||||
rout.put(RDOC_DESCLUNGA, true);
|
||||
}
|
||||
else
|
||||
memo << '\n';
|
||||
@ -317,17 +321,16 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
|
||||
campi_raggruppamento_righe(campi_riga);
|
||||
const bool ragg_rig = campi_riga.full();
|
||||
|
||||
for (int r = 1; r <= doc_in.physical_rows(); r++)
|
||||
elabora_riga(doc_in[r], doc_out, usa_dcons, ragg_rig, ignora_desc, campi_riga, dcons, ddoc);
|
||||
FOR_EACH_PHYSICAL_RDOC(doc_in, r, rin)
|
||||
elabora_riga(*rin, doc_out, usa_dcons, ragg_rig, ignora_desc, campi_riga, dcons, ddoc);
|
||||
|
||||
//cambio stato documento
|
||||
bool cambia_stato_doc_in = true;
|
||||
if (usa_dcons)
|
||||
{
|
||||
for (int r = 1; r <= doc_in.physical_rows(); r++)
|
||||
FOR_EACH_PHYSICAL_RDOC(doc_in, r, rin)
|
||||
{
|
||||
const TRiga_documento & rin = doc_in[r];
|
||||
if (!rin.sola_descrizione() && !rin.get_bool(RDOC_RIGAEVASA))
|
||||
if (!rin->sola_descrizione() && !rin->get_bool(RDOC_RIGAEVASA)) // Perche' non rin->is_evasa()
|
||||
{
|
||||
cambia_stato_doc_in = false;
|
||||
break;
|
||||
@ -343,7 +346,6 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
|
||||
const char stato_finale_out = get_char("S9");
|
||||
doc_out.stato(stato_finale_out);
|
||||
|
||||
|
||||
if (usa_dcons)
|
||||
doc_in.rewrite();
|
||||
|
||||
@ -397,30 +399,26 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do
|
||||
const int rows = campione.physical_rows();
|
||||
const TString8 codesiva = campione.codesiva();
|
||||
|
||||
for (int i = 1; i <= rows; i++)
|
||||
FOR_EACH_PHYSICAL_RDOC(campione, i, rdoc)
|
||||
{
|
||||
TRiga_documento& rdoc = campione[i];
|
||||
|
||||
if (codesiva.full())
|
||||
rdoc.put(RDOC_CODIVA, codesiva);
|
||||
rdoc->put(RDOC_CODIVA, codesiva);
|
||||
else
|
||||
{
|
||||
if (rdoc.is_articolo())
|
||||
if (rdoc->is_articolo())
|
||||
{
|
||||
const TArticolo_giacenza & art = rdoc.articolo();
|
||||
const TArticolo_giacenza & art = rdoc->articolo();
|
||||
const TString8 codiva = art.get(ANAMAG_CODIVA);
|
||||
|
||||
if (codiva.full())
|
||||
rdoc.put(RDOC_CODIVA, codiva);
|
||||
rdoc->put(RDOC_CODIVA, codiva);
|
||||
}
|
||||
else
|
||||
if (rdoc.is_spese() || rdoc.is_prestazione())
|
||||
if ((rdoc->is_spese() || rdoc->is_prestazione()))
|
||||
{
|
||||
const TSpesa_prest & s = rdoc.spesa();
|
||||
const TSpesa_prest & s = rdoc->spesa();
|
||||
const TString8 codiva = s.cod_iva();
|
||||
|
||||
if (codiva.full())
|
||||
rdoc.put(RDOC_CODIVA, codiva);
|
||||
if (codiva.full())
|
||||
rdoc->put(RDOC_CODIVA, codiva);
|
||||
}
|
||||
|
||||
}
|
||||
@ -548,8 +546,8 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do
|
||||
|
||||
if (reload_prices())
|
||||
{
|
||||
FOR_EACH_PHYSICAL_RDOC_BACK(d, r)
|
||||
r->zero(RDOC_CHECKED);
|
||||
FOR_EACH_PHYSICAL_RDOC_BACK(d, r, rdoc)
|
||||
rdoc->zero(RDOC_CHECKED);
|
||||
}
|
||||
m.doc() = d;
|
||||
m.doc2mask(true, true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user