868d6abb7 2025 -> 2026
7a88efc65 WIP: Importación de facturas de acreedores
63081666f Encabezados de archivos fuente: 2024 -> 2025.
ba2479571 Trabajo de migración en curso...
b6092df09 Copyright 2023 -> 2024
868d6abb7
2025 -> 2026868d6abb75cd191a892911ac8e45058932cf9074
diff --git a/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt b/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt
index 10a199366..e30c6198c 100644
--- a/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt
+++ b/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt
@@ -3,7 +3,7 @@
// Project ProjectForge Community Edition
// www.projectforge.org
//
-// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge tiene doble licencia.
//
7a88efc65
WIP: Importación de facturas de acreedores7a88efc65e53c291d88df1f29f6b5b88eec85581
diff --git a/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt b/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt
index f110c7828..10a199366 100644
--- a/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt
+++ b/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt
@@ -44,6 +44,27 @@ object CurrencyHelper {
}
}
+ /**
+ * Calcula el importe neto a partir del importe bruto y la tasa de IVA.
+ * Fórmula: Neto = Bruto / (1 + IVA)
+ *
+ * @param gross Si es nulo, se devuelve cero.
+ * @param vat Tasa de IVA como decimal (ej., 0.19 para 19%)
+ * @return Importe neto (redondeado a 2 decimales) o bruto si vat es nulo o cero.
+ */
+ @JvmStatic
+ fun getNetAmount(gross: BigDecimal?, vat: BigDecimal?): BigDecimal {
+ if (gross == null) {
+ return BigDecimal.ZERO
+ }
+ return if (NumberHelper.isZeroOrNull(vat)) {
+ gross
+ } else {
+ val divisor = BigDecimal.ONE.add(vat)
+ gross.divide(divisor, 2, RoundingMode.HALF_UP)
+ }
+ }
+
@JvmOverloads
@JvmStatic
fun multiply(val1: BigDecimal?, val2: BigDecimal?, round: Boolean = false): BigDecimal { 63081666f
Encabezados de archivos fuente: 2024 -> 2025.63081666f620fb87315f01b817e560e0b2f6a33a
diff --git a/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt b/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt
index bbc012701..f110c7828 100644
--- a/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt
+++ b/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt
@@ -3,7 +3,7 @@
// Project ProjectForge Community Edition
// www.projectforge.org
//
-// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge tiene doble licencia.
//
ba2479571
Trabajo de migración en curso...ba2479571a8408c62933df2d28125748a7a56383
diff --git a/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt b/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt
index fe18fa69a..bbc012701 100644
--- a/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt
+++ b/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt
@@ -24,6 +24,7 @@
package org.projectforge.framework.utils
import java.math.BigDecimal
+import java.math.RoundingMode
object CurrencyHelper {
/**
@@ -43,14 +44,20 @@ object CurrencyHelper {
}
}
+ @JvmOverloads
@JvmStatic
- fun multiply(val1: BigDecimal?, val2: BigDecimal?): BigDecimal {
- return if (val1 == null) {
+ fun multiply(val1: BigDecimal?, val2: BigDecimal?, round: Boolean = false): BigDecimal {
+ val ret = if (val1 == null) {
val2 ?: BigDecimal.ZERO
} else if (val2 == null) {
val1
} else {
val1.multiply(val2)
}
+ return if (round) {
+ ret.setScale(2, RoundingMode.HALF_UP)
+ } else {
+ ret
+ }
}
} b6092df09
Copyright 2023 -> 2024b6092df0927c4a3b161e888445f31dcab57493f2
diff --git a/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt b/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt
index 8004b052d..fe18fa69a 100644
--- a/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt
+++ b/projectforge-business/src/main/kotlin/org/projectforge/framework/utils/CurrencyHelper.kt
@@ -3,7 +3,7 @@
// Project ProjectForge Community Edition
// www.projectforge.org
//
-// Copyright (C) 2001-2023 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge tiene doble licencia.
//