From 57ee9309b699d881a9da2a645840b4d70f839da0 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 3 Sep 2009 14:14:20 +0000 Subject: [PATCH] Patch level : 10.0 410 Files correlati : ve0.exe ve6.exe Ricompilazione Demo : [ ] Commento Aggiunte spese di incasso e bolli sui movimenti analitici se si usa il piano dei conti contabile git-svn-id: svn://10.65.10.50/trunk@19245 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/velib04.h | 3 +- ve/velib04f.cpp | 74 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 1 deletion(-) diff --git a/ve/velib04.h b/ve/velib04.h index 0e199d165..b3821bf80 100755 --- a/ve/velib04.h +++ b/ve/velib04.h @@ -603,7 +603,8 @@ class TContabilizzazione_analitica : public TElaborazione // velib04f TCache_ripartizioni _rip; TToken_string _search_seq; - TBill _sco_perc_bill_an, _sco_imp_bill_an; + TBill _sco_perc_bill_an, _sco_imp_bill_an, _spin_billa, _spin_billv, _spbo_billa, _spbo_billv; + TString _spin_cod, _spbo_cod; TCache_causali* _caus; TString16 _fld_cms_cont; long _total_docs;// Numero di documenti contabilizzati diff --git a/ve/velib04f.cpp b/ve/velib04f.cpp index 9920257a1..5c44787d7 100755 --- a/ve/velib04f.cpp +++ b/ve/velib04f.cpp @@ -558,6 +558,7 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis TImporto totdoc; // Totale movimento analitico const TipoIVA tiva = caus.iva(); + const bool vendita = tiva == iva_vendite; TBill bill; caus.bill(RIGA_IVA_NON_DETRAIBILE, bill); // Scandisco le righe del documento, @@ -672,6 +673,56 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis } } + if (_usepdcc) + { + const TBill& cinc = (vendita ? _spin_billv : _spin_billa); + const TBill& cbol = (vendita ? _spbo_billv : _spbo_billa); + real tot_netto = doc.totale_netto(); + TString4 codiva_es; + const real sp_incasso = doc.spese_incasso(tot_netto, decimals, _netto); + + doc.iva_esente(codiva_es); + TCodiceIVA ivasp(codiva_es.not_empty() ? codiva_es : doc.codiva_spese()); + + // Aggiunge le spese bolli + tot_netto += sp_incasso + ivasp.imposta(sp_incasso, decimals) - doc.ritenute(); + const real sp_bolli = doc.bolli(tot_netto, decimals, _netto); + + if (sp_incasso != ZERO && cinc.is_analitico()) + { + TRectype& rmov = mov.new_row(); + rmov.put(RMOVANA_ANNOES, annoes); + rmov.put(RMOVANA_CODCONTO, cinc.string(0x8)); + rmov.put(RMOVANA_CODCCOSTO, doc.codice_costo()); + rmov.put(RMOVANA_CODCMS, doc.codice_commessa()); + rmov.put(RMOVANA_CODFASE, doc.fase_commessa()); + + TImporto imp(sezione, sp_incasso); + + imp.normalize(); + rmov.put(RMOVANA_SEZIONE, imp.sezione()); + rmov.put(RMOVANA_IMPORTO, imp.valore()); + totdoc += imp; + } + + if (sp_bolli != ZERO && cbol.is_analitico()) + { + TRectype& rmov = mov.new_row(); + rmov.put(RMOVANA_ANNOES, annoes); + rmov.put(RMOVANA_CODCONTO, cbol.string(0x8)); + rmov.put(RMOVANA_CODCCOSTO, doc.codice_costo()); + rmov.put(RMOVANA_CODCMS, doc.codice_commessa()); + rmov.put(RMOVANA_CODFASE, doc.fase_commessa()); + + TImporto imp(sezione, sp_bolli); + + imp.normalize(); + rmov.put(RMOVANA_SEZIONE, imp.sezione()); + rmov.put(RMOVANA_IMPORTO, imp.valore()); + totdoc += imp; + } + } + if (can_write && mov.rows() > 0) { totdoc.normalize(); @@ -782,6 +833,29 @@ void TContabilizzazione_analitica::init() _fld_cms_cont = conf.get("CMSCNTFIELD","ve"); _sco_imp_bill_an.set(gr,co,so); + gr = conf.get_int("SPINCODCONA","ve",1); + co = conf.get_int("SPINCODCONA","ve",2); + so = conf.get_long("SPINCODCONA","ve",3); + _spin_billa.set(gr,co,so); + + gr = conf.get_int("SPINCODCONV","ve",1); + co = conf.get_int("SPINCODCONV","ve",2); + so = conf.get_long("SPINCODCONV","ve",3); + _spin_billv.set(gr,co,so); + + gr = conf.get_int("SPBOCODCONA","ve",1); + co = conf.get_int("SPBOCODCONA","ve",2); + so = conf.get_long("SPBOCODCONA","ve",3); + _spbo_billa.set(gr,co,so); + + gr = conf.get_int("SPBOCODCONV","ve",1); + co = conf.get_int("SPBOCODCONV","ve",2); + so = conf.get_long("SPBOCODCONV","ve",3); + _spbo_billv.set(gr,co,so); + + _spin_cod = conf.get("SPINCODIVA","ve"); + _spbo_cod = conf.get("SPBOCODIVA","ve"); + _caus = new TCache_causali; }