Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

verificar la respuesta de sunat (cdr) #40

Closed
abelnexus opened this issue Oct 23, 2018 · 7 comments
Closed

verificar la respuesta de sunat (cdr) #40

abelnexus opened this issue Oct 23, 2018 · 7 comments

Comments

@abelnexus
Copy link

hola amigo, cuando se envia un comprobante puede ser aceptado, alertado o con error

EJEMPLO DE ERROR "ALERTADO" (donde no hay cdr y esta mal construido el xml)

object(Greenter\Model\Response\Error)#191 (2) { ["code":protected]=> string(4) "3103" ["message":protected]=> string(270) "El producto del factor y monto base de la afectación del IGV/IVAP no corresponde al monto de afectacion de linea. - Detalle: xxx.xxx.xxx value='ticket: 1540309566050 error: Error en la linea: 1 Tributo: 1000: 3103 (nodo: "cac:TaxSubtotal/cbc:TaxAmount" valor: "36.00")'" }

CUANDO ES ACEPTADO:

Respuesta SUNAT:

ID: F001-123
CODE:0
DESCRIPTION:La Factura numero F001-123, ha sido aceptada

CUANDO HAY ERROR:

No esta autorizado a enviar comprobantes bajo el formato UBL 2.0. El ruc: 00000000000 debe generar su comprobante en la version UBL 2.1...
EL DETALLE ES QUE ALGUNOS ERRORES CUENTAN COMO "VALIDO" Y NO PUEDES VOLVER A ENVIAR CON ESA SERIE Y NUMERACIÓN. ENTONCES ESO DA UN PROBLEMA A LA HORA DE DETERMINAR CUALES SI DEBEN ALMACENARSE EN LA BD Y CUALES NO(para que no afecte a la serie y numeración y normal funcionamiento).
YA QUE EL SISTEMA QUE PERSONALMENTE HICE SOLO ALMACENA SI SE CUMPLE:
if ($res->isSuccess()) {
PERO NO DETERMINA SI ES ERROR O NO, BASTA QUE HAYA RESPUESTA Y YA SIGUE LOS DEMAS PASOS(Y AHI ES DONDE FALLA)
ENTONCES A TODO ESTO MI PREGUNTA ES NO EXISTEN "CODIGOS" EN LAS RESPUESTAS PARA DETERMINAR CUALES DEBEN ALMACENARSE Y CUALES NO PARA EVITAR LOS ERRORES DE SERIE Y NUMERACION AUTOMATICO?

@giansalex
Copy link
Member

giansalex commented Oct 23, 2018

Esto se había realizado para el caso de resumen diario y bajas, donde el código de excepción (alerta), esta incluido en el cdr.
En el caso de facturas, isSuccess indica que hubo conexión con sunat, y por ende hay CDR, y un cdr solo debería indicar que una factura es Aceptada, Aceptada con Observaciones o Rechazado, en ese caso la numeración no debe usarse.

Te ha pasado que cuando isSuccess es true, has podido volver a usar esa numeración?.

@abelnexus
Copy link
Author

cuando envie una comunicación de baja al no darme isSuccess mi sistema no lo almaceno y por ende segia la numeracion 1, volvi a enviarlo y no me retornaba Aceptada, Aceptada con Observaciones o Rechazado(nada de cdr)
pero se seguia generando la numeracion(ahora estoy por el 20 creo y no pude darlo de baja la factura)
trate de revisar el error (usando greenter-sample) y solo me respondia:
1540310807074NULL

@giansalex
Copy link
Member

si, eso es lo que retorna al enviar una comunicación de baja o resumen diario, con ese numero (ticket) se puede consultar el CDR con getStatus('1540310807074')

@abelnexus
Copy link
Author

entonces si me envia "1540310807074NULL" eso es una respuesta con error y con cdr y no debo usar esa serie y numeracion ?

@giansalex
Copy link
Member

En la descripcion del issue me estabas mostrando una factura, si me dices que el caso sucede con bajas o resumen, entonces la cosa cambia un poco, en el cdr que responde tambien puede enviar un codigo de excepción, y alli puedes reenviar el mismo documento.
Aunque no hay problema si continuas el correlativo sin tener en cuenta si hay error, no son como las facturas.

@abelnexus
Copy link
Author

pero que ocurre si me envio un cdr con error ? esa factura no estaria dada de baja y ahi es donde radica el error no se cuando debo volver a enviar de baja una factura o no y cuando debo cambiar de serie o no
(y cuando hay cdr asi sea error o no el comprobante enviado pasa a estar en estado "anulado" y no puede volver a enviar, ese es error de mi sistema) pero no puedo solucionarlo por lo que te comento arriba

@giansalex
Copy link
Member

Ok, el cambio se dio en consulta CDR, pero no para getStatus, crearé un issue para que tenga esa caracteristica:
Cuando se obtenga un cdr con error, isSuccess tenga el valor de false , y no true como es ahora; ademas que el codigo y mensaje de error seran obtenidos del cdr.

Este es el issue asociado https://github.com/giansalex/greenter-ws/issues/11 , se seguirá allí cualquier otra duda.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants