File size: 55,153 Bytes
849dd0e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
eaa6a66
849dd0e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
eaa6a66
849dd0e
6ced43c
eaa6a66
849dd0e
 
 
 
eaa6a66
849dd0e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
eaa6a66
849dd0e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
eaa6a66
 
 
849dd0e
 
eaa6a66
849dd0e
 
 
eaa6a66
849dd0e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
eaa6a66
849dd0e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
# Importer biblioteker
import pandas as pd
import numpy as np
import streamlit as st
from duckduckgo_search import DDGS
import locale
from datetime import date

# sidekonfiguration
st.set_page_config(
    page_icon="🤖",
    layout="wide" 
)

# Sidebar menu navigation
menu = st.sidebar.radio("Vælg en side", ["Forside", "Kundeindsigt", "Regnskabsanalyse", "Lønkommentering", 'Skat & Rådighed', 'Indstillingspåtegning'])

# Forsiden
if menu == "Forside":
    st.title("AI-Assistent")
    
    st.write("""
             Formålet med appen er at understøtte rådgivere og studentermedhjælpere, der arbejder med kunder i "hvide kitler"-segmentet, ved at levere både hurtige og præcise analyser.
             Appen er designet til at reducere behovet for manuel opsætning af regnskabskommenteringer og privatøkonomiske vurderinger,  idet appen tilpasses skabeloner, så analyser og vurderinger følger gældende standarder jf. forretningsgang, hvilket sparer tid og sikrer høj kvalitet.
    """)

    st.write("**Indtast oplysninger om kunden, som gemmes automatisk og bruges på tværs af appens funktioner:**")

    # Indtast kundens navn som herefter gemmes i variablen kunde_navn
    kunde_navn = st.text_input("Kundens navn", "John Doe")

    # Indtast Segment for kunden som herefter gemmes i variablen guideline
    guideline = st.selectbox(
        'Vælg Segment',
        ['Speciallæge','Læge', 'Speciallæge', 'Fysioterapeut', 'Tandlæge', 'Kiropraktor']
    )

    # Har kunden en VSO eller ApS? Eller Begge to. Herefter indtast navn for VSO, ApS eller begge to
    valg = st.selectbox("Virksomhedstype", ["VSO", "ApS", "Begge to"])

    # Hvis brugeren vælger "VSO"
    if valg == "VSO":
        virksomhed_navn = st.text_input("Indtast navn på VSO", "Lægepraksis v. John Doe")

    # Hvis brugeren vælger "ApS"
    elif valg == "ApS":
        virksomhed_navn = st.text_input("Indtast navn på ApS", "")

    # Hvis brugeren vælger "Begge to"
    elif valg == "Begge to":
        virksomhed_navn_vso = st.text_input("Indtast navn på VSO", "")
        virksomhed_navn_aps = st.text_input("Indtast navn på ApS", "")


