function listu_personkostotipojn()
{
    echo "<p>";
    rajtligu("personkostotipo.php", "Nova personkostotipo", "", 'teknikumi');
    echo "</p>";
    eoecho("<table class='personkostotabelo'>\n" . "<tr><th>ID</th><th>nomo</th><th>priskribo</th><th>uzebla</th>" . "<th>lau^nokte</th></tr>\n");
    $tipolisto = listu_cxiujn_personkostotipojn(array());
    foreach ($tipolisto as $kromtipo) {
        eoecho("<tr><td>" . $kromtipo->datoj['ID'] . "</td><td>" . formatu_personkostotipon($kromtipo) . "</td><td>" . $kromtipo->datoj['priskribo'] . "</td><td>" . $kromtipo->datoj['uzebla'] . "</td><td>" . $kromtipo->datoj['lauxnokte'] . "</td></tr>\n");
    }
    echo "</table>";
}
                eoecho("<strong> Mankas lito en la sekvaj noktoj: " . implode(", ", $mankantaj_litoj) . "</strong>");
            }
            rajtligu("cxambroj.php", "elektu plian", "", "cxambrumi");
        }
        rajtligu("cxambro_sxangxo.php", "s^ang^i kun aliulo", "", "cxambrumi", "");
    }
    echo "</TD><TD>";
    if (nova_kunlogxado) {
        $ri = $_SESSION['partoprenanto']->personapronomo;
        $Ri = ucfirst($ri);
        eoecho("Kunlog^deziroj de kaj pri {$ri}:");
        // !!!!!!!!!!!!!!!!
        require_once $prafix . "/iloj/iloj_kunlogxadoj.php";
        montru_kunlogxdezirojn_ambauxdirekte($_SESSION['partopreno'], "&uarr;");
        // provizore nur por teknikumistoj, por elprovi:
        rajtligu("kunlogxado.php?ago=sercxu", "serc^u kunlog^dezirojn", "", "teknikumi");
    }
}
echo "</TD></TR></TABLE>\n";
if ('konfirmi' == $_REQUEST['faru']) {
    echo "<hr/><h3>La unua konfirmilo</h3>";
    require_once $prafix . '/tradukendaj_iloj/iloj_konfirmilo.php';
    echo "<pre>" . kreu_unuan_konfirmilan_tekston($_SESSION['partoprenanto'], $_SESSION['partopreno'], $partopreno_renkontigxo, 'utf-8') . "</pre>\n<p>";
    if (rajtas("retumi")) {
        ligu_butone("partrezultoj.php?partoprenidento=" . $partopreno->datoj['ID'], "sendi la unuan konfirmilon", array('faru' => 'sendu_unuan_konfirmilon'));
    } else {
        eoecho("Vi ne havas la rajton por elsendi" . " la mesag^on.");
    }
    echo "</p>\n";
}
if ('informmesagxo' == $_REQUEST['faru']) {
rajtligu("landoj.php", "rigardu kaj eble s^ang^u la landoliston", "", "administri");
eoecho("<br/>");
eoecho("<p>Elprintu partoprenstatistikon:<br/>\n");
rajtligu("demandoj.php", "partopren statistikojn", "", "administri");
echo "(das ist leider zur Zeit etwas kaputt) <br/>";
rajtligu("finkalkulado.php", "IS - Abrechnung", "", "administri");
echo "<br/>";
rajtligu("cxambrostatistiko.php", "montru la c^ambrostatistikon kaj la mang^statistikon", "", "administri");
echo "</p>";
if (rajtas("teknikumi")) {
    eoecho("<h2>Nur por teh^nikistoj</h2>\n<p>");
    rajtligu("entajpantoj.php", "rigardu kaj eble s^ang^u la entajpantoliston", "", "teknikumi");
    eoecho("<br/>");
    rajtligu("renkontigxo.php", "redaktu la renkontig^o-datumojn", "", "teknikumi");
    eoecho("<br/>");
    rajtligu("kreu_cxambron.php", "kreu novan c^ambron", "", "teknikumi");
    eoecho("</p>");
}
echo "<hr/>\n";
if ($kio == 'gepatra_permeso') {
    require_once 'iloj/kreu_konfirmilon.php';
    $kon = new Konfirmilo();
    $kon->kreu_permesilon(0, $_SESSION['renkontigxo'], $perm_tipo == "vira");
    $dosiernomo = "dosieroj_generitaj/permesilo_" . $perm_tipo . ".pdf";
    $kon->sendu($dosiernomo);
    hazard_ligu($dosiernomo, "els^utu " . $perm_tipo . "n permesilon");
}
if ($kio == 'n') {
    require_once 'iloj/kreu_nomsxildojn.php';
    eoecho("Elpremu la noms^ildojn por:<BR>");
    // kiam ni ne volas presi cxiujn, sed nur la unuajn pagxojn
/**
 * funkcios preskaux same kiel sercxu() (el iloj_html), sed kun nova implementado.
 *
 * Diferencoj:
 *
 * $sumoj - por cxiu sum-linio ekzistas array (en $sumoj). En cxiu linio-array
 *      estas po element-array por kolono, kun tri elementoj:
 *   [0] - La teksto de la kampo. Se vi uzas XX, tie aperos la rezulto
 *         de la sumado.
 *   [1] - La speco de la sumado. eblecoj:
 *              A - simple nur kalkulu, kiom da linioj estas.
 *              J - kalkulu, kiom ofte aperas 'J' en la koncerna kampo
 *              E - kalkulu, kiom ofte enestas io en la koncerna kampo
 *              N - adiciu la numerojn en la koncerna kampo.
 *   [3] - arangxo ('l', 'r', 'z' - vidu cxe $kolumoj - [3].)
 * $identifikilo - estas uzata por la ligoj por reordigi, tiel cxe pluraj
 *                 tabeloj en la sama pagxo la gxusta estos montrita.
 * $extra - ['Spaltenrechnung'] ne plu funkcias.
 *
 */
function sercxu_nova($sql, $ordigo, $kolumnoj, $sumoj, $identifikilo, $extra, $csv, $antauxteksto, $almenuo, $proprakapo = "jes")
{
    if ($csv < 2 and $proprakapo == 'jes') {
        HtmlKapo();
        eoecho("<p>{$antauxteksto}</p>");
    } else {
        if ($csv >= '2') {
            header("Content-Type: application/octet-stream");
            //csv als Download anbieten
            header("Content-Disposition: attachment; filename='csv_export.txt'");
        }
    }
    $eigenlink = "sercxrezultoj.php?elekto=memligo&id={$identifikilo}";
    $_SESSION["memligo"][$identifikilo]["sql"] = $sql;
    $_SESSION["memligo"][$identifikilo]["antauxteksto"] = $antauxteksto;
    $_SESSION["memligo"][$identifikilo]["kolumnoj"] = $kolumnoj;
    $_SESSION["memligo"][$identifikilo]["sumoj"] = $sumoj;
    $_SESSION["memligo"][$identifikilo]["aldone"] = $extra;
    $_SESSION['memligo'][$identifikilo]["almenuo"] = $almenuo;
    $klaso = array("para", "malpara");
    $arangxo = array("r" => "dekstren", "d" => "dekstren", "l" => "maldekstren", "m" => "maldekstren", "z" => "centren", "c" => "centren");
    $inversa = array("asc" => "desc", "desc" => "asc");
    if ($csv == 0) {
        echo "<table>\n";
        echo "<tr class='titolo'>";
    }
    $i = 0;
    while (isset($kolumnoj[$i])) {
        if ($csv == 0) {
            echo "<th class='" . $arangxo[$kolumnoj[$i][3]] . "'>";
            if ($ordigo[0] == $kolumnoj[$i][0]) {
                ligu($eigenlink . "&orderby=" . $kolumnoj[$i][0] . "&asc=" . $inversa[$ordigo[1]], $kolumnoj[$i][1] . "<img src='bildoj/" . $ordigo[1] . "_order.gif' />");
            } else {
                if (is_numeric($kolumnoj[$i][0])) {
                    echo $kolumnoj[$i][1];
                } else {
                    ligu($eigenlink . "&orderby=" . $kolumnoj[$i][0] . "&asc=asc", $kolumnoj[$i][1]);
                }
            }
            echo "</th>";
        } else {
            eoecho($kolumnoj[$i][0] . ";");
        }
        $i++;
    }
    if ($csv >= '2') {
        echo "\n";
    } else {
        if ($csv == 1) {
            echo "<br/>\n";
        } else {
            echo "</tr>\n";
        }
    }
    $result = sql_faru($sql . " order by " . $ordigo[0] . " " . $ordigo[1]);
    if (DEBUG) {
        var_export($result);
    }
    $linionumero = 0;
    while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
        $linionumero += 1;
        if ($csv == 0) {
            echo "<TR  onmouseover='marku(this)' onmouseout='malmarku(this)' " . " class='" . $klaso[$linionumero % 2] . "'>\n";
            // TODO: Javascript ausprobieren
        }
        $i = 0;
        while (isset($kolumnoj[$i])) {
            $kolumno = $kolumnoj[$i];
            $temp = $kolumno[0];
            $textinhalt = $kolumno[2];
            $aus = $kolumno[3];
            $linkk = $kolumno[4];
            if ($kolumno[5] != '-1') {
                $doselectWert = $row[$kolumno[5]];
            } else {
                $doselectWert = '-1';
            }
            //echo "<TD align=$ausrichtung[$aus]>$row[$temp]</TD>";
            if ($csv == 0) {
                echo "<td align={$ausrichtung[$aus]}>";
            }
            if ($linkk != '' and $csv == 0) {
                $ausgeben = str_replace('XXXXX', $row[$temp], $linkk);
                echo "<A href=" . $ausgeben;
                if ($doselectWert && $doselectWert != '-1') {
                    echo " onClick='doSelect(" . $doselectWert . ");'";
                }
                echo ">";
            }
            $ez &= $extra['Zeichenersetzung'];
            if (isset($ez[$i][$row[$temp]])) {
                $ausgeben = str_replace('XXXXX', $extra['Zeichenersetzung'][$i][$row[$temp]], $textinhalt);
            } else {
                if (isset($extra['anstatauxo_funkcio'][$i])) {
                    $nova_teksto = $extra['anstatauxo_funkcio'][$i]($row[$temp]);
                    $ausgeben = str_replace('XXXXX', $nova_teksto, $textinhalt);
                } else {
                    $ausgeben = str_replace('XXXXX', $row[$temp], $textinhalt);
                }
            }
            if (isset($extra['okupigxtipo']) and $extra['okupigxtipo'] == $i) {
                $ausgeben = okupigxtipo($row[$temp]);
            }
            if ($csv != '2') {
                eoecho($ausgeben);
            } else {
                echo utf8_decode($ausgeben);
            }
            // eldonas en ISO-8859-1
            if ($csv != 0) {
                echo ";";
            } else {
                if ($linkk != '') {
                    echo "</a></td>\n";
                } else {
                    echo "</td>\n";
                }
            }
            //Zusammenzählen
            $SummenIndex = 0;
            while (isset($sumoj[$SummenIndex])) {
                $ii = $i;
                switch ($sumoj[$SummenIndex][$i][1]) {
                    case 'A':
                        $summe[$SummenIndex][$i] += 1;
                        break;
                    case 'J':
                        if ($row[$temp] == 'J') {
                            $summe[$SummenIndex][$i] += 1;
                        }
                        break;
                    case 'Z':
                        if ($row[$temp] != 0) {
                            $summe[$SummenIndex][$i] += 1;
                        }
                        break;
                    case 'E':
                        if ($row[$temp] != '') {
                            $summe[$SummenIndex][$i] += 1;
                        }
                        break;
                    case 'N':
                        if ($row[$temp] != '') {
                            $summe[$SummenIndex][$i] += $row[$temp];
                        }
                        break;
                }
                $SummenIndex += 1;
            }
            $i++;
        }
        if ($csv == 0 and isset($extra['litomanko'])) {
            $manko = eltrovu_litojn($row[$extra['litomanko']]);
            for ($i = 1; $i <= 7; $i++) {
                if ($manko[$i] == '1') {
                    echo "<td>X</td>";
                } else {
                    echo "<td>-</td>";
                }
            }
            echo "<td>";
            rajtligu("cxambroj.php?cx_ago=forgesu&partoprenID=" . $row[$extra['litomanko']], "serc^u", "", "cxambrumi");
            echo "</td>";
        }
        if ($csv == 0 and isset($extra['tutacxambro'])) {
            $partoprenanto = new Partoprenanto($row[0]);
            $partopreno = new Partopreno($row[1]);
            // echo "CX: ".eltrovu_cxambrojn($row[$extra['tutacxambro']]);
            $cxambro = mysql_fetch_array(eltrovu_cxambrojn($row[$extra['tutacxambro']]));
            if ($cxambro[0] != '') {
                echo "</tr>\n<tr><td colspan='" . count($kolumnoj) . "'>";
                montru_kunlogxantojn($cxambro[0]);
                montru_cxambron($cxambro[0], $_SESSION["renkontigxo"], $partoprenanto, $partopreno, 'granda');
                echo "</td>\n";
            }
        }
        if ($csv == 0) {
            echo "</tr>\n";
        } else {
            if ($csv == 1) {
                echo "<br/>\n";
            } else {
                echo "\n";
            }
        }
    }
    if ($csv == 0) {
        // sumoj
        // TODO: rerigardu indeksojn
        $SummenIndex = 0;
        while (isset($sumoj[$SummenIndex][0])) {
            echo "<tr class='sumoj'>";
            $i = 0;
            while (isset($sumoj[$SummenIndex][$i])) {
                $aus = $sumoj[$SummenIndex][$i][2];
                echo "<td class='{$arangxo[$aus]}'>" . str_replace('XX', $summe[$SummenIndex][$i], $sumoj[$SummenIndex][$i][0]) . "</td>";
                $i += 1;
            }
            echo "</tr>\n";
            $SummenIndex += 1;
        }
        echo "</table>\n";
        if ($almenuo != "") {
            ligu("menuo.php?sercxfrazo={$sql}", "Enmeti en la maldekstran menuon", "is-aligilo-menuo");
        }
        if ($proprakapo == "jes") {
            echo "</body>\n</html>";
        }
    }
}
    ligu('sercxrezultoj.php?elekto=laborontajnotoj&montro=' . $tipo, "&ndash;&gt; " . $informoj['teksto']);
}
echo "</p>\n<form action='sercxrezultoj.php'>\n";
eoecho("<p>rigardu notojn por/pri/de: ");
tenukasxe('elekto', 'notoj_de_entajpanto');
elektilo_simpla_db('entajpantoid', 'entajpantoj');
send_butono("Rigardu");
echo "</p>\n</form>\n<p>";
ligu("sercxrezultoj.php?elekto=rimarkoj", "&ndash;&gt; vidi la rimarkojn de la partoprenantoj");
eoecho("<p>\n<h4>Diversaj^ojn:</h4>\n");
ligu("tejomembroj.php", "Kontrolo de TEJO-membrecoj");
echo "<br/>";
//ligu("sercxrezultoj.php?elekto=kotizokomparo",
//     "Komparo de nova kaj malnova kotizokalkulado");
//echo "<br/>";
rajtligu("sercxrezultoj.php?elekto=kunlogxantoj", "&ndash;&gt; c^iu,kiu deziras kunlog^adon", "", 'cxambrumi', 'ne');
eoecho("<BR>c^iu junulargasto por la c^ambrodisdonado: ");
ligu("sercxrezultoj.php?elekto=cxambrodisdonado&nur=antauxpago", "kun antau^pago");
ligu("sercxrezultoj.php?elekto=cxambrodisdonado&nur=cxiuj", "c^iuj");
echo "<BR>";
ligu("sercxrezultoj.php?elekto=skribuagxon", "kalkulu kaj skribu la ag^ojn de la partoprenantoj");
echo "<BR>";
//ligu("sercxrezultoj.php?elekto=profesioj","montru la profesiojn de la partoprenantoj");
//ligu("sercxrezultoj.php?elekto=francoj", "eksportu la francajn partoprenantojn");
//ligu("sercxrezultoj.php?elekto=junulargastejolisto", "eksportu liston por la junulargastejo en Wetzlar");
// ligu("sercxrezultoj.php?elekto=andiListe", "eksportu liston por ministerio");
ligu("sercxrezultoj.php?elekto=cxambrolisto", "montru liston de la cxambroj kaj enlogxantoj");
ligu("sercxrezultoj.php?elekto=germanoj_laux_lando&dosiertipo=0", "Germanoj lau^ lando");
ligu("sercxrezultoj.php?elekto=germanoj_laux_lando&dosiertipo=1", "1");
ligu("sercxrezultoj.php?elekto=germanoj_laux_lando&dosiertipo=2", "2");
ligu("sercxrezultoj.php?elekto=germanoj_laux_lando&dosiertipo=3", "3");
/**
 * montras ligojn al aliaj administraj paĝoj, depende de la 
 * rajtoj de la aktuala uzanto.
 */
