La versión de su navegador no está debidamente actualizada. Le recomendamos actualizarla a la versión más reciente.

Compartir

ejemplo complemento de pagos cfdi 3.3 java

Ejemplo complemento de pagos cfdi 3.3 java

package com.sistemaspymes.cfdi33;

 

la libreria cfdi33 te ayuda a generar facilmente el comprobante cfdi 3.3 segun las especificaciones del sat, ademas sella y valida el archivo xml cfdi creado, para mas informacion solicita un demo de la libreria aqui

 

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Date;

import javax.xml.datatype.XMLGregorianCalendar;

import mx.gob.sat.cfd._3.Comprobante;
import mx.gob.sat.cfd._3.Comprobante.Conceptos;
import mx.gob.sat.cfd._3.Comprobante.Emisor;
import mx.gob.sat.cfd._3.Comprobante.Receptor;
import mx.gob.sat.cfd._3.Comprobante.Conceptos.Concepto;
import mx.gob.sat.pagos.Pagos;
import mx.gob.sat.pagos.Pagos.Pago;
import mx.gob.sat.pagos.Pagos.Pago.DoctoRelacionado;
import mx.gob.sat.sitio_internet.cfd.catalogos.CPais;

import com.generarxml.cfdi33.Configuracion;
import com.generarxml.cfdi33.CrearXmlCFDi33;
import com.generarxml.cfdi33.Utilerias;
import com.generarxml.cfdi33.CrearXmlCFDi33.RespuestaGenerarXML;

