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()