Skip to content

Commit 2895a12

Browse files
Add docs and refactor classess (#73)
* Add docs * Add docs
1 parent ccf431f commit 2895a12

File tree

14 files changed

+158
-33
lines changed

14 files changed

+158
-33
lines changed

src/main/java/io/github/project/openubl/xbuilder/content/models/standard/general/CreditNote.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,15 @@
2121
import lombok.EqualsAndHashCode;
2222
import lombok.experimental.SuperBuilder;
2323

24+
/**
25+
* Clase base para CreditNote y DebitNote.
26+
*
27+
* @author <a href="mailto:carlosthe19916@gmail.com">Carlos Feria</a>
28+
*/
2429
@Data
2530
@SuperBuilder
2631
@EqualsAndHashCode(callSuper = true)
27-
public class CreditNote extends BaseDocumentoNota {
32+
public class CreditNote extends Note {
2833

2934
private List<DocumentoTributarioRelacionado_CreditNote> otrosDocumentosTributariosRelacionados;
3035
}

src/main/java/io/github/project/openubl/xbuilder/content/models/standard/general/CuotaDePago.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,22 @@
2121
import lombok.Builder;
2222
import lombok.Data;
2323

24+
/**
25+
* Cuota de pago para Invoice
26+
*
27+
* @author <a href="mailto:carlosthe19916@gmail.com">Carlos Feria</a>
28+
*/
2429
@Data
2530
@Builder
2631
public class CuotaDePago {
2732

33+
/**
34+
* Importe de la cuota
35+
*/
2836
private BigDecimal importe;
37+
38+
/**
39+
* Fecha de pago de la cuota
40+
*/
2941
private LocalDate fechaPago;
3042
}

src/main/java/io/github/project/openubl/xbuilder/content/models/standard/general/DebitNote.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
@Data
2525
@SuperBuilder
2626
@EqualsAndHashCode(callSuper = true)
27-
public class DebitNote extends BaseDocumentoNota {
27+
public class DebitNote extends Note {
2828

2929
private List<DocumentoTributarioRelacionado_DebitNote> otrosDocumentosTributariosRelacionados;
3030
}

src/main/java/io/github/project/openubl/xbuilder/content/models/standard/general/Detraccion.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@
2020
import lombok.Builder;
2121
import lombok.Data;
2222

23+
/**
24+
* Detracción asociada a un Invoice
25+
*
26+
* @author <a href="mailto:carlosthe19916@gmail.com">Carlos Feria</a>
27+
*/
2328
@Data
2429
@Builder
2530
public class Detraccion {

src/main/java/io/github/project/openubl/xbuilder/content/models/standard/general/Document.java

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,27 +32,75 @@
3232
@SuperBuilder
3333
public abstract class Document {
3434

35+
/**
36+
* Leyendas asociadas al comprobante
37+
*/
3538
@Singular
3639
private Map<String, String> leyendas;
3740

41+
/**
42+
* Moneda en la que se emite el comprobante
43+
*/
3844
private String moneda;
45+
46+
/**
47+
* Tasa del IGV. Ejemplo: 0.18
48+
*/
3949
private BigDecimal tasaIgv;
50+
51+
/**
52+
* Tasa del IBC. Ejemplo: 0.2
53+
*/
4054
private BigDecimal tasaIcb;
4155

56+
/**
57+
* Serie del comprobante
58+
*/
4259
private String serie;
60+
61+
/**
62+
* Número del comprobante
63+
*/
4364
private Integer numero;
4465

66+
/**
67+
* Fecha de emisión del comprobante
68+
*/
4569
private LocalDate fechaEmision;
70+
71+
/**
72+
* Hora de emisión del comprobante
73+
*/
4674
private LocalTime horaEmision;
4775

76+
/**
77+
* Cliente
78+
*/
4879
private Cliente cliente;
80+
81+
/**
82+
* Proveedor del bien o servicio
83+
*/
4984
private Proveedor proveedor;
85+
86+
/**
87+
* Persona que firma electrónicamente el comprobante
88+
*/
5089
private Firmante firmante;
5190

91+
/**
92+
* Total de impuestos a pagar
93+
*/
5294
private TotalImpuestos totalImpuestos;
5395

96+
/**
97+
* Detalle del comprobante
98+
*/
5499
@Singular
55100
private List<DocumentoDetalle> detalles;
56101

102+
/**
103+
* Guias de remision relacionadas
104+
*/
57105
private List<GuiaRemisionRelacionada> guiasRemisionRelacionadas;
58106
}

src/main/java/io/github/project/openubl/xbuilder/content/models/standard/general/DocumentoDetalle.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
@Builder
2525
public class DocumentoDetalle {
2626

27-
private Integer index;
2827
private String descripcion;
2928
private String unidadMedida;
3029
private BigDecimal cantidad;
Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,45 @@
2020
import lombok.EqualsAndHashCode;
2121
import lombok.experimental.SuperBuilder;
2222

23+
/**
24+
* Clase base para CreditNote y DebitNOte.
25+
*
26+
* @author <a href="mailto:carlosthe19916@gmail.com">Carlos Feria</a>
27+
*/
2328
@Data
2429
@SuperBuilder
2530
@EqualsAndHashCode(callSuper = true)
26-
public abstract class BaseDocumentoNota extends Document {
31+
public abstract class Note extends Document {
2732

33+
/**
34+
* Tipo de nota.
35+
* <p>
36+
* Nota de Crédito: Catalogo 09.
37+
* <p>
38+
* Nota de Débito: Catalogo 10.
39+
*/
2840
private String tipoNota;
2941

42+
/**
43+
* Serie y número del comprobante al que le aplica la nota de crédito/débito.
44+
* Ejemplo: F001-1
45+
*/
3046
private String comprobanteAfectadoSerieNumero;
47+
48+
/**
49+
* Tipo de del probante referido en {@link Note#comprobanteAfectadoSerieNumero}.
50+
* <p>
51+
* Catalogo 01.
52+
*/
3153
private String comprobanteAfectadoTipo;
54+
55+
/**
56+
* Texto sustentatorio para la emision de la nota
57+
*/
3258
private String sustentoDescripcion;
3359

60+
/**
61+
* Importe total de la nota
62+
*/
3463
private TotalImporteNote totalImporte;
3564
}

src/main/java/io/github/project/openubl/xbuilder/enricher/ContentEnricher.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
*/
1717
package io.github.project.openubl.xbuilder.enricher;
1818

19-
import io.github.project.openubl.xbuilder.content.models.standard.general.BaseDocumentoNota;
2019
import io.github.project.openubl.xbuilder.content.models.standard.general.CreditNote;
2120
import io.github.project.openubl.xbuilder.content.models.standard.general.DebitNote;
2221
import io.github.project.openubl.xbuilder.content.models.standard.general.Invoice;
22+
import io.github.project.openubl.xbuilder.content.models.standard.general.Note;
2323
import io.github.project.openubl.xbuilder.enricher.config.DateProvider;
2424
import io.github.project.openubl.xbuilder.enricher.config.Defaults;
2525
import io.github.project.openubl.xbuilder.enricher.kie.RulePhase;
@@ -72,7 +72,7 @@ public void enrich(DebitNote input) {
7272
enrichNote(input);
7373
}
7474

75-
private void enrichNote(BaseDocumentoNota input) {
75+
private void enrichNote(Note input) {
7676
LocalDate systemLocalDate = dateProvider.now();
7777

7878
Stream

src/main/java/io/github/project/openubl/xbuilder/enricher/kie/rules/enrich/body/anticipo/ComprobanteTipoAnticipoRule.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import io.github.project.openubl.xbuilder.content.models.utils.UBLRegex;
2626
import io.github.project.openubl.xbuilder.enricher.kie.AbstractBodyRule;
2727
import io.github.project.openubl.xbuilder.enricher.kie.RulePhase;
28+
import java.util.Optional;
2829
import java.util.function.Consumer;
2930

3031
/**
@@ -51,10 +52,10 @@ public void modify(Object object) {
5152
comprobanteTipo = Catalog12.BOLETA_DE_VENTA_EMITIDA_POR_ANTICIPOS.getCode();
5253
}
5354
} else {
54-
Catalog12 catalog12 = Catalog
55-
.valueOfCode(Catalog12.class, anticipo.getComprobanteTipo())
56-
.orElseThrow(Catalog.invalidCatalogValue);
57-
comprobanteTipo = catalog12.getCode();
55+
Optional<Catalog12> catalog12 = Catalog.valueOfCode(Catalog12.class, anticipo.getComprobanteTipo());
56+
if (catalog12.isPresent()) {
57+
comprobanteTipo = catalog12.get().getCode();
58+
}
5859
}
5960

6061
anticipo.setComprobanteTipo(comprobanteTipo);

src/main/java/io/github/project/openubl/xbuilder/enricher/kie/rules/enrich/header/note/ComprobanteAfectadoTipoRule.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,15 @@
2020
import static io.github.project.openubl.xbuilder.enricher.kie.rules.utils.Helpers.whenNote;
2121

2222
import io.github.project.openubl.xbuilder.content.catalogs.Catalog1;
23-
import io.github.project.openubl.xbuilder.content.models.standard.general.BaseDocumentoNota;
23+
import io.github.project.openubl.xbuilder.content.models.standard.general.Note;
2424
import io.github.project.openubl.xbuilder.content.models.utils.UBLRegex;
2525
import io.github.project.openubl.xbuilder.enricher.kie.AbstractHeaderRule;
2626
import io.github.project.openubl.xbuilder.enricher.kie.RulePhase;
2727
import java.util.function.Consumer;
2828

29+
/**
30+
* Rule for {@link Note#comprobanteAfectadoTipo}
31+
*/
2932
@RulePhase(type = RulePhase.PhaseType.ENRICH)
3033
public class ComprobanteAfectadoTipoRule extends AbstractHeaderRule {
3134

@@ -39,16 +42,16 @@ public boolean test(Object object) {
3942

4043
@Override
4144
public void modify(Object object) {
42-
Consumer<BaseDocumentoNota> consumer = note -> {
43-
String tipoComprobanteAfectado = null;
45+
Consumer<Note> consumer = note -> {
46+
String comprobanteAfectadoTipo = note.getComprobanteAfectadoTipo();
4447

4548
if (UBLRegex.FACTURA_SERIE_REGEX.matcher(note.getSerie()).matches()) {
46-
tipoComprobanteAfectado = Catalog1.FACTURA.getCode();
49+
comprobanteAfectadoTipo = Catalog1.FACTURA.getCode();
4750
} else if (UBLRegex.BOLETA_SERIE_REGEX.matcher(note.getSerie()).matches()) {
48-
tipoComprobanteAfectado = Catalog1.BOLETA.getCode();
51+
comprobanteAfectadoTipo = Catalog1.BOLETA.getCode();
4952
}
5053

51-
note.setComprobanteAfectadoTipo(tipoComprobanteAfectado);
54+
note.setComprobanteAfectadoTipo(comprobanteAfectadoTipo);
5255
};
5356
whenNote.apply(object).ifPresent(consumer);
5457
}

0 commit comments

Comments
 (0)