import os

import header


def erstelleSoMiBogen(kursid, klassekurs_name, dateien, path, namen, gebdaten, config, inputs, kurs_inputs):

    table = ''

    allg = inputs["Allgemein"]
    schuljahr = allg["schuljahr"]
    halbjahr = allg["halbjahr"]

    try:
        somi_quartale = int(kurs_inputs["somi_quartale"])
        somi_zeilen = int(kurs_inputs["somi_zeilen"])
    except KeyError:
        print('Ein Parameter "somi_XYZ" fehlt für die Lerngruppe in der Input-Datei!')
        exit(0)

    noten_anzahl = int(config["SoMiNoten"]["anzahl_noten"])
    kompakt = config["SoMiNoten"]["kompakt"]

    try:
        namen_kurzlang = config["Namen"]["form"]
    except KeyError:
        print('Der Schlüssel Namen oder "form" existiert nicht in der Device-Datei!')
        exit(0)    

    if (namen_kurzlang=="lang"):
        beschriftung_name = "Name, Vorname"
    else:
        beschriftung_name = "Vorname N."

    offset = 0
    if (halbjahr=='2'):
        offset = 2

    for no in range(offset+1, offset+somi_quartale+1):

        table += '<a name="'+klassekurs_name+'SoMiQ'+str(no)+'"></a>'

        line = ''
        if somi_quartale>1:
            line += 'SoMi Q'+str(no)
        else:
            line += 'SoMi Q'+str(no)
            line += '/Q'+str(no+1)

        table += header.erstelleKursnavigation(kursid, line, 'somi', klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs)

        if (kompakt=="ja"):
            table += '<table class="somi">'
        else:
            table += '<table class="somi" repeat="'+str(somi_zeilen)+'">'

        rowspan = ''
        if somi_zeilen>1:
            rowspan = ' rowspan="'+str(somi_zeilen)+'"'

        for zeile in range(0, somi_zeilen):

            myclass = ' class="header"'
            if (somi_zeilen>1 and zeile<(somi_zeilen-1)):
                myclass = ' class="secretheader"'
            table += '<tr'+myclass+'>'
            
            if zeile==0:
                if (kompakt!="ja"):
                    table += '<th class="nr"'+rowspan+'>Nr</th>'
                table += '<th class="name"'+rowspan+'>'+beschriftung_name+'</th>'

            for i in range(noten_anzahl):
                table += '<th class="somi">&nbsp;</th>'
            
            if zeile==0:
                if (kompakt=="ja"):
                    table += '<th class="sominote"'+rowspan+'></th>'
                else:
                    table += '<th class="sominote"'+rowspan+'>Note</th>'

            table += '</tr>'

        count = 0
        for name in namen:

            count = count + 1

            for zeile in range(0, somi_zeilen):

                table += '<tr>'

                if zeile==0:
                    if (kompakt!="ja"):
                        table += '<td class="nr"'+rowspan+'>'+str(count)+'</td>'
                    table += '<td class="name"'+rowspan+'>'+name+'</td>'
                
                for i in range(noten_anzahl):
                    table += '<td class="somi">&nbsp;</td>'

                if zeile==0:                
                    table += '<td class="sominote"'+rowspan+'></td>'

                table += '</tr>'

        table += '</table>'

        table += '<pdf:nextpage />'

    return table
