<?php
/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */

  
  class MenuEinstellTool6 extends MenuEinstell
  {
    public $file = 'writecolumnstool6.php';

    
    protected function _getSights()
    {
      $result = array();

      $sightIds = array(
           19 => 'Kursübersicht',
           21 => 'Teilnehmerübersicht',
          434 => 'Anmelden'
          );

      foreach ($sightIds as $sightId => $description) {
        $result[] = $this->_createSightObj($sightId, \ToolsAPI::TOOL_ANMELDUNGBUCHEN_MA, $description);
      }

      return $result;
    }

    public function mainmenu($pEinstieg, $editid, $p_sightid)
    {
      
      if ($pEinstieg == 1) {
        $this->getUebersichtEinstell(SessionOperations::getVarValueIntern('menutext'));
      } else { 

        echo"
        <table border='0' cellpadding='0' cellspacing='5' height='100%' width='100%'>
          <tr>
            <td valign='top' width='100%' height='5%'>
              <p align='right'><font id='text_basys_webtools'>" . KUFERTOOLS . '</font></p>
            </td>
          </tr>
        </table>
        ';

        $curr_caption = $this->_getSightDescription($p_sightid);

        switch ($p_sightid) {
          case 19: 

            $this->mainmenuTop($curr_caption, \ToolsAPI::TOOL_ANMELDUNGBUCHEN_MA, $p_sightid, $this->file); 
            $this->mainmenuCenter(\ToolsAPI::TOOL_ANMELDUNGBUCHEN_MA, $editid, $p_sightid, $this->file);     

            

            $objsettings = ToolSettingsAPI::getToolSettings(\ToolsAPI::TOOL_ANMELDUNGBUCHEN_MA);

            
            $arycheck = $this->getArrayCheck4Kurse($objsettings);

            echo'
            ' . BR_WT . BR_WT . BR_WT . "
            <form action='writecolumnstool6.php' method='POST'>
             <input type='hidden' value='Show_Sort_Sem' name='art'>
             <input type='hidden' value='6' name='tool'>
  		     <input type='hidden' value='" . CleanOperations::cleanInt($p_sightid) . "' name='sightid'>
             <table border='0' width='100%'>
              <tr>
                <td width='85%' valign='top' height='19'>
                  <font class='text_main_menu'><b>angezeigte Kurse pro Seite:</b></font>"
                        . HTMLOperations::CreateInputTagPlusMinus('kurseproseite', '', 'bigger-null', $objsettings->kurseproseite, 'size="3"')
                  . BR_WT . BR_WT . BR_WT . '
                </td>
              </tr>';

            echo $this->getKursSortierungSubMenu($arycheck);
            echo"
              <tr>
                <td width='85%' height='19' valign='top'>
                  <font class='text_main_menu'><b>Kurse folgender Semester anzeigen:</b> (es können auch mehrere Semester gewählt werden)</font>" . BR_WT;
                  $tool0Settings = ToolSettingsAPI::getToolSettings(0);
            
            $preFilterKurs = $this->getPrefilters4Kurs(false, $tool0Settings, $objsettings, \ToolsAPI::TOOL_ANMELDUNGBUCHEN_MA);
            $allgPreFilterKurs = $this->getPrefilters4Kurs(true, $tool0Settings, $objsettings, \ToolsAPI::TOOL_ANMELDUNGBUCHEN_MA);
            echo $this->getSemester4SingleTool($objsettings->semlist, $tool0Settings->semlist, $objsettings->useAbweichendeSemester, true, $objsettings->keineAusgefallenenKurse, true, $preFilterKurs, $allgPreFilterKurs, true) . BR_WT
                  . "<img src='images/blind.gif' width='100' height='1'>
                  <input type='hidden' value='" . CleanOperations::cleanStringForHtml($this->gruppe) . "' name='gruppe'>
                </td>
              </tr>
             </table>";
        
      echo'
            ' . BR_WT . BR_WT . BR_WT . "<font class='text_main_menu'><b>"
            . 'Kursberechtigungen für die Mitarbeiter vergeben: </b></font>' . BR_WT . "
            <p>Wenn kein Haken gesetzt ist, bekommt ein Mitarbeiter nur die Kurse angezeigt, bei denen er als planender Mitarbeiter eingetragen ist.</p>
            <font class='text_main_menu'>Nur Kurse der Au&szlig;enstelle des Mitarbeiters anzeigen:</font>"
            . $this->getInfoPopup('Wenn dieser Haken gesetzt ist, werden nur Kurse angezeigt, die die gleiche Außenstelle '
            . 'wie der Mitarbeiter haben. \\n\\nWenn nur dieser Haken gesetzt ist, werden also die Kurse angezeigt, '
            . 'bei denen der Mitarbeiter als planend eingetragen ist, und die in der Außenstelle des Mitarbeiters stattfinden.\\n'
            . 'Wenn dieser Haken und der bei den Bereichsrechten gesetzt sind, so wird die Außenstelle des Mitarbeiters zusätzlich '
            . 'zu den Bereichsrechten geprüft.', '', 'Erkl&auml;rung')
            . "<input type='checkbox' name='sameAussenst' value='true' "
            . ($objsettings->sameAussenst == true ? 'checked' : '') . '>' . BR_WT;

      echo "<font class='text_main_menu'>Bereichsrechte für die Kursauswahl benutzen:</font>"
            . $this->getInfoPopup('Wenn dieser Haken gesetzt ist, werden nur die Kurse angezeigt, für die die Bereichsrechte gelten, \\ndie in '
            . 'KuferSQL in der Benutzerverwaltung unter dem Reiter Bereichsrechte gesetzt wurden. \\n(Zum Beispiel Kurse, die in einem '
            . 'bestimmten Kursnummernbereich liegen, oder zu einer bestimmten Außenstelle gehören.) \\n\\n'
            . 'Es wird aber nicht mehr geprüft, ob der Mitarbeiter im Kurs als planend eingetragen ist.', '', 'Erkl&auml;rung zur Nutzung der Bereichsrechte.')
            . "<input type='checkbox' name='useBereichsRechte' value='true' "
            . ($objsettings->useBereichsRechte == true ? 'checked' : '') . '>' . BR_WT . BR_WT;

      echo "
          <input type='image' title='Speichern' src='layout/button_save.gif' border='0'>
        </form>";
        
            break;

          case 21: 

            $this->mainmenuTop($curr_caption, \ToolsAPI::TOOL_ANMELDUNGBUCHEN_MA, $p_sightid, $this->file); 
            $this->mainmenuCenter(\ToolsAPI::TOOL_ANMELDUNGBUCHEN_MA, $editid, $p_sightid, $this->file);     

            
            $objsettings = ToolSettingsAPI::getToolSettings(\ToolsAPI::TOOL_ANMELDUNGBUCHEN_MA);
            $this->file = 'writecolumnstool6.php';
            
            
            
            $defaultStatus = '';
            $this->showSelectionForm(
              'tn',
              \ToolsAPI::TOOL_ANMELDUNGBUCHEN_MA,
              $p_sightid,
              $this->file,
              $objsettings,
              $objsettings->sorttnasc,
              $objsettings->tnstatus,
              $defaultStatus,
              $objsettings->colortnstatus,
              't.name',
              true,
              false,
              false,
              '',
              false
            );

              echo '</tr><tr>
                      <td valign="top" height="19"> ' . BR_WT . '
                        <span class="text_main_menu"><b>angezeigte Teilnehmer pro Seite:</b></span>'
                        . HTMLOperations::CreateInputTagPlusMinus('teilnehmerproseite', '', 'bigger-null', $objsettings->teilnehmerproseite, 'size="3"')
                        . BR_WT . BR_WT . BR_WT . '
                      </td>
                    </tr>';
                    echo "<tr><td><font class='text_main_menu'><b>"
                          . 'Teilnehmerberechtigungen für die Mitarbeiter vergeben: </b></font>' . BR_WT
                          . "<font class='text_main_menu'>Bereichsrechte für die Teilnehmerauswahl benutzen:</font>"
                          . $this->getInfoPopup('Wenn dieser Haken gesetzt ist, werden nur die Teilnehmer angezeigt, für die die Bereichsrechte gelten, \\ndie in '
                          . 'KuferSQL in der Benutzerverwaltung unter dem Reiter Bereichsrechte gesetzt wurden. \\n(Zum Beispiel Teilnehmer, die ein'
                          . 'bestimmtes Kennzeichen haben, oder die zu einer bestimmten Organisationseinheit gehören.) \\n\\n', '', 'Erkl&auml;rung zur Nutzung der Bereichsrechte.')
                          . "<input type='checkbox' name='useBereichsRechteTeilnehmer' value='1' "
                          . ($objsettings->useBereichsRechteTeilnehmer == true ? 'checked' : '') . '>' . BR_WT . BR_WT . '</td></tr>';


                echo "<tr>  <td width='20%' valign='top'>" . BR_WT
                          . "<input type='image' title='Speichern' src='layout/button_save.gif' border='0'>
                        </td>
                      </tr>";
                echo '</table></form>';
            break;

          case 434: 

            echo
            "<form action='writecolumnstool6.php' method='POST'>
             <input type='hidden' value='anmelden' name='art'>
             <input type='hidden' value='6' name='tool'>
           <input type='hidden' value='" . CleanOperations::cleanInt($p_sightid) . "' name='sightid'>
             <table border='0' width='100%'>";

            $objsettings = ToolSettingsAPI::getToolSettings(\ToolsAPI::TOOL_ANMELDUNGBUCHEN_MA);

            
           echo "<tr>
                  <td width='450'>
                    <font id='text_ueberschrift'><b><u>" . $curr_caption . ':</u></font></b>' . BR_WT . BR_WT . '
                  </td>
                  <td></td>
                </tr>';

          
          $anmEndeErreicht = $objsettings->anmEndeErreicht ? 'checked="checked"' : '';
          echo '<tr>
                 <td>
                   <label for="anmEndeErreicht">Anmeldung auch zulassen, wenn das Anmeldeende bereits erreicht wurde:</label>
                 </td>
                 <td>
                   <input type="checkbox" value="true" id="anmEndeErreicht" name="anmEndeErreicht" ' . $anmEndeErreicht . '>
                 </td>
                 </tr>';

          
          $anmKursBeginnErreicht = $objsettings->anmKursBeginnErreicht ? 'checked="checked"' : '';
          echo '<tr>
                 <td>
                   <label for="anmKursBeginnErreicht">Anmeldung auch zulassen, wenn der Kursbeginn bereits erreicht wurde:</label>
                 </td>
                 <td>
                   <input type="checkbox" value="true" id="anmKursBeginnErreicht" name="anmKursBeginnErreicht" ' . $anmKursBeginnErreicht . ' >
                 </td>
                 </tr>';

          
          $ueberbuchenErlaubt = $objsettings->ueberbuchenErlaubt ? 'checked="checked"' : '';
          echo '<tr>
                 <td>
                   <label for="ueberbuchenErlaubt">Überbuchen von Kursen zulassen:</label>'
                   . $this->getInfoPopUp('Ist die Einstellung nicht gesetzt, so kann keine Überbuchung von Kursen durchgeführt werden.<br />Ist diese '
                           . 'Einstellung gesetzt, so wird zusätzlich in KuferSQL die Einstellung &quot;Belegen nur bis Maximum&quot; auf der 3. Seite '
                           . 'des Kursstamms überprüft. Falls bei dieser Option in KuferSQL kein Haken gesetzt ist, ist ein Überbuchen von Kursen möglich, '
                           . 'ansonsten nicht.')
                . '</td>
                 <td>
                   <input type="checkbox" value="true" id="ueberbuchenErlaubt" name="ueberbuchenErlaubt" ' . $ueberbuchenErlaubt . ' >
                 </td>
                 </tr>';

          $kindNameVorbelegen = $objsettings->kindNameVorbelegen ? 'checked="checked"' : '';
          echo '<tr>
                 <td>
                   <label for="kindNameVorbelegen">Nachname des Kindes bei der Eltern-Kind-Anmeldung mit dem Nachnamen des Hauptteilnehmers vorbelegen:</label>
                 </td>
                 <td>
                   <input type="checkbox" value="true" id="kindNameVorbelegen" name="kindNameVorbelegen" ' . $kindNameVorbelegen . ' >
                 </td>
                 </tr>';

         $kursDetailsIgnoreTool8Settings = $objsettings->kursDetailsIgnoreTool8Settings ? 'checked="checked"' : '';
         echo '<tr>
                 <td>
                   <label for="kursDetailsIgnoreTool8Settings">Kursdetails können auch dann aufgerufen werden, wenn der Kurs nicht im Tool Kursplanung (Mitarbeiter) angezeigt wird:</label>
                 </td>
                 <td>
                   <input type="checkbox" value="true" id="kursDetailsIgnoreTool8Settings" name="kursDetailsIgnoreTool8Settings" ' . $kursDetailsIgnoreTool8Settings . ' >
                 </td>
                 </tr>';

         $isSelected = false;
         if (!isset($objsettings->anmeldeArt) || $objsettings->anmeldeArt == '') {
           $isSelected = true;
         }
         $standardOption = array(HTMLOperations::createOptionTag('Wie in KuferSQL hinterlegt', '', $isSelected));
         $options = ComboboxAPI::getHinterlegungsAuswahl(\HLDispatcher::HL_ANMARTEN, array('kennz', 'text'), ' - ', 'kennz', $objsettings->anmeldeArt);
         $options = array_merge($standardOption, $options);
         echo '<tr>
                 <td>
                   <label for="anmeldeArt">Anmeldungen werden mit folgender Anmeldeart besetzt:</label>
                 </td>
                 <td>'
                   . HTMLOperations::CreateSelectTag($options, 'anmeldeArt', '', 'anmeldeArt')
                . '</td>
                 </tr>';

        
        echo $this->getZahlartDefaultPart($objsettings);

        echo $this->getEmailBestaetigungSetting($objsettings);

        
        echo $this->getEmailBestaetigungDrucken($objsettings);

         echo "<tr height='20'><td></td></tr></table>
               <input type='image' title='Speichern' src='layout/button_save.gif' border='0'>
              </form>";
            break;

        }
      }
    }

    

    
    protected function getZahlartDefaultPart($pObjsettings)
    {
      $checked4Zahlart = array(false, false);
      switch ($pObjsettings->zahlartAnmDefault) {
          default:
          case 0: 
            $checked4Zahlart[0] = true;
            break;
          case 1:  
            $checked4Zahlart[1] = true;
            break;
        } 

      return  '<tr>
                  <td>
                   <label for="zahlArt4Anmeldung">Vorbelegung der Zahlart für die Anmeldung:</label>
                  </td>
                  <td>'
                     . HTMLOperations::CreateInputTag('zahlartAnmDefault', 'radio', 'zahlartDefault0', 'zahlArt4Anmeldung', 0, '', $checked4Zahlart[0])
                     . '<label for="zahlartDefault0">Lastschrift</label>' . "\n"
                    . HTMLOperations::CreateInputTag('zahlartAnmDefault', 'radio', 'zahlartDefault1', 'zahlArt4Anmeldung', 1, '', $checked4Zahlart[1])
                    . '<label for="zahlartDefault1">Überweisung</label>' . "\n"
                . '</td>
                 </tr>';
    }

    

    public function getPrivilegesPart()
    {
      $dbwuser = new DBWorkUser();
      
      $users = $dbwuser->getBenutzer4Tool(\ToolsAPI::TOOL_ANMELDUNGBUCHEN_MA);
      $dbwBasysUser = new DBWorkBASysUser();
      $dbwkpriv = new DBWorkPrivilegesKurse();
      if (count($users) == 0) {
        return '';
      }
      $ret = '';
      foreach ($users as $user) {
        $basysUser = $dbwBasysUser->getBASysUser($user->ben);
        $priv = $dbwkpriv->getKPrivileges4UserByTool($user->id, \ToolsAPI::TOOL_ANMELDUNGBUCHEN_MA);
        $ret .= '<tr>';
        $ret .= "<td width='20%' valign='top'>" . CleanOperations::cleanStringForHtml($basysUser->name) . ', ' . CleanOperations::cleanStringForHtml($basysUser->vorname) . '</td>';
        $ret .= "<td><input type='text' name='" . CleanOperations::cleanStringForHtml(USERPREFIX . $user->ben)
                . "' size='90' value='" . CleanOperations::cleanStringForHtml($priv->pattern) . "'></td>";
        $ret .= "</tr>\n";
      }

      return $ret;
    }

    public function getEmailBestaetigungSetting($pToolSettings)
    {
      $checkedAttribut = $this->_checked($pToolSettings->sendInfoMail);

      return '<tr>
                 <td><label for="sendInfoMail">Bestätigungs-E-Mail an Teilnehmer versenden (Vorlage sicht-6-145.sgt):</label></td>
                 <td><input id="sendInfoMail" type="checkbox" name="sendInfoMail" ' . $checkedAttribut . '></td>
               </tr>';
    }

    public function getEmailBestaetigungDrucken($pToolSettings)
    {
      $checkedAttribut = $this->_checked($pToolSettings->emailBestaetigungDrucken);

      return '<tr>
                 <td><label for="emailBestaetigungDrucken">Den Druck der Anmeldebestätigung erlauben:</label></td>
                 <td><input id="emailBestaetigungDrucken" type="checkbox" name="emailBestaetigungDrucken" ' . $checkedAttribut . '></td>
               </tr>';
    }
  }