diff --git a/cg/cg6800.cpp b/cg/cg6800.cpp index bd4517856..d84bd4f68 100755 --- a/cg/cg6800.cpp +++ b/cg/cg6800.cpp @@ -736,6 +736,7 @@ bool TVar_mov::setta_campi_maschera_iva(TMask& m) else if (_righe) { + TString tipodoc(_rec_mov->get(MOV_TIPODOC)); real imponibile (_tiva->get_real(RMI_IMPONIBILE)); TString codiva (_tiva->get (RMI_CODIVA)); real imposta (_tiva->get_real(RMI_IMPOSTA)); @@ -745,6 +746,11 @@ bool TVar_mov::setta_campi_maschera_iva(TMask& m) int conto = _tiva->get_int (RMI_CONTO); long sottoc = _tiva->get_long(RMI_SOTTOCONTO); + if ((tipodoc == "NC" || tipodoc == "ST") && imponibile < 0.0) + { + imponibile *= -1; + imposta *= -1; + } m.set(F_IMPONIBILE, imponibile.string()); m.set(F_CODIVA, codiva); m.set(F_IMPOSTA, imposta.string()); @@ -1502,7 +1508,9 @@ void TVar_mov::registra_IVA(TMask& m) } else if (_righe) - { + { + TString tipodoc(_rec_mov->get(MOV_TIPODOC)); + long numreg = m.get_long(F_NUMREG); int numrig = m.get_int (F_NUMRIG); real imponibile (m.get (F_IMPONIBILE)); @@ -1513,6 +1521,12 @@ void TVar_mov::registra_IVA(TMask& m) int gruppo = m.get_int (F_GRUPPO); int conto = m.get_int (F_CONTO); long sottoc = m.get_long(F_SOTTOCONTO); + + if ((tipodoc=="NC" || tipodoc =="ST") && imponibile > 0.0) + { + imponibile *= -1; + imposta *= -1; + } registra_file_temp_riva(numreg,numrig,imponibile,codiva,imposta,tipodet,tipocr,gruppo,conto,sottoc); }