From 7c4edb694637b836fdfa2069b92ed55279a0a2c1 Mon Sep 17 00:00:00 2001 From: guy Date: Mon, 7 Nov 2011 16:14:42 +0000 Subject: [PATCH] Patch level : Files correlati : lv2.exe lvtbcau.msk Ricompilazione Demo : [ ] Commento : Migliorata gestione prezzi nulli in sede di fatturazione git-svn-id: svn://10.65.10.50/branches/R_10_00@22476 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- lv/lv2500.cpp | 53 ++++++++++++++++++++++++++++++-------------------- lv/lv2600.cpp | 2 +- lv/lv3700.cpp | 6 +++--- lv/lvlib.cpp | 10 ++++------ lv/lvlib.h | 15 +++++++------- lv/lvtbcau.h | 4 +--- lv/lvtbcau.uml | 10 ++++++++++ 7 files changed, 59 insertions(+), 41 deletions(-) diff --git a/lv/lv2500.cpp b/lv/lv2500.cpp index 23bbd5125..7de50e89f 100755 --- a/lv/lv2500.cpp +++ b/lv/lv2500.cpp @@ -502,8 +502,7 @@ int TFatturazione_lavanderie::write_fatt_ragg(const bool solotot) kl.sort(); FOR_EACH_ARRAY_ROW(kl, r, key) { - TDocumento * d = (TDocumento *)_doc_grouped.objptr(*key); - + TDocumento* d = (TDocumento*)_doc_grouped.objptr(*key); if (d != NULL && !solotot) d->write(); } @@ -2080,8 +2079,8 @@ void TFatturazione_lav_app::main_loop() if (!controlli_preliminari()) { TString str; - str << "Prima di poter eseguire la fatturazione è necessario correggre tutti gli errori segnalati. " - << "Si prega di controllare i dati di configurazione"; + str << "Prima di poter eseguire la fatturazione è necessario correggere tutti gli errori segnalati.\n" + << "Si prega di controllare i dati di configurazione."; warning_box(str); return; } @@ -2401,7 +2400,7 @@ void TFatturazione_lav_app::main_loop() if (codart.full()) { const TRectype & rcont = contr.row(codart); - TArticolo_lavanderie& art = cached_article_laundry(codart, 'C', clifo, use_indsp ? indsped : 0); + const TArticolo_lavanderie& art = cached_article_laundry(codart, 'C', clifo, use_indsp ? indsped : 0); //estraggo il record corrispondente su LF_CLIFOGIAC const TRecmag_lavanderie& rec = art.find_rec(annoes); @@ -2427,20 +2426,27 @@ void TFatturazione_lav_app::main_loop() } if (prezzo_da_contratto) { - if (rcont.get_real(LVRCONDV_PREZZO) == ZERO) + // Segnalo prezzo nullo solo se il contratto non è ad importo fisso (07/11/2011) + if (rcont.get_real(LVRCONDV_PREZZO).is_zero() && contr.get_real(LVCONDV_IMPFIX).is_zero()) { TString msg; - msg << str << " Prezzo zero"; + msg << str << " Prezzo zero sul contratto"; _log->log(0, msg); } } else { - if ((*doc)[r].get_real(RDOC_PREZZO) == ZERO) + const TRiga_documento& rdoc = (*doc)[r]; + if (rdoc.get_real(RDOC_PREZZO).is_zero()) // Prezzo nullo sulla bolla { - TString msg; - msg << str << " Prezzo zero"; - _log->log(0, msg); + const TString8 causale = rdoc.get(RDOC_CODAGG1); + const TCausale_lavanderie& cau = cached_causale_lavanderie(causale); + if (!cau.ignora_prezzo_zero()) // Segnalo anomalia solo se la causale lo prevede (07/11/2011) + { + TString msg; + msg << str << " Prezzo zero sulla bolla"; + _log->log(0, msg); + } } } } @@ -2504,17 +2510,22 @@ void TFatturazione_lav_app::main_loop() numdocgen += elab.write_fatt_ragg(_solototali); TString str; - const TString16 parolapl = _solototali ? "generate " : "elaborate "; - const TString16 parolasi = _solototali ? "generata " : "elaborata "; + const char* const parolapl = _solototali ? "generate" : "elaborate"; + const char* const parolasi = _solototali ? "generata" : "elaborata"; - if (numdocgen > 1 || numdocgen == 0) - str << "Sono state " << parolapl << numdocgen << " fatture"; - else - str << "E' stata " << parolasi << numdocgen << " fattura"; - message_box(str); + switch (numdocgen) + { + case 0: str << "Non e' stata " << parolasi << " alcuna fattura"; break; + case 1: str << "E' stata " << parolasi << " una fattura"; break; + default: str << "Sono state " << parolapl << ' ' << numdocgen << " fatture"; break; + } + if (numdocgen <= 0) + warning_box(str); + else + message_box(str); message_box(TR("Elaborazione terminata")); - str = "Clienti Danneggati Articoli danneggiati"; + str = TR("Clienti Danneggati Articoli danneggiati"); _log->log(0, str); str.format(" %5d %5d", elab.cli_damn(), elab.art_damn()); _log->log(0, str); @@ -2523,7 +2534,7 @@ void TFatturazione_lav_app::main_loop() str.format(" %5d", numdocgen); str << totimp.stringa(17) << imposta.stringa(16) << totdoc.stringa(15) << spese.stringa(17); _log->log(0, str); - str = "Numero fatture scartate"; + str = TR("Numero fatture scartate"); _log->log(0, str); str.format(" %5d", numdocscart); _log->log(0, str); @@ -2535,6 +2546,6 @@ void TFatturazione_lav_app::main_loop() int lv2500(int argc, char *argv[]) { TFatturazione_lav_app a; - a.run (argc, argv, "Fatturazione lavanderie"); + a.run (argc, argv, TR("Fatturazione lavanderie")); return TRUE; } diff --git a/lv/lv2600.cpp b/lv/lv2600.cpp index 43606aa05..e53207b73 100755 --- a/lv/lv2600.cpp +++ b/lv/lv2600.cpp @@ -752,7 +752,7 @@ bool TAcquisizione_lavanderie_app::elabora_file(const TString& file, TLog_report { TString str; str << "Attenzione! Il cliente " << codcf << " per l'articolo " << codart << " ha una dotazione di " - << dotod << " pezzi, e ne sono stati ritirati " << qta << " (" << qta - dotod << " in più)."; + << dotod << " pezzi, e ne sono stati ritirati " << qta << " (" << real(qta - dotod) << " in più)."; warning_box(str); } } diff --git a/lv/lv3700.cpp b/lv/lv3700.cpp index ae2964e2c..c81259f84 100755 --- a/lv/lv3700.cpp +++ b/lv/lv3700.cpp @@ -18,7 +18,7 @@ class TPacchi_contati: public TObject TToken_string _codpacchi; public: - const real qta() const; + const real& qta() const; const TString& um() const; const int npacchi() const; const TToken_string& codpacchi() const; @@ -37,7 +37,7 @@ public: }; //QTA: metodo che restituisce la quantita -const real TPacchi_contati::qta() const +const real& TPacchi_contati::qta() const { return _qta; } @@ -300,7 +300,7 @@ void TInventario_ter_msk::inventario_da_terminale() if (codpacco.full()) { //se posso instanzio la riga pacco - TRiga_pacco rp(codpacco); + const TRiga_pacco rp(codpacco); if (rp.empty()) { diff --git a/lv/lvlib.cpp b/lv/lvlib.cpp index 4242c9957..7da6eaf37 100755 --- a/lv/lvlib.cpp +++ b/lv/lvlib.cpp @@ -1370,17 +1370,15 @@ void TRiga_pacco::set_movmag(const long movmag) } //IS_ANNULATO: metodo che restituisce "true" se il campo annullato sul record attuale è 'S' -bool TRiga_pacco::is_annullato() +bool TRiga_pacco::is_annullato() const { - if(get(PACCHI_ANNULLATO)[0] == 'S') - return true; - return false; + return get_char(PACCHI_ANNULLATO) == 'S'; } //IS_ASSOCIATO: metodo che restitusce "true" se il campo cliente è valorizzato -bool TRiga_pacco::is_associato() +bool TRiga_pacco::is_associato() const { - return get_int(PACCHI_CODCF) && 1; + return get_long(PACCHI_CODCF) > 0; } //Metodi costruttori TRiga_pacco::TRiga_pacco(const TRectype& rec) diff --git a/lv/lvlib.h b/lv/lvlib.h index a793848fb..c2bd4a2d9 100755 --- a/lv/lvlib.h +++ b/lv/lvlib.h @@ -177,11 +177,12 @@ public: const TString& codice() const {return get("CODTAB");} const TString& descr() const {return get("S0");} const TString& caucol() const {return get("S4");} - const bool is_ritiro() const {return get_bool("B0");} - const bool is_consegna() const {return get_bool("B1");} - const bool is_reso() const {return get_bool("B2");} - const bool is_rotto() const {return get_bool("B3");} - const bool movcong() const {return !get_bool("B4");} + bool is_ritiro() const {return get_bool("B0");} + bool is_consegna() const {return get_bool("B1");} + bool is_reso() const {return get_bool("B2");} + bool is_rotto() const {return get_bool("B3");} + bool movcong() const {return !get_bool("B4");} + bool ignora_prezzo_zero() const {return get_bool("B5");} //metodi che restituiscono le causali di magazzino associate const TCausale_magazzino& causale_ritiro() const {return cached_causale_magazzino(caurit());} const TCausale_magazzino& causale_consegna() const {return cached_causale_magazzino(caucon());} @@ -300,8 +301,8 @@ public: void set_rigabolla(const int anno, const char* codnum, const long ndoc, const long idriga); void set_movmag(const long movmag); - bool is_annullato(); - bool is_associato(); + bool is_annullato() const; + bool is_associato() const; TRiga_pacco(const TRectype& rec); TRiga_pacco(const TRiga_pacco& rpacco); diff --git a/lv/lvtbcau.h b/lv/lvtbcau.h index c28f59c87..272d1b34c 100755 --- a/lv/lvtbcau.h +++ b/lv/lvtbcau.h @@ -26,8 +26,6 @@ #define F_CONTO 125 #define F_SOTTOC 126 #define F_DESCR 127 +#define F_IGNORA_ZERO 128 #define R_CON 16 -//#define F_STAMPA_BOLLA 117 -//#define F_CALC_IMPORTO 118 -//#define F_CONTR_DOTAZIONE 119 \ No newline at end of file diff --git a/lv/lvtbcau.uml b/lv/lvtbcau.uml index fea08be33..601e50113 100755 --- a/lv/lvtbcau.uml +++ b/lv/lvtbcau.uml @@ -341,6 +341,16 @@ BEGIN ADD RUN cg0 -0 END +GROUPBOX DLG_NULL 80 3 +BEGIN + PROMPT 1 19 "@bFatturazione" +END + +BOOLEAN F_IGNORA_ZERO +BEGIN + PROMPT 2 20 "Non segnalare prezzo a zero sulla bolla" + FIELD B5 +END ENDPAGE