Closed azaeldevel closed 7 years ago
Hola @reyesazael12,
Gracias, la idea es entre todos poder utilizar de manera eficiente esta librería.
CREO saber como solucionarlo, el problema es que al validarlo te dice que el valor generado por el código ( '2017-04-03T10:27:46.796-07:00') no es válido, según tengo entendido porque le estas agregando la zona horario y ciertos valores que NO deben ir en estos CFDi.
Te comparto una pequeña parte del código que yo en lo personal manejo para generar las fechas en XMLGregorianCalendar, obviamente no es el código completo, tu deberas adaptarlo a tu proceso, pero creo que el concepto quedará claro.
DatatypeFactory.newInstance().newXMLGregorianCalendar(*AÑO*, *MES*, *DÍA*, *HORA*, *MINUTOS*, *SEGUNDOS*, DatatypeConstants.FIELD_UNDEFINED, DatatypeConstants.FIELD_UNDEFINED)
Básicamente estamos declarando como DatatypeConstants.FIELD_UNDEFINED
los parámetros que no queremos definir que lo serían milisegundos y zona horaria.
Si esto te ayudo te encargo me notifiques para cerrar este issue.
Saludos.
Si asi es queda de esta forma:
TInformacionAduanera ia = new TInformacionAduanera();
ia.setNumero("OFIDUDKGKDHJ");
ia.setAduana("123654");
GregorianCalendar gc = new GregorianCalendar();
gc.setTime(new Date());
DatatypeFactory dtf = null;
try
{
dtf = DatatypeFactory.newInstance();
}
catch (DatatypeConfigurationException ex)
{
Logger.getLogger(InvoiceTest.class.getName()).log(Level.SEVERE, null, ex);
}
XMLGregorianCalendar fechaPed = dtf.newXMLGregorianCalendar(gc);
fechaPed.setHour(DatatypeConstants.FIELD_UNDEFINED);
fechaPed.setMinute(DatatypeConstants.FIELD_UNDEFINED); fechaPed.setSecond(DatatypeConstants.FIELD_UNDEFINED);
fechaPed.setMillisecond(DatatypeConstants.FIELD_UNDEFINED);
fechaPed.setTimezone(DatatypeConstants.FIELD_UNDEFINED);
ia.setFecha(fechaPed);
c1.getInformacionAduanera().add(ia);
Gracias
Aprovecho para felicitarlos por este proyecto es muy bueno me esta ayudando mucho ami, ya le he usado en varios componte con excelentes resulto.
Mi duda es respecto al proceso correcto para agregar un pedimiento no entiendo como funcian agrege el siguiente codigo
. . . TInformacionAduanera ia = new TInformacionAduanera(); ia.setNumero("OFIDUDKGKDHJ"); ia.setAduana("123654"); GregorianCalendar gc = new GregorianCalendar(); gc.setTime(new Date()); DatatypeFactory dtf = null; try { dtf = DatatypeFactory.newInstance(); } catch (DatatypeConfigurationException ex) { Logger.getLogger(InvoiceTest.class.getName()).log(Level.SEVERE, null, ex); } XMLGregorianCalendar fechaPed = dtf.newXMLGregorianCalendar(gc); ia.setFecha(fechaPed); c1.getInformacionAduanera().add(ia); . . .
me da el soguiente error:
org.xml.sax.SAXParseException at javax.xml.bind.util.JAXBSource$1.parse(JAXBSource.java:246) at javax.xml.bind.util.JAXBSource$1.parse(JAXBSource.java:231) ...... Caused by: javax.xml.bind.MarshalException
Alguien me puede dar una pista del error?
Saludos y gracias de antemano.