function montru_aliajn_ligojn()
{
    eoecho("<h2>Aliaj gravaj aferoj</h2>");
    rajtligu("landoj.php", "rigardu kaj eble s^ang^u la landoliston", "", "administri");
    eoecho("<br/>");
    eoecho("<p>Elprintu partoprenstatistikon:<br/>\n");
    rajtligu("demandoj.php", "partopren statistikojn", "", "administri");
    echo "(das ist leider zur Zeit etwas kaputt) <br/>";
    rajtligu("finkalkulado.php", "Finkalkulado", "", "administri");
    echo "<br/>";
    rajtligu("cxambrostatistiko.php", "montru la c^ambrostatistikon kaj la mang^statistikon", "", "administri");
    echo "</p>";
    if (!rajtas("teknikumi")) {
        echo "<hr/>\n";
        return;
    }
    echo "<hr/>\n";
    eoecho("<h2>Nur por teh^nikistoj</h2>\n<p>");
    if (mangxotraktado == "libera") {
        ligu("mangxredakto.php", "Mang^o-listo");
    }
    rajtligu("entajpantoj.php", "rigardu kaj eble s^ang^u la entajpantoliston", "", "teknikumi");
    eoecho("<br/>");
    rajtligu("renkontigxo.php", "redaktu la renkontig^o-datumojn", "", "teknikumi");
    eoecho("<br/>");
    rajtligu("kreu_cxambron.php", "kreu novan c^ambron", "", "teknikumi");
    eoecho("<br/>Internaj dosierujoj: ");
    echo "<span class='speciala'>";
    rajtligu("specialaj_skriptoj/", "specialaj skriptoj", "", "teknikumi");
    echo "</span>";
    rajtligu("dosieroj/", "dosieroj", "", "teknikumi");
    rajtligu("instalilo/", "instalilo", "", "teknikumi");
    rajtligu("dosieroj_generitaj/", "dosieroj generitaj", "", "teknikumi");
    rajtligu("doku/", "dokumentaj^oj", "", "teknikumi");
    eoecho("</p>");
    eoecho("\n   <h3 id='renkkonfig'>Renkontig^o-konfiguroj</h3>\n   <p>\n     La renkontig^o-konfiguroj estas uzataj ekzemple por la listo de\n     pagotipoj, kialoj por individuaj rabatoj kaj krompagoj, valutoj\n     kaj log^tipoj, kiuj estas specifaj por c^iu renkontig^o.\n   </p>\n");
    $num = eltrovu_gxenerale("count(*)", 'renkontigxaj_konfiguroj', array(), array('renkontigxo' => 'renkontigxoID'));
    eoecho("\n  <p>\n    Nun estas {$num} konfiguroj por la aktuala renkontig^o (" . $_SESSION['renkontigxo']->datoj['mallongigo'] . "). ");
    ligu("renkontigxaj_konfiguroj.php", "vidu la liston kaj eble redaktu ion");
    ligu("renkontigxaj_konfiguroj.php?id=nova", "kreu novan konfiguron");
    eoecho("\n  </p>\n");
    eoecho("\n   <h3 id='kurzoj'>Kurzoj</h3>\n   <p>");
    ligu("kurzoj.php", "Listu kurzojn kaj aldonu novajn");
    echo "</p>\n";
    eoecho("\n  <h3 id='tekstoj'>Tekstoj</h3>\n  <p>\n    La <em>tekstoj</em> estas uzataj ekzemple por\n    havi retmesag^tekst(er)ojn kaj similajn aferojn, kiuj varias\n    lau^ renkontig^o,\n    ne en la programo sed en la datumbazo.\n  </p>");
    $sql = datumbazdemando(array('count(*)' => 'nombro'), 'tekstoj', "renkontigxoID = '" . $_SESSION['renkontigxo']->datoj['ID'] . "'");
    $rez = sql_faru($sql);
    $linio = mysql_fetch_assoc($rez);
    eoecho("\n<p>\n   Nuntempe ekzistas " . $linio['nombro'] . " tekstoj por la aktuala\n   renkontig^o.\n");
    ligu("tekstoj.php", "Vidu la liston (kaj eble redaktu kelkajn)");
    ligu("nova_teksto.php", "Aldonu novan tekston");
    echo "</p><p>";
    echo "<hr/>\n";
}
Example #7
0
ligu("kotizo.php", "Antau^kalkuli kotizon", "anzeige");
echo "<BR>\n";
rajtligu("cxambroj.php?cx_ago=forgesu", "Disdoni c^ambrojn", "anzeige", "cxambrumi");
echo "<BR>\n";
/* rajtligu("ekzporti.php","ekzporti datumojn","anzeige","ekzporti");
  echo "<BR>\n";*/
