Py.Cafe

marco.mannweiler/

baubuchhaltung-bauprojekte

Baubuchhaltung für Bauprojekte

DocsPricing
  • app.py
  • requirements.txt
app.py
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
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)