项目作者: carlosthe19916

项目描述 :
XML facturacion electronica - el projecto es reemplazado por https://github.com/project-openubl/xml-builder
高级语言: Java
项目地址: git://github.com/carlosthe19916/sunat-jaxb.git
创建时间: 2018-04-27T17:54:46Z
项目社区:https://github.com/carlosthe19916/sunat-jaxb

开源协议:Apache License 2.0

下载


Build Status
Coverage Status
Maintainability

Project OpenUBL

Este proyecto sentó las bases para el proyecto https://github.com/project-openubl/xml-builder. Este repositorio será, de hoy en adelante, de solo lectura. Vease xml-builder como la segunda generacion de creador de XMLs para la facturacion electronica. https://github.com/project-openubl/xml-builder

sunat-jaxb

Libreria que permite la creación de comprobantes de pago electrónicos de acuerdo al estadar UBL 2.

Crear Bean

  1. InvoiceBean invoiceBean = InvoiceBeanBuilder.InvoiceBean()
  2. .serie("F001")
  3. .numero(1)
  4. .tipoDocumento("01")
  5. .observaciones("Sin observaciones")
  6. .fecha(
  7. FechaBeanBuilder.FechaBean()
  8. .fechaEmision(Calendar.getInstance().getTime())
  9. .fechaVencimiento(Calendar.getInstance().getTime())
  10. .build()
  11. )
  12. .moneda(
  13. MonedaBeanBuilder.Moneda()
  14. .codigo("PEN")
  15. .tipoCambio(new BigDecimal("3.21"))
  16. .build()
  17. )
  18. .impuestos(
  19. ImpuestosBeanBuilder.Impuestos()
  20. .igv(new BigDecimal("10"))
  21. .isc(new BigDecimal("1"))
  22. .build()
  23. )
  24. .total(
  25. TotalBeanBuilder.Total()
  26. .pagar(new BigDecimal("5"))
  27. .descuentoGlobal(new BigDecimal("6"))
  28. .otrosCargos(new BigDecimal("5"))
  29. .build()
  30. )
  31. .totalInformacionAdicional(
  32. TotalInformacionAdicionalBeanBuilder.TotalInformacionAdicionalBean()
  33. .gravado(BigDecimal.ZERO)
  34. .inafecto(BigDecimal.ZERO)
  35. .exonerado(BigDecimal.ZERO)
  36. .gratuito(BigDecimal.ZERO)
  37. .build()
  38. )
  39. .proveedor(
  40. ProveedorBeanBuilder.ProveedorBean()
  41. .codigoTipoDocumento("6")
  42. .numeroDocumento("10467793549")
  43. .nombreComercial("Wolsnut4 S.A.")
  44. .razonSocial("Wolsnut4 Consultores")
  45. .codigoPostal("050101")
  46. .direccion("Jr. ayacucho 123")
  47. .region("Ayacucho")
  48. .provincia("Huamanga")
  49. .distrito("Jesus Nazareno")
  50. .codigoPais("PE")
  51. .build()
  52. )
  53. .cliente(
  54. ClienteBeanBuilder.ClienteBean()
  55. .codigoTipoDocumento("3")
  56. .numeroDocumento("46779354")
  57. .nombre("Carlos Esteban Feria Vila")
  58. .email("carlosthe19916@gmail.com")
  59. .direccion("Jr. carlos 997")
  60. .build()
  61. )
  62. .addDetalle(
  63. DetalleBeanBuilder.Detalle()
  64. .cantidad(BigDecimal.ONE)
  65. .precioUnitario(BigDecimal.TEN)
  66. .totalIgv(new BigDecimal("1.8"))
  67. .codigoTipoIgv(TipoAfectacionIgv.GRAVADO_OPERACION_ONEROSA.getCodigo())
  68. .descripcion("Lapiceros de color azul")
  69. .unidadMedida("NIU")
  70. .build()
  71. )
  72. .build();

Ahora que ya tienes el bean, conviértelo:

  1. InvoiceType invoiceType = BeanToType.toInvoiceType(invoiceBean, TimeZone.getDefault());

Puedes crear tambien un xml:

  1. oasis.names.specification.ubl.schema.xsd.invoice_2.ObjectFactory factory = new oasis.names.specification.ubl.schema.xsd.invoice_2.ObjectFactory();
  2. JAXBElement<InvoiceType> jaxbElement = factory.createInvoice(invoiceType);
  3. Document xmlDocument = JaxbUtils.toDocument(InvoiceType.class, jaxbElement);

Puedes crear el archivo:

  1. Transformer transformer = TransformerFactory.newInstance().newTransformer();
  2. Result output = new StreamResult(new File("output.xml"));
  3. Source input = new DOMSource(xmlDocument);
  4. transformer.transform(input, output);