Patch level : 10.0 742

Files correlati     : lv2.exe
Ricompilazione Demo : [ ]
Commento

Se richiedo i riferimenti in testata ora viene aggiunto il contenuto del campo note della prima bolla del mese se compilato
Modificato il calcolo del valore convenzionale per articolo nella fatturazione, ora fa una sola riga di conguaglio per tutti gli articoli che hanno questo forfait


git-svn-id: svn://10.65.10.50/trunk@20452 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-05-14 13:56:19 +00:00
parent e39e03a360
commit b9a6166637

View File

@ -496,6 +496,8 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
bool rifbol = contr.get_bool(LVCONDV_RIFBOL);
bool riftest = ini_get_bool(CONFIG_DITTA, "lv", "RifTest");
bool liqdiff = doc.clifor().get_int(CLI_ALLEG) == 7 && doc.clifor().vendite().get_bool(CFV_FATTSOSP);
real consvconv;
real impvconv;
TAssoc_array nolo_computed;
if (liqdiff)
@ -532,6 +534,11 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
pos = descr.find(" - n. ", pos + 1);
}
descr.strip_double_spaces();
const TString original_notes = doc.get(DOC_NOTE);
if (original_notes.full())
descr << '\n' << original_notes;
doc.put(DOC_NOTE, descr);
doc.destroy_row(1, true);
}
@ -879,32 +886,9 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
const real qta = rout.get_real(RDOC_QTA);
const real consumo = qta * rout.get_real(RDOC_PREZZO);
const real impconv = dot * rcont.get_real(LVRCONDV_VALCONV) * rcont.get_real(LVRCONDV_FORFPERCL) / 100;
//se il consumo è minore del ciclaggio, allora
if (consumo < impconv)
{
const bool cicl2rig = contr.get_bool(LVCONDV_CICLAGGIO);
//se il ciclaggio è su due linee, allora aggiungo una riga merce, che contiene
//il conguaglio al valore convenzionale, che ha come quantità la costante UNO
//e come prezzo la differenza tra l'importo convenzionale e il consumo;
//altimenti correggo quantità e prezzo direttamente sulla riga documento che sto analizzando
if (cicl2rig)
{
TRiga_documento& congrow = doc.insert_row(++i, "01");
doc.copy_data(congrow, rout);
congrow.put(RDOC_DESCR, "Conguaglio valore convenzionale");
congrow.put(RDOC_QTA, UNO);
congrow.put(RDOC_PREZZO, impconv - consumo);
}
else
{
rout.put(RDOC_DESCR, "Conguaglio valore convenzionale");
rout.put(RDOC_QTA, UNO);
rout.put(RDOC_PREZZO, impconv);
}
}
impvconv += impconv;
consvconv += consumo;
}
else
{
@ -984,6 +968,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
rout.put(RDOC_DESCR, "Valore convenzionale");
rout.put(RDOC_QTA, UNO);
rout.put(RDOC_PREZZO, impconvtot);
for (int k = doc.physical_rows(); k > i; k--)
{
TRiga_documento& delrow = doc[k];
@ -1028,6 +1013,51 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
default: break;
}
}
//se il consumo è minore del ciclaggio, allora
if (impvconv - consvconv > ZERO)
{
const bool cicl2rig = contr.get_bool(LVCONDV_CICLAGGIO);
const int rows = doc.physical_rows();
//se il ciclaggio è su due linee, allora aggiungo una riga merce, che contiene
//il conguaglio al valore convenzionale, che ha come quantità la costante UNO
//e come prezzo la differenza tra l'importo convenzionale e il consumo;
//altimenti correggo quantità e prezzo direttamente sulla riga documento che sto analizzando
TRiga_documento& congrow = doc.new_row("01");
const TString80 codartcon = ini_get_string(CONFIG_DITTA, "lv", "Codartcofix");
congrow.put(RDOC_CODART, codartcon);
congrow.put(RDOC_CHECKED, "X");
congrow.put(RDOC_CODARTMAG, codartcon);
congrow.put(RDOC_DESCR, "Conguaglio valore convenzionale");
congrow.put(RDOC_QTA, UNO);
TString8 codiva = doc.clifor().vendite().get(CFV_ASSFIS);
if (codiva.blank())
codiva = cache().get(LF_ANAMAG, codartcon, ANAMAG_CODIVA);
congrow.put(RDOC_CODIVA, codiva);
if (cicl2rig)
congrow.put(RDOC_PREZZO, impvconv - consvconv);
else
{
congrow.put(RDOC_PREZZO, impvconv);
for (int k = rows - 1; k >= 1; k--)
{
TRiga_documento& delrow = doc[k];
const TString80 codart = delrow.get(RDOC_CODART);
const TRectype& rcont = contr.row(codart);
const int tipoforf = rcont.get_int(LVRCONDV_TIPOFORF);
char lavtype = delrow.get_char("LVTYPE");
if (tipoforf == 4 && lavtype != 'D')
doc.destroy_row(k, true);
}
}
}
}
if (redditivita > ZERO && fatt_02() && !ragart && tipocan != 1)
{