Spaces:
Runtime error
Runtime error
File size: 3,435 Bytes
07a1fbf 1259bac 07a1fbf fcf0eca 97ebe7c 07a1fbf 04e540b 07a1fbf a620fb1 07a1fbf 04e540b 07a1fbf 04e540b 07a1fbf 04e540b 07a1fbf 04e540b |
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 70 71 72 73 74 75 76 77 78 79 80 81 82 |
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")
|