if menu == "Lønkommentering":

    st.title("Lønkommentering")

    st.write("For at der kan udarbejdes beregninger på nuværende og fremtidigt budget i Skat og Rådighed, skal du give information om:")
    st.write("- Indkomst fra erhverv til nuværende budget")
    st.write("- Indkomst fra erhverv til fremtidigt budget")
    st.write("Hvis der allerede er en lønkommentering på kunden, skal du vurdere, om du fortsat kan anvende den, eller om du skal udarbejde en ny")
    st.write("Der henvises til Privatøkonomi - Erhverv - Arbejdsbeskrivelse for yderligere information om lønkommentering")

    # Indkomst sektion
    st.subheader("Indkomst")
    
    løn_virksomhed = st.number_input("Lønudtræk fra egen virksomhed", min_value=0, value=1161, step=1)

    udbytte = st.number_input("Udbytte - ikke aktuelt med VSO", min_value=0, value=0, step=1)

    samlet_indkomst = løn_virksomhed + udbytte
    st.write(f"**Samlet årlig lønudtræk: {samlet_indkomst}**")

    # Dropdown-menu for hvordan indkomsten er fastlagt
    indkomst_fastlagt = st.selectbox("Hvordan er lønudtræk fastlagt?", ["Kundens regnskab", "Dialog med kunden" "eSKAT"])

    øvrig_indkomst = st.text_area("Øvrig information om indkomstforhold", "John Doe er speciallæge og ejer VSO'en Lægepraksis v. John Doe")

    # Virksomhedens performance sektion
    st.subheader("Virksomhedens performance")

    overskud_2023 = st.number_input("Nuværende Regnskabs resultat efter skat", min_value=0, value=3000, step=1)

    likviditet = st.number_input("Likvid beholding indestående i seneste regnskab", min_value=0, value=1500, step=1)

    gæld_i_virksomhed = st.selectbox("Er der gæld i virksomheden?", ["Ja", "Nej"])

    gældens_størrelse = st.number_input("Gældens størrelse", min_value=0, value=1000, step=1, key="gældens_størrelse")

    Øvrig_performance = st.text_area("Øvrig information om virksomhedens performance", "Klinikken har kontinuerligt opnået et højere resultat efter skat siden stiftelsen, og har senest haft rekordresultat. Der er restgæld på erhvervslån optaget i forbindelse med opkøb af klinikken og som serviceres anmærkningsfrit.")

    # Fremtidig indkomst fra Erhverv sektion
    st.subheader("Fremtidig Indkomst fra Erhverv:")

    indkomst_fastlagt_fremtidig = st.selectbox("Hvordan er fremtidig lønudtræk fastlagt?", ["Dialog med kunden", "Kundens budget"])
                                
    fremtidig_løn = st.number_input("Fremtidig forventet lønudtræk", min_value=0, value=1750, step=1)

    fremtidig_udbytte = st.number_input("Fremtidig forventet udbytte - ikke aktuelt med VSO", min_value=0, value=0, step=1)

    # Menu hvor man vurderer om at virksomhedens indtjening og cash-flow kan indeholde kundens forventede indkomst
    vurdering_fremtidigt_udtræk = st.selectbox("Vurderer du at virksomhedens indtjening og cash-flow kan indeholde kundens forventede fremtidige lønudtræk", ["Ja", "Nej"])


    Øvrig_fremtidig_indkomst = st.text_area("Øvrig information om fremtidig lønudtræk", "John udtryk, at han kommer til at øge sit fremtidige lønudtræk grundet et ønske om et højere rådighedsbeløb idet han snarligt påtænker at renovereee  sit rsommerhu samt bilkø")

    # Formue fra Erhverv sektion
    st.subheader("Formue fra Erhverv, inkl. Udskudt Skat:")

    # Her kan bruger vælge at indtaste formue i VSO eller ApS eller for begge
    # Dropdown-menu for at vælge type af egenkapital
    # Hvis brugeren vælger "Egenkapital i VSO"

   # Brugervalg
    valg = st.selectbox("Vælg type af egenkapital", ["Egenkapital i VSO", "Egenkapital i ApS", "Begge to"])

    # Variabler for skat og formue
    formue_vso, formue_aps = 0, 0  # Standardværdier
    skatte_procent_vso, skatte_procent_aps = 50, 42  # Skatteprocenter

    # Hvis brugeren vælger "Egenkapital i VSO"
    if valg == "Egenkapital i VSO":
        formue_vso = st.number_input("Indtast egenkapital i VSO", min_value=0, value=4000, step=1, key="formue_vso")
        samlet_formue_før_skat = formue_vso
        samlet_formue_efter_skat = formue_vso * (1 - skatte_procent_vso / 100)

    # Hvis brugeren vælger "Egenkapital i ApS"
    elif valg == "Egenkapital i ApS":
        formue_aps = st.number_input("Indtast egenkapital i ApS", min_value=0, step=1, key="formue_aps")
        samlet_formue_før_skat = formue_aps
        samlet_formue_efter_skat = formue_aps * (1 - skatte_procent_aps / 100)

    # Hvis brugeren vælger "Begge to"
    elif valg == "Begge to":
        formue_vso = st.number_input("Indtast egenkapital i VSO", min_value=0, step=1, key="formue_vso")
        formue_aps = st.number_input("Indtast egenkapital i ApS", min_value=0, step=1, key="formue_aps")
        samlet_formue_før_skat = formue_vso + formue_aps
        samlet_formue_efter_skat = (formue_vso * (1 - skatte_procent_vso / 100)) + (formue_aps * (1 - skatte_procent_aps / 100))

    # Resultater
    st.write(f"**Samlet formue før skat: {samlet_formue_før_skat} tkr.**")
    st.write(f"**Samlet formue efter skat: {samlet_formue_efter_skat:.2f} tkr.**")

    # Tilføj tekstboks til kvalitative informationer
    Øvrige_formue = st.text_area("Hvad består erhvervsformuen af", "Formuen består af opsparet overskud fra klinikkens drift samt inventar og udstyr, der er finansieret uden gæld.")

    # Skriv der viser Tilføjet den dd.mm.åååå af Navn Efternavn. Vigtigt den viser dagsdato 
    Tilføjet_af = st.text_input("Tilføjet af", "Navn Efternavn")

    # Dags dato 
    today = date.today()
    korrekt_today = today.strftime("%d-%m-%Y")

    # Tilføj en knap til at generere AI lønkommentering
    if st.button('Generér lønkommentering'):
        with st.expander("AI's lønkommentering"):
            # Lav en brugerdefineret prompt til AI baseret på den nye skabelon
            user_input = (
                f"Du er en erhvervsbankrådgiver som skal lave en lønkommentering, som er en kommentering af forholdet mellem kundens private og erhvervsmæssige indkomst og formue."
                f"Du skal ikke kommentere på feks. om du mener at indkomst er en vigtig faktor i vurderingen af kundens økonmiske situation. Hold dig til information du modtager omkring lønudtræk"
                f"Primære formål er at belyse muligt udtræk til privat regi.\n\n"

                f"INDKOMST FRA ERHVERV TIL NUVÆRENDE BUDGET:\n"
                f"Kunden har lønindkomst fra sit VSO.\n"
                f"De seneste 12 måneder er der blevet hævet {løn_virksomhed} tkr. i løn.\n"
                f"Lønudtræk er fastlagt ud fra {indkomst_fastlagt}. Ikke skriv mere herefter.\n\n"

                # f"Kunden har udbytte fra sine selskaber.\n"
                # f"De seneste 12 måneder er der blevet hævet {udbytte} tkr. i udbytte.\n"
                # f"Udbytte er fastlagt ud fra kundens regnskaber.\n\n"
                f"Start med at beskrive i indkomstforholdene den øvrig information om indkomstforhold: {øvrig_indkomst}\n\n"
                
                f"INDKOMST FRA ERHVERV TIL FREMTIDIGT BUDGET:\n"
                f"Kommenterer meget præcist og kort på senste årsrestultat efter skat i {overskud_2023} den likvide beholdning i VSO'et{likviditet} at der er gæld i virksomheden{gæld_i_virksomhed} gældens størrelse {gældens_størrelse} og eventuelt øvrig information{Øvrig_performance}. Denne information skal flettes sammen med øvrige info "
                f"Fremtidig lønudtræk er fastlagt ud fra {indkomst_fastlagt_fremtidig}"
                f"Kunden vil i fremtiden udtrække løn for {fremtidig_løn} tkr.\n\n"

                f"Tilføj information fra {Øvrig_fremtidig_indkomst} så det passer ind i resten af teksten"
                
                
                # f"Kunden vil i fremtiden tage udbytte for {fremtidig_udbytte} tkr.\n\n"

                f"FORMUE FRA ERHVERV, HERUNDER UDSKUDT SKAT:\n"
                f"Formuen fra erhverv er taget fra kundens seneste regnskab.\n\n"
                
                f"Formuen i selskabsregi er {formue_vso} tkr. i VSO \n" 
                f"Egenkapital  medregnes i privat til {samlet_formue_efter_skat} da den beskattes med 50%."

                
                f"Formuen fra erhverv er taget fra kundens seneste indleveret regnskab.\n\n"
                f"tilføj information fra formue {Øvrige_formue} så det passer ind i resten af teksten\n\n"

                f"VURDERING:\n"

                f"{Tilføjet_af}\n"

                f"Forhold dig til nuværende indkomst versus fremtidig indkomst.\n"
                f"På baggrund af følgende svar (det kan være ja eller nej) {vurdering_fremtidigt_udtræk} vurderes det at kundens fremtidige lønudtræk kan indeholdes i virksomhedens indtjening og cash-flow.\n\n"

                f"INDKOMST FRA ERHVERV TIL NUVÆRENDE BUDGET, INDKOMST FRA ERHVERV TIL FREMTIDIGT BUDGET, FORMUE FRA ERHVERV, HERUNDER UDSKUDT SKAT, samt VURDERING er overskifterne. De skal være fede men samme størrelse som øvrig skrift" 
                f"efter en overskrift skal teksten stå lige under overskriften og ikke i samme linje som overskriften. I bunden af dokumentet skal der stå Tilføjet den {korrekt_today} af {Tilføjet_af}"

            )

        # Indsætter information til AI assistenten for at kommentere på regnskab og udvikling
        try:
            ai_response = DDGS().chat(user_input, model='gpt-4o-mini')
            st.markdown(ai_response)
        except Exception as e:
            st.error(f"AI forespørgslen mislykkedes: {e}. Prøv venligst igen senere.")