rajtligu("statistikoj.php", "vidi statistikojn", "anzeige", "statistikumi");
echo "<BR>\n";
//  rajtligu("demandoj.php","pliaj statistikojn","anzeige","vidi");
rajtligu("administrado.php", "grava administrado", "anzeige", "administri");
echo "<BR>\n";
ligu("menuo.php", "revoku la menuon", "is-aligilo-menuo", "jes");
echo "<BR>\n";
rajtligu("index.php", "PHPMyAdmin", "top", "teknikumi", "ne");
echo "<BR>\n";
rajtligu("probieren/", "Elprovejo", "", "teknikumi", "ne");
echo "<BR>\n";
ligu("fino.php", "au^ forlasi c^i tie", "_top", "jes");
echo "</P>\n";
if (rajtas(vidi)) {
    // Kial cxiam kalkuli la rezultojn, se oni nur
    // kelkfoje montras ilin? -> mi sxovis la kalkuladon
    // en la interon de la "if".
    if (isset($sercxfrazo)) {
        $sql = stripslashes($sercxfrazo) . " order by personanomo, nomo";
    } else {
        //		$rezulto = sql_faru("select pp.ID,Malnova,nomo,personanomo,max(renkontigxoID) from partoprenantoj as pp,partoprenoj as pn where pn.partoprenantoID = pp.ID group by pp.ID order by personanomo,nomo");
        $sql = datumbazdemando(array("pp.ID", "pp.nomo", "personanomo", "max(renkontigxoID)" => "renkNumero"), array("partoprenantoj" => "pp", "partoprenoj" => "pn"), "pn.partoprenantoID = pp.ID", "", array("group" => "pp.ID", "order" => "personanomo, nomo"));
        //sql_faru("select ID,renkontigxoID,partoprenantoID from partoprenoj where partoprenantoID='".$row[ID]."' order by renkontigxoID desc");
    }
    ?>
Example #8
0
echo "<BR>\n";
echo "<P class='granda' style='clear:left;'>\n";
rajtligu("partoprenanto.php?sp=forgesu", "Aligi partoprenantojn", "anzeige", "aligi");
echo "<BR>\n";
rajtligu("partsercxo.php", "Serc^i partoprenantojn", "anzeige", "vidi");
echo "<BR>\n";
rajtligu("kotizoj.php", "Kotizoj kaj -kalkulado", "anzeige", "vidi");
echo "<BR>\n";
rajtligu("cxambroj.php?cx_ago=forgesu", "Disdoni c^ambrojn", "anzeige", "cxambrumi");
echo "<BR>\n";
/* rajtligu("ekzporti.php","ekzporti datumojn","anzeige","ekzporti");
  echo "<BR>\n";*/
rajtligu("statistikoj.php", "vidi statistikojn", "anzeige", "statistikumi");
echo "<BR>\n";
//  rajtligu("demandoj.php","pliaj statistikojn","anzeige","vidi");
rajtligu("administrado.php", "grava administrado", "anzeige", "administri");
echo "<BR>\n";
ligu("menuo.php", "revoku la menuon", "is-aligilo-menuo", "jes");
echo "<BR>\n";
ligu("fino.php", "au^ forlasi c^i tie", "_top", "jes");
echo "</P>\n";
if (rajtas('vidi')) {
    // Kial cxiam kalkuli la rezultojn, se oni nur
    // kelkfoje montras ilin? -> mi sxovis la kalkuladon
    // en la interon de la "if".
    if (isset($sercxfrazo)) {
        $sql = stripslashes($sercxfrazo) . " order by personanomo, nomo";
    } else {
        //		$rezulto = sql_faru("select pp.ID,Malnova,nomo,personanomo,max(renkontigxoID) from partoprenantoj as pp,partoprenoj as pn where pn.partoprenantoID = pp.ID group by pp.ID order by personanomo,nomo");
        // TODO: ebligu "left join" cxi tie.
        $sql = datumbazdemando(array("pp.ID", "pp.nomo", "personanomo", "(1)" => "renkNumero"), array("partoprenantoj" => "pp"), "", "", array("order" => "personanomo, nomo"));
 /**
  * Montras la partoprenanton kiel HTML-tabelo.
  */
 function montru_aligxinto($sen_bla = FALSE)
 {
     if (!$sen_bla) {
         eoecho("Informado pri partoprenantoj....");
         // TODO: senĥaosigi ...
         rajtligu("partoprenforigo.php?partoprenantoidento=" . $this->datoj['ID'], "estingi", "anzeige", "estingi", 'n');
     }
     echo "<table>\n";
     kampo("ID:", $this->datoj['ID']);
     kampo("nomo:", $this->tuta_nomo() . " (" . $this->datoj['sekso'] . ")");
     //        if ($this->datoj[sxildnomo]!='')
     //          {
     //                kampo("nomo:",$this->datoj[personanomo]." (".$this->datoj[sxildnomo].") ".$this->datoj[nomo]." (".$this->datoj[sekso].")");
     //          }
     //        else
     //          kampo("nomo:",$this->datoj[personanomo]." ".$this->datoj[nomo]." (".$this->datoj[sekso].")");
     if (KAMPOELEKTO_IJK) {
         kampo("adreso", nl2br($this->datoj['adreso']));
     } else {
         if ($this->datoj['adresaldonajxo']) {
             kampo("", $this->datoj['adresaldonajxo']);
         }
         kampo("strato:", $this->datoj['strato']);
     }
     kampo("loko:", $this->datoj['posxtkodo'] . ", " . $this->datoj['urbo']);
     if ($this->datoj['provinco']) {
         kampo("provinco:", $this->datoj['provinco']);
     }
     kampo("lando:", $this->landonomo() . ' (' . $this->landokategorio() . ')');
     if ($this->datoj['sxildlando'] != '') {
         kampo("s^ildlando:", $this->datoj['sxildlando']);
     }
     if (okupigxo_eblas == 'jes') {
         // TODO: kontrolu, kiuj aliaj partoj de la programo dependas
         // de tiu opcio (ekzemple
         // datumbaz-kreilo, aligxilo, p-anto-redaktilo, ktp.)
         // Eble indas tute forigi gxin.
         kampo($this->personapronomo . " " . okupigxtipo($this->datoj['okupigxo']), $this->datoj['okupigxteksto']);
     }
     kampo("naskita:", $this->datoj['naskigxdato']);
     if ($this->datoj['telefono']) {
         kampo("telefono:", $this->datoj['telefono']);
     }
     if ($this->datoj['telefakso']) {
         kampo("telefakso:", $this->datoj['telefakso']);
     }
     if ($this->datoj['retposxto']) {
         kampo("retpos^to:", $this->datoj['retposxto']);
         switch ($this->datoj['retposxta_varbado']) {
             case 'n':
                 kampo("-", "ne volas retpos^tajn informojn");
                 break;
             case 'j':
                 kampo('x', "volas retpos^tajn informojn x-kode");
                 break;
             case 'u':
                 kampo('u', "volas retpos^tajn informojn unikode");
                 break;
         }
     }
     if (valoro($this->datoj['tujmesagxiloj'])) {
         kampo("tujmesag^iloj", $this->datoj['tujmesagxiloj']);
     }
     if ($this->datoj['ueakodo']) {
         kampo("UEA-kodo:", $this->datoj['ueakodo']);
     }
     echo "</table>\n";
 }
function redaktilo_por_regulaj_pseuxdopagoj($sistemo, $tipo)
{
    eoecho("<h2 id='regulaj_" . $tipo . "j'>Regulaj " . $tipo . "j</h2>\n");
    echo "<form action='kotizosistemo.php?id=" . $sistemo->datoj['ID'] . "&tipo=" . $tipo . "' method='POST'>\n";
    echo "<table class='pseuxdopagoj'>\n";
    eoecho("  <tr><th>ID</th><th>tipo</th><th>kvanto</th><th>valuto</th>" . "<th>priskribo</th></tr>\n");
    $regulolisto = listu_cxiujn_regulojn($tipo);
    $neuzitaj = array();
    foreach ($regulolisto as $regulo) {
        $pseuxdopago = $regulo->donu_regulan_pseuxdopagon($sistemo);
        if ($pseuxdopago) {
            eoecho("<tr><td>" . $pseuxdopago->datoj['ID'] . "</td><td>" . $regulo->formatu_nomon());
            simpla_entajpejo("</td><td>", $tipo . '[' . $pseuxdopago->datoj['ID'] . '][kvanto]', $pseuxdopago->datoj['kvanto'], 6);
            echo "</td><td>";
            simpla_elektolisto_el_konfiguroj($tipo . '[' . $pseuxdopago->datoj['ID'] . '][valuto]', 'valuto', $pseuxdopago->datoj['valuto']);
            eoecho("</td><td>" . $regulo->datoj['priskribo'] . "</td></tr>\n");
        } else {
            $neuzitaj[] = $regulo;
        }
    }
    // foreach
    echo "</table>\n<p>";
    butono("sxangxu_pagojn", "S^ang^u " . $tipo . "jn");
    echo "</p>\n</form>";
    if (count($neuzitaj)) {
        eoecho("<h3 id='regulaj_" . $tipo . "j'>Nova " . $tipo . "</h3>\n");
        echo "<form action='kotizosistemo.php?id=" . $sistemo->datoj['ID'] . "&tipo=" . $tipo . "' method='POST'>\n";
        echo "<table>\n";
        eoecho("<tr><th>regulo</th></tr>\n");
        foreach ($neuzitaj as $regulo) {
            tabel_entajpbutono('', 'regulo', "", $regulo->datoj['ID'], $regulo->formatu_nomon() . " – " . $regulo->datoj['priskribo'], "", true);
        }
        tabelentajpejo("kvanto", 'kvanto', "", 6);
        tabela_elektolisto_el_konfiguroj("valuto", 'valuto', 'valuto', "");
        echo "</table>\n<p>";
        butono("nova_pago", "Aldonu!");
        rajtligu('regulo.php?tipo=' . $tipo, "Nova " . $tipo . "regulo", '', 'teknikumi');
        echo "<p></form>\n";
    }
    // if
}
/**
 * Montras cxiujn cxambrojn lauxetagxe.
 *
 *  $deziratatipo - aux 'u' (unuseksa) aux 'g'  (gea)
 *  $sekso        - aux 'vira' aux 'malina'.
 *
 *  La parametroj estas uzata por kolorigi la
 *  cxambrojn laux tauxgeco.
 *
 */
function montru_laux_etagxoj($deziratatipo = '', $sekso = '')
{
    $klaso = array("para", "malpara");
    $zaehler = 0;
    $etagxoj = 0;
    $cxam_sql = datumbazdemando(array("ID", "nomo", "litonombro", "etagxo", "rimarkoj", "tipo"), "cxambroj", "", "renkontigxo", array("order" => "etagxo, nomo"));
    $cxam_rezulto = sql_faru($cxam_sql);
    $etagxoj_per_linio = 3;
    echo '<table border="0" valign="top" width="60%">' . "\n<tr>\n";
    $et = '#';
    // nomo de la aktuala etagxo
    while ($row = mysql_fetch_array($cxam_rezulto, MYSQL_ASSOC)) {
        $listo[$row[nomo]] = $row[ID];
        if ($row[etagxo] != $et) {
            if ($et != '#') {
                echo "</table></td>\n";
            }
            // sed antauxe finu la malnovan etagxon (kiu havas subtabelon).
            $zaehler = 0;
            $et = $row[etagxo];
            $etagxoj++;
            if ($etagxoj > $etagxoj_per_linio) {
                echo "</tr><tr>\n";
                // post kelkaj subtabeloj ni komencu novan linion
                $etagxoj = 1;
            }
            eoecho("<td nowrap>\n" . "<table border=1 width=100%>\n" . '<tr><td nowrap="nowrap" colspan="2"><b>Etag^o');
            ligu("cxambroj.php?etagxo=" . $row[etagxo], $row[etagxo]);
            echo "</td></tr>\n";
        }
        if (tauxgas($deziratatipo, $sekso, $row[tipo])) {
            $koloro = " tauxga";
        } else {
            if ($row[tipo] == '' or $deziratatipo == '') {
                $koloro = "";
            } else {
                $koloro = " maltauxga";
            }
        }
        eoecho("<tr class='" . $klaso[$zaehler % 2] . $koloro . "'>\n" . "  <td align=center>" . "<a href='cxambroj.php?cxambronombro=" . $row[ID] . "'>" . $row[nomo] . "</a></td>\n" . "  <td width=40>litoj: " . $row[litonombro]);
        rajtligu("kreu_cxambron.php?id=" . $row[ID], "(red.)", "", "teknikumi", "ne");
        echo "</td><td><strong>";
        if ($row[tipo] == "v") {
            echo " (vira)";
        } else {
            if ($row[tipo] == "i") {
                echo " (ina)";
            } else {
                if ($row[tipo] == "g") {
                    echo " (gea)";
                } else {
                    echo " (nedifinita)";
                }
            }
        }
        eoecho("</strong></td></tr>\n" . '<tr class="' . $klaso[$zaehler % 2] . '"><td colspan="3">' . $row[rimarkoj]);
        echo "</td></tr>\n";
        $zaehler++;
    }
    echo "</table></td>\n";
    // finu la lastan subtabelon
    echo "</tr></table>\n";
    // finu la cxeftabelon
    //sxangxu cxambrojn
    reset($listo);
    echo "<form action=\"cxambroj.php?cxambronombro={$cxambro}\" method=\"post\">\n";
    eoecho("S^ang^u de c^ambro:\n");
    echo "<select name=\"de\" size=1>\n";
    while (list($k, $v) = each($listo)) {
        eoecho("  <option value = \"{$v}\">{$k}</option>\n");
    }
    echo "</select>\n";
    eoecho("al:\n");
    reset($listo);
    echo "<select name=\"al\" size=1>\n";
    while (list($k, $v) = each($listo)) {
        eoecho("  <option value = \"{$v}\">{$k}</option>\n");
    }
    echo "</select>\n";
    send_butono("Nun!");
}
 /**
  * Montras la partoprenanton kiel HTML-tabelo.
  */
 function montru_aligxinto($sen_bla = FALSE)
 {
     if (!$sen_bla) {
         eoecho("Informado pri partoprenantoj....");
         // TODO: senĥaosigi ...
         rajtligu("partoprenforigo.php?partoprenantoidento=" . $this->datoj['ID'], "estingi", "anzeige", "estingi", 'n');
     }
     echo "<table>\n";
     kampo("ID:", $this->datoj[ID]);
     kampo("nomo:", $this->tuta_nomo() . " (" . $this->datoj[sekso] . ")");
     // 	if ($this->datoj[sxildnomo]!='')
     // 	  {
     // 		kampo("nomo:",$this->datoj[personanomo]." (".$this->datoj[sxildnomo].") ".$this->datoj[nomo]." (".$this->datoj[sekso].")");
     // 	  }
     // 	else
     // 	  kampo("nomo:",$this->datoj[personanomo]." ".$this->datoj[nomo]." (".$this->datoj[sekso].")");
     if (KAMPOELEKTO_IJK) {
         kampo("adreso", nl2br($this->datoj['adreso']));
     } else {
         if ($this->datoj[adresaldonajxo]) {
             kampo("", $this->datoj[adresaldonajxo]);
         }
         kampo("strato:", $this->datoj[strato]);
     }
     kampo("loko:", $this->datoj[posxtkodo] . ", " . $this->datoj[urbo]);
     if ($this->datoj[provinco]) {
         kampo("provinco:", $this->datoj[provinco]);
     }
     kampo("lando:", $this->landonomo() . ' (' . $this->landokategorio() . ')');
     if ($this->datoj[sxildlando] != '') {
         kampo("s^ildlando:", $this->datoj[sxildlando]);
     }
     if (okupigxo_eblas == 'jes') {
         kampo($this->personapronomo . " " . okupigxtipo($this->datoj[okupigxo]), $this->datoj[okupigxteksto]);
     }
     kampo("naskita:", $this->datoj[naskigxdato]);
     if ($this->datoj[telefono]) {
         kampo("telefono:", $this->datoj[telefono]);
     }
     if ($this->datoj[telefakso]) {
         kampo("telefakso:", $this->datoj[telefakso]);
     }
     if ($this->datoj['retposxto']) {
         kampo("retpos^to:", $this->datoj['retposxto']);
         switch ($this->datoj['retposxta_varbado']) {
             case 'n':
                 kampo("-", "ne volas retpos^tajn informojn");
                 break;
             case 'j':
                 kampo('x', "volas retpos^tajn informojn x-kode");
                 break;
             case 'u':
                 kampo('u', "volas retpos^tajn informojn unikode");
                 break;
         }
     }
     if ($this->datoj['tujmesagxiloj']) {
         kampo("tujmesag^iloj", $this->datoj['tujmesagxiloj']);
     }
     if ($this->datoj['ueakodo']) {
         kampo("UEA-kodo:", $this->datoj['ueakodo']);
     }
     echo "</table>\n";
 }
 /**
  * varianto de la funkcio por gxeneralaj kategoriosistemoj,
  * kun redaktilo por la landokategorioj (en versio "redaktebla").
  */
 function listu_kategoriojn($versio)
 {
     parent::listu_kategoriojn($versio);
     if ($versio != 'redaktebla') {
         return;
     }
     // en la redaktebla versio: aldone listo de la landoj
     $katlisto = array();
     $landolisto = array();
     $sql = datumbazdemando(array('ID', 'nomo'), 'landokategorioj', array("sistemoID" => $this->datoj['ID']));
     $rez = sql_faru($sql);
     while ($linio = mysql_fetch_assoc($rez)) {
         $katlisto[] = $linio;
     }
     eoecho("<h3>Kategorioj de landoj</h3>");
     eoecho("<table class='kategorioj_de_landoj'>\n" . "<tr><th>landonomo</th>" . "<th>kodo</th>");
     foreach ($katlisto as $katLinio) {
         eoecho("<th>" . $katLinio['nomo'] . "</th>");
     }
     echo "</tr>\n";
     $sql = datumbazdemando(array('kategorioID', 'ID', 'nomo', 'kodo'), array('kategorioj_de_landoj', 'landoj'), array('ID = landoID', "sistemoID = '" . $this->datoj['ID'] . "'"), "", array('order' => 'kodo ASC'));
     $rez = sql_faru($sql);
     while ($landLinio = mysql_fetch_assoc($rez)) {
         $landolisto[$landLinio['ID']] = true;
         eoecho("<tr><td>" . $landLinio['nomo'] . "</td><td>" . $landLinio['kodo'] . "</td>");
         foreach ($katlisto as $katLinio) {
             echo "<td>";
             simpla_entajpbutono('landokategorio[' . $landLinio['ID'] . ']', $landLinio['kategorioID'], $katLinio['ID']);
             echo "</td>";
         }
         echo "</tr>\n";
     }
     $sql = datumbazdemando(array('ID', 'nomo', 'kodo'), 'landoj', "", "", array('order' => 'kodo ASC'));
     $rez = sql_faru($sql);
     if (mysql_num_rows($rez) > count($landolisto)) {
         if (DEBUG) {
             echo "<!-- " . var_export($landolisto, true) . "-->";
         }
         $len = 2 + count($katlisto);
         eoecho("<tr><th class='titolo-sen-kat' colspan='" . $len . "'> Landoj sen kategorio:</th></tr>\n");
         while ($landLinio = mysql_fetch_assoc($rez)) {
             if (!array_key_exists($landLinio['ID'], $landolisto)) {
                 eoecho("<tr><td>" . $landLinio['nomo'] . "</td><td>" . $landLinio['kodo'] . "</td>");
                 foreach ($katlisto as $katLinio) {
                     echo "<td>";
                     simpla_entajpbutono('landokategorio[' . $landLinio['ID'] . ']', false, $katLinio['ID']);
                     echo "</td>";
                 }
                 echo "</tr>\n";
             } else {
                 debug_echo("<!-- ekzistas: " . $landLinio['ID'] . "-->");
             }
         }
     }
     echo "</table>\n<p>(";
     rajtligu("landoj.php", "Redaktu landoliston", "", "administri");
     echo ")</p>";
 }
/**
 * Montras cxiujn cxambrojn lauxetagxe.
 *
 */
function montru_laux_etagxoj()
{
    $klaso = array("para", "malpara");
    $zaehler = 0;
    $etagxoj = 0;
    $cxam_sql = datumbazdemando(array("ID", "nomo", "litonombro", "etagxo", "rimarkoj", "tipo"), "cxambroj", "", "renkontigxo", array("order" => "etagxo, nomo"));
    $cxam_rezulto = sql_faru($cxam_sql);
    $etagxoj_per_linio = 3;
    echo '<table width="60%">' . "\n<tr>\n";
    $et = '#';
    // nomo de la aktuala etagxo
    while ($row = mysql_fetch_array($cxam_rezulto, MYSQL_ASSOC)) {
        //    $listo[$row['ID']] = $row['nomo'];
        if ($row['etagxo'] != $et) {
            if ($et != '#') {
                echo "</table></td>\n";
            }
            // sed antauxe finu la malnovan etagxon (kiu havas subtabelon).
            $zaehler = 0;
            $et = $row['etagxo'];
            $etagxoj++;
            if ($etagxoj > $etagxoj_per_linio) {
                echo "</tr><tr>\n";
                // post kelkaj subtabeloj ni komencu novan linion
                $etagxoj = 1;
            }
            eoecho("<td>\n" . "<table class='etagxo'>\n" . '<tr><th colspan="6">Etag^o');
            ligu("cxambroj.php?etagxo=" . $row['etagxo'], $row['etagxo']);
            echo "</th></tr>\n";
            echo "<tr><td/><th>#</th><th>d</th><th>r</th><th>l</th></tr>\n";
        }
        eoecho("<tr class='" . $klaso[$zaehler % 2] . "'>\n" . "  <td align=center>");
        ligu("cxambro-detaloj.php?cxambronumero=" . $row['ID'], $row['nomo']);
        rajtligu("kreu_cxambron.php?id=" . $row[ID], "(red.)", "", "teknikumi", "ne");
        echo "</td>\n" . "  <td >";
        // pleneco/malpleneco
        $listo = kalkulu_litojstatojn($row['ID'], $row['litonombro']);
        echo implode("</td><td>", $listo);
        echo "</td><td>";
        montru_cxambrosekson($row['tipo'], $_SESSION['partopreno'], $_SESSION['partoprenanto']);
        eoecho("</td></tr>\n" . '<tr class="' . $klaso[$zaehler % 2] . '"><td colspan="6">' . $row[rimarkoj]);
        echo "</td></tr>\n";
        $zaehler++;
    }
    echo "</table></td>\n";
    // finu la lastan subtabelon
    echo "</tr></table>\n";
    // finu la cxeftabelon
    //sxangxu cxambrojn
    montru_cxambrointersxangxilon();
    //   reset($listo);
    //   echo "<form action=\"cxambroj.php?cxambronombro=$cxambro\" method=\"post\">\n";
    //   eoecho ("S^ang^u de c^ambro:\n");
    //   echo "<select name=\"de\" size=1>\n";
    //   while  (list($k, $v) = each($listo))
    //   {
    //     eoecho( "  <option value = \"$v\">$k</option>\n");
    //   }
    //   echo "</select>\n";
    //   eoecho ("al:\n");
    //   reset($listo);
    //   echo "<select name=\"al\" size=1>\n";
    //   while  (list($k, $v) = each($listo))
    //   {
    //     eoecho("  <option value = \"$v\">$k</option>\n");
    //   }
    //   echo "</select>\n";
    //   send_butono("Nun!");
}