NibiruOS / afip

AFIP es un módulo de integración con los servicios, obviamente, de AFIP (http://www.afip.gob.ar/).
Apache License 2.0
7 stars 5 forks source link

Manejo de exceptions #7

Closed lainz closed 3 years ago

lainz commented 4 years ago

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.

lainz commented 4 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?

lbrasseur commented 4 years ago

Perdón, no tuve tiempo de ver esto, me pongo ni bien pueda.

lainz commented 3 years ago

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)
igentiletti commented 3 years ago

Hola, WsfeException contiene el método:

public Iterable<? extends WsfeError> getErrors() {
        return errors;
}
public interface WsfeError {
    int getCode();

    String getMsg();
}

espero sea de ayuda!

lainz commented 3 years ago

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 .

lainz commented 3 years ago

Funciona bien, muchas gracias =)

lainz commented 3 years ago

Ando de vuelta por acá, no me acordaba como se llamaba para ver los errores. Mil gracias por la librería.

lbrasseur commented 3 years ago

Buenísimo que te haya servido!