Spaces:
Runtime error
Runtime error
File size: 2,464 Bytes
b60b332 7ac420f b60b332 355dbd3 7ac420f 047f76c 7ac420f b60b332 aba1b0b b60b332 9dde4e2 7ac420f 047f76c 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=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=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 - min(arriendo, TOPES.arriendo) - min(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=1500000, 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()
|