#37854
amebis wrote:
La forma para hacer esto es con iReport.

Por defecto Libertya no tiene ninguna logica diferente para el trato de facturas tanto A, B C, etc. Todas trabajan de manera igual.

Saludos

Estuve jugando un poco con el iReport. Ya logro que me calcule bien los montos por línea, pero lo que no logro expresar bien es el subtotal en las facturas A.
Es decir, el campo subtotal lo escondo cuando es una factura B usando lógica en la expresión del campo, pero cuando se trata de una factura A, el monto me lo expresa con todos los decimales ya que se debe al tipo de campo “BigDecimal”.
Dicho eso, me faltaría encontrar una forma de redondear a 2 decimales.

EDIT: Ya lo logré. Les paso cómo sería por si alguno lo necesita. Tal vez haya otra manera más fácil o rápida.

Expresión del Precio Unitario

Code:
$P{NROCOMPROBANTE}.substring(0,1).equals(“A”) ? $F{PRECIO_UNITARIO} : $F{PRECIO_UNITARIO}.add($F{TAX_AMT})

Expresión del Total de línea

Code:
$P{NROCOMPROBANTE}.substring(0,1).equals(“A”) ? $F{IMPORTE} : $F{CANTIDAD}.multiply($F{PRECIO_UNITARIO}.add($F{TAX_AMT}))

Expresión del Subtotal

Code:
$P{NROCOMPROBANTE}.substring(0,1).equals(“A”) ? new DecimalFormat(“#0.##”).format($P{SUBTOTAL}) : “”

La lógica que usé para esconder los campos que NO deben mostrarse en caso de Factura B es siempre el mismo. El mismo sería

Code:
$P{NROCOMPROBANTE}.substring(0,1).equals(“A”) ? SI ES FACTURA A HACE ESTO : SI ES FACTURA B HACE ESTO

Saludos.