/**
 * esploras, ĉu la kondiĉo validas por la donitaj
 * objektoj.
 * @param Kondicxoarbo|Kondicxo $kondicxo
 * @param Partoprenanto $partoprenanto
 * @param Partopreno $partopreno
 * @param Renkontigxo $renkontigxo
 * @param Kotizokalkulilo $kotizokalkulilo
 */
function kontrolu_kondicxon(&$kondicxo, $partoprenanto, $partopreno, $renkontigxo, $kotizokalkulilo = null)
{
    $objektoj = kreu_objektoliston($kondicxo, $partoprenanto, $partopreno, $renkontigxo, $kotizokalkulilo);
    if (is_a($kondicxo, 'Kondicxo')) {
        return $kondicxo->validas_por($objektoj);
    } else {
        return $kondicxo->estas_plenumita_de($objektoj);
    }
}
 /**
  * kalkulas bazan kotizon kun regulaj krompagoj kaj rabatoj.
  * @return float la suma kotizo.
  */
 function kalkulu_kotizon()
 {
     $this->detalolisto = array();
     $this->sumo = 0;
     $this->objektolisto = kreu_objektoliston($this->kotizokalkulilo->partoprenanto, $this->kotizokalkulilo->partopreno, $this->kotizokalkulilo->renkontigxo, $this->kotizokalkulilo, $this);
     $this->kalkulu_bazan_kotizon();
     $this->kalkulu_regulajn_pseuxdopagojn('krompago', '+');
     $this->kalkulu_regulajn_pseuxdopagojn('rabato', '-');
     return $this->sumo;
 }
 /**
  * eltrovas la logxkategorio-IDon en tiu cxi kategorisistemo,
  * en kiu estus la $partoprenanto per sia $partopreno en $renkontigxo.
  * 
  */
 function trovu_kategorion($partoprenanto, $partopreno, $renkontigxo)
 {
     $katListo =& $this->donu_katListon();
     $objektoj = kreu_objektoliston($partoprenanto, $partopreno, $renkontigxo);
     foreach ($katListo as $id => $kategorio) {
         if ($kategorio->aplikigxas($objektoj)) {
             return array('ID' => $kategorio->datoj['ID'], 'kialo' => "");
         }
     }
     return null;
 }