diff --git a/src/tf/tf0200.cpp b/src/tf/tf0200.cpp index f94754e53..ff9baee34 100644 --- a/src/tf/tf0200.cpp +++ b/src/tf/tf0200.cpp @@ -452,9 +452,12 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO if(codiva.tipo() == "NS") continue; // Prendo il tipo di registro - int tiporeg = TRegistro(curIva.get("23.REG").as_string()).tipo(); + TRegistro reg(curIva.get("23.REG").as_string()); + int tiporeg = reg.tipo(); + bool isCorrispettivo = reg.corrispettivi(); // Prendiamo l'imponibile real imp = curIva.get("25.IMPONIBILE").as_real(); + real imposta = curIva.get("25.IMPOSTA").as_real(); // Se è un movimento IvaXCassa o LiqDiff if(hasIXC && (curIva.get("23.IVAXCASSA").as_bool() || curIva.get("23.LIQDIFF").as_bool())) @@ -472,12 +475,24 @@ void ComLiqPerIva_mask::extractinator() // Per gli amici GTFO // Se non ha una riga di movimento non lo sommo TString keyRC = curIva.get("23.NUMREG").as_string(); keyRC << "|1"; if(!cache().get(LF_RMOV, keyRC).empty()) + { + // Controllo se è un corrispettivo non scorporato (imponibile e iva assieme) + if(isCorrispettivo && codiva.percentuale() > ZERO && imposta == ZERO) + { + // Nell'imponibile è presente il totale fattura, devo calcolare l'imposta e sottrarla + // Es iva 22% => imp : 122 = x : 100 + imp = imp * CENTO / (CENTO + codiva.percentuale()); + } totopatt += imp; + } } else totoppas += imp; } } + + // Sommiamo i corrispettivi al registro delle vendite + // Se ha attiva l'IVA x cassa calcolo le imposte (imponibili per comodità già calcolati sopra) if(hasIXC)