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.
Manejador de contexto de fechas para los impuestos
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. |
---|
Retorna la fecha exacta de la implementación del impuesto utilizada por este contexto
Parámetros: | impuesto (str) – nombre del impuesto |
---|
Si no existe un impuesto de fecha menor o igual a del contexto
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))