Full width home advertisement

Facturacion CFDi

CFDi en Java

Post Page Advertisement [Top]

 

 EJEMPLO PARA CREAR UNA FACTURA CFDI 4.0 SAT DE MEXICO EN JAVA

 

                 configXML.setComprobanteTipo("FACTURA");

//CONFIGURAR LA RUTA DONDE SE ALMACENARA EL XML CFDI QUE SE VA A CREAR

String so=System.getProperty("os.name");

if(so.contains("Linux"))

{

//ruta donde se genera el xml sellado para enviarlo al pac (LINUX)

configXML.setRutaXML("/home/carlos/Documentos/xml/");

}

if(so.contains("Windows"))

{

//ruta donde se genera el xml sellado para enviarlo al pac (WINDOWS)

//configXML.setRutaXML("C:/proyectos_java/xml/");

configXML.setRutaXML("C:\\Users\\52871\\eclipse-workspace\\xml\\");

}

//CONFIGURAR EL NOMBRE DEL ARCHIVO XML (Con la extencion incluida)

configXML.setArchivoXML("ejemplo_factura40.xml");

//CONFIGURAR LA RUTA DONDE SE ALMACENAN LOS CERTIFICADOS CSD DE RFC EMISOR (AQUI SE USAN DE PRUEBAS PROPORCIONADOS POR EL SAT)

String KEY=System.getProperty("user.dir")+"/libcfdi40/pruebas/EKU9003173C9.key";

String CER=System.getProperty("user.dir")+"/libcfdi40/pruebas/EKU9003173C9.cer";

String CONTRASENA="12345678a";

configXML.setCer(CER);

configXML.setKey(KEY);

configXML.setContresena(CONTRASENA);

//CONFIGURAR SI SE VALIDARA EL XML CREADO , ANTES O DESPUES DE CREARLO

configXML.setValidar_pre("SI"); // VALIDAR LA INFORMACION INGRESADA ANTES DE CREAR EL ARCHIVO XML - TIEMPO DE EJECUCION 5 A 8 SEGUNDOS

//configXML.setValidar_pos("SI"); // VALIDAR LA INFORMACION INGRESADA DESPUES DE CREAR EL ARCHIVO XML - TIEMPO DE EJECUCION 5 A 8 SEGUNDOS

/*LLENAR EL XML COMPROBANTE CON LA INFORMACION DE LA VENTA DE TU BASE DE DATOS*/

Comprobante comprobante = new Comprobante();

comprobante.setSerie("A");

comprobante.setFolio("1");

/*FORMATO DE FECHA*/

String FORMATER = "yyyy-MM-dd'T'HH:mm:ss";

Date date = new Date();

XMLGregorianCalendar fechaComprobante = Utilerias.getFechaXMLGregorian(date, FORMATER);

comprobante.setFecha(fechaComprobante);

comprobante.setSubTotal(new BigDecimal(298.00).setScale(2, RoundingMode.HALF_UP));

comprobante.setTotal(new BigDecimal(345.68).setScale(2, RoundingMode.HALF_UP));

String moneda="MXN";

comprobante.setMoneda(Utilerias.getMonedaComprobante(moneda));

String tipocomprobante="I";

comprobante.setTipoDeComprobante(Utilerias.getTipoDeComprobante(tipocomprobante));

comprobante.setFormaPago("01");

String metododepago="PUE";

comprobante.setMetodoPago(Utilerias.getMetodoDePagoComprobante(metododepago));

//comprobante.setCondicionesDePago("CONDIDCIONES");

//comprobante.setDescuento(new BigDecimal(100.00));

comprobante.setTipoCambio(new BigDecimal(1.0).setScale(0, RoundingMode.HALF_UP));

comprobante.setLugarExpedicion("45079");

comprobante.setExportacion("01");

/*CFDI RELACIONADO*/

//CfdiRelacionado cfdiRelacionado = new CfdiRelacionado();

//cfdiRelacionado.setUUID("A39DA66B-52CA-49E3-879B-5C05185B0EF7");

/*CFDI RELACIONADOS*/

