You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refactor XBuilder and XSender configurations to use ConfigMapping; update dependencies and Java version
- Changed XBuilderConfig from a class to an interface and applied ConfigMapping for better configuration handling.
- Updated method calls in DefaultXBuilder to use the new configuration method signatures.
- Refactored XSenderConfig to use ConfigMapping and added a default value for enableLoggingFeature.
- Updated dependency versions in xsender/core/pom.xml for commons-codec, junit-jupiter-engine, mockito-core, and cxf-codegen-plugin.
- Changed Java version in xsender/spring-boot-extension/integration-tests/pom.xml to 21 for compatibility with newer features.
Signed-off-by: Edwin Luis Barboza Pinedo <ibarboza27498@gmail.com>
**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
+
Suite de librerías Java para **Facturación Electrónica en Perú (SUNAT)**: creación, firma y envío de comprobantes de pago electrónicos conforme a UBL 2.1.
10
10
11
11
> [!TIP]
12
-
> Si buscas integrar facturación electrónica de manera rápida y estándar, estás en el lugar correcto.
12
+
> Si buscas integrar facturación electrónica SUNAT de manera rápida y estándar, estás en el lugar correcto.
13
13
14
14
---
15
15
16
-
## 📦 Ecosistema
16
+
## Requisitos
17
17
18
-
El proyecto se divide en módulos principales y extensiones para frameworks populares:
18
+
| Requisito | Versión mínima |
19
+
|--------------|----------------|
20
+
|**Java**| 21 |
21
+
|**Maven**| 3.8+ |
22
+
|**Quarkus**| 3.8+ (extensiones) |
23
+
|**Spring Boot**| 3.2+ (extensión) |
24
+
25
+
---
26
+
27
+
## Ecosistema
19
28
20
29
| Componente | Descripción | Maven Central |
21
30
|------------|-------------|---------------|
@@ -27,70 +36,216 @@ El proyecto se divide en módulos principales y extensiones para frameworks popu
27
36
28
37
---
29
38
30
-
## 🛠️ XBuilder
39
+
## Inicio rápido
40
+
41
+
### 1. Agregar dependencia
42
+
43
+
```xml
44
+
<dependency>
45
+
<groupId>io.github.project-openubl</groupId>
46
+
<artifactId>xbuilder</artifactId>
47
+
<version>LATEST</version>
48
+
</dependency>
49
+
```
31
50
32
-
XBuilder abstrae la complejidad de los estándares UBL y XML, permitiéndote construir documentos tributarios válidos escribiendo código Java simple.
51
+
### 2. Crear una Factura
33
52
34
-
### Características
35
-
-**Simple**: No necesitas manipular XML directamente ni conciliar namespaces complejos.
36
-
-**Completo**: Soporte para Facturas, Boletas, Notas de Crédito/Débito, Guías de Remisión y Percepciones/Retenciones.
37
-
-**Validado**: Realiza cálculos automáticos y validaciones básicas según normativa SUNAT.
53
+
```java
54
+
var invoice =Invoice.builder()
55
+
.serie("F001")
56
+
.numero(1)
57
+
.proveedor(Proveedor.builder()
58
+
.ruc("20123456789")
59
+
.razonSocial("Mi Empresa S.A.C.")
60
+
.build())
61
+
.cliente(Cliente.builder()
62
+
.nombre("Cliente Ejemplo")
63
+
.numeroDocumentoIdentidad("10467793549")
64
+
.tipoDocumentoIdentidad(Catalog6.RUC.toString())
65
+
.build())
66
+
.detalle(DocumentoVentaDetalle.builder()
67
+
.descripcion("Servicio de consultoría")
68
+
.cantidad(newBigDecimal("1"))
69
+
.precio(newBigDecimal("500"))
70
+
.build())
71
+
.build();
72
+
```
38
73
39
-
### Ejemplo de Uso
74
+
### 3. Generar XML UBL 2.1
40
75
41
76
```java
42
-
// Ejemplo simplificado de creación de factura
43
-
Invoice invoice =Invoice.builder()
44
-
.serie("F001")
45
-
.numero(1)
46
-
.proveedor(proveedor)
47
-
.cliente(cliente)
48
-
.detalle(detalle)
49
-
.build();
50
-
51
-
XMLInvoice xml =newInvoiceXMLBuilder().build(invoice);
77
+
var enricher =newContentEnricher(defaults, dateProvider);
0 commit comments