Patch level : 10.0 patch 767
Files correlati : ve0.exe ve6.exe Ricompilazione Demo : [ ] Commento : eliminazione delle spese automatiche in percentuale quando es . raggruppo due bolle e le fatture hanno le spese auomatiche Dalla versione 3.2 git-svn-id: svn://10.65.10.50/trunk@20603 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
bdb6ad2ede
commit
9cb40ee383
@ -1,3 +1,4 @@
|
||||
#include <cfven.h>
|
||||
#include "velib04.h"
|
||||
|
||||
#include <dongle.h>
|
||||
@ -167,7 +168,7 @@ void TFatturazione_bolle::elabora_riga(TRiga_documento& r, TDocumento& doc_out,
|
||||
}
|
||||
|
||||
bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
|
||||
{
|
||||
{
|
||||
#ifdef DBG
|
||||
const TString4 tipodoc = doc_in.tipo().codice();
|
||||
int i;
|
||||
@ -184,10 +185,13 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
|
||||
}
|
||||
#endif
|
||||
|
||||
// TTipo_documento tf(tipo_finale());
|
||||
const TDate dcons = doc_in.get_date(DOC_DATACONS);
|
||||
const TDate ddoc = doc_out.get_date(DOC_DATADOC);
|
||||
const bool usa_dcons = usa_data_consegna();
|
||||
const int doc_out_rows = doc_out.physical_rows();
|
||||
const bool delete_spese_aut = doc_in.tipo().spese_aut() && doc_out_rows() > 0;
|
||||
|
||||
|
||||
if (usa_dcons)
|
||||
{
|
||||
@ -305,12 +309,56 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
|
||||
}
|
||||
}
|
||||
|
||||
const bool ignora_desc = ignora_descrizioni();
|
||||
const bool ignora_desc = ignora_descrizioni() && !doc_in.clifor().vendite().get_bool(CFV_RIFDOC);;
|
||||
TToken_string campi_riga(80);
|
||||
campi_raggruppamento_righe(campi_riga);
|
||||
const bool ragg_rig = campi_riga.full();
|
||||
|
||||
FOR_EACH_PHYSICAL_RDOC(doc_in, r, rin)
|
||||
for (int r = 1; r <= doc_in.physical_rows(); r++)
|
||||
{
|
||||
TRiga_documento & rin = doc_in[r];
|
||||
const bool rindesc = rin.sola_descrizione(); // La riga di input e' descrittiva
|
||||
if (ignora_desc && rindesc)
|
||||
continue;
|
||||
|
||||
if (delete_spese_aut)
|
||||
{
|
||||
if (rin.is_generata() && rin.get("GENTIPO").empty() && rin.is_spese())
|
||||
{
|
||||
const TSpesa_prest & sp = rin.spesa();
|
||||
|
||||
if (sp.tipo() == 'P')
|
||||
continue;
|
||||
}
|
||||
|
||||
}
|
||||
if (usa_dcons)
|
||||
{
|
||||
TDate data_cons = rin.get(RDOC_DATACONS);
|
||||
if (!data_cons.ok())
|
||||
data_cons = dcons;
|
||||
if (ddoc < data_cons || rin.get_bool(RDOC_RIGAEVASA))
|
||||
continue;
|
||||
|
||||
const TString& q = rin.get(RDOC_QTA);
|
||||
rin.put(RDOC_QTAEVASA, q);
|
||||
rin.put(RDOC_RIGAEVASA, true);
|
||||
}
|
||||
|
||||
bool elaborata = false;
|
||||
|
||||
// Raggruppo le righe se e' settato il flag di raggruppamento e
|
||||
// se la riga non contiene solo una descrizione
|
||||
if (ragg_rig && !rindesc) // Se devo raggruppare le righe ...
|
||||
{
|
||||
const int last = doc_out.physical_rows();
|
||||
for (int o = 1; o <= last; o++) // ... cerca una riga compatibile
|
||||
{
|
||||
TRiga_documento& rout = doc_out[o];
|
||||
if (rout.sola_descrizione()) // Ignora le righe descrittive
|
||||
continue;
|
||||
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user