Patch level : 10.0 602
Files correlati : lv2.exe Ricompilazione Demo : [ ] Commento : Sort delle fatture, corretto doppionolo se ci sono due articoli uguali git-svn-id: svn://10.65.10.50/trunk@20036 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
07191e0de1
commit
8ecd229662
@ -298,6 +298,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
|
||||
bool elcons = contr.get_bool(LVCONDV_ELCONS);
|
||||
bool rifbol = contr.get_bool(LVCONDV_RIFBOL);
|
||||
bool riftest = ini_get_bool(CONFIG_DITTA, "lv", "RifTest");
|
||||
TAssoc_array nolo_computed;
|
||||
|
||||
if (doc.physical_rows() > 0 && doc[1].is_descrizione())
|
||||
{
|
||||
@ -574,9 +575,10 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
|
||||
//di partenza, poi costruisco la descrizione in base alla periodicità di fatturazione,
|
||||
//metto la qta uguale alla dotazione che ho appena letto
|
||||
//e prendo il prezzo nolo dalla riga contratto
|
||||
if (dot != ZERO)
|
||||
if (dot != ZERO && nolo_computed.objptr(codart) == NULL)
|
||||
{
|
||||
TRiga_documento& nolorow = doc.insert_row(++i, "01");
|
||||
nolo_computed.add(codart, codart);
|
||||
doc.copy_data(nolorow, rout);
|
||||
TString80 descr("Nolo");
|
||||
const int contrper = contr.get_int(LVCONDV_PERFAT);
|
||||
@ -753,17 +755,27 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
|
||||
break;
|
||||
case 5: //forfait = FISSO SU DOTAZIONE INIZIALE
|
||||
{
|
||||
rout.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_IMPFISART));
|
||||
rout.put(RDOC_QTA, reclav.get_real("DOTIN"));
|
||||
const TString80 codartorig=rout.get(RDOC_CODART);
|
||||
rout.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_IMPFISART));
|
||||
const real dotin = reclav.get_real("DOTIN");
|
||||
|
||||
for (int h = doc.physical_rows(); h > i; h--)
|
||||
{
|
||||
TRiga_documento& delrow = doc[h];
|
||||
const TString80 codart=delrow.get(RDOC_CODART);
|
||||
if ( codartorig == codart)
|
||||
doc.destroy_row(h, true);
|
||||
}
|
||||
rout.put(RDOC_QTA, dotin);
|
||||
|
||||
if (rout.get(RDOC_DESCR).blank())
|
||||
{
|
||||
const TString & descr = cached_article(codart).get(RDOC_DESCR);
|
||||
|
||||
rout.put(RDOC_DESCR, descr);
|
||||
}
|
||||
|
||||
const TString80 codartorig=rout.get(RDOC_CODART);
|
||||
|
||||
for (int h = doc.physical_rows(); h > i; h--)
|
||||
{
|
||||
TRiga_documento& delrow = doc[h];
|
||||
const TString80 codart=delrow.get(RDOC_CODART);
|
||||
if ( codartorig == codart)
|
||||
doc.destroy_row(h, true);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default: break;
|
||||
@ -979,6 +991,8 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
|
||||
}
|
||||
if (to_delete || doc.totale_doc() == ZERO)
|
||||
doc_out.destroy(id);
|
||||
else
|
||||
doc.sort_rows(RDOC_CODART);
|
||||
}
|
||||
for (int id = doc_out.items() - 1; id >= 0 ; id--)
|
||||
{
|
||||
@ -1066,9 +1080,11 @@ TRiga_documento& TFatturazione_lavanderie::find_or_create_row(TDocumento& doc_ou
|
||||
|
||||
//scorro le righe documetno
|
||||
for (r = doc_out.physical_rows(); r > 0; r--)
|
||||
{
|
||||
//se trovo una riga raggruppabile e di lavanderia, allora interrompo il ciclo
|
||||
if (doc_out[r].raggruppabile(rin, _campi_raggruppamento) && (doc_out[r].get_char("LVTYPE") == lavtype))
|
||||
break;
|
||||
}
|
||||
|
||||
//se non ho trovato la riga, ne creo una nuova
|
||||
if (r <= 0)
|
||||
@ -1195,7 +1211,7 @@ void TFatturazione_lavanderie::create_row(TDocumento& doc_out, const TRiga_docum
|
||||
//per il suo segno al prezzo ricavato sopra o da contratto (o da magazzino), o da bolla
|
||||
if (!sgndotin.is_zero() && !sgncons.is_zero())
|
||||
{
|
||||
TRiga_documento& rc = find_or_create_row(doc_out, rin, 'I');
|
||||
TRiga_documento& rc = find_or_create_row(doc_out, rin, 'C');
|
||||
rc.add(RDOC_QTA, sgndotin * qta);
|
||||
rc.put(RDOC_PREZZO, prezzo);
|
||||
}
|
||||
@ -1326,6 +1342,7 @@ void TFatturazione_lav_app::genera_bolle_nolo(TAssoc_array& cliela, TFatturazion
|
||||
|
||||
const long codcf = contratto.get_long(LVCONDV_CODCF);
|
||||
const int codcont = contratto.get_int(LVCONDV_CODCONT);
|
||||
const bool fattnocons = !contratto.get_bool(LVCONDV_FORFNOCONS);
|
||||
|
||||
doc.put(DOC_CODCF, codcf);
|
||||
TToken_string key("C");
|
||||
@ -1434,8 +1451,11 @@ void TFatturazione_lav_app::genera_bolle_nolo(TAssoc_array& cliela, TFatturazion
|
||||
for(bool ok = rcont.move_first(); ok; ok = rcont.move_next())
|
||||
{
|
||||
TRectype& riga = rcont.cursor()->curr();
|
||||
const int tipoforf = riga.get_int(LVRCONDV_TIPOFORF);
|
||||
|
||||
if (riga.get_int(LVRCONDV_TIPOFORF) == 2)
|
||||
if (tipoforf > 0 &&
|
||||
((tipoforf == 2) ||
|
||||
(tipoforf != 2 && fattnocons)))
|
||||
{
|
||||
TRiga_documento& rdoc = doc.new_row("21");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user