/**
 * eltrovas, kiom da litoj por la donita partopreno
 * jam rezervigxis - laux nokto kaj entute.
 *
 * La nomo ne tute tauxgas ...
 */
function eltrovu_litojn($id)
{
    $rezulto = eltrovu_cxambrojn($id);
    $entute = 0;
    while ($row = mysql_fetch_array($rezulto, MYSQL_BOTH)) {
        for ($i = $row[nokto_de]; $i <= $row[nokto_gxis]; $i++) {
            $manko[$i] = "1";
            $entute++;
        }
    }
    $manko["sumo"] = $entute;
    $manko[0] = $entute;
    return $manko;
}
/**
 * eltrovas, kiom da litoj por la donita partopreno
 * jam rezervigxis - laux nokto kaj entute.
 *
 * @todo La nomo ne tute tauxgas, eble elpensu pli bonan.
 *
 * @param int $id identigilo de partoprenanto
 * @return array array() de la formo
 *                              0 => sumo,
 *                              1 => 1/0 (cxu lito en nokto 1?),
 *                              2 => 1/0 (cxu lito en nokto 2?),
 *                              ...,
 *                              'sumo' => sumo
 */
function eltrovu_litojn($id)
{
    $rezulto = eltrovu_cxambrojn($id);
    $entute = 0;
    while ($row = mysql_fetch_assoc($rezulto)) {
        for ($i = $row['nokto_de']; $i <= $row['nokto_gxis']; $i++) {
            $manko[$i] = "1";
            $entute++;
        }
    }
    $manko["sumo"] = $entute;
    $manko[0] = $entute;
    return $manko;
}
         echo "<hr/>\n";
         eoecho("malnova tabelo: ");
         $form = new HTMLKotizoFormatilo();
         $tab = $kotkal->kreu_kotizotabelon_malnova();
         $form->formatu_tabelon($tab);
     }
 }
 echo "</td><td>";
 if (in_array($_SESSION['partopreno']->datoj['alvenstato'], array('v', 'i')) and $_SESSION['partopreno']->datoj['renkontigxoID'] == $_SESSION['renkontigxo']->datoj['ID']) {
     rajtligu("akceptado-datoj.php", "akcepti", "", "akcepti");
 }
 echo "</td></tr>\n";
 // gehört eigentlich nach montru_aligxo; -> Nee.
 echo "<tr><td>";
 /** kiam ri estas en kiu cxambro? */
 $rezulto = eltrovu_cxambrojn($_SESSION["partopreno"]->datoj[ID]);
 while ($row = mysql_fetch_assoc($rezulto)) {
     $sql = datumbazdemando("nomo", "cxambroj", "id = '{$row['cxambro']}'");
     $cxambronomo = mysql_fetch_assoc(sql_faru($sql));
     eoecho(sekvandaton($partopreno_renkontigxo->datoj['de'], $row['nokto_de'] - 1) . " &ndash; " . sekvandaton($partopreno_renkontigxo->datoj['de'], $row['nokto_gxis']) . " (" . $row['rezervtipo'] . ")\n");
     if (rajtas("cxambrumi")) {
         ligu("cxambro-detaloj.php?cxambronumero=" . $row["cxambro"], "c^ambro: " . $cxambronomo['nomo']);
         echo " ";
         ligu_butone('cxambroago.php?sp=partrezultoj.php', $row['rezervtipo'] == 'd' ? "forgesu" : "malrezervu", array('sendu' => 'forgesu_liton', 'forgesendalito' => $row["ID"]));
     } else {
         eoecho("c^ambro: " . $cxambronomo['nomo'] . " ");
     }
     echo "<br/>";
     $havas_cxambron = "true";
 }
 // while ($row)
 */
