Skip to content

Commit 5a3728b

Browse files
committed
eat: actualización integral de documentación, ejemplos y templates
- Actualización completa del README.md con documentación detallada. - Ampliación de XBuilderController en el ejemplo 'springbot' para soportar más tipos de documentos (Reversión, Guías, etc.). - Refactorización de templates XML (factura, resumen, reversión) para alinearse con los estándares. - Ajustes de configuración en pom.xml y correcciones menores en la lógica de XBuilder. Signed-off-by: Edwin Luis Barboza Pinedo <ibarboza27498@gmail.com>
1 parent 9dea32a commit 5a3728b

File tree

69 files changed

+3973
-1528
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+3973
-1528
lines changed

README.md

Lines changed: 75 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,95 @@
1+
# XHandler Java
2+
13
[![License](https://img.shields.io/github/license/project-openubl/xhandler?logo=apache)](https://www.apache.org/licenses/LICENSE-2.0)
24
[![CI](https://github.com/project-openubl/xhandler/actions/workflows/ci.yml/badge.svg)](https://github.com/project-openubl/xhandler/actions/workflows/ci.yml)
3-
45
[![Project Chat](https://img.shields.io/badge/zulip-join_chat-brightgreen.svg?style=for-the-badge&logo=zulip)](https://projectopenubl.zulipchat.com/)
56
[![Supported JVM Versions](https://img.shields.io/badge/JVM--17-brightgreen.svg?style=for-the-badge&logo=Java)](https://github.com/project-openubl/xhandler/actions/)
67

7-
| Artifact | Version |
8-
|-------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
9-
| XBuilder | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/xbuilder)](https://search.maven.org/artifact/io.github.project-openubl/xbuilder/) |
10-
| XBuilder Quarkus extension | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/quarkus-xbuilder)](https://search.maven.org/artifact/io.github.project-openubl/quarkus-xbuilder/) |
11-
| XSender | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/xsender)](https://search.maven.org/artifact/io.github.project-openubl/xsender/) |
12-
| XSender Quarkus extension | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/quarkus-xsender)](https://search.maven.org/artifact/io.github.project-openubl/quarkus-xsender/) |
13-
| XSender Spring Boot extension | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/spring-boot-xsender)](https://search.maven.org/artifact/io.github.project-openubl/spring-boot-xsender/) |
8+
**XHandler Java** es una suite de herramientas diseñada para facilitar la integración de **Facturación Electrónica en Perú (SUNAT)** en aplicaciones Java. Este repositorio es un "monorepo" que alberga las librerías `XBuilder` y `XSender`, proporcionando una solución integral para crear, firmar y enviar comprobantes de pago electrónicos.
9+
10+
> [!TIP]
11+
> Si buscas integrar facturación electrónica de manera rápida y estándar, estás en el lugar correcto.
12+
13+
---
14+
15+
## 📦 Ecosistema
1416

15-
# XBuilder
17+
El proyecto se divide en módulos principales y extensiones para frameworks populares:
1618

17-
Librería Java para crear XMLs basados en UBL y los estándares de la SUNAT respecto a la facturación electrónica.
19+
| Componente | Descripción | Maven Central |
20+
|------------|-------------|---------------|
21+
| **XBuilder** | Creación y firma de XMLs (UBL 2.1) | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/xbuilder)](https://search.maven.org/artifact/io.github.project-openubl/xbuilder/) |
22+
| **XSender** | Envío de comprobantes a SUNAT/OSE | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/xsender)](https://search.maven.org/artifact/io.github.project-openubl/xsender/) |
23+
| **Quarkus XBuilder** | Extensión XBuilder para Quarkus | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/quarkus-xbuilder)](https://search.maven.org/artifact/io.github.project-openubl/quarkus-xbuilder/) |
24+
| **Quarkus XSender** | Extensión XSender para Quarkus | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/quarkus-xsender)](https://search.maven.org/artifact/io.github.project-openubl/quarkus-xsender/) |
25+
| **Spring Boot XSender** | Starter XSender para Spring Boot | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/spring-boot-xsender)](https://search.maven.org/artifact/io.github.project-openubl/spring-boot-xsender/) |
1826

19-
XBuilder esta diseñado para que puedas crear XMLs fácilmente.
27+
---
2028

21-
- Crea XMLs sin que necesites conocer nada sobre manejo de archivos XMLs.
22-
- Hace cálculos internos por ti.
23-
- Requiere solamente datos mínimos.
29+
## 🛠️ XBuilder
2430

25-
## ¿Qué puedes hacer con XBuilder?
31+
XBuilder abstrae la complejidad de los estándares UBL y XML, permitiéndote construir documentos tributarios válidos escribiendo código Java simple.
2632

27-
- Crear XMLs
28-
- Firmar XMLs
33+
### Características
34+
- **Simple**: No necesitas manipular XML directamente ni conciliar namespaces complejos.
35+
- **Completo**: Soporte para Facturas, Boletas, Notas de Crédito/Débito, Guías de Remisión y Percepciones/Retenciones.
36+
- **Validado**: Realiza cálculos automáticos y validaciones básicas según normativa SUNAT.
2937

30-
### Update snapshots
38+
### Ejemplo de Uso
3139

32-
```shell
33-
mvn clean test -Dxbuilder.snapshot.update
40+
```java
41+
// Ejemplo simplificado de creación de factura
42+
Invoice invoice = Invoice.builder()
43+
.serie("F001")
44+
.numero(1)
45+
.proveedor(proveedor)
46+
.cliente(cliente)
47+
.detalle(detalle)
48+
.build();
49+
50+
XMLInvoice xml = new InvoiceXMLBuilder().build(invoice);
3451
```
3552

36-
# XSender
53+
> [!NOTE]
54+
> Para actualizar los snapshots de prueba en desarrollo local, ejecuta:
55+
> `mvn clean test -Dxbuilder.snapshot.update`
56+
57+
---
58+
59+
## 🚀 XSender
60+
61+
XSender se encarga de la comunicación con los servicios SOAP de la SUNAT o de los Operadores de Servicios Electrónicos (OSE).
62+
63+
### Características
64+
- **Compatible**: Soporta los diversos endpoints de SUNAT (Beta/Producción) y OSEs.
65+
- **Resiliente**: Gestiona el envío de archivos ZIP y el procesamiento de respuestas (CDR, Tickets).
66+
- **Flexible**: Fácil integración con frameworks modernos como Quarkus y Spring Boot.
67+
68+
---
69+
70+
## 💻 Ejemplos
71+
72+
Explora la carpeta `examples/` para ver implementaciones de referencia:
73+
74+
- [**Spring Boot**](./examples/springbot): Ejemplo de integración completa usando Spring Boot.
75+
- [**Wildfly**](./examples/wildfly): Ejemplo para servidores de aplicaciones Jakarta EE.
76+
- [**Tomcat**](./examples/tomcat): Ejemplo ligero desplegable en Tomcat.
77+
- [**XBuilder/XSender**](./examples): Ejemplos "standalone" de uso de las librerías.
78+
79+
---
80+
81+
## 📚 Documentación
82+
83+
Para guías detalladas, referencia de API y tutoriales, consulta nuestra documentación oficial.
3784

38-
Libreria para realizar envíos de comprobantes electrónicos a los servicios web de la SUNAT y/o OSCE de acuerdo a lo
39-
especificado por la SUNAT.
85+
- 📖 **Sitio Web**: [project-openubl.github.io](https://project-openubl.github.io)
86+
- 💬 **Comunidad**: [Únete al chat en Zulip](https://projectopenubl.zulipchat.com/)
87+
- 🐛 **Soporte**: [Reportar un problema o discutir mejoras](https://github.com/project-openubl/xsender/discussions)
4088

41-
# Getting started
89+
---
4290

43-
- [Documentación](https://project-openubl.github.io)
44-
- [Discusiones](https://github.com/project-openubl/xsender/discussions)
91+
## 📄 Licencia
4592

46-
## License
93+
Este proyecto se distribuye bajo la licencia **Apache 2.0**. Consulta el archivo [LICENSE](LICENSE) para más detalles.
4794

48-
- [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
95+
Copyright © Project OpenUBL.

examples/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>io.github.project-openubl</groupId>
88
<artifactId>xhandler-parent</artifactId>
9-
<version>5.0.3-SNAPSHOT</version>
9+
<version>6.0.0-SNAPSHOT</version>
1010
<relativePath>../pom.xml</relativePath>
1111
</parent>
1212

examples/springbot/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>io.github.project-openubl</groupId>
88
<artifactId>examples-parent</artifactId>
9-
<version>5.0.3-SNAPSHOT</version>
9+
<version>6.0.0-SNAPSHOT</version>
1010
<relativePath>../pom.xml</relativePath>
1111
</parent>
1212

@@ -47,7 +47,7 @@
4747
<dependency>
4848
<groupId>io.github.project-openubl</groupId>
4949
<artifactId>spring-boot-xsender</artifactId>
50-
<version>4.1.4</version>
50+
<version>6.0.0-SNAPSHOT</version>
5151
</dependency>
5252

5353
<!-- Spring minimum libraries -->

0 commit comments

Comments
 (0)