Closed lainz closed 3 years ago
Al parecer no hay forma de leer los errores? Al parecer el componente de AFIP siempre mira si viene el CAE, sino da exception, pero de esa forma no me deja leer el mensaje de error nunca
val resp = WsfeComponents.wsfeManager().fecaeSolicitar(inData)
Log.e("AFIP", resp.errors.err[0].toString())
venta!!.cae = resp.feDetResp.fecaeDetResponse[0].cae
venta!!.caefchvto = resp.feDetResp.fecaeDetResponse[0].caeFchVto
Por ejemplo al poner un CUIT no valido (cuit "0"), me da
E/AFIP: org.simpleframework.xml.core.ValueRequiredException: Empty value for @org.simpleframework.xml.Element(data=false, name=CAE, required=true, type=void) on field 'cae' protected java.lang.String ar.com.system.afip.wsfe.service.api.FECAEDetResponse.cae in class ar.com.system.afip.wsfe.service.api.FECAEDetResponse at line 1
Se ve que mira primero si en la respuesta esta el CAE, como no está porque hubo un error sale la exception.
Como podría hacer para poder leer
Log.e("AFIP", resp.errors.err[0].toString())
(si es que se lee de esa forma) si nunca puedo salir de
val resp = WsfeComponents.wsfeManager().fecaeSolicitar(inData)
por ValueRequiredException?
Perdón, no tuve tiempo de ver esto, me pongo ni bien pueda.
Hola que tal, quería saber si hay forma de leer esta exception, es al informar CAEA, cuando la fecha del comprobante es anterior al ultimo informado, para poder mostrarle al usuario.
W/System.err: WsfeException [errors=[Err [code=704, msg=La fecha del comprobante (CbteFch) debe ser mayor o igual a la fecha del último comprobante informado para igual tipo de comprobante y punto de venta.]]]
at ar.com.system.afip.wsfe.business.impl.WsfeManagerImpl.throwErrors(WsfeManagerImpl.java:255)
at ar.com.system.afip.wsfe.business.impl.WsfeManagerImpl.checkResponseErrors(WsfeManagerImpl.java:226)
at ar.com.system.afip.wsfe.business.impl.WsfeManagerImpl.checkErrors(WsfeManagerImpl.java:208)
at ar.com.system.afip.wsfe.business.impl.WsfeManagerImpl.lambda$fecaeaRegInformativo$9$WsfeManagerImpl(WsfeManagerImpl.java:77)
W/System.err: at ar.com.system.afip.wsfe.business.impl.-$$Lambda$WsfeManagerImpl$1DGNpdJQBwmgjqcci2IMlLo6C00.apply(Unknown Source:6)
at ar.com.system.afip.wsaa.business.impl.WsaaTemplateImpl.runAuhtenticated(WsaaTemplateImpl.java:55)
at ar.com.system.afip.wsfe.business.impl.WsfeManagerImpl.fecaeaRegInformativo(WsfeManagerImpl.java:77)
at com.arandusoft.posberry.ventas.VentaViewModel.caeaRegInformativo(VentaViewModel.kt:1822)
Hola, WsfeException contiene el método:
public Iterable<? extends WsfeError> getErrors() {
return errors;
}
public interface WsfeError {
int getCode();
String getMsg();
}
espero sea de ayuda!
Gracias. Lo voy a probar.
El jue., 17 de dic. de 2020 11:09, igentiletti notifications@github.com escribió:
Hola, WsfeException contiene el método:
public Iterable<? extends WsfeError> getErrors() {
return errors;
}
public interface WsfeError {
int getCode();
String getMsg();
}
espero sea de ayuda!
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/NibiruOS/afip/issues/7#issuecomment-747460404, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA7QUQ7UGSEFLQM4KFJ66Q3SVIGJ3ANCNFSM4KBVU7GA .
Funciona bien, muchas gracias =)
Ando de vuelta por acá, no me acordaba como se llamaba para ver los errores. Mil gracias por la librería.
Buenísimo que te haya servido!
Por ejemplo si ocurre un error de AFIP en los montos, en numero de comprobante o en los datos en general, como hago para capturar el error especifico. Hay exceptions especificas para cada error, o es una generica que devuelve el texto de error de AFIP nomas?
No pude revisarlo bien, y quería saber ya que dependiendo del error genero una factura alternativa.
Si no hay internet o es error de conexión con afip, hago un documento en la base de datos que mas adelante puede transformarse en factura electrónica.
Pero si es error en los datos necesito informar al usuario.