diff --git a/src/main/java/it/gov/pagopa/receipt/pdf/datastore/utils/BizEventToReceiptUtils.java b/src/main/java/it/gov/pagopa/receipt/pdf/datastore/utils/BizEventToReceiptUtils.java index 36495aad..e9590be6 100644 --- a/src/main/java/it/gov/pagopa/receipt/pdf/datastore/utils/BizEventToReceiptUtils.java +++ b/src/main/java/it/gov/pagopa/receipt/pdf/datastore/utils/BizEventToReceiptUtils.java @@ -13,6 +13,7 @@ import org.slf4j.Logger; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -54,12 +55,8 @@ public static Receipt createReceipt(BizEvent bizEvent, BizEventToReceiptService eventData.setTransactionCreationDate( service.getTransactionCreationDate(bizEvent)); - eventData.setAmount( - bizEvent.getTransactionDetails() != null && bizEvent - .getTransactionDetails().getTransaction() != null ? - String.valueOf(bizEvent.getTransactionDetails().getTransaction().getGrandTotal()) : - bizEvent.getPaymentInfo() != null ? bizEvent.getPaymentInfo().getAmount() : null - ); + BigDecimal amount = getAmount(bizEvent); + eventData.setAmount(!amount.equals(BigDecimal.ZERO) ? amount.toString() : null); CartItem item = new CartItem(); item.setPayeeName(bizEvent.getCreditor() != null ? bizEvent.getCreditor().getCompanyName() : null); @@ -233,7 +230,7 @@ public static Receipt createCartReceipt(List bizEventList, BizEventToR private static BigDecimal getAmount(BizEvent bizEvent) { if (bizEvent.getTransactionDetails() != null && bizEvent.getTransactionDetails().getTransaction() != null) { - return new BigDecimal(bizEvent.getTransactionDetails().getTransaction().getGrandTotal()); + return formatAmount(bizEvent.getTransactionDetails().getTransaction().getGrandTotal()); } if (bizEvent.getPaymentInfo() != null && bizEvent.getPaymentInfo().getAmount() != null) { return new BigDecimal(bizEvent.getPaymentInfo().getAmount()); @@ -241,6 +238,12 @@ private static BigDecimal getAmount(BizEvent bizEvent) { return BigDecimal.ZERO; } + private static BigDecimal formatAmount(long grandTotal) { + BigDecimal amount = new BigDecimal(grandTotal); + BigDecimal divider = new BigDecimal(100); + return amount.divide(divider, 2, RoundingMode.UNNECESSARY); + } + private static String formatRemittanceInformation(String remittanceInformation) { if (remittanceInformation != null) { Pattern pattern = Pattern.compile(REMITTANCE_INFORMATION_REGEX);