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:
parent
3015907da9
commit
7c4edb6946
@ -502,8 +502,7 @@ int TFatturazione_lavanderie::write_fatt_ragg(const bool solotot)
|
|||||||
kl.sort();
|
kl.sort();
|
||||||
FOR_EACH_ARRAY_ROW(kl, r, key)
|
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)
|
if (d != NULL && !solotot)
|
||||||
d->write();
|
d->write();
|
||||||
}
|
}
|
||||||
@ -2080,8 +2079,8 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
if (!controlli_preliminari())
|
if (!controlli_preliminari())
|
||||||
{
|
{
|
||||||
TString str;
|
TString str;
|
||||||
str << "Prima di poter eseguire la fatturazione è necessario correggre tutti gli errori segnalati. "
|
str << "Prima di poter eseguire la fatturazione è necessario correggere tutti gli errori segnalati.\n"
|
||||||
<< "Si prega di controllare i dati di configurazione";
|
<< "Si prega di controllare i dati di configurazione.";
|
||||||
warning_box(str);
|
warning_box(str);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -2401,7 +2400,7 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
if (codart.full())
|
if (codart.full())
|
||||||
{
|
{
|
||||||
const TRectype & rcont = contr.row(codart);
|
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
|
//estraggo il record corrispondente su LF_CLIFOGIAC
|
||||||
const TRecmag_lavanderie& rec = art.find_rec(annoes);
|
const TRecmag_lavanderie& rec = art.find_rec(annoes);
|
||||||
|
|
||||||
@ -2427,24 +2426,31 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
}
|
}
|
||||||
if (prezzo_da_contratto)
|
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;
|
TString msg;
|
||||||
msg << str << " Prezzo zero";
|
msg << str << " Prezzo zero sul contratto";
|
||||||
_log->log(0, msg);
|
_log->log(0, msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
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
|
||||||
|
{
|
||||||
|
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;
|
TString msg;
|
||||||
msg << str << " Prezzo zero";
|
msg << str << " Prezzo zero sulla bolla";
|
||||||
_log->log(0, msg);
|
_log->log(0, msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
docsin.add(doc);
|
docsin.add(doc);
|
||||||
}
|
}
|
||||||
@ -2504,17 +2510,22 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
numdocgen += elab.write_fatt_ragg(_solototali);
|
numdocgen += elab.write_fatt_ragg(_solototali);
|
||||||
|
|
||||||
TString str;
|
TString str;
|
||||||
const TString16 parolapl = _solototali ? "generate " : "elaborate ";
|
const char* const parolapl = _solototali ? "generate" : "elaborate";
|
||||||
const TString16 parolasi = _solototali ? "generata " : "elaborata ";
|
const char* const parolasi = _solototali ? "generata" : "elaborata";
|
||||||
|
|
||||||
if (numdocgen > 1 || numdocgen == 0)
|
switch (numdocgen)
|
||||||
str << "Sono state " << parolapl << numdocgen << " fatture";
|
{
|
||||||
|
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
|
else
|
||||||
str << "E' stata " << parolasi << numdocgen << " fattura";
|
|
||||||
message_box(str);
|
message_box(str);
|
||||||
|
|
||||||
message_box(TR("Elaborazione terminata"));
|
message_box(TR("Elaborazione terminata"));
|
||||||
str = "Clienti Danneggati Articoli danneggiati";
|
str = TR("Clienti Danneggati Articoli danneggiati");
|
||||||
_log->log(0, str);
|
_log->log(0, str);
|
||||||
str.format(" %5d %5d", elab.cli_damn(), elab.art_damn());
|
str.format(" %5d %5d", elab.cli_damn(), elab.art_damn());
|
||||||
_log->log(0, str);
|
_log->log(0, str);
|
||||||
@ -2523,7 +2534,7 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
str.format(" %5d", numdocgen);
|
str.format(" %5d", numdocgen);
|
||||||
str << totimp.stringa(17) << imposta.stringa(16) << totdoc.stringa(15) << spese.stringa(17);
|
str << totimp.stringa(17) << imposta.stringa(16) << totdoc.stringa(15) << spese.stringa(17);
|
||||||
_log->log(0, str);
|
_log->log(0, str);
|
||||||
str = "Numero fatture scartate";
|
str = TR("Numero fatture scartate");
|
||||||
_log->log(0, str);
|
_log->log(0, str);
|
||||||
str.format(" %5d", numdocscart);
|
str.format(" %5d", numdocscart);
|
||||||
_log->log(0, str);
|
_log->log(0, str);
|
||||||
@ -2535,6 +2546,6 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
int lv2500(int argc, char *argv[])
|
int lv2500(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
TFatturazione_lav_app a;
|
TFatturazione_lav_app a;
|
||||||
a.run (argc, argv, "Fatturazione lavanderie");
|
a.run (argc, argv, TR("Fatturazione lavanderie"));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -752,7 +752,7 @@ bool TAcquisizione_lavanderie_app::elabora_file(const TString& file, TLog_report
|
|||||||
{
|
{
|
||||||
TString str;
|
TString str;
|
||||||
str << "Attenzione! Il cliente " << codcf << " per l'articolo " << codart << " ha una dotazione di "
|
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);
|
warning_box(str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ class TPacchi_contati: public TObject
|
|||||||
TToken_string _codpacchi;
|
TToken_string _codpacchi;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
const real qta() const;
|
const real& qta() const;
|
||||||
const TString& um() const;
|
const TString& um() const;
|
||||||
const int npacchi() const;
|
const int npacchi() const;
|
||||||
const TToken_string& codpacchi() const;
|
const TToken_string& codpacchi() const;
|
||||||
@ -37,7 +37,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
//QTA: metodo che restituisce la quantita
|
//QTA: metodo che restituisce la quantita
|
||||||
const real TPacchi_contati::qta() const
|
const real& TPacchi_contati::qta() const
|
||||||
{
|
{
|
||||||
return _qta;
|
return _qta;
|
||||||
}
|
}
|
||||||
@ -300,7 +300,7 @@ void TInventario_ter_msk::inventario_da_terminale()
|
|||||||
if (codpacco.full())
|
if (codpacco.full())
|
||||||
{
|
{
|
||||||
//se posso instanzio la riga pacco
|
//se posso instanzio la riga pacco
|
||||||
TRiga_pacco rp(codpacco);
|
const TRiga_pacco rp(codpacco);
|
||||||
|
|
||||||
if (rp.empty())
|
if (rp.empty())
|
||||||
{
|
{
|
||||||
|
10
lv/lvlib.cpp
10
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'
|
//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 get_char(PACCHI_ANNULLATO) == 'S';
|
||||||
return true;
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//IS_ASSOCIATO: metodo che restitusce "true" se il campo cliente è valorizzato
|
//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
|
//Metodi costruttori
|
||||||
TRiga_pacco::TRiga_pacco(const TRectype& rec)
|
TRiga_pacco::TRiga_pacco(const TRectype& rec)
|
||||||
|
15
lv/lvlib.h
15
lv/lvlib.h
@ -177,11 +177,12 @@ public:
|
|||||||
const TString& codice() const {return get("CODTAB");}
|
const TString& codice() const {return get("CODTAB");}
|
||||||
const TString& descr() const {return get("S0");}
|
const TString& descr() const {return get("S0");}
|
||||||
const TString& caucol() const {return get("S4");}
|
const TString& caucol() const {return get("S4");}
|
||||||
const bool is_ritiro() const {return get_bool("B0");}
|
bool is_ritiro() const {return get_bool("B0");}
|
||||||
const bool is_consegna() const {return get_bool("B1");}
|
bool is_consegna() const {return get_bool("B1");}
|
||||||
const bool is_reso() const {return get_bool("B2");}
|
bool is_reso() const {return get_bool("B2");}
|
||||||
const bool is_rotto() const {return get_bool("B3");}
|
bool is_rotto() const {return get_bool("B3");}
|
||||||
const bool movcong() const {return !get_bool("B4");}
|
bool movcong() const {return !get_bool("B4");}
|
||||||
|
bool ignora_prezzo_zero() const {return get_bool("B5");}
|
||||||
//metodi che restituiscono le causali di magazzino associate
|
//metodi che restituiscono le causali di magazzino associate
|
||||||
const TCausale_magazzino& causale_ritiro() const {return cached_causale_magazzino(caurit());}
|
const TCausale_magazzino& causale_ritiro() const {return cached_causale_magazzino(caurit());}
|
||||||
const TCausale_magazzino& causale_consegna() const {return cached_causale_magazzino(caucon());}
|
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_rigabolla(const int anno, const char* codnum, const long ndoc, const long idriga);
|
||||||
void set_movmag(const long movmag);
|
void set_movmag(const long movmag);
|
||||||
|
|
||||||
bool is_annullato();
|
bool is_annullato() const;
|
||||||
bool is_associato();
|
bool is_associato() const;
|
||||||
|
|
||||||
TRiga_pacco(const TRectype& rec);
|
TRiga_pacco(const TRectype& rec);
|
||||||
TRiga_pacco(const TRiga_pacco& rpacco);
|
TRiga_pacco(const TRiga_pacco& rpacco);
|
||||||
|
@ -26,8 +26,6 @@
|
|||||||
#define F_CONTO 125
|
#define F_CONTO 125
|
||||||
#define F_SOTTOC 126
|
#define F_SOTTOC 126
|
||||||
#define F_DESCR 127
|
#define F_DESCR 127
|
||||||
|
#define F_IGNORA_ZERO 128
|
||||||
|
|
||||||
#define R_CON 16
|
#define R_CON 16
|
||||||
//#define F_STAMPA_BOLLA 117
|
|
||||||
//#define F_CALC_IMPORTO 118
|
|
||||||
//#define F_CONTR_DOTAZIONE 119
|
|
@ -341,6 +341,16 @@ BEGIN
|
|||||||
ADD RUN cg0 -0
|
ADD RUN cg0 -0
|
||||||
END
|
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
|
ENDPAGE
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user