from flask import render_template TEMPLATE = 'components/modul_planung.html' def get_formular_html(): return render_template(TEMPLATE) def berechne(form_data): pos = [] zul_mtb = _float(form_data.get('zulage_struk_mtb', 0)) zul_otb = _float(form_data.get('zulage_struk_otb', 0)) mpp_zn = _float(form_data.get('mpp_gfk_zn', 0)) mpp_kr = _float(form_data.get('mpp_kr', 0)) mpp_snrv = _float(form_data.get('mpp_snrv', 0)) gf_minik = _float(form_data.get('gf_minik', 0)) ivk = _float(form_data.get('ivk_m', 0)) zul_kl = _float(form_data.get('zulage_kl_baum', 0)) s_liste = form_data.get('s_liste', '').strip() if form_data.get('proj_struk_mtb') == 'an': txt = 'Projektierung n. Strukturplanung mit TB bis 100m' if zul_mtb > 0: txt += f', Zulage {zul_mtb}m ab 101m' pos.append(dict(pos_nr='10037800', kurztext=txt, menge=1, einheit='ST')) if form_data.get('proj_struk_otb') == 'an': txt = 'Projektierung n. Strukturplanung ohne TB bis 100m' if zul_otb > 0: txt += f', Zulage {zul_otb}m ab 101m' pos.append(dict(pos_nr='10037801', kurztext=txt, menge=1, einheit='ST')) if form_data.get('mpp_gfk_nvt_ap') == 'an': txt = 'MP-Proj. FTTH-Gf-Kabel v. NVT → GF-AP' if mpp_zn > 0: txt += f' ({mpp_zn}m im ZN-Netz)' pos.append(dict(pos_nr='10037802', kurztext=txt, menge=1, einheit='ST')) if form_data.get('mpp_gfap') == 'an': pos.append(dict(pos_nr='10037803', kurztext='MP-Proj. GF-AP', menge=1, einheit='ST')) if mpp_kr > 0: pos.append(dict(pos_nr='10037804', kurztext=f'MP-Proj. KR-Anlagen ({mpp_kr}m)', menge=mpp_kr, einheit='M')) if mpp_snrv > 0: pos.append(dict(pos_nr='10037805', kurztext=f'MP-Proj. ({mpp_snrv}m)', menge=mpp_snrv, einheit='M')) if form_data.get('ap_sgs') == 'an': pos.append(dict(pos_nr='10037806', kurztext='GF-AP + Patchfeld', menge=1, einheit='ST')) if gf_minik > 0: pos.append(dict(pos_nr='10037807', kurztext=f'GF-Kabel einbl./verlegen ({gf_minik}m)', menge=gf_minik, einheit='M')) if ivk > 0: pos.append(dict(pos_nr='10037808', kurztext=f'IVK ({ivk}m)', menge=ivk, einheit='M')) if form_data.get('proj_kl_baum') == 'an': txt = 'Proj. kl. Baumaßnahme' if zul_kl > 0: txt += f' ({zul_kl}m)' pos.append(dict(pos_nr='10037809', kurztext=txt, menge=1, einheit='ST')) if form_data.get('s_planung_05') == 'an': pos.append(dict(pos_nr='10037810', kurztext='S-Planung 0,5', menge=1, einheit='ST')) if s_liste: lines = [l.strip() for l in s_liste.split('\n') if l.strip()] for i, line in enumerate(lines): pos.append(dict(pos_nr='10037811', kurztext=f'S-Liste: {line}', menge=1, einheit='ST')) return pos def _float(val, default=0): try: return float(str(val).replace(',', '.')) except: return default def _int(val, default=0): try: return int(float(str(val).replace(',', '.'))) except: return default