/** * kalkulas, kiom da noktoj tiu partoprenanto partoprenas. * */ function partoprennoktoj() { return kalkulu_tagojn($this->datoj['de'], $this->datoj['gxis']); }
* TODO: ebligu facile elekti kombinojn de alvenstatoj, * ekzemple a+i aux n+m. */ require_once "iloj/iloj.php"; session_start(); malfermu_datumaro(); kontrolu_rajton('statistikumi'); HtmlKapo(); echo "<p>"; ligu("cxambrostatistiko.php", "Mang^- kaj c^ambrostatistiko"); echo "</p>"; eoecho("<h1>Landostatistiko</h1>"); if (!empty($_REQUEST['alvenstato'])) { $alvenstato = $_REQUEST['alvenstato']; } else { if (kalkulu_tagojn(date('y-m-d'), $_SESSION['renkontigxo']->datoj['de']) > 0) { $alvenstato = 'v'; } else { $alvenstato = 'a'; } // a = akceptigxis } echo "<table style='border-collapse:separate; border-spacing: 1em 1ex;'> <tr valign='top' ><td align='center'>\n"; $klarigo = "La nombroj de homoj el diversaj landoj kun alvenstato <strong>" . $GLOBALS['alvenstatonomoj'][$alvenstato] . "</strong>:"; eoecho($klarigo . "<br />(ordigitaj lau^ nombro)\n"); // $sql = "Select l.nomo, count(*) as c "; // $sql .= "from landoj as l, partoprenoj as p, partoprenantoj as e "; // $sql .= "where p.partoprenantoID = e.id and e.lando=l.id and alvenstato='v' and renkontigxoID=".$_SESSION["renkontigxo"]->datoj[ID]; // $sql .= " group by lando order by c DESC"; $sql = datumbazdemando(array("l.nomo", "count(*)" => "c"), array("landoj" => "l", "partoprenoj" => "p", "partoprenantoj" => "e"), array("p.partoprenantoID = e.ID", "e.lando = l.id", "p.alvenstato = '{$alvenstato}'"), "p.renkontigxoID", array("group" => "lando", "order" => "c DESC")); sql_farukajmontru($sql);
function kreu_mangxkuponon($x, $y, $partoprenantoID, $partoprenoID, $savu, $vego) { $partopreno = new Partopreno($partoprenoID); $partoprenanto = new Partoprenanto($partoprenantoID); $this->pdf->setFontSize(15); $this->pdf->SetLineWidth(0.6); for ($i = 0; $i <= 6; $i++) { $this->pdf->rect($x + $i * 10, $y, 10, 24); $this->pdf->rect($x + $i * 10, $y + 94, 10, 24); $this->pdf->rect($x + 70, $y + 24 + $i * 10, 24, 10); } $this->pdf->rect($x, $y, 94, 118); $this->pdf->SetLineWidth(0.2); $this->pdf->rect($x, $y + 40, 53, 38); $this->pdf->text($x + 18, $y + 31, uni("Matenmang^o")); // TODO: eble prenu la germanajn nomojn el // TODO: datumbazo aŭ konfigurdosiero $this->pdf->text($x + 22, $y + 38, "Frühstück"); $this->pdf->text($x + 18, $y + 84, uni("Vespermang^o")); $this->pdf->text($x + 22, $y + 91, uni("Abendessen")); $this->pdf->image($GLOBALS['prafix'] . "/bildoj/tagmangxo.png", $x + 56, $y + 48, 6); $this->pdf->image($GLOBALS['prafix'] . "/bildoj/mittagessen.png", $x + 62, $y + 45, 6); // TODO: ne uzu bildojn, sed rekte generu la tekston // (kaj ne de 27.12. ĝis 3.1., sed laŭ la renkontiĝo-datoj) $this->pdf->image($GLOBALS['prafix'] . "/bildoj/27.png", $x + 2, $y + 98, 5); for ($i = 28; $i <= 31; $i++) { $this->pdf->image($GLOBALS['prafix'] . "/bildoj/{$i}.png", $x + 12 + ($i - 28) * 10, $y + 98, 5); $this->pdf->image($GLOBALS['prafix'] . "/bildoj/{$i}.png", $x + 2 + ($i - 28) * 10, $y + 4, 5); $this->pdf->text($x + 74, $y + 32 + ($i - 28) * 10, "{$i}.12"); } for ($i = 01; $i <= 02; $i++) { $this->pdf->image($GLOBALS['prafix'] . "/bildoj/{$i}.png", $x + 12 + ($i + 3) * 10, $y + 98, 5); $this->pdf->image($GLOBALS['prafix'] . "/bildoj/{$i}.png", $x + 2 + ($i + 3) * 10, $y + 4, 5); $this->pdf->text($x + 74, $y + 32 + ($i + 3) * 10, "0{$i}.01."); } $this->pdf->image($GLOBALS['prafix'] . "/bildoj/3.png", $x + 62, $y + 4, 5); $this->pdf->text($x + 74, $y + 32 + (3 + 3) * 10, "03.01."); $this->pdf->setFontSize(20); $i = 20; if ($partoprenanto->datoj['sxildnomo'] != '') { $nomo = uni($partoprenanto->datoj['sxildnomo']); } else { $nomo = uni($partoprenanto->datoj['personanomo']); } while ($this->pdf->GetStringWidth($nomo) > 47) { $i--; $this->pdf->setFontSize($i); } $this->pdf->text($x + 5, $y + 47, $nomo); while ($this->pdf->GetStringWidth($partoprenanto->datoj['nomo']) > 46) { $i--; $this->pdf->setFontSize($i); } $this->pdf->text($x + 5, $y + 56, uni($partoprenanto->datoj['nomo'])); $this->pdf->SetFontSize(15); $this->pdf->line($x + 5, $y + 48, $x + 50, $y + 48); $this->pdf->line($x + 5, $y + 57, $x + 50, $y + 57); $this->pdf->setFontSize(16); if ($partopreno->datoj['vegetare'] == 'J' or $vego == 'J') { $this->pdf->text($x + 10, $y + 66, uni("Vegetarano")); $this->pdf->text($x + 14, $y + 73, uni("Vegetarier")); } else { if ($partopreno->datoj['vegetare'] == 'A' or $vego == 'A') { $this->pdf->text($x + 10, $y + 66, uni("Vegano")); $this->pdf->text($x + 14, $y + 73, uni("Veganer")); } else { $this->pdf->text($x + 10, $y + 66, uni("Viandmang^anto")); $this->pdf->text($x + 14, $y + 73, uni("Fleischesser")); } } $this->pdf->image($GLOBALS['prafix'] . "/bildoj/eo-echt.png", $x + 72, $y + 8, 20, 12); $this->pdf->image($GLOBALS['prafix'] . "/bildoj/eo-echt.png", $x + 72, $y + 100, 20, 12); if ($partopreno->datoj[partoprentipo] != 't' and $partoprenoID != '0') { $dauro = $_SESSION["renkontigxo"]->renkontigxonoktoj(); $tagoj = $partopreno->partoprennoktoj(); $ekas = kalkulu_tagojn($_SESSION["renkontigxo"]->datoj['de'], $partopreno->datoj['de']); for ($i = 0; $i < $ekas; $i++) { $this->pdf->SetLineWidth(0.4); //matenmanĝo $this->pdf->line($x + $i * 10, $y, $x + 10 + $i * 10, $y + 24); $this->pdf->line($x + 10 + $i * 10, $y, $x + 1 + $i * 10, $y + 24); //vespermanĝo $this->pdf->line($x + $i * 10, $y + 94, $x + 10 + $i * 10, $y + 24 + 94); $this->pdf->line($x + 10 + $i * 10, $y + 94, $x + 1 + $i * 10, $y + 24 + 94); //tagmanĝo $this->pdf->line($x + 70, $y + 24 + $i * 10, $x + 94, $y + 34 + $i * 10); $this->pdf->line($x + 94, $y + 24 + $i * 10, $x + 70, $y + 34 + $i * 10); } //la dekstra parto for ($i = $tagoj + $ekas; $i < $dauro; $i++) { $this->pdf->SetLineWidth(0.4); //matenmanĝo $this->pdf->line($x + $i * 10, $y, $x + 10 + $i * 10, $y + 24); $this->pdf->line($x + 10 + $i * 10, $y, $x + 1 + $i * 10, $y + 24); //vespermanĝo $this->pdf->line($x + $i * 10, $y + 94, $x + 10 + $i * 10, $y + 24 + 94); $this->pdf->line($x + 10 + $i * 10, $y + 94, $x + 1 + $i * 10, $y + 24 + 94); //tagmanĝo $this->pdf->line($x + 70, $y + 24 + $i * 10, $x + 94, $y + 34 + $i * 10); $this->pdf->line($x + 94, $y + 24 + $i * 10, $x + 70, $y + 34 + $i * 10); } } $this->pdf->setFontSize(13); $this->pdf->setXY($x + 71, $y + 2); $loko = $this->renkontigxo->datoj['loko']; // stranga hakaĵo: se la nomo de la loko estas tro longa // kaj finiĝas per "burg", enmetu "- ", por ebligi linirompadon. $lokolen = strlen($loko); if ($lokolen > 7 and substr($loko, $lokolen - 4) == 'burg') { $loko = substr($loko, 0, $lokolen - 4) . "- " . substr($loko, $lokolen - 4); } $this->pdf->multicell(22, 4, uni($this->renkontigxo->datoj['mallongigo'] . ' en ' . $loko), '', 'C'); $this->pdf->setFontSize(9); $this->pdf->setXY($x + 71, $y + 15); $this->pdf->multicell(22, 4, uni($this->renkontigxo->datoj['de'] . " g^is\n" . $this->renkontigxo->datoj['gxis']), '', 'C'); $this->pdf->setXY($x + 72, $y + 96); // TODO: prenu el konfiguro $this->pdf->multicell(20, 4, uni("Germana\n\nEsperanto-\n\nJunularo"), '', 'C'); // TODO: text wirklich hochkant drucken (anstatt Bild) /*$pdf->text(10,20,uni("Tagmang^o")); $pdf->text(10,200,uni("Mittagessen")); $pdf->text(10,40,"27.12."); $pdf->text(10,60,"28.12."); $pdf->text(10,80,"29.12."); $pdf->text(10,100,"30.12."); $pdf->text(10,120,"31.12."); $pdf->text(10,140,"01.01."); $pdf->text(10,160,"02.01."); $pdf->text(10,180,"03.01.");*/ if ($savu == "J") { $partopreno->datoj['havasMangxkuponon'] = 'P'; $partopreno->skribu(); } }
/** * kalkulas, kiom da noktoj tiu renkontiĝo daŭras. * * @return int */ function renkontigxonoktoj() { return kalkulu_tagojn($this->datoj['de'], $this->datoj['gxis']); }
<?php require_once 'iloj/iloj.php'; require_once 'iloj/iloj_cxambroj.php'; session_start(); malfermu_datumaro(); kontrolu_rajton("cxambrumi"); $renkontigxodauxro = kalkulu_tagojn($_SESSION["renkontigxo"]->datoj[de], $_SESSION["renkontigxo"]->datoj[gxis]); if ($partoprenID) { $_SESSION["partopreno"] = new Partopreno($partoprenID); $_SESSION["partoprenanto"] = new Partoprenanto($partopreno->datoj[partoprenantoID]); } // TODO:? Cxambrotipo nochmal überarbeiten // [respondo de Martin:] Früher gab es 'u', 'g' und 'n'. Das 'n' für negravas wurde irgendwann rausgenommen. Das wollte ich nochmal überdenken und ggf. anpassen. /* //sql_farukajmontru("select count(*) from litonoktoj where cxambro = '$cxambronombro'"); $row = mysql_fetch_array(sql_faru("select count(*) from litonoktoj where cxambro = '$cxambronombro'")); if ($row[0] == 0) { if ($_SESSION["partopreno"]->datoj[cxambrotipo] == 'u') { sql_faru("update cxambroj set tipo = '".$_SESSION["partoprenanto"]->datoj[sekso]."'"); } else { sql_faru("update cxambroj set tipo = 'g'"); } }*/ if ($sendu == "Ek!") { //echo "Typenupdate".$rimarkoj; // sql_faru("update cxambroj set tipo = '".$tipo."', rimarkoj='".$rimarkoj."',dulita='".$dulita."' where ID='".$cxambronombro."'");
<?php /** partoprenkontrolo */ require_once 'iloj/iloj.php'; session_start(); malfermu_datumaro(); if (DEBUG) { echo "<!-- POST:\n"; var_export($_POST); echo "-->"; } if (!rajtas("aligi")) { ne_rajtas(); } if ($nekontrolup != "JES") { if ($de > $gxis || !kontrolu_daton($aligxdato) || ($malaligxdato != "0000-00-00" && !kontrolu_daton($malaligxdato) || kalkulu_tagojn($aligxdato, $malaligxdato) < 0) || ($domotipo == "MemZorganto" and $cxambrotipo[0] != "g") || ($domotipo == "MemZorganto" and $dulita == "JES") || $konsento[0] != "J") { $parto = "korektigi"; } // depend_malsxargxi_kaj_korekti($invitletero,$pasportnumero); // depend_malsxargxi_kaj_korekti($kunekun,$kunkiu); depend_malsxargxi_kaj_korekti($vesperabokso, $vespera); depend_malsxargxi_kaj_korekti($distrabokso, $distra); depend_malsxargxi_kaj_korekti($temabokso, $tema); depend_malsxargxi_kaj_korekti($muzikabokso, $muzika); depend_malsxargxi_kaj_korekti($nokta, $nokta); //HTMLsekurigi($rabatkialo); } if (DEBUG) { echo "<!--POST: \n"; var_export($_POST); echo "-->";
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; }
entajpejo("<br> alvenodato (de la alig^ilo):", aligxdato, $_SESSION["partopreno"]->datoj[aligxdato], 11, "", "{$vosto}", " (jaro-monato-tago)"); if ($_SESSION["partopreno"]->datoj[aligxdato] != "" and !kontrolu_daton($_SESSION["partopreno"]->datoj[aligxdato])) { erareldono("La dato kion vi entajpis ne ekzistas au^ estis malg^uste."); } if ($_SESSION["partopreno"]->datoj[aligxkategoridato] == "0000-00-00") { $_SESSION["partopreno"]->datoj[aligxkategoridato] = ""; } entajpejo("<br> relevanta dato por la alig^kategorio:", aligxkategoridato, $_SESSION["partopreno"]->datoj[aligxkategoridato], 11, "", "", " (jaro-monato-tago)<BR>(Nur uzu por specialaj rabatoj)"); if ($_SESSION["partopreno"]->datoj[aligxkategoridato] and !kontrolu_daton($_SESSION["partopreno"]->datoj[aligxkategoridato])) { erareldono("La dato kion vi entajpis ne ekzistas au^ estis malg^uste."); } entajpejo("<br> alvenodato (de la malalig^ilo):", 'malaligxdato', $_SESSION["partopreno"]->datoj['malaligxdato'], 11, "", "0000-00-00", " (jaro-monato-tago)"); if (is_null($_SESSION["partopreno"]->datoj['malaligxdato']) and !kontrolu_daton($_SESSION["partopreno"]->datoj['malaligxdato'])) { erareldono("La dato kion vi entajpis ne ekzistas au^ estis malg^uste."); } if (kalkulu_tagojn($_SESSION["partopreno"]->datoj["aligxdato"], $_SESSION["partopreno"]->datoj["malaligxdato"]) < 0) { erareldono("La malalig^dato estas antau^ la alig^dato."); } echo "<BR>"; if (rajtas("administri")) { entajpejo("<br> 1a konfirmilo sendata:", '1akonfirmilosendata', $_SESSION["partopreno"]->datoj['1akonfirmilosendata'], 11, "", "", " (jaro-monato-tago)"); entajpejo("<br> 2a konfirmilo sendata:", '2akonfirmilosendata', $_SESSION["partopreno"]->datoj['2akonfirmilosendata'], 11, "", "", " (jaro-monato-tago)"); } if ($_SESSION["partopreno"]->datoj[ID]) { echo "partopreno-ID: " . $_SESSION["partopreno"]->datoj[ID] . " <BR>\n"; } // muss noch ge䮤ert werden echo "<p align=center>\n"; entajpbokso("", "nekontrolup", $nekontrolup, "JES", "JES", "Se vi maldeziras datkontroladon pro problemojn, marku c^i tie.<BR>"); echo "<hr/><p><b>Por A- kaj B-Landanoj: </b>\n"; eoecho("Precipe mi konscias, ke mia alig^o validas nur ekde la " . "alveno de mia antau^pago c^e GEJ.</p>");
/** * Montras la aktualan staton de cxambro. * $grandeco: - se ne donita aux "malgranda", montras nur * - se "granda", ... * verda se estas tauxga * rugxa se ne tauxgas (pro sekso) */ function montru_cxambron($cxambro, $renkontigxo, $partoprenanto, $partopreno, $grandeco = "malgranda") { $cxam_sql = datumbazdemando(array("litonombro", "nomo", "tipo", "etagxo", "dulita", "rimarkoj"), "cxambroj", "ID = '{$cxambro}'"); $cxam_rezulto = sql_faru($cxam_sql); $row = mysql_fetch_array($cxam_rezulto, MYSQL_BOTH); if (tauxgas($partopreno->datoj[cxambrotipo], $partoprenanto->datoj[sekso], $row[tipo])) { $koloro = "green"; } else { if ($row[tipo] == '') { $koloro = "black"; } else { $koloro = "red"; } } if ($grandeco == "granda") { ligu("cxambroj.php?etagxo=" . $row[etagxo], "Etag^o " . $row[etagxo]); echo " |"; } ligu("cxambroj.php?cxambronombro={$cxambro}", "C^ambro: {$row['nomo']}"); echo "<font color={$koloro}><strong>"; if ($row[tipo] == "v") { echo " (vira)"; } else { if ($row[tipo] == "i") { echo " (ina)"; } else { if ($row[tipo] == "g") { echo " (gea)"; } else { echo " (nedifinita)"; } } } echo "</strong></font>\n"; rajtligu("kreu_cxambron.php?id={$cxambro}", $grandeco == 'granda' ? "redaktu bazajn informojn" : "red.", "", "teknikumi", "ne"); if ($grandeco == "granda") { //sxangxi la cxambrotipon echo "<form action='cxambroj.php?cxambronombro={$cxambro}' method='post'>"; entajpbutono("(", "tipo", $row[tipo], "g", "g", 'gea'); entajpbutono("", "tipo", $row[tipo], "v", "v", 'vira'); entajpbutono("", "tipo", $row[tipo], "i", "i", 'ina)'); entajpbokso("[", dulita, $row[dulita], J, J, "dulita c^ambro]"); entajpejo("<BR>Rimarkoj:", "rimarkoj", $row[rimarkoj], 20); send_butono("Ek!"); echo "</form>"; } $renkontigxdauxro = kalkulu_tagojn($renkontigxo->datoj[de], $renkontigxo->datoj[gxis]); $partoprentagoj = kalkulu_tagojn($partopreno->datoj[de], $partopreno->datoj[gxis]); if ($partoprenanto->datoj[ID] and $grandeco == "granda") { echo "<form ACTION='cxambroj.php?cxambronombro={$cxambro}' METHOD='POST'>\n"; } echo "<Table border><TR><TD>Nokto: "; if ($grandeco == "granda") { $manko = eltrovu_litojn($partopreno->datoj[ID]); $ar = JMTdisigo($renkontigxo->datoj[de]); $tago = $ar[tago]; for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) { $ar = JMTdisigo(sekvandaton($renkontigxo->datoj[de], $noktoj)); $sektago = $ar[tago]; echo "<TD align=\"center\"> {$tago} / {$sektago}"; $tago = $sektago; } echo "<TD><TD align=\"center\">tuta tempo"; } else { for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) { echo "<TD>{$noktoj}</noktoj>"; } } for ($litoj = 1; $litoj <= $row[litonombro]; $litoj++) { echo "<TR valign = center>\n<TD nowrap>Lito: " . $litoj; $uzata = false; for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) { $r = cxambro_uzata($cxambro, $noktoj, $litoj); $diferenco = $r[nokto_gxis] - $noktoj; echo "<TD align = center "; if ($diferenco > 0) { $noktoj += $diferenco++; //TODO:? hehe [respondo de Martin:] Das ist einfach nur eine geniale Funktion. echo "colspan = {$diferenco} "; } if ($r[rezervtipo] == "d") { echo " bgcolor=green> "; $uzata = true; } else { if ($r[rezervtipo] == "r") { echo " bgcolor=yellow> "; $uzata = true; } else { if ($partoprenanto and $grandeco == "granda" and sekvandaton($renkontigxo->datoj[de], $noktoj - 1) >= $partopreno->datoj[de] and sekvandaton($renkontigxo->datoj[de], $noktoj) <= $partopreno->datoj[gxis] and $manko[$noktoj] != "1") { echo ""; entajpbokso(">", "nokto[{$noktoj}]", "falseoderso", "", "{$litoj}", "", "", "ne"); } else { echo " bgcolor=white>--"; } } } echo "<A href = \"partrezultoj.php?partoprenidento={$r['3']}&partoprenantoidento={$r['0']}\" onClick=\"doSelect({$r['0']});\">"; if (($grandeco == "granda" or $diferenco > 3) and $r[partoprenantoID]) { $loka_partoprenanto = new Partoprenanto($r[partoprenantoID]); $teksto = $loka_partoprenanto->datoj[personanomo] . " " . $loka_partoprenanto->datoj[nomo] . " (" . eltrovu_landon($loka_partoprenanto->datoj[lando]) . " / " . $loka_partoprenanto->datoj[sekso] . "/" . $loka_partopreno->datoj[agxo] . ")"; if ($grandeco == "granda") { eoecho($teksto . "<BR> "); } else { eoecho($teksto); } //eoecho (/*substr*/($teksto,0,$diferenco*3)); } if ($diferenco > 3 and !$r[partoprenantoID] or $grandeco == "granda") { switch ($r[rezervtipo]) { case "d": echo "disdonita"; break; case "r": echo "rezervita"; break; } } else { if ($diferenco < 4) { echo $r[rezervtipo]; } } echo "</A>"; } if ($partoprenanto and $grandeco == "granda") { echo "<TD> <TD align=center>"; if ($uzata == false and $partoprentagoj == $renkontigxdauxro and $manko[sumo] == 0) { entajpbokso("", "tute", "falseoderso", "", "{$litoj}", "", "", "ne"); } } } echo "</Table>"; if ($partoprenanto->datoj[ID] and $grandeco == "granda") { echo "<select name=\"tipo\" size=1>\n"; echo "<option selected>rezervi\n"; echo "<option>disdoni\n"; echo "</select><BR>\n"; send_butono("Faru!"); echo "</FORM>"; } if ($grandeco != "granda") { eoecho($row[rimarkoj]); } }
/** * kalkulas la personajn kostojn por iu partopreno en iu renkontigxo, * kaj krome aldonas gxin al la gxisnunaj internaj sumoj. */ function kalkulu_personkostojn($partoprenanto, $partopreno) { $kostosumo = 0; $dauxro = $this->renkontigxo->renkontigxonoktoj(); foreach ($this->personaj_kostoj_laux_tipo as $listero) { $tipo = $listero['tipo']; // iom pli komplika ... if ($tipo->aplikigxas($partoprenanto, $partopreno, $this->renkontigxo)) { if ($tipo->datoj['lauxnokte'] == 'j') { $noktoj = $partopreno->partoprennoktoj(); $kosto = $listero['personkosto']['kosto_uzata'] * $noktoj; $nokto_de = kalkulu_tagojn($this->renkontigxo->datoj['de'], $partopreno->datoj['de']) + 1; $nokto_gxis = kalkulu_tagojn($this->renkontigxo->datoj['de'], $partopreno->datoj['gxis']); for ($i = $nokto_de; $i <= $nokto_gxis; $i++) { $this->personaj_kostoj_laux_tipo[$tipo->datoj['ID']]['noktoj'][$i]['uzo'] += 1; } $kostosumo += $kosto; } else { $kosto = $listero['personkosto']; $this->personaj_kostoj_laux_tipo[$tipo->datoj['ID']]['uzo'] += 1; $kostosumo += $kosto; } } } return $kostosumo; }
<?php /** partoprenkontrolo */ require_once 'iloj/iloj.php'; session_start(); malfermu_datumaro(); if (DEBUG) { echo "<!-- POST:\n"; var_export($_POST); echo "-->"; } if (!rajtas("aligi")) { ne_rajtas(); } if ($_REQUEST['nekontrolup'] != "JES") { if ($_REQUEST['de'] > $_REQUEST['gxis'] || !kontrolu_daton($_REQUEST['aligxdato']) || ($_REQUEST['malaligxdato'] != "0000-00-00" && !kontrolu_daton($_REQUEST['malaligxdato']) || kalkulu_tagojn($_REQUEST['aligxdato'], $_REQUEST['malaligxdato']) < 0) || ($_REQUEST['domotipo'] == "MemZorganto" and $_REQUEST['cxambrotipo'][0] != "g") || ($_REQUEST['domotipo'] == "MemZorganto" and $_REQUEST['dulita'] == "JES") || $_REQUEST['konsento'][0] != "J") { $parto = "korektigi"; } // depend_malsxargxi_kaj_korekti($invitletero,$pasportnumero); // depend_malsxargxi_kaj_korekti($kunekun,$kunkiu); depend_malsxargxi_kaj_korekti($_REQUEST['vesperabokso'], $_REQUEST['vespera']); depend_malsxargxi_kaj_korekti($_REQUEST['distrabokso'], $_REQUEST['distra']); depend_malsxargxi_kaj_korekti($_REQUEST['temabokso'], $_REQUEST['tema']); depend_malsxargxi_kaj_korekti($_REQUEST['muzikabokso'], $_REQUEST['muzika']); depend_malsxargxi_kaj_korekti($_REQUEST['noktabokso'], $_REQUEST['nokta']); //HTMLsekurigi($rabatkialo); } if (DEBUG) { echo "<!--POST: \n"; var_export($_POST); echo "-->";
/** * redonas array() de la numeroj de tiuj noktoj, en * kiu $partopreno ankoraux ne havas liton. */ function eltrovu_litomankon($partopreno, $renkontigxo) { $mankantaj_litoj = array(); $de = kalkulu_tagojn($renkontigxo->datoj['de'], $partopreno->datoj['de']) + 1; $gxis = kalkulu_tagojn($renkontigxo->datoj['de'], $partopreno->datoj['gxis']); debug_echo("<!-- de: " . $de . ", gxis: " . $gxis . "-->"); $noktoj_kun_lito = eltrovu_litojn($partopreno->datoj['ID']); debug_echo("<!-- noktoj_kun_lito: " . var_export($noktoj_kun_lito, true) . "-->"); for ($i = $de; $i <= $gxis; $i++) { if (!$noktoj_kun_lito[$i]) { $mankantaj_litoj[] = $i; } } return $mankantaj_litoj; }