/**
 * redonas:
 *   array(kotizoreldato,
 *         [kialo]).
 */
function kalkulu_kotizorelevantan_daton($partopreno, $kotizosistemo, $landoKatID)
{
    debug_echo("<!-- kalkulu_kotizorelevantan_daton() -->");
    if ($partopreno->datoj['aligxkategoridato'] and $partopreno->datoj['aligxkategoridato'] != "0000-00-00") {
        return array($partopreno->datoj['aligxkategoridato']);
    } else {
        if ($partopreno->datoj['KKRen'] == 'J') {
            // tio devus esti suficxe frua por esti en la unua
            //  kategorio de cxiu renkontigxo administrota, cxu ne?
            return array("2000-01-01", organizantoj_nomo);
        } else {
            $aligxDato = $partopreno->datoj['aligxdato'];
            $min_ap = $kotizosistemo->minimumaj_antauxpagoj($landoKatID);
            $min_antauxpago = $min_ap['interna_antauxpago'];
            $sql = datumbazdemando(array('ID', 'dato'), 'pagoj', array('partoprenoID' => $partopreno->datoj['ID']), "", array('order' => "dato ASC"));
            $sumo = 0;
            $rez = sql_faru($sql);
            // se la virtuala pago de 0 dum la aligxo jam suficxas,
            // prenu la aligxdaton.
            $pago = new Pago();
            $pago->datoj['dato'] = $aligxDato;
            $pago->datoj['kvanto'] = 0;
            $pago->datoj['valuto'] = CXEFA_VALUTO;
            do {
                $sumo += $pago->enCxefaValuto();
                if ($sumo >= $min_antauxpago) {
                    return array(strcmp($aligxDato, $linio['dato']) < 0 ? $linio['dato'] : $aligxDato);
                }
                $linio = mysql_fetch_assoc($rez);
            } while ($linio && ($pago = new Pago($linio['ID'])));
            return array(null);
        }
    }
}