Patch level : 10.0 NO PATCH

Files correlati     : lv2
Ricompilazione Demo : [ ]
Commento            :
Aggiunta la fatturazione a Kg


git-svn-id: svn://10.65.10.50/trunk@19799 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2009-12-16 16:20:40 +00:00
parent 9efc9d73fd
commit 4b19014df1

View File

@ -327,8 +327,74 @@ void TFatturazione_lavanderie::post_process_output(TLista_documenti& doc_out)
switch (tipoforf)
{
case 0: break;//forfait = NESSUNO
case 0: //forfait = NESSUNO
{
//gestione fatturazione a kg
const bool fatkg = rcont.get_bool(LVRCONDV_FATTKG);
//se devo fatturare a kg
if(fatkg)
{
const TString4 umkg = ini_get_string(CONFIG_DITTA, "lv", "UmKg");
const TString4 umri = rout.get(RDOC_UMQTA);
//se la riga è già espressa in kg non devo fare niente, altrimenti:
if(umri != umkg)
{
//leggo e controllo l'unità di misura del peso
const TString4 ump = artlav.get(ANAMAG_UMP);
if(ump.empty())
{
warning_box(TR("Manca l'unità di misura del peso"));
break;
}
//leggo e controllo il peso dell'articolo
const real peso = artlav.get_real(ANAMAG_PESO);
if(peso == ZERO)
{
warning_box(TR("Manca il peso"));
break;
}
//leggo l'unità di misura dell'articolo e la quantità convertita all'unità di misura dell'articolo
const TString4 umart = artlav.um()[0].get(UMART_UM);
const real qta = artlav.convert_to_um(rout.get_real(RDOC_QTA), umart, umri, false);
//se l'articolo non è espresso in kg, allora:
if(umart != umkg)
{
//preparo una cache sulla tabella delle unità di misura
const TRectype& unita = cache().get("%UMS", umart);
//leggo e controllo se esiste l'unità di misura di riferimento
const TString4 umrif = unita.get("S7");
if(umrif.empty())
{
warning_box(TR("Manca l'unità di misura di riferimento"));
break;
}
if(umrif != umkg)
{
warning_box(TR("L'unità di misura di riferimento non è quella dei Kg"));
break;
}
//leggo e controllo il fattore di conversione
const real fatconv = unita.get_real("R10");
if(fatconv == ZERO)
{
warning_box(TR("Manca il fattore di conversione"));
break;
}
//se tutti i controlli sono andati a buon fine, converto la quantità e la scrivo sulla riga documento
const real qtaconv = qta * fatconv * peso;
rout.put(RDOC_QTA, qtaconv);
}
}
}
}
break;
case 1: //forfait = A VALORE FISSO
{
rout.put(RDOC_QTA, UNO); //qta fissa a UNO
@ -930,6 +996,14 @@ bool TFatturazione_lav_app::controlli_preliminari()
warning_box(TR("L'articolo per il raggruppamento non è configurato correttamente"));
corretto = false;
}
//controllo se l'unità di misura per la fatturazioni a Kg è settata
if(ini_get_string(CONFIG_DITTA, "lv", "UmKg").empty())
{
warning_box(TR("L'unità di misura per la fatturazione a Kg non è configurata correttamente"));
corretto = false;
}
return corretto;
}