public class EjemploPagos10 {

public EjemploPagos10() {}

public void ejecutar(){

Configuracion configXML = new Configuracion();
configXML.setLicencia("26f47f93f7a08083a7a53f3ac13bc98d");
configXML.setInfoSistema("SI");
configXML.setComprobanteTipo("PAGOS");

String so=System.getProperty("os.name");
if(so.contains("Linux"))
{
configXML.setRutaXML("/home/carlos/Documentos/xml/");
}
if(so.contains("Windows"))
{
configXML.setRutaXML("C:/proyectos_java/xml/");
}
configXML.setArchivoXML("ejemplo_factura_pagos10.xml");
//PRUEBAS
String KEY=System.getProperty("user.dir")+"/libcfdi33/pruebas/AAA010101AAA.key";
String CER=System.getProperty("user.dir")+"/libcfdi33/pruebas/AAA010101AAA.cer";
String CONTRASENA="12345678a";
configXML.setCer(CER);
configXML.setKey(KEY);
configXML.setContresena(CONTRASENA);

/*COMPROBANTE*/
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(0));
comprobante.setTotal(new BigDecimal(0));
String moneda="XXX";
comprobante.setMoneda(Utilerias.getMonedaComprobante(moneda));
String tipocomprobante="P";
comprobante.setTipoDeComprobante(Utilerias.getTipoDeComprobante(tipocomprobante));
comprobante.setFormaPago("01");
String metododepago="PUE";
comprobante.setMetodoPago(Utilerias.getMetodoDePagoComprobante(metododepago));
comprobante.setCondicionesDePago("CONDIDCIONES");

comprobante.setTipoCambio(new BigDecimal(1.0));
comprobante.setLugarExpedicion("45079");
comprobante.setConfirmacion("12345");

/*EMISOR*/
Emisor emisor = new Emisor();
emisor.setRfc("LAN8507268IA");
emisor.setRegimenFiscal("601");
emisor.setNombre("GRUPO SISTEMAS SOLUCIONES");
comprobante.setEmisor(emisor);

/*RECEPTOR*/
Receptor receptor = new Receptor();
receptor.setNombre("VENTA A PUBLICO EN GENERAL");
receptor.setRfc("XAXX010101000");
String pais="MEX";
CPais paisComprobante = Utilerias.getPaisComprobante(pais);
receptor.setResidenciaFiscal(paisComprobante);
String usoCFDI="D05";
receptor.setUsoCFDI(Utilerias.getUsoCFDiComprobante(usoCFDI));
comprobante.setReceptor(receptor);

/*CONCEPTOS*/
Conceptos conceptos = new Conceptos();
Concepto concepto = new Concepto();
concepto.setClaveProdServ("1010011");
concepto.setClaveUnidad("FO");
concepto.setNoIdentificacion("0000");
concepto.setCantidad(new BigDecimal(10.0));
concepto.setUnidad("TONELADA");
concepto.setDescripcion("Pago");
concepto.setValorUnitario(new BigDecimal(0));
concepto.setImporte(new BigDecimal(0));

conceptos.getConcepto().add(concepto);

comprobante.setConceptos(conceptos);

/*COMPLEMENTO PAGOS*/
Pagos pagos = new Pagos();
Pagos.Pago pago = new Pagos.Pago();

String FORMATER_PAGOS = "yyyy-MM-dd'T'HH:mm:ss";
Date datePagos = new Date();
XMLGregorianCalendar fechaPago = Utilerias.getFechaXMLGregorian(datePagos, FORMATER_PAGOS);
pago.setFechaPago(fechaPago);
pago.setFormaDePagoP("06");
String monedaP="MXN";
pago.setMonedaP(Utilerias.getMonedaComprobante(monedaP));
pago.setMonto(new BigDecimal(1000));
pago.setRfcEmisorCtaOrd("XEXX010101000");
pago.setCtaOrdenante("1234567890");

DoctoRelacionado doctoRelacionado= new DoctoRelacionado();
doctoRelacionado.setIdDocumento("970e4f32-0fe0-11e7-93ae-92361f002671");
String monedaDR="MXN";
doctoRelacionado.setMonedaDR(Utilerias.getMonedaComprobante(monedaDR));
String metodoPagoDR="PIP";
doctoRelacionado.setMetodoDePagoDR(Utilerias.getMetodoDePagoComprobante(metodoPagoDR));
doctoRelacionado.setNumParcialidad(new BigInteger("1"));
doctoRelacionado.setImpSaldoAnt(new BigDecimal(10000));
doctoRelacionado.setImpPagado(new BigDecimal(5000));
doctoRelacionado.setImpSaldoInsoluto(new BigDecimal(5000));
pago.getDoctoRelacionado().add(doctoRelacionado);


DoctoRelacionado doctoRelacionado1= new DoctoRelacionado();
doctoRelacionado1.setIdDocumento("970e4f32-0fe0-11e7-93ae-92361f002671");
String monedaDR1="USD";
doctoRelacionado1.setMonedaDR(Utilerias.getMonedaComprobante(monedaDR1));
doctoRelacionado1.setTipoCambioDR(new BigDecimal(20.00));
String metodoPagoDR1="PIP";
doctoRelacionado1.setMetodoDePagoDR(Utilerias.getMetodoDePagoComprobante(metodoPagoDR1));
doctoRelacionado1.setNumParcialidad(new BigInteger("2"));
doctoRelacionado1.setImpSaldoAnt(new BigDecimal(250.00));
doctoRelacionado1.setImpPagado(new BigDecimal(250.00));
doctoRelacionado1.setImpSaldoInsoluto(new BigDecimal(0));
pago.getDoctoRelacionado().add(doctoRelacionado1);

Pago.Impuestos impuestosPago = new Pago.Impuestos();
Pago.Impuestos.Retenciones retencionesPago = new Pago.Impuestos.Retenciones();
Pago.Impuestos.Retenciones.Retencion retencionPago = new Pago.Impuestos.Retenciones.Retencion();
retencionPago.setImporte(new BigDecimal(1600));
retencionPago.setImpuesto("002");
retencionesPago.getRetencion().add(retencionPago);
impuestosPago.setRetenciones(retencionesPago);

pago.getImpuestos().add(impuestosPago);

pagos.getPago().add(pago);

Comprobante.Complemento complemento = new Comprobante.Complemento();
complemento.getAny().add(pagos);

//comprobante.setComplemento(complemento); //AGREGAR COMPLEMENTO FORMA ANTERIOR
comprobante.getComplemento().add(complemento); //AGREGAR COMPLEMENTO NUEVA FORMA

/*GENERAR XML*/
CrearXmlCFDi33 xml = new CrearXmlCFDi33(comprobante, configXML);
RespuestaGenerarXML res = xml.generarXMLCFDi33();

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());
}
}

/** CLASE MAIN O EN TU MODULO JAVA**/

 
public class InicioDemos {


    public static void main(String[] args) {
        
        /**
         * Ejemplo generar xml sellado para factura CFDi 3.3
         * 
         * */
        EjemploCFDi33 ejemploCFDi33 = new EjemploCFDi33();
        ejemploCFDi33.ejecutar();
        
        
        /**
         * Ejemplo generar xml sellado de nomina 1.2
         * 
         * */
        //EjemploNomina12 nomina12 = new EjemploNomina12();
        //nomina12.ejecutar();
        
        /**
         * Ejemplo generar xml sellado de nomina 1.2
         * 
         * */
        //EjemploComercioExterior11 comercioExterior11 = new EjemploComercioExterior11();
        //comercioExterior11.ejecutar();
        
        
        /**
         * Ejemplo generar xml sellado del complemento de Pagos 1.0
         * 
         * */
        //EjemploPagos10 pagos10 = new EjemploPagos10();
        //pagos10.ejecutar();
    }

}

/** fin clase main Demo generar cfdi 3.3**/

solicita un demo de la libreria aqui