Buenas tardes :
¿Como obtener un campo persistente con un valor redondeado a cero decimales? . Todos los ejemplos del tutorial muestran valores con decimales.
He intentado con @Calculation , pero no puedo referenciar funciones "custom" con parametros , solo hace referencia al uso de "sum()".
@DefaultValueCalculator funciona solo para valores iniciales (aparentemente).
La propiedad de referencia según los tutoriales es :
Tienes razón, lo he probado y el @Digits(integer=10, fraction=0) me da el mismo error que a ti. Por favor, añádelo como bug con un vínculo a este hilo para que lo arreglemos.
El bug ya está resuelto, ya se puede grabar sin errores cuando se hace un rendondeo con @Money y @Digits(fraction=0). El arreglo se incluirá en la versión 7.7.3, disponible en unas semanas.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Buenas tardes :
¿Como obtener un campo persistente con un valor redondeado a cero decimales? . Todos los ejemplos del tutorial muestran valores con decimales.
He intentado con @Calculation , pero no puedo referenciar funciones "custom" con parametros , solo hace referencia al uso de "sum()".
@DefaultValueCalculator funciona solo para valores iniciales (aparentemente).
La propiedad de referencia según los tutoriales es :
@ReadOnly
@Stereotype("DINERO")
@Calculation("sum(detalles.importe) * porcentajeIVA / 100")
BigDecimal iva;
Por ejemplo si da 1000.55 necesito redondear a 1001
Tengo claro que se debe usar algo como iva.round(new MathContext(3, RoundingMode.HALF_UP))
¿Cual debe ser la estrategia de código que permita este tratamiento en OpenXava ?
Gracias .
Hola Luis:
Prueba esto:
O esto:
Ayuda a otros en este foro como yo te ayudo a ti.
He probado con:
También he probado con:
@Stereotype("DINERO")
@Calculation("sum(detalles.importe) * porcentajeIVA / 100")
@Digits(integer=10, fraction=0)
BigDecimal iva;
En la vista del formulario "Facturas", redondea correctamente , pero al grabar da el siguiente mensaje :
Last edit: Luis Rodriguez 2022-09-26
Hola Luis:
Tienes razón, lo he probado y el @Digits(integer=10, fraction=0) me da el mismo error que a ti. Por favor, añádelo como bug con un vínculo a este hilo para que lo arreglemos.
Mientras tanto tendrás que usar una propiedad calculada para iva:
https://openxava.org/OpenXavaDoc/docs/calculated-properties_es.html
En una propiedad calculada, al usar Java, puedes hacer el redondeo que quieras.
Ayuda a otros en este foro como yo te ayudo a ti.
Agradeceré un ejemplo ya que he intentado hacerlo con una propiedad calculada para iva y no me funciona. Gracias
Hola Luis:
Mira este ejemplo donde la suma, el iva y el total son propiedades calculadas:
https://github.com/openxava/openxava/blob/master/invoicedemo/src/main/java/org/openxava/invoicedemo/model/Invoice.java
Si no lo consigues pon aquí el código tu intento y dinos como se comporta tu código.
Ayuda a otros en este foro como yo te ayudo a ti.
Hola Luis:
El bug ya está resuelto, ya se puede grabar sin errores cuando se hace un rendondeo con @Money y @Digits(fraction=0). El arreglo se incluirá en la versión 7.7.3, disponible en unas semanas.