elif menu == "Regnskabsanalyse":

    # Tilføj dropdown-menu til valg af Guidelines
    st.title("Regnskabsanalyse")

     # Dropdown-menu med Guidelines for specifikke erhverv
    guideline = st.selectbox(
        'Vælg Segment:',
        ['Speciallæge', 'Læge', 'Fysioterapeut', 'Tandlæge', 'Kiropraktor']
    )

    # Vis det valgte guideline med de tilhørende krav
    if guideline in ['Læge', 'Fysioterapeut', 'Tandlæge', 'Kiropraktor', 'Speciallæge']:
        st.write(f"Du har valgt: **{guideline}**")
        st.write("**Gearing**: < 4")
        st.write("**Soliditet**: > 20 %")
        st.write("**Likviditetsgrad**: > 100 %")

    # Indtast regnskabstal for 2022
    st.subheader("Resultatsopgørelse 2022")
    col1, col2, col3 = st.columns(3)

    with col1:
        nettoomsætning_2022 = st.number_input('Nettoomsætning 2022', min_value=0, value=3500, step=100)
    with col2:
        variable_omkostninger_2022 = -abs(st.number_input('Variable omkostninger 2022', min_value=-1000000, value=300, step=100))
    with col3:
        kapacitetsomkostninger_2022 = -abs(st.number_input('Kapacitetsomkostninger 2022', min_value=-1000000, value=500, step=100))

    col4, col5, col6 = st.columns(3)
    with col4:
        afskrivninger_2022 = -abs(st.number_input('Afskrivninger 2022', min_value=-1000000, value=100, step=100))
    with col5:
        sekundære_poster_2022 = -abs(st.number_input('Sekundære poster 2022', min_value=-1000000, value=0, step=100))
    with col6:
        finansieringsudgifter_2022 = -abs(st.number_input('Finansieringsudgifter 2022', min_value=-1000000, value=50, step=100))

    col7, col8, col9 = st.columns(3)
    with col7:
        finansieringsindtægter_2022 = st.number_input('Finansieringsindtægter 2022', min_value=0, value=10, step=100)
    with col8:
        kapitalandele_2022 = st.number_input('Indtægter fra kapitalandele 2022', min_value=-100000, value=0, step=100)
    with col9:
        skat_2022 = (st.number_input('Skat 2022', min_value=-10000, value=-145, step=100))

    # Beregninger for regnskab 2022
    EBITDA_2022 = nettoomsætning_2022 + variable_omkostninger_2022 + kapacitetsomkostninger_2022
    EBIT_2022 = EBITDA_2022 + afskrivninger_2022
    resultat_før_renter_2022 = EBIT_2022 + sekundære_poster_2022
    ordinært_resultat_2022 = resultat_før_renter_2022 + finansieringsindtægter_2022 + kapitalandele_2022 + finansieringsudgifter_2022
    resultat_før_skat_2022 = ordinært_resultat_2022
    resultat_efter_skat_2022 = resultat_før_skat_2022 + skat_2022
    udbytte_2022 = -abs(st.number_input('Udbytte 2022', min_value=0, value=0, step=100))
    konsolidering_2022 = resultat_efter_skat_2022 + udbytte_2022

    # Indtast regnskabstal for 2023
    st.subheader("Resultatsopgørelse 2023")
    col10, col11, col12 = st.columns(3)

    with col10:
        nettoomsætning_2023 = st.number_input('Nettoomsætning 2023', min_value=0, value=4200, step=100)
    with col11:
        variable_omkostninger_2023 = -abs(st.number_input('Variable omkostninger 2023', min_value=-1000000, value=300, step=100))
    with col12:
        kapacitetsomkostninger_2023 = -abs(st.number_input('Kapacitetsomkostninger 2023', min_value=-1000000, value=500, step=100))

    col13, col14, col15 = st.columns(3)
    with col13:
        afskrivninger_2023 = -abs(st.number_input('Afskrivninger 2023', min_value=-1000000, value=150, step=100))
    with col14:
        sekundære_poster_2023 = -abs(st.number_input('Sekundære poster 2023', min_value=-1000000, value=0, step=100))
    with col15:
        finansieringsudgifter_2023 = -abs(st.number_input('Finansieringsudgifter 2023', min_value=-1000000, value=75, step=100))

    col16, col17, col18 = st.columns(3)
    with col16:
        finansieringsindtægter_2023 = st.number_input('Finansieringsindtægter 2023', min_value=0, value=25, step=100)
    with col17:
        kapitalandele_2023 = st.number_input('Indtægter fra kapitalandele 2023', min_value=-10000, value=0, step=100)
    with col18:
        skat_2023 = (st.number_input('Skat 2023', min_value=-10000, value=-200, step=100))

    # Beregninger for regnskab 2023
    EBITDA_2023 = nettoomsætning_2023 + variable_omkostninger_2023 + kapacitetsomkostninger_2023
    EBIT_2023 = EBITDA_2023 + afskrivninger_2023
    resultat_før_renter_2023 = EBIT_2023 + sekundære_poster_2023
    ordinært_resultat_2023 = resultat_før_renter_2023 + finansieringsindtægter_2023 + kapitalandele_2023 + finansieringsudgifter_2023
    resultat_før_skat_2023 = ordinært_resultat_2023
    resultat_efter_skat_2023 = resultat_før_skat_2023 + skat_2023
    udbytte_2023 = -abs(st.number_input('Udbytte 2023', min_value=0, value=0, step=100))
    konsolidering_2023 = resultat_efter_skat_2023 + udbytte_2023

    # Opret dataframe for resultatopgørelsen med Nettoomsætning tilføjet
    data_resultat = {
        'Resultatopgørelse 2022': [
            nettoomsætning_2022 * 1000,
            EBITDA_2022 * 1000, 
            EBIT_2022 * 1000, 
            resultat_før_renter_2022 * 1000, 
            ordinært_resultat_2022 * 1000, 
            resultat_før_skat_2022 * 1000, 
            resultat_efter_skat_2022 * 1000, 
            konsolidering_2022 * 1000
        ],
        'Resultatopgørelse 2023': [
            nettoomsætning_2023 * 1000,
            EBITDA_2023 * 1000, 
            EBIT_2023 * 1000, 
            resultat_før_renter_2023 * 1000, 
            ordinært_resultat_2023 * 1000, 
            resultat_før_skat_2023 * 1000, 
            resultat_efter_skat_2023 * 1000, 
            konsolidering_2023 * 1000
        ]
    }

    df_resultat = pd.DataFrame(data_resultat, index=['Nettoomsætning', 'EBITDA', 'EBIT', 'Resultat før renter', 'Ordinært resultat', 'Resultat før skat', 'Resultat efter skat', 'Konsolidering'])

    # Formater tal i resultatopgørelsen
    df_resultat = df_resultat.applymap(lambda x: f"{x:,.0f}".replace(",", "."))

    # Vis resultatopgørelse, og gør tabellen bred
    st.write(df_resultat.style.set_properties(**{'width': '200%'}).applymap(lambda x: 'font-weight: bold'))

    # Aktiver og Passiver for 2022
    st.subheader("Aktiver og Passiver 2022")
    col1, col2, col3 = st.columns(3)

    # Aktiver 2022
    with col1:
        immaterielle_aktiver_2022 = st.number_input('Immatrielle aktiver 2022', min_value=0, value=0, step=100)
    with col2:
        materielle_anlægsaktiver_2022 = st.number_input('Materielle anlægsaktiver 2022', min_value=0, value=2200, step=100)
    with col3:
        finansielle_anlægsaktiver_2022 = st.number_input('Finansielle anlægsaktiver 2022', min_value=0, value=0, step=100)

    col4, col5, col6 = st.columns(3)
    with col4:
        varelager_2022 = st.number_input('Varelager 2022', min_value=0, value=200, step=100)
    with col5:
        varedebitorer_2022 = st.number_input('Varedebitorer 2022', min_value=0, value=400, step=100)
    with col6:
        værdipapirer_2022 = st.number_input('Værdipapirer 2022', min_value=0, value=0, step=100)

    col7, col8, col9 = st.columns(3)
    with col7:
        øvrige_omsætningsaktiver_2022 = st.number_input('Øvrige omsætningsaktiver 2022', min_value=0, value=100, step=100)
    with col8:
        likvide_midler_2022 = st.number_input('Likvide midler 2022', min_value=0, value=800, step=100)

    # Saml aktiverne for 2022
    anlægsaktiver_2022 = immaterielle_aktiver_2022 + materielle_anlægsaktiver_2022 + finansielle_anlægsaktiver_2022
    omsætningsaktiver_2022 = varelager_2022 + varedebitorer_2022 + værdipapirer_2022 + øvrige_omsætningsaktiver_2022 + likvide_midler_2022
    aktiver_i_alt_2022 = anlægsaktiver_2022 + omsætningsaktiver_2022

    # Passiver 2022
    col1, col2, col3 = st.columns(3)
    with col1:
        udskudt_skat_2022 = st.number_input('Udskudt skat 2022', min_value=0, value=0, step=100)
    with col2:
        øvrig_langfristet_gæld_2022 = st.number_input('Øvrig langfristet gæld 2022', min_value=0, value=0, step=100)
    with col3:
        langfristet_rentebærende_gæld_2022 = st.number_input('Langfristet rentebærende gæld 2022', min_value=0, value=1200, step=100)

    col4, col5, col6 = st.columns(3)
    with col4:
        øvrig_kortfristet_gæld_2022 = st.number_input('Øvrig kortfristet gæld 2022', min_value=0, value=200, step=100)
    with col5:
        kortfristet_rentebærende_gæld_2022 = st.number_input('Kortfristet rentebærende gæld 2022', min_value=0, value=100, step=100)

    # Saml passiverne for 2022
    langfristet_gæld_i_alt_2022 = øvrig_langfristet_gæld_2022 + langfristet_rentebærende_gæld_2022
    kortfristet_gæld_i_alt_2022 = øvrig_kortfristet_gæld_2022 + kortfristet_rentebærende_gæld_2022
    passiver_i_alt_2022 = udskudt_skat_2022 + langfristet_gæld_i_alt_2022 + kortfristet_gæld_i_alt_2022 

    # Beregn automatisk egenkapital 2022
    egenkapital_2022 = aktiver_i_alt_2022 - passiver_i_alt_2022

    # Genberegn passiver i alt for 2022
    passiver_i_alt_2022 = udskudt_skat_2022 + langfristet_gæld_i_alt_2022 + kortfristet_gæld_i_alt_2022 + egenkapital_2022

    # Aktiver og Passiver for 2023
    st.subheader("Aktiver og Passiver 2023")
    col10, col11, col12 = st.columns(3)

    # Aktiver 2023
    with col10:
        immaterielle_aktiver_2023 = st.number_input('Immatrielle aktiver 2023', min_value=0, value=0, step=100)
    with col11:
        materielle_anlægsaktiver_2023 = st.number_input('Materielle anlægsaktiver 2023', min_value=0, value=2500, step=100)
    with col12:
        finansielle_anlægsaktiver_2023 = st.number_input('Finansielle anlægsaktiver 2023', min_value=0, value=400, step=100)

    col13, col14, col15 = st.columns(3)
    with col13:
        varelager_2023 = st.number_input('Varelager 2023', min_value=0, value=400, step=100)
    with col14:
        varedebitorer_2023 = st.number_input('Varedebitorer 2023', min_value=0, value=600, step=100)
    with col15:
        værdipapirer_2023 = st.number_input('Værdipapirer 2023', min_value=0, value=0, step=100)

    col16, col17, col18 = st.columns(3)
    with col16:
        øvrige_omsætningsaktiver_2023 = st.number_input('Øvrige omsætningsaktiver 2023', min_value=0, value=120, step=100)
    with col17:
        likvide_midler_2023 = st.number_input('Likvide midler 2023', min_value=0, value=1500, step=100)

    # Saml aktiverne for 2023
    anlægsaktiver_2023 = immaterielle_aktiver_2023 + materielle_anlægsaktiver_2023 + finansielle_anlægsaktiver_2023
    omsætningsaktiver_2023 = varelager_2023 + varedebitorer_2023 + værdipapirer_2023 + øvrige_omsætningsaktiver_2023 + likvide_midler_2023
    aktiver_i_alt_2023 = anlægsaktiver_2023 + omsætningsaktiver_2023

    # Passiver 2023
    col7, col8, col9 = st.columns(3)
    with col7:
        udskudt_skat_2023 = st.number_input('Udskudt skat 2023', min_value=0, value=0, step=100)
    with col8:
        øvrig_langfristet_gæld_2023 = st.number_input('Øvrig langfristet gæld 2023', min_value=0, value=360, step=100)
    with col9:
        langfristet_rentebærende_gæld_2023 = st.number_input('Langfristet rentebærende gæld 2023', min_value=0, value=1000, step=100)

    col10, col11, col12 = st.columns(3)
    with col10:
        øvrig_kortfristet_gæld_2023 = st.number_input('Øvrig kortfristet gæld 2023', min_value=0, value=80, step=100)
    with col11:
        kortfristet_rentebærende_gæld_2023 = st.number_input('Kortfristet rentebærende gæld 2023', min_value=0, value=80, step=100)

    # Saml passiverne for 2023
    langfristet_gæld_i_alt_2023 = øvrig_langfristet_gæld_2023 + langfristet_rentebærende_gæld_2023
    kortfristet_gæld_i_alt_2023 = øvrig_kortfristet_gæld_2023 + kortfristet_rentebærende_gæld_2023
    passiver_i_alt_2023 = udskudt_skat_2023 + langfristet_gæld_i_alt_2023 + kortfristet_gæld_i_alt_2023

    # Beregn automatisk egenkapital 2023
    egenkapital_2023 = aktiver_i_alt_2023 - passiver_i_alt_2023

    # Genberegn passiver i alt for 2023
    passiver_i_alt_2023 = udskudt_skat_2023 + langfristet_gæld_i_alt_2023 + kortfristet_gæld_i_alt_2023 + egenkapital_2023

    # Opret en samlet tabel for både aktiver og passiver under Balance 2022 og Balance 2023
    data_balance = {
        'Balance 2022': [
            anlægsaktiver_2022 * 1000,
            omsætningsaktiver_2022 * 1000,
            aktiver_i_alt_2022 * 1000,
            egenkapital_2022 * 1000,
            udskudt_skat_2022 * 1000,
            langfristet_gæld_i_alt_2022 * 1000,
            kortfristet_gæld_i_alt_2022 * 1000,
            passiver_i_alt_2022 * 1000
        ],
        'Balance 2023': [
            anlægsaktiver_2023 * 1000,
            omsætningsaktiver_2023 * 1000,
            aktiver_i_alt_2023 * 1000,
            egenkapital_2023 * 1000,
            udskudt_skat_2023 * 1000,
            langfristet_gæld_i_alt_2023 * 1000,
            kortfristet_gæld_i_alt_2023 * 1000,
            passiver_i_alt_2023 * 1000
        ]
    }

    # Opret en samlet dataframe
    df_balance = pd.DataFrame(
        data_balance, 
        index=[
            'Anlægsaktiver', 
            'Omsætningsaktiver', 
            'Aktiver i alt', 
            'Egenkapital', 
            'Udskudt skat', 
            'Langfristet gæld', 
            'Kortfristet gæld', 
            'Passiver i alt'
        ]
    )

    # Formater tallene til 'xxx.xxx'
    df_balance = df_balance.applymap(lambda x: f"{x:,.0f}".replace(",", ".") if pd.notnull(x) else '')

    # Vis den samlede Balance tabel
    st.write(df_balance.style.applymap(lambda x: 'font-weight: bold'))

    # Beregn og vis nøgletal
    # Definer nøgletalsvariabler som None, så vi kan tjekke, om de er beregnet senere
    gearing, soliditet, likviditetsgrad, nulpunktsrente, gældsserviceringsgrad = None, None, None, None, None

    if guideline in ['Læge', 'Fysioterapeut', 'Tandlæge', 'Speciallæge', 'Kiropraktor']:
        if EBITDA_2023 != 0:
            gearing = (langfristet_gæld_i_alt_2023 + kortfristet_gæld_i_alt_2023 - likvide_midler_2023 - værdipapirer_2023) / EBITDA_2023
        if passiver_i_alt_2023 != 0:
            soliditet = (egenkapital_2023 / passiver_i_alt_2023) * 100
        if kortfristet_gæld_i_alt_2023 != 0:
            likviditetsgrad = (omsætningsaktiver_2023 / kortfristet_gæld_i_alt_2023) * 100

    # Nøgletal er nu gemt, men ikke vist.

    # Beregn simple cashflow elementer baseret på input fra balancer og resultatopgørelser
    def simple_cashflow_analysis_2023(EBITDA_2023, 
                                  omsætningsaktiver_2023, 
                                  kortfristet_gæld_i_alt_2023, 
                                  anlægsaktiver_2023, 
                                  egenkapital_2023, 
                                  langfristet_rentebærende_gæld_2023):
        
    
        # Beregn cashflow fra drift som EBITDA
        cashflow_drift_2023 = EBITDA_2023
        
        # Beregn cashflow fra investeringer som ændring i anlægsaktiver (negativ, da investeringer reducerer likviditeten)
        cashflow_investeringer_2023 = -anlægsaktiver_2023
        
        # Beregn cashflow fra finansiering som ændring i gæld (langfristet og kortfristet)
        cashflow_finansiering_2023 = (kortfristet_gæld_i_alt_2023 + langfristet_rentebærende_gæld_2023)
        
        # Beregn samlet ændring i likvide midler
        ændring_likvide_midler_2023 = cashflow_drift_2023 + cashflow_investeringer_2023 + cashflow_finansiering_2023
        
        # Opstil cashflow-analyse i tekstformat for 2023
        cashflow = f"""
        **Cashflow 2023:**
        - Cashflow fra drift: {cashflow_drift_2023:,.2f} DKK
        - Cashflow fra investeringer: {cashflow_investeringer_2023:,.2f} DKK
        - Cashflow fra finansiering: {cashflow_finansiering_2023:,.2f} DKK
        - Ændring i likvide midler: {ændring_likvide_midler_2023:,.2f} DKK
        """
        
        return cashflow
    
    #Sammenlign om beregnet gearing overholder guideline og vis dem
    st.write(f"**{guideline}**")
    st.write(f"**Gearing**: {gearing:.1f}" + " < 4")
    st.write(f"**Soliditet**: {soliditet:.1f}% > 20%")
    st.write(f"**Likviditetsgrad**: {likviditetsgrad:.1f}% > 100%")

        # Tilføj tekstfelt til supplerende information og AI-analyse
    supplerende_info = st.text_area(
        'Tilføj supplerende information, som AI skal tage højde for:', 
        'Information om kunden: Lægepraksis v. John Doe \n\n\nIndkomstforhold: Praksissen har oplevet en betydelig stigning i omsætningen, primært som resultat af tilgangen af et ydernummer. Denne udvikling afspejler en positiv vækst i indtjeningsevnen og den stigende omsætning skaber et solidt fundament for fremtidige investeringer og yderligere vækst. \n\n\nKapitalforhold: Kapitalforholdene viser en markant forbedring, hvor soliditeten er steget støt som følge af opsparet overskud over tid. Denne udvikling har resulteret i en sund gældsfaktor og øget finansiel robusthed, hvilket styrker praksissens evne til at håndtere økonomiske udsving og skabe et stabilt fundament for fremtidige muligheder. Den forbedrede kapitalstruktur giver også plads til strategiske investeringer og udvikling.\n\n\nLikviditetsforhold: Praksissen har stærke likviditets- og cashflow-forhold, hvilket sikrer en stabil og sund drift. Den solide likviditet giver fleksibilitet til at håndtere både kortsigtede forpligtelser og potentielle investeringer. Med et stabilt cashflow har praksissen mulighed for at udvide sine aktiviteter og reagere hurtigt på ændringer i markedet ',
        height=250  # Juster højden som ønsket
    )

    # Initial default values
    indkomst_vurdering = ""
    kapital_vurdering = ""
    likviditet_vurdering = ""

    # Tilføj en knap til at generere AI analyse
    if st.button('Generér AI analyse'):
        with st.expander("AI's analyse af regnskab og udvikling"):

                    # Evaluering af tilfredsstillende/ utilfredsstillende for nøgletal baseret på den valgte guideline

            if guideline == ['Læge', 'Fysioterapeut', 'Tandlæge', 'Speciallæge', 'Kiropraktor']:
                indkomst_vurdering = "Tilfredsstillende" if gearing is not None and gearing < 4 else "Utilfredsstillende"
                kapital_vurdering = "Tilfredsstillende" if soliditet is not None and soliditet > 20 else "Utilfredsstillende"
                likviditet_vurdering = "Tilfredsstillende" if likviditetsgrad is not None and likviditetsgrad > 100 else "Utilfredsstillende"

        
            # Lav en brugerdefineret prompt baseret på skabelonen og de beregnede nøgletal
            user_input = (
                f"Aktivitet:\n"
                f"Her skal aktivitet stå med fed skrift og der beskrives hvilken aktivitet virksomheden beskæftiger sig med\n"
                f"Informationen herfra skal bruges til at supplere indkomstforhold, kapitalforhold og likviditetesforhold{supplerende_info}\n\n"  # Her tilføjes information fra supplerende_info
            )

            # Tilføj nøgletal til prompten, når de er blevet beregnet baseret på valgte guideline
            if guideline in ['Læge', 'Fysioterapeut', 'Tandlæge', 'Speciallæge', 'Kiropraktor']:
                if gearing is not None:
                    user_input += f"Gearing: {gearing:.2f}% (krav: <5)\n"
                if soliditet is not None:
                    user_input += f"Soliditet: {soliditet:.2f}% (krav: >20%)\n"
                if likviditetsgrad is not None:
                    user_input += f"Likviditetsgrad: {likviditetsgrad:.2f}% (krav: >125%)\n"

            # Indkomstforhold
            user_input += f"\nIndkomstforhold: {indkomst_vurdering}\n"
            user_input += "Det er vigtigt at formatet er Indkomstforhold: Tilfredsstillende eller utilfredsstillende med fed skrift\n"
            user_input += "Heri skal der kommenteres på udviklingen i omsætning, EBITDA og indtjening mm. "

            # Kapitalforhold
            user_input += f"Kapitalforhold: {kapital_vurdering}\n"
            user_input += f"Det er vigtigt at formatet er Kapitalforhold: Tilfredsstillende eller utilfredsstillende med fed skrift\n"
            user_input += f"Her skal der kommenteres på soliditetsgraden i virksomheden.\n\n"

            # Eksempel på hvordan du tilføjer cashflow-analysen for 2023 til likviditetsvurderingen:
            user_input += f"Likviditetsforhold: **{likviditet_vurdering}**\n"
            user_input += f"Det er vigtigt at formatet er Likviditetsforhold: **Tilfredsstillende** eller **Utilfredsstillende** med fed skrift.\n"

            # Cashflow-analyse opstillet i punktform
            user_input += "Cashflow 2023:\n"
            user_input += "  - Cashflow fra drift: {:.2f} DKK\n".format(EBITDA_2023)
            user_input += "  - Cashflow fra investeringer: {:.2f} DKK\n".format(-anlægsaktiver_2023)  # Negativ fordi investeringer trækker på likviditeten
            user_input += "  - Cashflow fra finansiering: {:.2f} DKK\n".format(kortfristet_gæld_i_alt_2023 + langfristet_rentebærende_gæld_2023)

            # Beregn den samlede ændring i likvide midler
            ændring_likvide_midler_2023 = EBITDA_2023 + (-anlægsaktiver_2023) + (kortfristet_gæld_i_alt_2023 + langfristet_rentebærende_gæld_2023)
            user_input += "  - Ændring i likvide midler: {:.2f} DKK\n".format(ændring_likvide_midler_2023)

            # Kommentar på likviditeten
            user_input += "Kommenter på om likviditeten er stærk i virksomheden. Ikke nævn cashflow-analysen"

            # Tilføj nøgletal til prompten baseret på valgt guideline
            user_input += f"Nøgletal: ({guideline})\n"

                        # Indsæt eksempel på god kommentering med neutrale tal og guideline i user_input
            user_input += '''
            eksempel på god kommenterings skabelon:

            Aktivitet:

            Indkomstforhold: Tilfredsstillende eller ikke tilfredsstillende 
    
            Kapitalforhold: Tilfredsstillende eller ikke tilfredsstillende 
            
            Likviditetsforhold: Tilfredsstillende eller ikke tilfredsstillende 

            Cashflow:
            
            Nøgletal: ({guideline})  
            Gearing/Nulpunksrente: (krav: <)  
            Soliditet: % (krav: >%)  
            Likviditetsgrad: % (krav: >%)

            Sammenfattende viser nøgletallene...
            '''

            # Generer AI's kommentar ved hjælp af duckduckgo_search's chat API
            try:
                ai_response = DDGS().chat(user_input, model='gpt-4o-mini')
                st.markdown(ai_response)
            except Exception as e:
                st.error(f"AI forespørgslen mislykkedes: {e}. Prøv venligst igen senere.")

