Skip to content

Commit 441493e

Browse files
chore: add documentation for new extensions and update existing content in multiple languages
1 parent c329964 commit 441493e

24 files changed

Lines changed: 1654 additions & 1045 deletions
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
---
2+
title: Dashboard
3+
description: Crea paginas tipo dashboard y widgets personalizados en Dynamia Platform
4+
---
5+
6+
import { dynamiaToolsVersion } from '../../../../../astro.config.mjs';
7+
8+
9+
## Que hace esta extension
10+
11+
Dashboard permite crear paginas visuales con widgets reutilizables (graficas, KPIs, tablas) usando descriptores de vista tipo `dashboard`.
12+
13+
Casos comunes:
14+
15+
- tableros de ventas,
16+
- indicadores operativos,
17+
- paneles de monitoreo por modulo.
18+
19+
## Maven
20+
21+
<pre><code className="language-xml">{`<dependency>
22+
<groupId>tools.dynamia.modules</groupId>
23+
<artifactId>tools.dynamia.modules.dashboard</artifactId>
24+
<version>${dynamiaToolsVersion}</version>
25+
</dependency>`}</code></pre>
26+
27+
## Gradle
28+
29+
<pre><code className="language-groovy">{`implementation 'tools.dynamia.modules:tools.dynamia.modules.dashboard:${dynamiaToolsVersion}'`}</code></pre>
30+
31+
## Paquete frontend
32+
33+
Actualmente no hay un paquete Node dedicado para esta extension.
34+
35+
Usa el stack frontend base (`@dynamia-tools/sdk` o `@dynamia-tools/vue`) para consumir metadata y paginas expuestas por tu backend.
36+
37+
## Ejemplo de uso en Java
38+
39+
```yaml
40+
# mainDashboard.yml
41+
view: dashboard
42+
id: mainDashboard
43+
44+
fields:
45+
monthSales:
46+
params:
47+
widget: sales-chart
48+
type: month
49+
50+
totalSales:
51+
params:
52+
widget: total-sales
53+
range: lastMonth
54+
```
55+
56+
```java
57+
import tools.dynamia.integration.sterotypes.Provider;
58+
import tools.dynamia.navigation.Module;
59+
import tools.dynamia.navigation.ModuleProvider;
60+
import tools.dynamia.zk.viewers.ViewerPage;
61+
62+
@Provider
63+
public class MyAppModuleProvider implements ModuleProvider {
64+
65+
@Override
66+
public Module getModule() {
67+
var module = new Module("my-app", "My App");
68+
module.addPage(new ViewerPage("sales-dashboard", "Sales Dashboard", "mainDashboard"));
69+
return module;
70+
}
71+
}
72+
```
73+
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
title: Email y SMS
3+
description: Servicios asincronos de correo y SMS para Dynamia Platform
4+
---
5+
6+
import { dynamiaToolsVersion } from '../../../../../astro.config.mjs';
7+
8+
## Que hace esta extension
9+
10+
Email y SMS agrega capacidades de mensajeria asincrona para aplicaciones Dynamia.
11+
12+
Incluye:
13+
14+
- cuentas y plantillas de correo,
15+
- envio de mensajes SMS,
16+
- logs y UI de gestion.
17+
18+
## Maven
19+
20+
<pre><code className="language-xml">{`<dependency>
21+
<groupId>tools.dynamia.modules</groupId>
22+
<artifactId>tools.dynamia.modules.email</artifactId>
23+
<version>${dynamiaToolsVersion}</version>
24+
</dependency>
25+
26+
<dependency>
27+
<groupId>tools.dynamia.modules</groupId>
28+
<artifactId>tools.dynamia.modules.email.ui</artifactId>
29+
<version>${dynamiaToolsVersion}</version>
30+
</dependency>`}</code></pre>
31+
32+
## Gradle
33+
34+
<pre><code className="language-groovy">{`implementation 'tools.dynamia.modules:tools.dynamia.modules.email:${dynamiaToolsVersion}'
35+
implementation 'tools.dynamia.modules:tools.dynamia.modules.email.ui:${dynamiaToolsVersion}'`}</code></pre>
36+
37+
## Paquete frontend
38+
39+
Actualmente no hay un paquete Node dedicado para esta extension.
40+
41+
Las apps frontend normalmente integran esta capacidad via APIs/acciones expuestas por tu backend Dynamia.
42+
43+
## Ejemplo de uso en Java
44+
45+
```java
46+
import org.springframework.beans.factory.annotation.Autowired;
47+
import org.springframework.stereotype.Service;
48+
import tools.dynamia.modules.email.domain.EmailMessage;
49+
import tools.dynamia.modules.email.services.EmailService;
50+
import tools.dynamia.modules.email.sms.SMSMessage;
51+
import tools.dynamia.modules.email.sms.SMSService;
52+
53+
@Service
54+
public class NotificationService {
55+
56+
@Autowired
57+
private EmailService emailService;
58+
59+
@Autowired
60+
private SMSService smsService;
61+
62+
public void sendNotification(String emailTo, String mobile, String message) {
63+
var email = new EmailMessage(emailTo, "Notificacion", message);
64+
var sms = new SMSMessage(mobile, message);
65+
66+
emailService.send(email);
67+
smsService.send(sms);
68+
}
69+
}
70+
```
71+
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
---
2+
title: Entity Files
3+
description: Adjunta y expone archivos asociados a entidades, con almacenamiento opcional en S3
4+
---
5+
6+
import { dynamiaToolsVersion } from '../../../../../astro.config.mjs';
7+
8+
## Que hace esta extension
9+
10+
Entity Files permite adjuntar archivos a entidades JPA y almacenar el contenido binario en:
11+
12+
- disco local (por defecto), o
13+
- AWS S3 (modulo opcional).
14+
15+
Tambien incluye acciones UI para gestionar archivos desde vistas CRUD.
16+
17+
## Maven
18+
19+
<pre><code className="language-xml">{`<dependency>
20+
<groupId>tools.dynamia.modules</groupId>
21+
<artifactId>tools.dynamia.modules.entityfiles</artifactId>
22+
<version>${dynamiaToolsVersion}</version>
23+
</dependency>
24+
25+
<dependency>
26+
<groupId>tools.dynamia.modules</groupId>
27+
<artifactId>tools.dynamia.modules.entityfiles.ui</artifactId>
28+
<version>${dynamiaToolsVersion}</version>
29+
</dependency>
30+
31+
<dependency>
32+
<groupId>tools.dynamia.modules</groupId>
33+
<artifactId>tools.dynamia.modules.entityfiles.s3</artifactId>
34+
<version>${dynamiaToolsVersion}</version>
35+
</dependency>`}</code></pre>
36+
37+
## Gradle
38+
39+
<pre><code className="language-groovy">{`implementation 'tools.dynamia.modules:tools.dynamia.modules.entityfiles:${dynamiaToolsVersion}'
40+
implementation 'tools.dynamia.modules:tools.dynamia.modules.entityfiles.ui:${dynamiaToolsVersion}'
41+
implementation 'tools.dynamia.modules:tools.dynamia.modules.entityfiles.s3:${dynamiaToolsVersion}'`}</code></pre>
42+
43+
## Paquete frontend
44+
45+
```bash
46+
pnpm add @dynamia-tools/files-sdk @dynamia-tools/sdk
47+
```
48+
49+
```typescript
50+
import { DynamiaClient } from '@dynamia-tools/sdk';
51+
import { FilesApi } from '@dynamia-tools/files-sdk';
52+
53+
const client = new DynamiaClient({ baseUrl: import.meta.env.VITE_API_URL, token: '...' });
54+
const files = new FilesApi(client.http);
55+
56+
const archivo = await files.download('factura.pdf', 'uuid-aqui');
57+
const url = files.getUrl('images/logo.png', 'uuid-aqui');
58+
```
59+
60+
## Ejemplo de uso en Java
61+
62+
```java
63+
import jakarta.persistence.Entity;
64+
import jakarta.persistence.OneToOne;
65+
import tools.dynamia.modules.entityfile.domain.EntityFile;
66+
67+
@Entity
68+
public class Person {
69+
70+
@OneToOne
71+
private EntityFile photo;
72+
73+
@OneToOne
74+
private EntityFile cover;
75+
}
76+
```
77+
78+
```java
79+
import java.io.File;
80+
import org.springframework.beans.factory.annotation.Autowired;
81+
import org.springframework.stereotype.Component;
82+
import tools.dynamia.modules.entityfile.UploadFileInfo;
83+
import tools.dynamia.modules.entityfile.service.EntityFileService;
84+
85+
@Component
86+
public class PersonFilesService {
87+
88+
@Autowired
89+
private EntityFileService entityFileService;
90+
91+
public void attachPhoto(File file, Person person) {
92+
var info = new UploadFileInfo(file);
93+
var photo = entityFileService.createEntityFile(info, person);
94+
person.setPhoto(photo);
95+
}
96+
}
97+
```
98+
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
title: File Importer
3+
description: Importa y procesa archivos de hoja de calculo con ejecucion asincrona y monitoreo de progreso
4+
---
5+
6+
import { dynamiaToolsVersion } from '../../../../../astro.config.mjs';
7+
8+
## Que hace esta extension
9+
10+
File Importer facilita subir y procesar archivos de hoja de calculo (Excel), con ejecucion asincrona, monitoreo de progreso y soporte para cancelacion.
11+
12+
Puedes implementar logica de importacion personalizada con acciones propias.
13+
14+
## Maven
15+
16+
<pre><code className="language-xml">{`<dependency>
17+
<groupId>tools.dynamia.modules</groupId>
18+
<artifactId>tools.dynamia.modules.importer</artifactId>
19+
<version>${dynamiaToolsVersion}</version>
20+
</dependency>
21+
22+
<dependency>
23+
<groupId>tools.dynamia.modules</groupId>
24+
<artifactId>tools.dynamia.modules.importer.ui</artifactId>
25+
<version>${dynamiaToolsVersion}</version>
26+
</dependency>`}</code></pre>
27+
28+
## Gradle
29+
30+
<pre><code className="language-groovy">{`implementation 'tools.dynamia.modules:tools.dynamia.modules.importer:${dynamiaToolsVersion}'
31+
implementation 'tools.dynamia.modules:tools.dynamia.modules.importer.ui:${dynamiaToolsVersion}'`}</code></pre>
32+
33+
## Paquete frontend
34+
35+
Actualmente no hay un paquete Node dedicado para esta extension.
36+
37+
Usa los endpoints/acciones del backend desde el frontend a traves de `@dynamia-tools/sdk`.
38+
39+
## Ejemplo de uso en Java
40+
41+
```java
42+
import tools.dynamia.actions.ActionEvent;
43+
import tools.dynamia.crud.AbstractCrudAction;
44+
import tools.dynamia.modules.importer.ui.Importer;
45+
46+
public class ImportPeopleCrudAction extends AbstractCrudAction {
47+
48+
public ImportPeopleCrudAction() {
49+
setName("Import");
50+
setApplicableClass(Person.class);
51+
}
52+
53+
@Override
54+
public void actionPerformed(ActionEvent evt) {
55+
var importer = new Importer();
56+
importer.addColumn("Code");
57+
importer.addColumn("Name");
58+
importer.addColumn("Start Date", "dateOfStart");
59+
importer.addAction(new ImportPeopleExcelAction());
60+
importer.show("Import People");
61+
}
62+
}
63+
```
64+
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
title: Finances
3+
description: Framework de calculo financiero para impuestos, descuentos, cargos y totales
4+
---
5+
6+
import { dynamiaToolsVersion } from '../../../../../astro.config.mjs';
7+
8+
## Que hace esta extension
9+
10+
Finances provee un motor de calculo para documentos financieros.
11+
12+
Se enfoca en:
13+
14+
- totales deterministas,
15+
- aplicacion de cargos por prioridad,
16+
- soporte para impuestos, descuentos, retenciones y fees,
17+
- calculos conscientes de moneda.
18+
19+
## Maven
20+
21+
<pre><code className="language-xml">{`<dependency>
22+
<groupId>tools.dynamia.modules</groupId>
23+
<artifactId>tools.dynamia.modules.finances.api</artifactId>
24+
<version>${dynamiaToolsVersion}</version>
25+
</dependency>`}</code></pre>
26+
27+
## Gradle
28+
29+
<pre><code className="language-groovy">{`implementation 'tools.dynamia.modules:tools.dynamia.modules.finances.api:${dynamiaToolsVersion}'`}</code></pre>
30+
31+
## Paquete frontend
32+
33+
Actualmente no hay un paquete Node dedicado para esta extension.
34+
35+
Este modulo es principalmente un framework de calculo en backend/dominio.
36+
37+
## Ejemplo de uso en Java
38+
39+
```java
40+
import java.math.BigDecimal;
41+
import java.time.LocalDate;
42+
43+
FinancialDocument invoice = new FinancialDocument();
44+
invoice.setType(DocumentType.SALE);
45+
invoice.setStatus(DocumentStatus.DRAFT);
46+
invoice.setIssueDate(LocalDate.now());
47+
invoice.setCurrency("USD");
48+
49+
DocumentLine line = new DocumentLine();
50+
line.setDescription("Producto A");
51+
line.setQuantity(new BigDecimal("10"));
52+
line.setUnitPrice(Money.of("100", "USD"));
53+
54+
Charge vat = new Charge();
55+
vat.setCode("VAT19");
56+
vat.setType(ChargeType.TAX);
57+
vat.setRateType(RateType.PERCENTAGE);
58+
vat.setValue(new BigDecimal("19"));
59+
vat.setPriority(20);
60+
61+
line.addCharge(vat);
62+
invoice.addLine(line);
63+
64+
FinancialCalculator calculator = new DefaultFinancialCalculator();
65+
calculator.calculateDocument(invoice);
66+
```
67+

0 commit comments

Comments
 (0)