require_once 'iloj/iloj.php';
session_start();
malfermu_datumaro();
kontrolu_rajton("akcepti");
require_once 'iloj/iloj_akceptado.php';
$partoprenanto = $_SESSION["partoprenanto"];
$partopreno = $_SESSION['partopreno'];
// por povi reiri cxi tien post la elekto de cxambro.
$_SESSION['sekvontapagxo'] = 'akceptado-cxambro.php';
// la persona pronomo (li aux sxi)
$ri = $partoprenanto->personapronomo;
$Ri = ucfirst($ri);
$en_ordo = false;
akceptado_kapo("cxambro");
$sql_rez = eltrovu_cxambrojn($partopreno->datoj['ID']);
$nombro = mysql_num_rows($sql_rez);
if ($partopreno->datoj['domotipo'] == 'J') {
    switch ($nombro) {
        case 0:
            akceptada_instrukcio("Elektu c^ambron por {$ri}.");
            // ankoraux ne havas cxambron
            break;
        case 1:
            $en_ordo = true;
            break;
        default:
            // pli ol unu cxambro
            akceptada_instrukcio("{$Ri} havas pli ol unu liton. Se eblas, " . "metu {$ri}n en nur unu liton dum la " . "tuta tempo. " . "(Se vi ne certas pri tio, demandu la" . " c^efadministranton.)");
    }
    // switch
/**
 * 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>";
        }
    }
}
// "select ID,prilaborata,dato,partoprenantoID,subjekto,kiu,kunKiu,tipo from notoj where partoprenantoID='".$partoprenanto->datoj[ID]."'"
$sql = datumbazdemando(array("ID", "prilaborata", "dato", "partoprenantoID", "subjekto", "kiu", "kunKiu", "tipo"), "notoj", "", array("partoprenanto" => "partoprenantoID"));
sercxu($sql, array("dato", "desc"), array(array('ID', '', '->', 'z', '"notoj.php?wahlNotiz=XXXXX"', '-1'), array('prilaborata', 'prilaborata?', 'XXXXX', 'z', '', '-1'), array('dato', 'dato', 'XXXXX', 'l', '', '-1'), array('subjekto', 'subjekto', 'XXXXX', 'l', '', '-1'), array("kiu", "kiu", 'XXXXX', 'l', '', '-1'), array("kunKiu", "kun Kiu?", 'XXXXX', 'l', '', '-1'), array("tipo", "tipo", 'XXXXX', 'l', '', '-1')), array(array('', array('&sum; XX', 'A', 'z'))), "notoj-akceptado", array('Zeichenersetzung' => array('1' => array('j' => '<strong class="malaverto">prilaborata</strong>', '' => '<strong class="averto">neprilaborata</strong>', 'n' => '<strong class="averto">neprilaborata</strong>'))), 0, '', '', 'ne');
// Kotizokalkulado kaj kotizkolektado
echo "<table>";
$kot = new Kotizo($_SESSION["partopreno"], $partoprenanto, $_SESSION["renkontigxo"]);
$kot->montru_kotizon(0, $_SESSION["partopreno"], $partoprenanto, $_SESSION["renkontigxo"]);
echo "</table>";
echo "<form action='akceptado.php' method='post'>";
eoecho("<h2>Farendas:</h2><ul>");
echo "<li>Kolektu la pagon de:";
entajpejo("", kvanto, $nenio, 5, "", "", " E^ (Se mankas mono nepre prenu garantiaj^on!)");
echo "</li>";
/************** cxambromontrado kaj -disdono ************/
if ($_SESSION["partopreno"]->datoj[domotipo] == 'J') {
    $row = mysql_fetch_array(eltrovu_cxambrojn($_SESSION["partopreno"]->datoj[ID]), MYSQL_NUM);
    echo "<li>";
    montru_cxambron($row[0], $_SESSION["renkontigxo"], $partoprenanto, $_SESSION["partopreno"], "malgranda");
    eoecho("<br />Notu la c^ambronumero sur {$ri}a bros^uro</li>");
} else {
    eoecho("<li>Notu 'M' kiel c^ambronumero sur {$ri}a bros^uro</li>");
}
/******** Disdono de diversajxoj *************/
eoecho("<li>Eldonu la broschuron.</li>");
if ($_SESSION["partopreno"]->datoj[domotipo] == 'J' or $_SESSION["partopreno"]->datoj[kunmangxas] == 'J') {
    eoecho("<li>Eldonu la mang^kuponon.</li>");
}
eoecho("<li>Eldonu la noms^ildon.</li>");
if ($_SESSION["partopreno"]->datoj[komencanto] == 'J') {
    eoecho("<li>Donu 'kiel funkcias IS'.</li>");
} else {
 /**
  * montras la unuan ĉambron (laŭ ajna sistemo) de 
  * partoprenanto, kun la kunloĝdeziroj de ĉiuj
  * enloĝantoj.
  *
  * @param int $ppenoID identigilo de partopreno-objekto.
  * @access private
  */
 function montru_cxambron($ppenoID)
 {
     //        $partoprenanto = new Partoprenanto($row[0]);
     $partopreno = new Partopreno($ppenoID);
     $partoprenanto = new Partoprenanto($partopreno->datoj['partoprenantoID']);
     // echo "CX: ".eltrovu_cxambrojn($row[$extra['tutacxambro']]);
     $cxambroinformoj = mysql_fetch_assoc(eltrovu_cxambrojn($ppenoID));
     $cxambro = $cxambroinformoj['cxambro'];
     if ($cxambro) {
         montru_kunlogxantojn($cxambro);
         montru_cxambron($cxambro, $_SESSION["renkontigxo"], $partoprenanto, $partopreno, 'granda');
     }
 }
 function Kotizo($partopreno, $partoprenanto, $renkontigxo)
 {
     if ($partopreno == null) {
         return;
     }
     //agxo je la komenco de la arangxo
     $agxo = kalkulu_agxon($partoprenanto->datoj['naskigxdato'], $renkontigxo->datoj['de']);
     //            echo "AGXO: $agxo";
     $this->agxkategorio = $this->kalkulu_agx_kategorio($agxo, $renkontigxo);
     $this->komento .= "agxkategorio = '" . $this->agxkategorio . "', ";
     //40 Euro mehr für über 40 jährige (nur 2003)
     if ($agxo >= 40.0 && $renkontigxo->datoj["ID"] == 3) {
         $this->kromtroagxa = 40;
     }
     // TODO: auch aus der DB ziehen.
     $this->landakategorio = eltrovu_landokategorion($partoprenanto->datoj[lando]);
     if (!$this->landakategorio) {
         // TODO: cxu eble pli bone A?
         $this->landakategorio = "C";
     }
     // TODO: Cxu GROUP BY necesas?
     // "select sum(kvanto) from pagoj where dato>='".$renkontigxo->datoj[de]."' and partoprenoID='".$partopreno->datoj[ID]."' group by partoprenoID order by dato asc"
     // sumo de surlokaj pagoj (= pagoj, kiuj ne okazis antauxe)
     $row = mysql_fetch_row(sql_faru(datumbazdemando("SUM(kvanto)", "pagoj", array("dato >= '" . $renkontigxo->datoj[de] . "'", "partoprenoID = '" . $partopreno->datoj[ID] . "'"), "", array("group" => "partoprenoID", "order" => "dato ASC"))));
     if ($row) {
         $this->surlokapago = $row[0];
     }
     //eltrovi la antauxpagon egalas: eltrovi la unuan pagon
     // TODO: Cxu vere? Cxu ne eblas plurfoje antauxpagi?
     // TODO: Cxu GROUP BY necesas?
     // "select sum(kvanto) from pagoj where dato<'".$renkontigxo->datoj[de]."' and partoprenoID='".$partopreno->datoj[ID]."' group by partoprenoID order by dato asc"
     $row = mysql_fetch_row(sql_faru(datumbazdemando("SUM(kvanto)", "pagoj", array("dato < '" . $renkontigxo->datoj["de"] . "'", "partoprenoID = '" . $partopreno->datoj["ID"] . "'"), "", array("group" => "partoprenoID", "order" => "dato ASC"))));
     if ($row) {
         $this->antauxpago = $row[0];
     }
     // "select dato from pagoj where partoprenoID='".$partopreno->datoj[ID]."' order by dato asc limit 0,1"
     $row = mysql_fetch_row(sql_faru(datumbazdemando("dato", "pagoj", "partoprenoID = '" . $partopreno->datoj['ID'] . "'", "", array("order" => "dato ASC", "limit" => "0,1"))));
     if ($row) {
         $this->antauxpagdato = $row[0];
     }
     //eltrovi la rabatsumon
     // "select sum(kvanto) from rabatoj where partoprenoID='".$partopreno->datoj[ID]."' group by partoprenoID"
     // TODO: Cxu GROUP BY necesas?
     $row = mysql_fetch_row(sql_faru(datumbazdemando("SUM(kvanto)", "rabatoj", "partoprenoID='" . $partopreno->datoj[ID] . "'", "", array("group" => "partoprenoID"))));
     if ($row) {
         $this->rabato = $row[0];
     }
     if ($partopreno->datoj["KKRen"] == 'J') {
         $relevantadato = $renkontigxo->datoj["plejfrue"];
     } else {
         if (!$partopreno->datoj["aligxkategoridato"] or $partopreno->datoj["aligxkategoridato"] == "0000-00-00") {
             if ($this->landakategorio[0] == "C") {
                 $this->relevantadato = $partopreno->datoj["aligxdato"];
             } else {
                 if ($this->landakategorio[0] == "B" and $this->antauxpago >= 8) {
                     // TODO: minimuma antauxpago el datumbazo
                     $this->relevantadato = $this->antauxpagdato;
                 } else {
                     if ($this->landakategorio[0] == "A" and $this->antauxpago >= 28) {
                         // TODO: minimuma antauxpago el datumbazo
                         $this->relevantadato = $this->antauxpagdato;
                     } else {
                         // alia kategorio?
                         $this->relevantadato = $renkontigxo->datoj["de"];
                     }
                 }
             }
         } else {
             $this->relevantadato = $partopreno->datoj["aligxkategoridato"];
         }
     }
     $this->aligxkategorio = $this->kalkulu_aligx_kategorion($this->relevantadato, $renkontigxo);
     $this->partoprentagoj = kalkulu_tagojn($partopreno->datoj[de], $partopreno->datoj[gxis]);
     $renkontigxotempo = kalkulu_tagojn($renkontigxo->datoj[de], $renkontigxo->datoj[gxis]);
     //$landarabato = kalkulu_landa_rabato($partoprenanto->datoj[lando]);
     if ($renkontigxo->datoj["ID"] < 4) {
         $rabato = 0.0;
         if ($partopreno->datoj[domotipo][0] != "M") {
             if ($this->landakategorio[0] == "B") {
                 $rabato = 30.0;
             } else {
                 if ($this->landakategorio[0] == "C") {
                     $rabato = 40.0;
                 }
             }
         } else {
             if ($partopreno->datoj[domotipo][0] == "M") {
                 if ($this->landakategorio[0] == "B") {
                     $rabato = 40.0;
                 } else {
                     if ($this->landakategorio[0] == "C") {
                         $rabato = 50.0;
                     }
                 }
             }
         }
         $this->landarabato = $rabato;
     }
     //auch aus der DB!!
     $baza = $this->kutimaprezo($renkontigxo->datoj[ID], $this->agxkategorio, $this->aligxkategorio, $partopreno->datoj["domotipo"], $this->landakategorio);
     $this->bazahodiaux = $this->kutimaprezo($renkontigxo->datoj[ID], $this->agxkategorio, $this->kalkulu_aligx_kategorion(date("Y-m-d", time()), $renkontigxo), $partopreno->datoj[domotipo], $this->landakategorio);
     /* mi rekalkulas, por ke la kromefiko nuligxu. */
     $this->kalkulu_aligx_kategorion($this->relevantadato, $renkontigxo);
     if ($renkontigxo->datoj["ID"] < 4) {
         $plej_alta = $this->plejaltaprezo($renkontigxo->datoj[ID], $this->agxkategorio, $partopreno->datoj[domotipo]);
         $parttempa = $plej_alta / $renkontigxo->datoj[parttemppartoprendivido] * $this->partoprentagoj;
     } else {
         $parttempa = $baza * $this->partoprentagoj / $renkontigxo->datoj["parttemppartoprendivido"];
     }
     if ($this->partoprentagoj < $renkontigxotempo) {
         if ($renkontigxo->datoj["ID"] < 4) {
             //echo "Baza $baza parttempa $parttempa rabato:".$this->landarabato;
             if ($parttempa < $baza - $this->landarabato) {
                 $baza = $parttempa;
                 $this->landarabato = 0;
                 // $kromsenantauxpago = 0; //parttemppartoprenantoj ne devas antauxpagi
             }
             //else $baza=$plej_alta;  quasi $baza=$baza;
             //echo "Baza $baza parttempa $parttempa rabato:".$this->landarabato;
         } else {
             $baza = $parttempa;
         }
     }
     // se la parta_prezo estos pli pl la baza, k.e. junaj homoj kun 6 partoprentagoj ni prenos la bazprezon.
     $this->bazakotizo = $baza;
     //kalkulu_bazo($agxo,$kato,$domo,$landakategorio,$partoprentagoj,$this->antauxpago);
     // TODO: jaja, später aus der DB
     //  if ($partopreno->datoj[dulita][0]=="J") $this->kromdulita=(double)20.00;
     //TODO: certigi, ke vere estas dulita cxambro
     $row = mysql_fetch_array(eltrovu_cxambrojn($partopreno->datoj[ID]), MYSQL_NUM);
     if ($row) {
         // "select litonombro,dulita from cxambroj where ID='".$row[0]."'"
         $row2 = mysql_fetch_array(sql_faru(datumbazdemando(array("litonombro", "dulita"), "cxambroj", "ID = '" . $row[0] . "'")), MYSQL_BOTH);
         $this->litoj = $row2[litonombro];
         if ($row2[dulita] == 'J') {
             $this->litoj = 2;
         }
         //TODO: traduku: Simulierter Zweierzimmer bei Raumüberschuss.
         if ($this->litoj == '2') {
             $this->kromdulita = (double) 20.0;
         }
         if ($row2[litonombro] == '1') {
             $this->kromdulita = (double) 30.0;
         }
         //TODO: eventuell andere Zuzahlung für Einzelzimmer
     } else {
         // TODO: traduku: noch kein Zimmer zugewiesen - trotzdem dulita-krompago berechnen
         if ($partopreno->datoj['dulita'] == 'J') {
             $this->kromdulita = (double) 20.0;
         }
     }
     if ($renkontigxo->datoj['ID'] >= 7) {
         // ekde Würzburg nova invitilo-sistemo
         $invitdetaloj = $partopreno->sercxu_invitpeton();
         if ($invitdetaloj and $invitdetaloj->datoj['invitletero_sendenda'] == 'j') {
             $this->krominvitilo = $agxo < 30 ? (double) 5 : (double) 10;
         } else {
             $this->krominvitilo = 0;
         }
     } else {
         if ($partopreno->datoj[invitletero][0] == 'J' and $partopreno->datoj[invitilosendata] != "0000-00-00") {
             if ($renkontigxo->datoj[ID] < 4 || $agxo < 30) {
                 $this->krominvitilo = (double) 5;
             } else {
                 $this->krominvitilo = (double) 10;
             }
         } else {
             $this->krominvitilo = 0.0;
         }
     }
     if ($partopreno->datoj[ekskursbileto] == 'J') {
         $this->kromekskurso = 7;
     }
     //auch aus der DB ziehen
     switch ($partopreno->datoj['surloka_membrokotizo']) {
         case 'j':
         case 'i':
             $this->krom_membro = $partopreno->datoj['membrokotizo'];
             break;
         case 'k':
             $this->krom_nemembro = $partopreno->datoj['membrokotizo'];
             break;
     }
     switch ($partopreno->datoj['tejo_membro_kontrolita']) {
         case 'i':
             $this->rabato_tejo = TEJO_RABATO;
             $this->kotizo_tejo = $partopreno->datoj['tejo_membro_kotizo'];
             break;
         case 'j':
             $this->rabato_tejo = TEJO_RABATO;
             $this->kotizo_tejo = 0.0;
             break;
         case '?':
         case 'n':
             $this->rabato_tejo = 0.0;
             $this->kotizo_tejo = 0.0;
             break;
     }
     $this->aliaj_krompagoj = $this->kromdulita + $this->krominvitilo + $this->kromekskurso + $this->kromtroagxa + $this->krom_surloka;
     $this->krompago = $this->aliaj_krompagoj + $this->kotizo_tejo + $this->krom_membro + $this->krom_nemembro;
     $this->cxiuj_rabatoj = $this->rabato + $this->rabato_tejo + $this->troagxasedrabato;
     $this->kotizo = $this->bazakotizo - $this->landarabato + $this->krompago - $this->cxiuj_rabatoj;
     $this->pagenda = $this->kotizo - $this->antauxpago - $this->surlokapago;
     // + Beachtung der Landeskategorien
     // Später auch mal aus der DB zu ziehen
     //return $baza;
 }
/**
 *
 * @param array $objektoj
 *     <code>array('partopreno' => {@link Partopreno}, ...)</code>
 * @return boolean
 */
function kondicxo_havas_unulitan_cxambron($objektoj)
{
    $partopreno = $objektoj['partopreno'];
    if ($partopreno->datoj["dulita"] != "U") {
        // ne mendis unulitan ĉambron
        return false;
    }
    if (estas_unu_el($partopreno->datoj['alvenstato'], 'm', 'n')) {
        // malaliĝis / ne venis
        return false;
    }
    if ($partopreno->datoj['domotipo'] != 'J') {
        return false;
    }
    $rez = eltrovu_cxambrojn($partopreno->datoj['ID']);
    if (mysql_num_rows($rez) > 0) {
        // ricevis ĉambron
        while ($linio1 = mysql_fetch_assoc($rez)) {
            $sql = datumbazdemando(array("litonombro", "dulita"), "cxambroj", "ID = '" . $linio1['cxambro'] . "'");
            $linio2 = mysql_fetch_assoc(sql_faru($sql));
            if ($linio2['litonombro'] <= 1 or $linio2['dulita'] == 'U') {
                return true;
            }
        }
        // ni ne trovis dulitan ĉambron, kvankam ri mendis
        return false;
    } else {
        // ankoraŭ ne havas ĉambron,
        // ~~> verŝajne ricevos dulitan
        return true;
    }
}