from flask import render_template

TEMPLATE = 'components/modul_gruben.html'

def get_formular_html():
    return render_template(TEMPLATE)

def berechne(form_data):
    positionen = []
    l = _float(form_data.get('laenge', 0))
    b = _float(form_data.get('breite', 0))
    t = _float(form_data.get('tiefe', 0))

    if l <= 0 or b <= 0 or t <= 0:
        return positionen

    oberflaeche = form_data.get('oberflaeche', 'wiese')
    volumen = l * b * t / 100

    oberfl_map = {
        'wiese': ('10037463', 'Grube in Wiese herstellen'),
        'kies': ('10037464', 'Grube in Kies herstellen'),
        'asphalt': ('10037465', 'Grube in Asphalt herstellen'),
        'pflaster': ('10037466', 'Grube in Pflaster herstellen'),
    }
    if oberflaeche in oberfl_map:
        pnr, txt = oberfl_map[oberflaeche]
        positionen.append({
            'pos_nr': pnr, 'kurztext': txt, 'menge': volumen,
            'einheit': 'M3', 'laenge': l, 'breite': b, 'tiefe': t,
        })

    return positionen

def _float(val, default=0):
    try:
        return float(str(val).replace(',', '.'))
    except (ValueError, TypeError):
        return default
