/** * 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); } } }