import pandas as pd
# Beispiel-Datenstrukturen
vertrage = pd.DataFrame(columns=['Vertragsnummer', 'Budget', 'Zahlungskomponenten'])
nachtrage = pd.DataFrame(columns=['Vertragsnummer', 'Nachtragsnummer', 'Betrag'])
rechnungen = pd.DataFrame(columns=['Rechnungsnummer', 'Vertragsnummer', 'Betrag', 'Bestandteile'])
import streamlit as st
st.title('Baubuchhaltung')
# Vertragserfassung
vertragsnummer = st.text_input('Vertragsnummer')
budget = st.number_input('Budget', min_value=0.0)
zahlungskomponenten = st.text_area('Zahlungskomponenten')
if st.button('Vertrag hinzufügen'):
vertrage = vertrage.append({'Vertragsnummer': vertragsnummer, 'Budget': budget, 'Zahlungskomponenten': zahlungskomponenten}, ignore_index=True)
st.success('Vertrag hinzugefügt!')
# Nachtragserfassung
nachtragsnummer = st.text_input('Nachtragsnummer')
nachtragsbetrag = st.number_input('Nachtragsbetrag', min_value=0.0)
if st.button('Nachtrag hinzufügen'):
nachtrage = nachtrage.append({'Vertragsnummer': vertragsnummer, 'Nachtragsnummer': nachtragsnummer, 'Betrag': nachtragsbetrag}, ignore_index=True)
st.success('Nachtrag hinzugefügt!')
# Rechnungserfassung
rechnungsnummer = st.text_input('Rechnungsnummer')
rechnungsbetrag = st.number_input('Rechnungsbetrag', min_value=0.0)
bestandteile = st.text_area('Bestandteile')
if st.button('Rechnung hinzufügen'):
rechnungen = rechnungen.append({'Rechnungsnummer': rechnungsnummer, 'Vertragsnummer': vertragsnummer, 'Betrag': rechnungsbetrag, 'Bestandteile': bestandteile}, ignore_index=True)
st.success('Rechnung hinzugefügt!')
import matplotlib.pyplot as plt
st.header('Grafische Auswertung')
if st.button('Auswertung anzeigen'):
vertragsvolumen = vertrage['Budget'].sum()
abgerechnet = rechnungen['Betrag'].sum()
offenes_budget = vertragsvolumen - abgerechnet
st.write(f'Vertragsvolumen: {vertragsvolumen}')
st.write(f'Bereits abgerechnet: {abgerechnet}')
st.write(f'Offenes Budget: {offenes_budget}')
fig, ax = plt.subplots()
ax.bar(['Vertragsvolumen', 'Bereits abgerechnet', 'Offenes Budget'], [vertragsvolumen, abgerechnet, offenes_budget])
st.pyplot(fig)