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
This commit is contained in:
luca 2010-09-14 10:35:08 +00:00
parent b72f5caffb
commit 5462140c04

View File

@ -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);