Spaces:
Runtime error
Runtime error
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() | |