### SKAT OG RÅDIGHED
elif menu == "Skat & Rådighed":
    st.title("Skat & Rådighed")

    st.subheader("KUNDE- OG FAMILIEFORHOLD")

    # Indtast kundens adresse
    kunde_adresse = st.text_input("Kundens adresse:", "Samsøgade 12")

    # Vælg boligtype
    boligtype = st.selectbox("Boligtype", ["Ejerbolig", "Andelsbolig", "Lejebolig"])

    # Variabler for boligrelaterede oplysninger
    seneste_vurdering, vurderingsdato, vurderingstype, gæld_i_ejendom, ltv = None, None, None, None, None

    if boligtype != "Lejebolig":
        # Indtast vurdering med format i punktum og komma (2.000.000,00)
        seneste_vurdering = st.number_input("Seneste vurdering (DKK):", min_value=0.0, step=1000.0, value=1000000.0, format="%.0f")
        vurderingsdato = st.date_input("Vurderingsdato")

        # Vælg vurderingstype
        vurderingstype = st.selectbox("Vurderingstype", ["Skrivebordsvurdering", "Statistisk Vurdering", "Vurdering Med Besigtigelse", "Offentlig vurdering", "Handelsværdi"])

        # Indtast gæld i ejendom med format 2.000.000,00
        gæld_i_ejendom = st.number_input("Gæld i ejendom (DKK):", min_value=0.0, step=1000.0, value=500000.0, format="%.0f")

        # Beregn LTV ud fra seneste vurdering og gæld i ejendom, men kun hvis seneste vurdering ikke er nul
        if seneste_vurdering > 0:
            ltv = (gæld_i_ejendom / seneste_vurdering) * 100
            st.markdown(f"**LTV: {ltv:.2f}%**")  # LTV i fed skrift
        else:
            st.write("LTV kan ikke beregnes, da vurderingen er 0 eller mangler.")
    else:
        st.write("Vurdering og gæld i ejendom er ikke relevant for lejeboliger.")

    # Civilstatus og kundens navn og alder
    civilstatus = st.selectbox("Civilstatus", ["Single", "Gift", "Samlever"])
    
    # Indtast kundens navn og alder
    kunde_navn = st.text_input("Kundens navn:", "John Doe")
    kunde_alder = st.number_input("Kundens alder:", min_value=0, max_value=120, value=35, step=1)

    # A-kasse for kunden (flyttet under kundens alder)
    a_kasse = st.selectbox("Er kunden medlem af A-kasse?", ["Ja", "Nej"])

    # Ægtefælle/samlever afhængig af civilstatus
    if civilstatus == "Gift":
        ægtefælle_navn = st.text_input("Ægtefælles navn:")
        ægtefælle_alder = st.number_input("Ægtefælles alder:", min_value=0, max_value=120, step=1)
        ægtefælle_a_kasse = st.selectbox("Er ægtefællen medlem af A-kasse?", ["Ja", "Nej"])
    elif civilstatus == "Samlever":
        samlever_navn = st.text_input("Samlevers navn:")
        samlever_alder = st.number_input("Samlevers alder:", min_value=0, max_value=120, step=1)
        samlever_a_kasse = st.selectbox("Er samleveren medlem af A-kasse?", ["Ja", "Nej"])
    
    # Indtast profession og arbejdsplads (flyttet arbejdsplads under profession)
    kunde_profession = st.text_input("Kundens profession:")
    kunde_arbejdsplads = st.text_input("Kundens arbejdsplads:")

    if civilstatus == "Gift":
        ægtefælle_profession = st.text_input("Ægtefælles profession:")
        ægtefælle_arbejdsplads = st.text_input("Ægtefælles arbejdsplads:")
    elif civilstatus == "Samlever":
        samlever_profession = st.text_input("Samlevers profession:")
        samlever_arbejdsplads = st.text_input("Samlevers arbejdsplads:")

    # Børn: Flyt muligheden for at vælge antal børn nederst
    har_børn = st.selectbox("Har kunden børn?", ["Nej", "Ja"])

    børn = []
    
    if har_børn == "Ja":
        antal_børn = st.slider("Antal børn:", min_value=0, max_value=5)
        
        # Dynamisk tilføjelse af felter til hvert barn baseret på antal børn
        if antal_børn > 0:
            for i in range(antal_børn):
                Barn_navn = st.text_input(f"Barn {i+1} navn:")
                Barn_alder = st.number_input(f"Barn {i+1} alder:", min_value=0, max_value=120, step=1)
                # Tilføj hvert barns data som en ordbog til listen
                børn.append({"navn": Barn_navn, "alder": Barn_alder})

    Kunde_og_familie = st.text_area("Indtast yderligere information til Kunde- og familieforhold:")

    st.subheader("INDKOMSTFORHOLD")

    # Brug det tidligere indtastede navn fra kunde- og familieoplysninger
    st.text(f"Kundens navn: {kunde_navn}")

    # Dropdown for valg af oplysninger fra e-skat, Lønseddel, Regnskab
    oplysninger_fra_kunde = st.selectbox("Oplysninger fra (kunde):", ["e-skat", "Lønseddel", "Regnskab"])

    # Nuværende årsindkomst for kunden (i format 950.000,00 kr.)
    nuværende_årsindkomst_kunde = st.number_input("Nuværende årsindkomst (DKK):", min_value=0.0, step=1000.0, format="%.0f")

    # Fremtidig årsindkomst for kunden (i format 1.100.000,00 kr.)
    fremtidig_årsindkomst_kunde = st.number_input("Fremtidig årsindkomst (DKK):", min_value=0.0, step=1000.0, format="%.0f")

    # Hvis der er en ægtefælle eller samlever, brug det tidligere indtastede navn
    if civilstatus == "Gift":
        st.text(f"Ægtefælles navn: {ægtefælle_navn}")
    elif civilstatus == "Samlever":
        st.text(f"Samlevers navn: {samlever_navn}")

    # Dropdown for valg af oplysninger fra e-skat, Lønseddel, Regnskab for ægtefælle/samlever
    oplysninger_fra_ægtefælle = st.selectbox("Oplysninger fra (ægtefælle/samlever):", ["e-skat", "Lønseddel", "Regnskab"])

    # Nuværende årsindkomst for ægtefælle/samlever
    nuværende_årsindkomst_ægtefælle = st.number_input("Nuværende årsindkomst (DKK) (ægtefælle/samlever):", min_value=0.0, step=1000.0, format="%.0f")

    # Fremtidig årsindkomst for ægtefælle/samlever
    fremtidig_årsindkomst_ægtefælle = st.number_input("Fremtidig årsindkomst (DKK) (ægtefælle/samlever):", min_value=0.0, step=1000.0, format="%.0f")

    # Tilføj en tekstboks til supplerende information
    supplerende_info_indkomst = st.text_area("Indtastet yderligere information til indkomstforhold:")

    st.subheader("LÅN OG ANDEN GÆLD/HÆFTELSE UDENFOR ")

    # Vælg om der er gæld udenfor
    gæld_udenfor = st.radio("Er der gæld udenfor?", ["Ja", "Nej"])

    # Initialiser en liste til at gemme gældsposterne
    gældsposter = []

    if gæld_udenfor == "Ja":
        # Vælg antal gældsposter
        antal_gæld = st.slider("Hvor mange gældsposter er der?", 1, 3)

        # Indsaml information om hver gældspost
        for i in range(1, antal_gæld + 1):
            st.text(f"Gældsinformation {i}")
            gældsinstitut = st.text_input(f"Gældsinstitut {i}", key=f"gældsinstitut_{i}")
            gældstype = st.text_input(f"Gældstype {i}", key=f"gældstype_{i}")
            gældsbeløb = st.number_input(f"Gældsbeløb {i} (DKK):", min_value=0.0, step=1000.0, format="%.2f", key=f"gældsbeløb_{i}")
            
            # Tilføj hver gældspost som en ordbog til listen
            gældsposter.append({
                "institut": gældsinstitut,
                "type": gældstype,
                "beløb": gældsbeløb
            })

    # Valg om der er lønindhold
    lønindhold = st.radio("Er der lønindhold?", ["Ja", "Nej"])
    if lønindhold == "Ja":
        st.write("Kunden har lønindhold. Rådgiver skal indhente dokumentation på dette")

    # Valg om der er restskat
    restskat = st.radio("Er der restskat?", ["Ja", "Nej"])
    if restskat == "Ja":
        st.write("Kunden har restskat til betaling. Rådgiver skal indhente dokumentation på dette.")


    lån_anden_gæld = st.text_area("Indtast information om lån og anden gæld/hæftelse udenfor:")

    st.subheader("FORBRUGSUDGIFTER")

    # Forbrugsudgangspunkt
    forbrugsudgangspunkt = st.selectbox("Forbrugsudgangspunkt:", ["Energiberegner", "Kundens eget budget"])

    if forbrugsudgangspunkt == "Energiberegner":
        st.write("Forbrugsudgifterne er indhentet fra SparEnergi beregnerne, da disse udgifter er højere end de udgifter kunderne selv har oplyst i budgettet. Derfor medtages disse af forsigtighedsprincip. Screenshots fra beregnerne er arkiveret på kunderne.")
    else:
        st.write("Forbrugsudgifterne er medtaget fra kundens eget budget. Det skyldes at disse udgifter er højere end Energiberegnernes udgifter, og derfor anvendes disse af forsigtighedsprincip.")
    
    forbrugsudgifter = st.text_area("Indtast yderligere information om forbrugsudgifter:")

    st.subheader("BIL/BILER")