//CfdiRelacionados cfdiRelacionados = new CfdiRelacionados();

//cfdiRelacionados.setTipoRelacion("01");

//cfdiRelacionados.getCfdiRelacionado().add(cfdiRelacionado);

//comprobante.setCfdiRelacionados(cfdiRelacionados);

/*EMISOR*/

Emisor emisor = new Emisor();

emisor.setRfc("EKU9003173C9");

emisor.setRegimenFiscal("601");

emisor.setNombre("ESCUELA KEMPER URGATE");

comprobante.setEmisor(emisor);

/*RECEPTOR*/

Receptor receptor = new Receptor();

receptor.setNombre("UNIVERSIDAD ROBOTICA ESPAÑOLA");

receptor.setRfc("URE180429TM6");

receptor.setDomicilioFiscalReceptor("86991");

receptor.setRegimenFiscalReceptor("601");

//receptor.setNumRegIdTrib("0000000000000");

//String pais="MEX";

//CPais paisComprobante = Utilerias.getPaisComprobante(pais);

//receptor.setResidenciaFiscal(paisComprobante);

String usoCFDI="G01";

receptor.setUsoCFDI(Utilerias.getUsoCFDiComprobante(usoCFDI));

comprobante.setReceptor(receptor);


/*CONCEPTOS*/

Conceptos conceptos = new Conceptos();

/*CONCEPTO*/

Concepto concepto1 = new Concepto();

concepto1.setClaveProdServ("01010101");

concepto1.setClaveUnidad("ACT");

concepto1.setNoIdentificacion("0001");

concepto1.setCantidad(new BigDecimal(1));

concepto1.setUnidad("NA");

concepto1.setDescripcion("Concepto 1");

concepto1.setValorUnitario(new BigDecimal(99.00).setScale(2, RoundingMode.HALF_UP));

concepto1.setImporte(new BigDecimal(99.00).setScale(2, RoundingMode.HALF_UP));

concepto1.setObjetoImp("02");

/*IMPUESTOS CONCEPTO*/

Impuestos impuestosConcepto1 = new Impuestos();

/*IMPUESTOS TRASLADOS*/

Traslados trasladosConcepto1 = new Traslados();

/*IMPUESTO TRASLADO*/

Traslado trasladoConcepto1 = new Traslado();

trasladoConcepto1.setBase(new BigDecimal(99.00).setScale(2, RoundingMode.HALF_UP));

trasladoConcepto1.setImporte(new BigDecimal(15.84).setScale(2, RoundingMode.HALF_UP));

trasladoConcepto1.setImpuesto("002");

trasladoConcepto1.setTasaOCuota(new BigDecimal(0.160000).setScale(6, RoundingMode.HALF_UP));

String tipoFactorTraslado1="Tasa";

trasladoConcepto1.setTipoFactor(Utilerias.getTipoFactorImpuestoConceptoComprobante(tipoFactorTraslado1));

trasladosConcepto1.getTraslado().add(trasladoConcepto1);

impuestosConcepto1.setTraslados(trasladosConcepto1);

/*PREDAIL*/

//CuentaPredial predial = new CuentaPredial();

//predial.setNumero("23438222");

//concepto1.setCuentaPredial(predial);

concepto1.setImpuestos(impuestosConcepto1);

conceptos.getConcepto().add(concepto1);

//CONCEPTO 2

Concepto concepto2 = new Concepto();

concepto2.setClaveProdServ("01010101");

concepto2.setClaveUnidad("ACT");

concepto2.setNoIdentificacion("0001");

concepto2.setCantidad(new BigDecimal(1));

concepto2.setUnidad("NA");

concepto2.setDescripcion("Concepto 1");

concepto2.setValorUnitario(new BigDecimal(199.00).setScale(2, RoundingMode.HALF_UP));

concepto2.setImporte(new BigDecimal(199.00).setScale(2, RoundingMode.HALF_UP));

concepto2.setObjetoImp("02");

/*IMPUESTOS CONCEPTO*/

Impuestos impuestosConcepto2 = new Impuestos();

