Patch level : 10.0 577

Files correlati     : lv2.exe
Ricompilazione Demo : [ ]
Commento            :

Fatturazione 02 e velocizzazione calcolo consegnato mensile


git-svn-id: svn://10.65.10.50/trunk@19914 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-01-12 21:50:17 +00:00
parent 12dd0b83a9
commit 1494671c5b
2 changed files with 30 additions and 12 deletions

View File

@ -97,6 +97,7 @@ class TFatturazione_lavanderie:public TFatturazione_bolle
TDate _data_elab;
TToken_string _campi_raggruppamento;
TAssoc_array _output_rows_02;
bool _prova;
protected:
virtual void add_rows(TRiga_documento & rout, TRiga_documento & rin);
@ -112,17 +113,17 @@ protected:
virtual bool riferimenti_in_testa() const { return true; }
virtual TRiga_documento& find_or_create_row(TDocumento& doc_out, const TRiga_documento & rin,const char lavtype);
void aggiorna_fattura(TDocumento & doc, int codcont);
bool fatt_02() const { return !_prova &&lv_is_02_active(); }
public:
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
const TDate& data_elab, bool interattivo = false);
TFatturazione_lavanderie(const char* cod);
TFatturazione_lavanderie(const char* cod, bool prova = false);
~TFatturazione_lavanderie() {}
};
TFatturazione_lavanderie::TFatturazione_lavanderie(const char* cod)
: TFatturazione_bolle(cod)
TFatturazione_lavanderie::TFatturazione_lavanderie(const char* cod, bool prova)
: TFatturazione_bolle(cod), _prova(prova)
{
}
@ -747,7 +748,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
}
}
}
if (redditivita > ZERO && lv_is_02_active() && !ragart && tipocan != 1)
if (redditivita > ZERO && fatt_02() && !ragart && tipocan != 1)
{
const real totdoc = doc.totale_doc();
const real provvigione1 = doc.provvigione();
@ -1034,7 +1035,7 @@ TRiga_documento& TFatturazione_lavanderie::find_or_create_row(TDocumento& doc_ou
row.put("LVTYPE", lavtype);
r = row.get_int(RDOC_NRIGA);
}
if (lv_is_02_active())
if (fatt_02())
{
doc_out.set_row_ids();
const TString key = format("%04d%04d", doc_out.get_int("FATID"), doc_out[r].get_int(RDOC_IDRIGA));
@ -1376,6 +1377,15 @@ bool TFatturazione_lav_app::controlli_preliminari()
void TFatturazione_lav_app::main_loop()
{
bool prova = false;
if (main_app().argc() > 2)
{
TString16 tpela = main_app().argv(2);
tpela = tpela.mid(4);
prova = (tpela == "FatPro");
}
//instanzio la maschera
_msk = new TFatturazione_msk();
@ -1415,7 +1425,7 @@ void TFatturazione_lav_app::main_loop()
}
//instanzio una TFatturaziome_lavanderie
TFatturazione_lavanderie elab(_msk->get(F_COD_ELAB));
TFatturazione_lavanderie elab(_msk->get(F_COD_ELAB), prova);
//preparo le variabili di interesse
TLista_documenti docsin;
TLista_documenti docsout;

View File

@ -10,7 +10,7 @@
TFatturazione_bolle::TFatturazione_bolle(const char* cod)
: TElaborazione(cod)
{
TString16 name; name.format("AGGFLD(%s)", cod);
TString80 name; name.format("AGGFLD(%s)", cod);
_lista_campi = ini_get_string(CONFIG_DITTA, "ve", name);
name.format("ROWSORT(%s)", cod);
@ -311,7 +311,7 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
const bool ragg_rig = campi_riga.full();
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
bool cambia_stato_doc_in = true;
@ -495,6 +495,7 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do
// Aggiungilo alla lista dei documenti in uscita
od = doc_out.add(new_doc);
new_doc->put("FATID", od + 1);
}
if (change_clifo())
@ -511,7 +512,7 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do
}
post_process_input(doc_in);
const int tot = doc_out.items();
int tot = doc_out.items();
const TString4 codnum(codice_numerazione_finale());
for (int i = 0; i < tot; i++) // Forza tipo e numerazione documento.
@ -547,7 +548,14 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do
if (_rowsort.full())
d.sort_rows(_rowsort);
}
post_process_output(doc_out);
post_process(doc_out, doc_in);
tot = doc_out.items();
for (int i = 0; i < tot; i++) // Forza tipo e numerazione documento.
{
TDocumento& d = doc_out[i];
d.put("FATID", 0);
}
return tot > 0;
}