diff --git a/internal/handler/transaction.go b/internal/handler/transaction.go index 5dfeff3..db3e9df 100644 --- a/internal/handler/transaction.go +++ b/internal/handler/transaction.go @@ -2,6 +2,7 @@ package handler import ( "fmt" + "math" "net/http" "spend-sparrow/internal/handler/middleware" "spend-sparrow/internal/service" @@ -193,7 +194,7 @@ func (h TransactionImpl) handleUpdateTransaction() http.HandlerFunc { handleError(w, r, fmt.Errorf("could not parse value: %w", service.ErrBadRequest)) return } - value := int64(valueF * service.DECIMALS_MULTIPLIER) + value := int64(math.Round(valueF * service.DECIMALS_MULTIPLIER)) timestamp, err := time.Parse("2006-01-02", r.FormValue("timestamp")) if err != nil { diff --git a/internal/service/transaction_recurring.go b/internal/service/transaction_recurring.go index 30d0f6b..434fc27 100644 --- a/internal/service/transaction_recurring.go +++ b/internal/service/transaction_recurring.go @@ -3,6 +3,7 @@ package service import ( "errors" "fmt" + "math" "spend-sparrow/internal/db" "spend-sparrow/internal/log" "spend-sparrow/internal/types" @@ -465,7 +466,7 @@ func (s TransactionRecurringImpl) validateAndEnrichTransactionRecurring( log.L.Error("transactionRecurring validate", "err", err) return nil, fmt.Errorf("could not parse value: %w", ErrBadRequest) } - valueInt := int64(valueFloat * DECIMALS_MULTIPLIER) + value := int64(math.Round(valueFloat * DECIMALS_MULTIPLIER)) if input.Party != "" { err = validateString(input.Party, "party") @@ -512,7 +513,7 @@ func (s TransactionRecurringImpl) validateAndEnrichTransactionRecurring( AccountId: accountUuid, TreasureChestId: treasureChestUuid, - Value: valueInt, + Value: value, CreatedAt: createdAt, CreatedBy: createdBy,