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