TINETZ Extension - nw_tinetz

    Diese Extension wurde von der Firma NETWERK Kreidl programmiert. Wir mussten die Extension im Jahr 2022 mit der Onlinestellung der Webseite tinetz.at übernehmen. Vereinbart wurde, dass die Extension spätestens mit dem Upgrade auf Typo3 V11 auf Bakehouse-Technologien umgebaut wird. Ein Angebot diesbezüglich wurde noch nicht erstellt.

    Es gibt ein GIT
    https://git.bakehouse.at/cookis/Tinetz_Netzzugangsformular

    Ansprechpartner sind:
    FRICK Christian (TINETZ)                 christian.frick@tinetz.at
    KORUNA Robert (TIWAG / BIT)      robert.koruna@tiwag.at

    Funktion

    Die Extension ist an und für sich ein komplexes Anfrageformular mit einigen Abhängigkeiten. Wenn das Formular ausgefüllt wurde passiert folgendes: 

    • XML Datei wird in den /fileadmin/form_data gelegt
    • XML Dateien werden von der TINETZ via SCP regelmäßig 'abgeholt'
    • Eingetragene Daten werden in Datenbank gelegt
    • PDF mit den eingegebenen Daten wird erstellt
    • Ein Cronjob löscht regelmäßig die gespeicherten Daten

    Zusätzliches Feld anlegen

    • Feld mit Type angeben in  nw_tinetz/ext_tables.sql 
    • HTML anpassen im richtigen Step: nw_tinetz/Resources/Private/Partials/Step*.html
    • Text für Labels hintelegen nw_tinetz/Resources/Private/Language/locallang.xlf
    • Hier befindet sich die Logik* nw_tinetz/Classes/Formular/Formularpage2.php
    • im Model anlegen nw_tinetz/Classes/Domain/Model/Tinetz.php
    • im TCA eintragen nw_tinetz/Configuration/TCA/tx_nwtinetz_domain_model_tinetz.php
    • PDF File anpassen nw_tinetz/Resources/Private/Templates/Tinetz/Pdf.html
    • letzten Step anpassen nw_tinetz/Resources/Private/Partials/Step5.html
    • Logik für letzten Step nw_tinetz/Classes/Formular/Formularpage5.php
    • Wenn alles angelegt ist im Install Tool die Datenbank Checks durchführen um das Feld in der Datenbank wirklich anzulegen.

    * Logik - Beispiel: 

    new RadioInput($data->kwkwkind, "kwkwkind", new RequiredStatic($data->kwkw));

    [1] - Hier werden die Daten mitgegeben, da diese im serverseitig verarbeitet werden
    [2] - der Name des Felds 
    [3] - Ob das Feld gebraucht wird oder nicht. Der Wert wird hier nochmal mitgegeben, weil dadurch gecheckt wird, ob es schon befüllt wurde. Es gibt zB auch new RequiredNever() aber auch new RequiredStatic($data->test)

    Optionale Felder (die sich aus und einblenden)

    Mit new RequiredDynamicOptional($data->photovoltaikanlage, $this->photovoltaikanlagekind,$options[0][0], true); wird ein "Required" Feld erstellt, das die dynamische Information enthält. Beim rendern des Feldes wird auch ein Javascript für Frontend-Validierung erstellt. Kommt dann beim Feld auf Position [3]

    [1] - Wenn hier was drinnsteht wird es angezeigt (glaub ich)
    [2] - Ob das Feld ein Pflichtfeld ist
    [3] - Der Wert der geprüft wird 
    [4] - 'inverse' - dreht das Ergebnis um