# Initialiser en liste til at gemme gældsposterne

    # Valg om kunden har en bil eller flere biler
    har_bil = st.radio("Har kunden en bil/biler?", ["Ja", "Nej"])

    # Initialiser listen udenfor if-blokken, så den ikke bliver overskrevet
    Biler = []

    if har_bil == "Ja":
        # Vælg antal biler
        antal_biler = st.slider("Hvor mange biler", 1, 3)

        # Indsaml information om hver bil
        for i in range(1, antal_biler + 1):
            st.text(f"Information om bil {i}")
            
            # Tilføj unikke nøgler til hver input for at sikre, at Streamlit genkender hver bil korrekt
            bil_model = st.text_input(f"Bilmodel {i}", key=f"Bilmodel_{i}")
            bil_årgang = st.text_input(f"Bilårgang {i}", key=f"Bilårgang_{i}")
            bil_værdi = st.number_input(f"Værdi {i} (DKK):", min_value=0.0, step=1000.0, format="%.2f", key=f"Værdi_{i}")
            
            # Tilføj bilens data til listen, selvom input er tomme (så de bliver husket af Streamlit)
            Biler.append({
                "model": bil_model,
                "årgang": bil_årgang,
                "værdi": bil_værdi
            })

    biler = st.text_area("Indtast yderligere information om kundens bil eller biler:")

    st.subheader("FORMUE")
    formue_tal = st.number_input('Indtast størrelse på formue (DKK):', min_value=0, value=0, step=1000)

    formue = st.text_area("Indtast information om formue:")

    st.subheader("GÆLDSFAKTOR")

    gældsfaktor_tal = st.number_input('Indtast GF', min_value=-10.1, value=0.0, step=0.1)

    gældsfaktor = st.text_area("Indtast yderligere information til GF:")

    st.subheader("RÅDIGHEDSBELØB")
    nuværende_rb = st.number_input('Nuværende rådighedsbeløb (DKK):', min_value=0, value=0, step=1000)
    fremtidigt_rb = st.number_input('Fremtidigt rådighedsbeløb (DKK):', min_value=0, value=0, step=1000)
    stresset_rb = st.number_input('Fremtidigt stresset rådighedsbeløb (DKK):', min_value=0, value=0, step=1000)
    # Ændring i % mellem nuværende og stresset rådighedsbeløb i fed skrift. Hvis nuværende er 0, vises 0%
    ændring_rådighedsbeløb = st.write(f"**Ændring i rådighedsbeløb:** **{((stresset_rb - nuværende_rb) / nuværende_rb * 100):.2f}%**" if nuværende_rb != 0 else "Ændring i rådighedsbeløb: **0%**")  

    rådighedsbeløb = st.text_area("Indtast yderligere information om rådighedsbeløb:")

    st.subheader("PENSIONS- OG FORSIKRINGSFORHOLD")
    pension = st.text_area("Indtast information om pensions- og forsikringsforhold:")

    st.subheader("FREMTID/DRØMME")
    fremtid_drømme = st.text_area("Indtast information om fremtid/drømme:")

    # Display the entered information as a document
    if st.button("Udarbejd Skat og Rådighed"):
        document = f"""
        """
        
        if boligtype != "Lejebolig":
            document += f"""
            Seneste vurdering: {seneste_vurdering:,.2f} DKK
            Vurderingsdato: {vurderingsdato}
            Vurderingstype: {vurderingstype}
            Gæld i ejendom: {gæld_i_ejendom:,.2f} DKK
            LTV: {ltv:.2f}%
            """
        
        document = f"""
        KUNDE- OG FAMILIEFORHOLD:
        Kunde: {kunde_navn}{kunde_alder}
        Kundens profession: {kunde_profession}
        Kundens arbejdsplads: {kunde_arbejdsplads}
        A-kasse: {a_kasse}
        Civilstatus: {civilstatus}
        """
        
        if civilstatus == "Gift":
            document += f"Ægtefælle: {ægtefælle_navn}{ægtefælle_alder}\n"
            document += f"Ægtefælle profession: {ægtefælle_profession}\n"
            document += f"Ægtefælle arbejdsplads: {ægtefælle_arbejdsplads}\n"
            document += f"Ægtefælle A-kasse: {ægtefælle_a_kasse}\n"
        elif civilstatus == "Samlever":
            document += f"Samlever: {samlever_navn}{samlever_alder}\n"
            document += f"Samlever profession: {samlever_profession}\n"
            document += f"Samlever arbejdsplads: {samlever_arbejdsplads}\n"
            document += f"Samlever A-kasse: {samlever_a_kasse}\n\n\n"
        

        # Tilføj information om antal børn
        document += f"Antal børn: {antal_børn if har_børn == 'Ja' else 'Ingen'}\n"


        # Tilføj børnenes information, hvis der er nogen
        if antal_børn > 0:
            for index, barn in enumerate(børn, start=1):
                document += f"{barn['navn']}{barn['alder']} år\n"

        document += f"""
        Adresse: {kunde_adresse}
        Boligtype: {boligtype}
        LTV: {ltv:.2f}%
        """

        document += Kunde_og_familie
        document += f"""
        INDKOMSTFORHOLD (E-SKAT OG ELLER REGNSKAB GENERELT):
        {kunde_navn}
        Oplysninger fra {oplysninger_fra_kunde}:
        Nuværende årsindkomst (DKK): {nuværende_årsindkomst_kunde:,.2f}
        Fremtidig årsindkomst (DKK): {fremtidig_årsindkomst_kunde:,.2f}

        """
        
        if civilstatus in ["Gift", "Samlever"]:
            document += f"""
            {ægtefælle_navn if civilstatus == 'Gift' else samlever_navn}
            Oplysninger fra {oplysninger_fra_ægtefælle}
            Nuværende årsindkomst (DKK): {nuværende_årsindkomst_ægtefælle:,.2f}
            Fremtidig årsindkomst (DKK): {fremtidig_årsindkomst_ægtefælle:,.2f}
            """
        
        document += f"""
        Supplerende information til indkomstforhold:
        {supplerende_info_indkomst}
        """

                # Tilføj information om gæld udenfor 
        document += f"LÅN OG ANDEN GÆLD/HÆFTELSE UDENFOR :\n"
        document += f"Gæld udenfor: {'Ja' if gæld_udenfor == 'Ja' else 'Nej'}\n"

        # Tilføj gældsposterne til dokumentet
        if gæld_udenfor == "Ja" and gældsposter:
            for index, gæld in enumerate(gældsposter, start=1):
                document += f"Gældsinstitut {index}: {gæld['institut']}, Gældstype: {gæld['type']}, Gældsbeløb: {gæld['beløb']:,.2f} DKK\n"
        else:
            document += "Ingen gæld udenfor.\n"

        # Tilføj information om lønindhold og restskat
        if lønindhold == "Ja":
            document += "Bemærk: Kunden har lønindhold. Rådgiver skal indhente dokumentation på dette.\n"
        if restskat == "Ja":
            document += "Bemærk: Kunden har restskat til betaling. Rådgiver skal indhente dokumentation på dette.\n"

        # Tilføj ekstra kommentarer
        document += f"{lån_anden_gæld}\n\n"

       # Tilføj forbrugsudgifter til dokumentet baseret på valg
        document += "FORBRUGSUDGIFTER:\n"

        # Tilføj specifik tekst baseret på valget
        if forbrugsudgangspunkt == "Energiberegner":
            document += (
                "Forbrugsudgifterne er indhentet fra SparEnergi beregnerne, da disse udgifter er højere "
                "end de udgifter kunderne selv har oplyst i budgettet. Derfor medtages disse af forsigtighedsprincip. "
                "Screenshots fra beregnerne er arkiveret på kunderne.\n"
            )
        elif forbrugsudgangspunkt == "Kundens eget budget":
            document += (
                "Forbrugsudgifterne er medtaget fra kundens eget budget. Det skyldes, at disse udgifter er højere end "
                "Energiberegnernes udgifter, og derfor anvendes disse af forsigtighedsprincip.\n"
            )

        document += f"{forbrugsudgifter}\n\n"

        document += "BIL/BILER:\n"
        document += f"Har kunden en bil?: {'Ja' if har_bil == 'Ja' else 'Nej'}\n"

        # Hvis kunden har biler, tilføjes de til dokumentet. Alle biler fremvises 
        if har_bil == "Ja" and Biler: 
            for index, bil in enumerate(Biler, start=1):
                document += f"Bil {index}: {bil['model']} ({bil['årgang']}), Ca. Værdi: {bil['værdi']:,.2f} DKK\n"
        else:
            document += "Ingen bil/biler.\n" 

        document += f"""

        FORMUE:
        Formue: {formue_tal:,.2f} DKK
        {formue}

        GÆLDSFAKTOR:
        GF: {gældsfaktor_tal:.1f}
        {gældsfaktor}

        RÅDIGHEDSBELØB:
        Nuværende rådighedsbeløb: {nuværende_rb:,.2f} DKK
        Fremtidigt rådighedsbeløb: {fremtidigt_rb:,.2f} DKK
        Fremtidigt stresset rådighedsbeløb: {stresset_rb:,.2f} DKK
        Ændring i rådighedsbeløb: {((stresset_rb - nuværende_rb) / nuværende_rb * 100):.2f}%
        {rådighedsbeløb}

        PENSIONS- OG FORSIKRINGSFORHOLD:
        {pension}

        FREMTID/DRØMME:
        {fremtid_drømme}
        """

        # vis dokument
        # st.text_area("Dokument", document, height=600)

        user_input = """Nedstående er en inspiration. Ret tilpasset til kundens situation baseret på document variablen. Overskrift skal alle være i store bogstaver og tekst skal stå under den korrekte overskrift.:
        
       KUNDE- OG FAMILIEFORHOLD
        Familiesituation, boligsituation, særlige forhold.

        INDKOMSTFORHOLD (E-SKAT DATA/REGNSKAB GENERELT)
        Beskriv her indkomstforhold og fremtidig indkomst samt hvordan denne indkomst er dokumenteret og vurderet.


        LÅN OG ANDEN GÆLD/HÆFTELSE UDENFOR
        Gældstyper, beløb, renter, og afdragsforpligtelser.

        FORBRUGSUDGIFTER
        Månedlige faste og variable udgifter.

        BIL/BILER
        Antal, type, udgifter, og nødvendighed.

        FORMUE
        Opsparing, ejendomme, og øvrige værdier.

        GÆLDSFAKTOR
        Forhold mellem gæld og indkomst.

        RÅDIGHEDSBELØB
        Beløb efter faste udgifter og afdrag.

        PENSIONS- OG FORSIKRINGSFORHOLD
        Pension, forsikringer, og dækning.

        FREMTID/DRØMME
        Økonomiske mål og planer.
        """

        prompt = f"""
        Her er dokumentet:
        {document}

        Brugerinput:
        {user_input}

        Svar på følgende baseret på ovenstående information:
        """

        # Optionally: Call duckduckgo_search API (if configured in a real environment)
        try:
            ai_response = DDGS().chat(prompt, model='gpt-4o-mini')
            st.write("**Teksten kan kopieres og indsættes**")
            st.markdown(ai_response)
        except Exception as e:
            st.error(f"AI forespørgslen mislykkedes: {e}. Prøv venligst igen senere.")

