コード例 #1
0
 /**
  * kalkulas, kiom da noktoj tiu partoprenanto partoprenas.
  *
  */
 function partoprennoktoj()
 {
     return kalkulu_tagojn($this->datoj['de'], $this->datoj['gxis']);
 }
コード例 #2
0
 * 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);
コード例 #3
0
 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();
     }
 }
コード例 #4
0
 /**
  * kalkulas, kiom da noktoj tiu renkontiĝo daŭras.
  *
  * @return int
  */
 function renkontigxonoktoj()
 {
     return kalkulu_tagojn($this->datoj['de'], $this->datoj['gxis']);
 }
コード例 #5
0
<?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."'");
コード例 #6
0
<?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 "-->";
コード例 #7
0
 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;
 }
コード例 #8
0
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>");
コード例 #9
0
/**
 * 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>&nbsp;&nbsp;<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]);
    }
}
コード例 #10
0
 /**
  * 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;
 }
コード例 #11
0
<?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 "-->";
コード例 #12
0
/**
 * 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;
}