WhyNotHugo/django-afip

No se puede generar nota de credito

juanpsenn opened this issue · 9 comments

Al parecer estoy teniendo este problema tambien en produccion:
['Error 10197: Si el comprobante es Debito o Credito, enviar estructura CbteAsoc o PeriodoAsoc.']

Por mas que asocie correctamente las related receipts y estas se creen en la base de datos la linea

wso = f.FECAERequest(
genera el cuerpo:

{
    'FeCabReq': {
        'CantReg': 1,
        'PtoVta': 1,
        'CbteTipo': '8'
    },
    'FeDetReq': {
        'FECAEDetRequest': [
            {
                'Concepto': '1',
                'DocTipo': '99',
                'DocNro': 0,
                'CbteDesde': 1,
                'CbteHasta': 1,
                'CbteFch': '20210405',
                'ImpTotal': Decimal('100.00'),
                'ImpTotConc': Decimal('0.00'),
                'ImpNeto': Decimal('82.64'),
                'ImpOpEx': Decimal('0.00'),
                'ImpTrib': 0,
                'ImpIVA': Decimal('17.36'),
                'FchServDesde': None,
                'FchServHasta': None,
                'FchVtoPago': None,
                'MonId': 'PES',
                'MonCotiz': Decimal('1.000000'),
                'CbtesAsoc': None,
                'Tributos': None,
                'Iva': {
                    'AlicIva': [
                        {
                            'Id': '5',
                            'BaseImp': Decimal('82.64'),
                            'Importe': Decimal('17.36')
                        }
                    ]
                },
                'Opcionales': None,
                'Compradores': None,
                'PeriodoAsoc': None
            }
        ]
    }
}

Como se puede ver 'CbtesAsoc': None, y no hay forma de hacer que se valide correctamente la factura. Antes pasaba solo en testing (pensamos que era por que solo era el entorno de testing), a partir de hoy tambien pasa en produccion.

# XXX: This was never finished!
# serialized.CbtesAsoc = f.ArrayOfCbteAsoc([
# f.CbteAsoc(
# receipt.receipt_type.code,
# receipt.point_of_sales.number,
# receipt.receipt_number,
# ) for r in receipt.related_receipts.all()
# ])

Creo que encontre el error, lo descomente localmente y funciono.

Shit. Estaba seguro de que había implementado eso hace años. Gracias encontrar ese bloque comentado. Hugo O. Barrera

On 2021-04-05, at 23:46, Juan Pablo Senn @.***> wrote: 

# XXX: This was never finished!
# serialized.CbtesAsoc = f.ArrayOfCbteAsoc([
# f.CbteAsoc(
# receipt.receipt_type.code,
# receipt.point_of_sales.number,
# receipt.receipt_number,
# ) for r in receipt.related_receipts.all()
# ])
Creo que encontre el error, lo descomente localmente y funciono. — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

Hay alguna fix temporal que pueda aplicar en producción hasta la corrección del bug?

Tengo un fix que encaré anoche, pero está testeado relativamente poco:

febc30c

main debería functionar, aunque los servidores del AFIP ahora están fuera de servicio así que no se puede confirmar.

Solucionado en v8.0.3

[
f.CbteAsoc(
receipt.receipt_type.code,
receipt.point_of_sales.number,
receipt.receipt_number,
)
for r in related_receipts
]

No deberias usar los datos de las related_receipts? el array se estaria generando con los datos de la receipt y no de las related_receipts. Osea se esta iterando r. pero usas receipt.

Tenés toda la razón, gracias por señalarlo.

Me pregunto por qué el AFIP no me rebotó ninguno en mis pruebas -- parece que una nota de crédito puede estar relacionada consigo misma? o.O