Tutorial

Implementaciones de impuestos argentinos

impar utiliza el concepto de contextos de fechas (DateContext) para separar implementaciones diferentes de los impuestos. Esto se debe a que los impuestos pueden calcularse de manera diferente dependiendo la fecha que se realizan.

Por ejemplo si quiere calcularse el impuesto a las ganancias al 29 de diciembre del 2013:

>>> import datetime
>>> import impar
>>> ctx = impar.DateContext(datetime.date(2013, 12, 29))
>>> ganancias = ctx.get("ganancias")
>>> ganancias.ganancias(20000, ganancias.CAT_EMPRESA)
700.0

Si por otro lado se quiere calcular la ganancia a fecha actual:

>>> import impar
>>> ctx = impar.DateContext()
>>> ganancias = ctx.get("ganancias")
>>> ganancias.ganancias(20000, ganancias.CAT_EMPRESA)
700.0

No hubo cambios en el impuesto por eso los valores y parametros son iguales.

Notas:
  • El contexto se determina como la implementacion inmediatemente anterior o a la fecha del impuesto dado (puede verificar la fecha de implementacion del calculo con ctc.date_of("ganancias").
  • No todos los impuestos estan disponibles para todas las fechas.

datecontext Module

Manejador de contexto de fechas para los impuestos

class impar.datecontext.DateContext(date=None)[fuente]

Define un contexto de calculo para impuestos. En la practica asume todas las legislaciones a la fecha dada en el contexto para cada impuesto

Si usted quiere calcular el impuestoA a con las legislaciones vigentes al dia 31 de octubre del 2012 deberia ejecutar el codigo de la siguiente manera

>>> import datetime, impar
>>> ctx = impar.DateContext(datetime(2012, 10, 31))
>>> impuestoA = ctx.get("impuestoA")
>>> impuestoA.calcular(...)
Parámetros:date (datetime.date) – Fecha del contexto (hasta que fehca maxima se toman en cuenta las legislaciones para los impuestos). Si el valor es None se toma la fecha actual.
date[fuente]

Fecha del contexto

date_of(impuesto)[fuente]

Retorna la fecha exacta de la implementación del impuesto utilizada por este contexto

Parámetros:impuesto (str) – nombre del impuesto
get(impuesto)[fuente]

Retorna una implementación del impuesto dada la fecha del contexto

Parámetros:impuesto (str) – nombre del impuesto
valid_taxes[fuente]

Impuestos validos para este contexto

exception impar.datecontext.NotSuitableTax[fuente]

Si no existe un impuesto de fecha menor o igual a del contexto

exception impar.datecontext.TaxNotExists[fuente]

El impuesto no existe

impar.datecontext.parse_date(date)[fuente]

Convierte varios tipos de objetos a instancias de datetime.date

Todas estas funciones son equivalentes:

>>> # asumiendo que hoy es 25 de diciembre del 2013
>>> parse_date()
>>> parse_date(datetime.datetime.now())
>>> parse_date(datetime.datetime.now().date())
>>> parse_date(datetime.datetime(2013,12,25))
>>> parse_date(datetime.date(2013,12,25))
>>> parse_date("20131225")
>>> parse_date("2013-12-25")
>>> parse_date("2013_12_25")
>>> parse_date("2013_12-25")
>>> parse_date("2013-12_25")
>>> parse_date("2013/12/25")
>>> parse_date("2013/12-25")
>>> parse_date("2013-12/25")
>>> parse_date("2013/12_25")
>>> parse_date("2013_12/25")
>>> parse_date((2013, 12, 25))
impar.datecontext.same_implementation(date0, date1)[fuente]

Retorna un set con todos los impuestos que poseen la misma implentacion en ambas fechas

impar.datecontext.valid_taxes(date=None)[fuente]

Retorna una tupla de todos los impuestos validos para una fecha dada, o todos si la fecha es None

Read the Docs v: latest
Versions
latest
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.