From 5462140c0471685bff0d3f23d49ebd9344c066d9 Mon Sep 17 00:00:00 2001 From: luca Date: Tue, 14 Sep 2010 10:35:08 +0000 Subject: [PATCH] Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : Casini su budget by Enrichetta: segnalazione 1 ok! (valori che calano) git-svn-id: svn://10.65.10.50/branches/R_10_00@20856 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ps/ps1001300.cpp | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/ps/ps1001300.cpp b/ps/ps1001300.cpp index b712e38b6..61618ebd1 100755 --- a/ps/ps1001300.cpp +++ b/ps/ps1001300.cpp @@ -13,6 +13,8 @@ #include "../ca/rmovana.h" #include "../ca/saldana.h" +#include "../cg/cglib03.h" + #include "../ve/velib.h" #include "ps1001.h" @@ -1354,6 +1356,11 @@ void TVariazione_budget_mask::calcola_impegnato(const TString& cms, const bool i continue; const char tipocf = doc.tipocf(); + + const TString& codcaus = doc.tipo().causale(); + const int caus_anno = doc.get_int(DOC_ANNO); + TCausale caus(codcaus, caus_anno); + const TipoIVA tiva = caus.iva(); //il documento virtuale è adesso un ordine non evaso //tarocchiamo il documento prendendo solo le righe non evase (almeno una ci sarà, perchè la query del recordset.. //..richiedeva che la rigadoc fosse non evasa, quindi quella riga nel doc esiste, magari in compagnia di altre) @@ -1368,10 +1375,25 @@ void TVariazione_budget_mask::calcola_impegnato(const TString& cms, const bool i if (_cms_supporto.get_pos(rigadoc_cms) >= 0) //deve avere commessa valida!!! { //è inutile fare un sacco di conti su una riga senza valore! - const real valore = rigadoc.importo(true, true, AUTO_DECIMALS); + real valore = rigadoc.importo(true, false); if (valore.is_zero()) continue; + //attenzione alle indetraibilità IVA!!!! (Enrichetta 14/09/2010) + //va sommata all'importo la % dovuta all'iva + if (tiva != iva_vendite) + { + const TString4 tipodet = rigadoc.get(RDOC_TIPODET); + int td; + const real pind = indetraibile_al(tipodet, caus, caus_anno, td); + if (pind > ZERO) + { + const real ivaind = (rigadoc.imposta(false) * pind) / CENTO; + valore += ivaind; + valore.round(2); + } + } + TString16 rigadoc_conto, rigadoc_fase; TString80 rigadoc_cdc; @@ -1392,8 +1414,6 @@ void TVariazione_budget_mask::calcola_impegnato(const TString& cms, const bool i if (find_conto_rigadoc(rigadoc, tipocf, zio)) { rigadoc_conto.format("%03d%03d%06ld", zio.gruppo(), zio.conto(), zio.sottoconto()); - if (rigadoc_conto == "004001000073") - int cazzone = 1; //cdc rigadoc_cdc = rigadoc.codice_costo(); //eventuale fase @@ -1407,6 +1427,10 @@ void TVariazione_budget_mask::calcola_impegnato(const TString& cms, const bool i if (index >= 0) { TToken_string& row = sf_righe.row(index); +#ifdef DBG + if (rigadoc_conto == "004001000053") + int cazzone = 1; +#endif real row_valore_impegnato = row.get(_pos_ipg); row_valore_impegnato += valore; row.add(row_valore_impegnato.string(), _pos_ipg);