# Indstillingspåtegning menur
elif menu == "Indstillingspåtegning":
    st.title("Indstillingspåtegning")

    st.subheader("Vælg den skabelon, der passer til din kundes lånesag")

    st.write("Du skal altid anvende skabelonen ”Nybevilling”, når der er krav om, at debitor overholder guidelies. Debitor skal overholde guidelines, når du ansøger om ændringer i engagement eller sikkerheder, der forøger kreditrisikoen væsentligt.")


    # Genforhandling eller Nybevilling
    st.selectbox("Genforhandling eller Nybevilling:", ["Genforhandling", "Nybevilling"])

    # Liste med kundetyper
    kundetyper = [
        "(Vælg kundetype)", 
        "Handel", 
        "Industri", 
        "Entreprenører", 
        "Service og liberale erhverv", 
        "Ejendomsudlejning", 
        "Ejendomsudvikling, investeringsprojekt", 
        "Landbrug", 
        "Landbrug, forpagtning", 
        "Andelsboligforeninger", 
        "Almene boligorganisationer", 
        "Ejerforeninger", 
        "Hoteller (ej bortforpagtet)", 
        "Statseje. skoler og gymnasier", 
        "Privatskoler og private gymnasier", 
        "Uregulerede skoler", 
        "Flerstrenget idrætsanlæg", 
        "Enkeltstrenget idrætsanlæg", 
        "Golfklubber", 
        "Kulturelle institutioner", 
        "Sociale institutioner"
    ]

    # Selectbox til valg af kundetype
    valgt_kundetype = st.selectbox("Kundetype:", kundetyper)

    # Knap til indtastning af Kundenavn/Debitor 
    Navn = st.text_input("Kundenavn/Debitor:")

    # Checkbox eller selectbox til valg af metode
    guideline_valg = st.selectbox("Vælg hvordan guidelines er beregnet:", ["Regnskab", "Budget"])

    # Tekst til radio-knap
    st.write('Vurderer du, at lånesagen fraviger krav i forretningsange?')

   # Opret en radio-knap til valg mellem "Ja" og "Nej"
    valg = st.radio("Fravigelse af guidelines:", ['Nej', 'Ja'])