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 "velib04.h"
|
||||||
|
|
||||||
#include <dongle.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)
|
bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
|
||||||
{
|
{
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
const TString4 tipodoc = doc_in.tipo().codice();
|
const TString4 tipodoc = doc_in.tipo().codice();
|
||||||
int i;
|
int i;
|
||||||
@ -184,10 +185,13 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// TTipo_documento tf(tipo_finale());
|
||||||
const TDate dcons = doc_in.get_date(DOC_DATACONS);
|
const TDate dcons = doc_in.get_date(DOC_DATACONS);
|
||||||
const TDate ddoc = doc_out.get_date(DOC_DATADOC);
|
const TDate ddoc = doc_out.get_date(DOC_DATADOC);
|
||||||
const bool usa_dcons = usa_data_consegna();
|
const bool usa_dcons = usa_data_consegna();
|
||||||
const int doc_out_rows = doc_out.physical_rows();
|
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)
|
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);
|
TToken_string campi_riga(80);
|
||||||
campi_raggruppamento_righe(campi_riga);
|
campi_raggruppamento_righe(campi_riga);
|
||||||
const bool ragg_rig = campi_riga.full();
|
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);
|
elabora_riga(*rin, doc_out, usa_dcons, ragg_rig, ignora_desc, campi_riga, dcons, ddoc);
|
||||||
|
|
||||||
//cambio stato documento
|
//cambio stato documento
|
||||||
|
Loading…
x
Reference in New Issue
Block a user