Patch level : 10.0 592

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

Corretto valore convenzionale per articolo


git-svn-id: svn://10.65.10.50/trunk@20032 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-01-31 18:25:16 +00:00
parent 516de017a4
commit 8c78a38e87

View File

@ -574,23 +574,26 @@ 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
TRiga_documento& nolorow = doc.insert_row(++i, "01");
doc.copy_data(nolorow, rout);
TString80 descr("Nolo");
const int contrper = contr.get_int(LVCONDV_PERFAT);
if (dot != ZERO)
{
TRiga_documento& nolorow = doc.insert_row(++i, "01");
doc.copy_data(nolorow, rout);
TString80 descr("Nolo");
const int contrper = contr.get_int(LVCONDV_PERFAT);
switch (contrper)
{
case 0: descr << " per il giorno"; break;
case 1: descr << " per la settimana"; break;
case 2: descr << " per la quindicina"; break;
case 3: descr << " per il mese"; break;
default: break;
}
nolorow.put(RDOC_DESCR,descr);
switch (contrper)
{
case 0: descr << " per il giorno"; break;
case 1: descr << " per la settimana"; break;
case 2: descr << " per la quindicina"; break;
case 3: descr << " per il mese"; break;
default: break;
}
nolorow.put(RDOC_DESCR,descr);
nolorow.put(RDOC_QTA, dot);
nolorow.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_PREZNOL));
nolorow.put(RDOC_QTA, dot);
nolorow.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_PREZNOL));
}
}
break;
case 3: //forfait = CICLAGGIO
@ -974,7 +977,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
if (!riga.is_descrizione())
to_delete = (riga.imponibile() == ZERO && riga.get_real(RDOC_QTA) == ZERO);
}
if (to_delete)
if (to_delete || doc.totale_doc() == ZERO)
doc_out.destroy(id);
}
for (int id = doc_out.items() - 1; id >= 0 ; id--)
@ -1316,13 +1319,108 @@ void TFatturazione_lav_app::genera_bolle_nolo(TAssoc_array& cliela, TFatturazion
doc.put(DOC_STATO, stato);
doc.put(DOC_TIPOCF, 'C');
doc.put(DOC_CODCF, contr.get(LVCONDV_CODCF).as_int());
TLaundry_contract contratto(contr.cursor()->curr());
const long codcf = contratto.get_long(LVCONDV_CODCF);
const int codcont = contratto.get_int(LVCONDV_CODCONT);
doc.put(DOC_CODCF, codcf);
TToken_string key("C");
key.add(codcf);
const TRectype& clifo = cache().get(LF_CLIFO, key);
const TString4 codpag = clifo.get(CLI_CODPAG);
const long codabi = clifo.get_long(CLI_CODABI);
const long codcab = clifo.get_long(CLI_CODCAB);
const TString80 iban = clifo.get(CLI_IBAN);
//recupero i dati di interesse dal file CFVEN
const TRectype& cfven = cache().get(LF_CFVEN, key);
const long codabipr = cfven.get_long(CFV_CODABIPR);
const long codcabpr = cfven.get_long(CFV_CODCABPR);
const bool ragdoc = cfven.get_bool(CFV_RAGGDOC);
const TString8 codag1 = cfven.get(CFV_CODAG1);
const TString4 codmez = cfven.get(CFV_CODSPMEZZO);
const TString4 codporto = cfven.get(CFV_CODPORTO);
const TString4 codnote1 = cfven.get(CFV_CODNOTESP1);
const TString4 codnote2 = cfven.get(CFV_CODNOTESP2);
const TString4 codnote = cfven.get(CFV_CODNOTE);
const TString8 codvet1 = cfven.get(CFV_CODVETT1);
const TString8 codvet2 = cfven.get(CFV_CODVETT2);
const TString8 codvet3 = cfven.get(CFV_CODVETT3);
const real speseinc = cfven.get_real(CFV_PERCSPINC);
const TString4 catven = cfven.get(CFV_CATVEN);
const bool addbolli = cfven.get_bool(CFV_ADDBOLLI);
const TString8 codlist = cfven.get(CFV_CODLIST);
const TString4 codzona = cfven.get(CFV_CODZONA);
//gestione sconto
TString sconto;
const char tpgest = ini_get_string(CONFIG_DITTA, "ve", "GESSCO")[0];
switch(tpgest)
{
case 'P': sconto = cfven.get(CFV_SCONTO); break; //Percentuale su anagrafica cliente
case 'T': sconto = cache().get("%SCC", cfven.get(CFV_CODSCC), "S1"); break; //Gestione tabella sconti
case 'A': //Gestione archivio sconti
{
TConfig ditta(CONFIG_DITTA, "ve");
TLocalisamfile sconti(LF_SCONTI);
sconti.put("TIPO", "I");
if(ditta.get_bool("SCOKEY", "ve", 1))
sconti.put("CODCAT", cfven.get(CFV_CATVEN));
TString16 cod;
if(ditta.get_bool("SCOKEY", "ve", 2))
cod.format("%-2s", (const char*)cfven.get(CFV_CODSCC));
else
cod = " ";
if(ditta.get_bool("SCOKEY", "ve", 3))
{
TString8 tmp;
tmp.format("%-2s", (const char*)cfven.get(CFV_CODZONA));
cod << tmp;
}
else
cod << " ";
if(ditta.get_bool("SCOKEY", "ve", 4))
cod << clifo.get(CLI_CODPAG);
sconti.put("CODART", cod);
if (sconti.read() == NOERR)
sconto = sconti.get("SCONTO");
}
case 'N': //sconto non gestito
default: break;
}
doc.put(DOC_CODPAG, codpag);
doc.put(DOC_CODABIA, codabi);
doc.put(DOC_CODCABA, codcab);
doc.put(DOC_IBAN, iban);
doc.put(DOC_CODABIP, codabipr);
doc.put(DOC_CODCABP, codcabpr);
doc.put(DOC_CODAGVIS, codag1);
doc.put(DOC_CODSPMEZZO, codmez);
doc.put(DOC_ZONA, codzona);
doc.put(DOC_CODPORTO, codporto);
doc.put(DOC_CODNOTESP1, codnote1);
doc.put(DOC_CODNOTESP2, codnote2);
doc.put(DOC_CODNOTE, codnote);
doc.put(DOC_CODVETT1, codvet1);
doc.put(DOC_CODVETT2, codvet2);
doc.put(DOC_CODVETT3, codvet3);
doc.put(DOC_CATVEN, catven);
doc.put(DOC_CODLIST, codlist);
doc.put(DOC_PERCSPINC, speseinc);
doc.put(DOC_ADDBOLLI, addbolli);
doc.put(DOC_SCONTOPERC, sconto);
TString str;
str << "USE LVRCONDV\n"
<< "FROM CODCF=" << codcf << " CODCONT=" << codcont << "\n"
@ -1362,7 +1460,7 @@ void TFatturazione_lav_app::genera_bolle_nolo(TAssoc_array& cliela, TFatturazion
if (ini_get_bool(CONFIG_DITTA, "lv", "RifTest"))
elab.put("B15", true); //forzo la descrizione abbreviata
if (doc.rows() > 0)
if (doc.physical_rows() > 0)
{
elab.elabora(doc_in, doc_out, _msk->get_date(F_DATAFAT));
int err = doc_out.write();