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

FECompConsultar implemented #81

Merged

Conversation

juanpsenn
Copy link
Contributor

Added support to fetch receipt data from AFIP's server.
This feature is implemented using the FECompConsultar service.

Copy link
Owner

@WhyNotHugo WhyNotHugo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, se ve bien.

Tengo algunos comentarios menores nomás -- tengo que ver porque CI no corrió para tu branch :(

django_afip/models.py Outdated Show resolved Hide resolved
testapp/testapp/testmain/tests/test_models.py Outdated Show resolved Hide resolved
testapp/testapp/testmain/tests/test_models.py Outdated Show resolved Hide resolved
testapp/testapp/testmain/tests/test_models.py Outdated Show resolved Hide resolved
@WhyNotHugo
Copy link
Owner

Pusheé un cambio más a tu branch para habilitar que corra CI en PRs.

Juan Pablo Senn added 2 commits June 27, 2021 10:45
 - formatting issues resolved
 - pytest assert implemented
 - added new assert to ensure serialization
…ching' into add_support_for_receipt_data_fetching
@juanpsenn
Copy link
Contributor Author

Tome los comentarios y en teoria deberia estar listo.

@WhyNotHugo
Copy link
Owner

Se ve bien. Estoy pensando en antes de hacer un release con los cambios, convertir el resultado en una clase propia tipada (más que nada para que sea claro que se devuelve, y tener tipos my pythonescos). Qué pensás?

from datetime import date

from dateclasses import dataclass


@dataclass(frozen=True)
class ValidatedReceipt:
    result: str
    validation_code: str
    validation_type: str
    expiration_date: date
    processed_date: date
    observations: List[str]
    point_of_sales: PointOfSales
    receipt_type: ReceiptType

(Creo que esos son los campos correctos, la API indica eso, pero la documentación indica otra cosa).

Tener una clase bien definida también dejaría bien en claro que esperar al llamar la función.

@juanpsenn
Copy link
Contributor Author

Se ve bien. Estoy pensando en antes de hacer un release con los cambios, convertir el resultado en una clase propia tipada (más que nada para que sea claro que se devuelve, y tener tipos my pythonescos). Qué pensás?

from datetime import date

from dateclasses import dataclass


@dataclass(frozen=True)
class ValidatedReceipt:
    result: str
    validation_code: str
    validation_type: str
    expiration_date: date
    processed_date: date
    observations: List[str]
    point_of_sales: PointOfSales
    receipt_type: ReceiptType

(Creo que esos son los campos correctos, la API indica eso, pero la documentación indica otra cosa).

Tener una clase bien definida también dejaría bien en claro que esperar al llamar la función.

Me parece una buena idea, sin embargo, estuve haciendo unas pruebas y lo que deberiamos seguir seria la documentación ya que son los campos que realmente devuelve.
Es una combinacion entre una Receipt y una ReceiptValidation.

Te dejo un ejemplo de la respuesta:

{
    'ResultGet': {
        'Concepto': 1,
        'DocTipo': 99,
        'DocNro': 0,
        'CbteDesde': 56,
        'CbteHasta': 56,
        'CbteFch': '20210626',
        'ImpTotal': 305.8,
        'ImpTotConc': 0.0,
        'ImpNeto': 252.73,
        'ImpOpEx': 0.0,
        'ImpTrib': 0.0,
        'ImpIVA': 53.07,
        'FchServDesde': None,
        'FchServHasta': None,
        'FchVtoPago': None,
        'MonId': 'PES',
        'MonCotiz': 1.0,
        'CbtesAsoc': None,
        'Tributos': None,
        'Iva': {
            'AlicIva': [
                {
                    'Id': 5,
                    'BaseImp': 252.73,
                    'Importe': 53.07
                }
            ]
        },
        'Opcionales': None,
        'Compradores': None,
        'PeriodoAsoc': None,
        'Resultado': 'A',
        'CodAutorizacion': '71263950318380',
        'EmisionTipo': 'CAE',
        'FchVto': '20210706',
        'FchProceso': '20210626212029',
        'Observaciones': None,
        'PtoVta': 1,
        'CbteTipo': 6
    },
    'Errors': None,
    'Events': None
}

@WhyNotHugo WhyNotHugo merged commit fa59a5b into WhyNotHugo:main Jun 30, 2021
@WhyNotHugo WhyNotHugo mentioned this pull request Aug 25, 2021
@juanpsenn juanpsenn deleted the add_support_for_receipt_data_fetching branch August 25, 2021 20:34
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

Successfully merging this pull request may close these issues.

None yet

2 participants