Spaces:
Runtime error
Runtime error
File size: 2,465 Bytes
b60b332 7ac420f b60b332 7ac420f b60b332 aba1b0b b60b332 9dde4e2 7ac420f 9dde4e2 7ac420f 9dde4e2 7ac420f b60b332 7ac420f b60b332 7ac420f b60b332 7ac420f b60b332 7ac420f b60b332 7ac420f b60b332 7ac420f b60b332 7ac420f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
from pathlib import Path
from types import SimpleNamespace
import streamlit as st
from impuestos import TRAMOS, TRAMOS_REFORMA, get_table
TOPES = SimpleNamespace(arriendo=4500000, cuidado=550000)
def aplicar_beneficios(sueldo_bruto):
"Referencias de: https://chocale.cl/2022/07/reforma-tributaria-gobierno-claves-proyecto-impuestos/"
sb = st.sidebar
sb.header("Beneficios tributarios")
arriendo = sb.number_input(
"Gastos de arriendo",
value=0,
min_value=0,
max_value=TOPES.arriendo,
help="Se creará una exención que permitirá deducir de la base imponible del Impuesto Global Complementario los gastos de arriendo, con un tope de $450.000 mensuales",
)
creditos = sb.checkbox("Tienes créditos?", value=False)
cuidado = sb.number_input(
"Tienes gastos asociados al cuidado de un familiar?",
min_value=0,
max_value=TOPES.cuidado,
help="Se podrá deducir de la base imponible del Impuesto Global Complementario aquellos gastos que estén relacionados al cuidado de personas menores de dos años, o de personas con grados de dependencia severa. El tope será de $550.000 al mes.",
)
return sueldo_bruto - max(arriendo, TOPES.arriendo) - max(cuidado, TOPES.cuidado)
def main() -> None:
st.header("Calcula tu impuesto a la renta :moneybag: :dollar: :bar_chart:")
with st.expander("Como se usa esta cosa?"):
st.write(Path("info.md").read_text())
st.subheader("Ingresa tus datos (click para expandir)")
sueldo_bruto = st.number_input(
"Sueldo Bruto Mensual", value=1800000, min_value=300000
)
# calcular nueva base imponible
sueldo_bruto = aplicar_beneficios(sueldo_bruto)
st.text(f"Tu sueldo imponible antes de impuestos es: {sueldo_bruto}")
col1, col2 = st.columns((0.5, 0.5))
col1.subheader("Tabla de Impuestos Actual")
table = get_table(sueldo_bruto, TRAMOS)
col1.dataframe(table)
total = table["Impuesto"].sum()
col1.subheader(f"Pagaras en Total: ${total}")
col2.subheader("Tabla de Impuestos Reforma")
table = get_table(sueldo_bruto, TRAMOS_REFORMA)
col2.dataframe(table)
total = table["Impuesto"].sum()
col2.subheader(f"Con la reforma pagaras en Total: ${total}")
if __name__ == "__main__":
st.set_page_config(
"Calculador de impuestos",
"📊",
initial_sidebar_state="expanded",
layout="wide",
)
main()
|