Mietanbot / app.py
MathiasFiF's picture
Update app.py
67b302f
raw
history blame
3.69 kB
import streamlit as st
from docx import Document
import os
from datetime import timedelta
import subprocess
def convert_docx_to_pdf(input_file, output_file):
try:
subprocess.run(["unoconv", "-f", "pdf", "-o", output_file, input_file], check=True)
except subprocess.CalledProcessError as e:
print(f"Conversion to pdf failed: {e}")
return False
return True
def automatic_mietanbot(name_anbieter, adresse_anbieter, email, telephone, datum, zimmer, adresse, move_in_date, move_out_date, rent):
doc = Document("Mietanbot_Vorlage.docx")
for p in doc.paragraphs:
if "Mietanbot" in p.text:
p.text+=f" {adresse}"
if 'Name des Anbieters:' in p.text:
p.clear()
p.add_run(f"Name des Anbieters: {name_anbieter}")
elif 'Derzeitige Adresse des Anbieters:' in p.text:
p.clear()
p.add_run(f"Derzeitige Adresse des Anbieters: {adresse_anbieter}")
elif 'Email des Anbieters:' in p.text:
p.clear()
p.add_run(f"Email des Anbieters: {email}")
elif 'Tel. des Anbieters:' in p.text:
p.clear()
p.add_run(f"Tel. des Anbieters: {telephone}")
elif 'Der Anbieter, erstellt am' in p.text:
p.clear()
p.add_run(f"Der Anbieter, erstellt am {datum} das verbindliche Anbot, den Bestandsgegenstand Zimmer {zimmer} {adresse} ab {move_in_date} zu mieten und bleibt mit diesem Anbot bis zum {move_out_date} im Wort. Der monatliche Mietzins beträgt {rent} EUR inklusive MwSt.")
elif 'Als Kaution sind ' in p.text:
p.clear()
p.add_run(f"Als Kaution sind {3*float(rent)} Euro vereinbart die auf das, im Mietvertrag vereinbarte Konto einzuzahlen sind. Die Kaution wird nach ordnungsgemäßer Rückgabe der Wohnung und Erledigung aller vom Anbieter zu erfüllenden Verpflichtungen zurückbezahlt.")
doc_path = "edited_Mietanbot.docx"
dur = "6 Monate" if duration_6_month else "1 Jahr"
pdf_path = f"Mietanbot_{adresse}_{zimmer}_{dur}.pdf"
doc.save(doc_path)
# Convert DOCX to PDF
convert_docx_to_pdf(doc_path, pdf_path)
return pdf_path,dur
# Streamlit UI
st.title("Automatic Mietanbot Generator")
name_anbieter = st.text_input("Name des Anbieters:")
adresse_anbieter = st.text_input("Derzeitige Adresse des Anbieters:")
email = st.text_input("Email des Anbieters:")
telephone = st.text_input("Tel. des Anbieters:")
datum = st.date_input("Datum:")
zimmer = st.text_input("Zimmer:")
adresse = st.text_input("Adresse:")
move_in_date = st.date_input("Move-in Date:")
rent = st.text_input("Rent:")
duration_6_month = st.checkbox("6 Month Duration")
duration_1_year = st.checkbox("1 Year Duration")
# Calculate move_out_date based on selected duration
if duration_6_month:
move_out_date = move_in_date + timedelta(days=180)
elif duration_1_year:
move_out_date = move_in_date + timedelta(days=365)
else:
move_out_date = "N/A"
if st.button("Generate Mietanbot"):
pdf_path,dur = automatic_mietanbot(name_anbieter, adresse_anbieter, email, telephone, datum, zimmer, adresse, move_in_date, move_out_date, rent)
# Download PDF
if os.path.exists(pdf_path):
with open(pdf_path, "rb") as f:
pdf_data = f.read()
st.download_button("Download Mietanbot PDF", pdf_data, f"Mietanbot_{adresse}_{zimmer}_{dur}.pdf","application/pdf")
# Download DOCX
if os.path.exists(pdf_path):
with open(pdf_path, "rb") as f:
pdf_data = f.read()
st.download_button("Download Mietanbot DOCX", pdf_data, f"Mietanbot_{adresse}_{zimmer}_{dur}.docx","application/docx")