Spaces:
Runtime error
Runtime error
File size: 2,569 Bytes
b60b332 7ac420f b60b332 355dbd3 7ac420f 7ad934a 7ac420f 7ad934a 7ac420f 047f76c 7ac420f b60b332 99f3690 b60b332 aba1b0b b60b332 7ac420f 047f76c 7ac420f 9dde4e2 7ac420f 613165e 9dde4e2 99f3690 b60b332 7ac420f b60b332 7ac420f b60b332 f521194 b60b332 7ac420f 613165e 7ac420f 7ad934a f521194 7ac420f b60b332 f521194 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 |
from pathlib import Path
from types import SimpleNamespace
import streamlit as st
from impuestos import TRAMOS, TRAMOS_REFORMA, get_table
TOPES = SimpleNamespace(arriendo=450000, 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=450000,
min_value=0,
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,
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 - min(arriendo, TOPES.arriendo) - min(cuidado, TOPES.cuidado)
def main() -> None:
st.header("Calcula tu impuesto a la renta :moneybag: :dollar: :bar_chart: con la Reforma Tributaria")
with st.expander("Como se usa esta cosa?"):
st.write(Path("info.md").read_text())
sueldo_bruto = st.number_input(
"Sueldo Bruto Mensual", value=1500000, min_value=300000
)
# calcular nueva base imponible
sueldo_bruto_reforma = aplicar_beneficios(sueldo_bruto)
st.text(f"Tu sueldo imponible antes de impuestos con la reforma es: {sueldo_bruto_reforma} (incluye los descuentos asociados a los beneficios)")
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"Total Impuesto: ${total} ({100*(total/sueldo_bruto):.2f}\%)")
col2.subheader("Tabla de Impuestos Reforma")
table = get_table(sueldo_bruto_reforma, TRAMOS_REFORMA)
col2.dataframe(table)
total_reforma = table["Impuesto"].sum()
col2.subheader(f"Total Impuesto con Reforma: ${total_reforma} ({(total_reforma/sueldo_bruto):.2f}\%)")
# st.plotly_chart()
if __name__ == "__main__":
st.set_page_config(
"Calculador de impuestos",
"📊",
initial_sidebar_state="expanded",
layout="wide",
)
main()
|