from flask import render_template

TEMPLATE = 'components/modul_neff_achberg.html'

def get_formular_html():
    return render_template(TEMPLATE)

def berechne(form_data):
    positionen = []
    l = _float(form_data.get('laenge', 0))
    typ = form_data.get('typ', 'haus')

    if l <= 0:
        return positionen

    if typ == 'haus':
        positionen.append({
            'pos_nr': '10043001',
            'kurztext': 'Leitungsgraben HA Neff-Achberg',
            'menge': l,
            'einheit': 'M',
            'laenge': l,
            'bemerkung': form_data.get('bemerkung', ''),
        })
    elif typ == 'tb':
        positionen.append({
            'pos_nr': '10043002',
            'kurztext': 'Leitungsgraben TB Neff-Achberg',
            'menge': l,
            'einheit': 'M',
            'laenge': l,
            'bemerkung': form_data.get('bemerkung', ''),
        })

    if form_data.get('rohr_4x20') == 'an':
        positionen.append({
            'pos_nr': '10043003',
            'kurztext': 'Rohr 4x20mm (Neff-Achberg)',
            'menge': l,
            'einheit': 'M',
            'laenge': l,
        })

    if form_data.get('trassenband') == 'an':
        positionen.append({
            'pos_nr': '10043004',
            'kurztext': 'Trassenband einlegen',
            'menge': l,
            'einheit': 'M',
            'laenge': l,
        })

    if form_data.get('kopfloch') == 'an':
        positionen.append({
            'pos_nr': '10043005',
            'kurztext': 'Kopfloch herstellen',
            'menge': _int(form_data.get('kopfloch_anzahl', 1)),
            'einheit': 'ST',
        })

    return positionen

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

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