/*IMPUESTOS TRASLADOS*/

Traslados trasladosConcepto2 = new Traslados();

/*IMPUESTO TRASLADO*/

Traslado trasladoConcepto2 = new Traslado();

trasladoConcepto2.setBase(new BigDecimal(199.00).setScale(2, RoundingMode.HALF_UP));

trasladoConcepto2.setImporte(new BigDecimal(31.84).setScale(2, RoundingMode.HALF_UP));

trasladoConcepto2.setImpuesto("002");

trasladoConcepto2.setTasaOCuota(new BigDecimal(0.160000).setScale(6, RoundingMode.HALF_UP));

String tipoFactorTraslado2="Tasa";

trasladoConcepto2.setTipoFactor(Utilerias.getTipoFactorImpuestoConceptoComprobante(tipoFactorTraslado2));

trasladosConcepto2.getTraslado().add(trasladoConcepto2);

impuestosConcepto2.setTraslados(trasladosConcepto2);

concepto2.setImpuestos(impuestosConcepto2);

conceptos.getConcepto().add(concepto2);

comprobante.setConceptos(conceptos);

/*IMPUESTOS COMPROBANTE*/

Comprobante.Impuestos impuestosComprobante = new Comprobante.Impuestos();

/*

//RETENCIONES COMPROBANTE

Comprobante.Impuestos.Retenciones retencionesComprobante = new Comprobante.Impuestos.Retenciones();

//RETENCION COMPROBANTE

Comprobante.Impuestos.Retenciones.Retencion retencionComprobante = new Comprobante.Impuestos.Retenciones.Retencion();

retencionComprobante.setImporte(new BigDecimal(100.00));

retencionComprobante.setImpuesto("002");

retencionesComprobante.getRetencion().add(retencionComprobante);

impuestosComprobante.setRetenciones(retencionesComprobante);

*/

/*TRASLADOS COMPROBANTE*/

Comprobante.Impuestos.Traslados trasladosComprobante = new Comprobante.Impuestos.Traslados();

/*TRASLADO COMPROBANTE*/

Comprobante.Impuestos.Traslados.Traslado trasladoComprobante = new Comprobante.Impuestos.Traslados.Traslado();

trasladoComprobante.setImpuesto("002");

String tipoFactorComprobante="Tasa";

trasladoComprobante.setBase(new BigDecimal(298).setScale(2, RoundingMode.HALF_UP));

trasladoComprobante.setTipoFactor(Utilerias.getTipoFactorImpuestoConceptoComprobante(tipoFactorComprobante));

trasladoComprobante.setTasaOCuota(new BigDecimal(0.160000).setScale(6, RoundingMode.HALF_UP));

trasladoComprobante.setImporte(new BigDecimal(47.68).setScale(2, RoundingMode.HALF_UP));

trasladosComprobante.getTraslado().add(trasladoComprobante);

impuestosComprobante.setTraslados(trasladosComprobante);

//impuestosComprobante.setTotalImpuestosRetenidos(new BigDecimal(100));

impuestosComprobante.setTotalImpuestosTrasladados(new BigDecimal(47.68).setScale(2, RoundingMode.HALF_UP));

comprobante.setImpuestos(impuestosComprobante);

/*GENERAR XML*/

CrearXmlCFDi40 xml = new CrearXmlCFDi40(comprobante, configXML);

RespuestaGenerarXML res = xml.generarXMLCFDi40();


System.out.println("Ruta xml generado: "+res.getRutaArchivoXML());

System.out.println("Archivo XML en string: "+res.getArchivoXMLtexto());

System.out.println("Archivo XML en Base64: "+res.getArchivoXMLBase64());

}


}

 

 

Si Buscas una forma de implementar la factura electronica de manera facil

solo llenando una plantilla de texto con los datos de la factura

o llenando un arreglo de datos con los datos de la factura

tenemos una libreria para generar el xml cfdi de una factura electronica

visita nuestra pagina web

https://factura.cfdi.red/

 

No hay comentarios:

Publicar un comentario

Bottom Ad [Post Page]

| Designed by Colorlib