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:
parent
9efc9d73fd
commit
4b19014df1
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user