Finances
What this extension does
Section titled “What this extension does”Finances provides a calculation engine for financial documents.
It focuses on:
- deterministic totals,
- charge ordering by priority,
- support for taxes, discounts, withholdings, and fees,
- currency-aware calculations.
<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.finances.api</artifactId>
<version>26.4.0</version>
</dependency>
Gradle
Section titled “Gradle”implementation 'tools.dynamia.modules:tools.dynamia.modules.finances.api:26.4.0'
Frontend package
Section titled “Frontend package”No dedicated Node package is currently published for this extension.
This module is mainly a backend/domain calculation framework.
Java usage example
Section titled “Java usage example”import java.math.BigDecimal;import java.time.LocalDate;
FinancialDocument invoice = new FinancialDocument();invoice.setType(DocumentType.SALE);invoice.setStatus(DocumentStatus.DRAFT);invoice.setIssueDate(LocalDate.now());invoice.setCurrency("USD");
DocumentLine line = new DocumentLine();line.setDescription("Product A");line.setQuantity(new BigDecimal("10"));line.setUnitPrice(Money.of("100", "USD"));
Charge vat = new Charge();vat.setCode("VAT19");vat.setType(ChargeType.TAX);vat.setRateType(RateType.PERCENTAGE);vat.setValue(new BigDecimal("19"));vat.setPriority(20);
line.addCharge(vat);invoice.addLine(line);
FinancialCalculator calculator = new DefaultFinancialCalculator();calculator.calculateDocument(invoice);