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
This commit is contained in:
guy 2011-11-07 16:14:42 +00:00
parent 3015907da9
commit 7c4edb6946
7 changed files with 59 additions and 41 deletions

View File

@ -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;
}

View File

@ -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);
}
}

View File

@ -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())
{

View File

@ -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)

View File

@ -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);

View File

@ -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

View File

@ -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