function kreu_gxin() { $this->metu_enkondukon(); $this->metu_la_liston(); $this->pdf->Output($GLOBALS['prafix'] . "/dosieroj_generitaj/adresaro.pdf"); echo "<br/><br/>"; hazard_ligu("dosieroj_generitaj/adresaro.pdf", "els^uti la adresaron (PDF)."); }
rajtligu("partrezultoj.php?faru=programmesagxoj", "--> sendu au^tomatajn mesag^ojn al programrespondeculoj ktp.", "", "retumi"); echo "<br />\n"; rajtligu("partrezultoj.php?faru=2konfirmi", "--> produkti 2an konfirmilon", "", "administri", "jes"); rajtligu("partrezultoj.php?faru=2konfirm_papere", "(paperpos^te sendita)", "", "administri", "jes"); if ($faru == "2konfirmi") { hazard_ligu("dosieroj_generitaj/konfirmilo.pdf", "(els^uti g^in)"); rajtligu("partrezultoj.php?faru=2konfirmelsendo", "--> elsendi 2an konfirmilon", "", "administri", "jes"); } echo "<BR>\n"; ligu("partrezultoj.php?faru=kvitancu", "––> kreu kvitancon"); if ($_REQUEST['faru'] == 'kvitancu') { require_once $prafix . "/iloj/kreu_kvitancon.php"; $kvit = new Kvitanco(); $kvit->kaju($_SESSION['partoprenanto']->datoj['ID'], $_SESSION['partopreno']->datoj['ID']); $kvit->sendu(); hazard_ligu("./dosieroj_generitaj/kvitancoj.pdf", "els^utu g^in"); } if (!$_SESSION["partoprenanto"]->datoj['lando']) { erareldono("Mankas la lando, pro tio la kotizokalkulo estas iom necerta!"); } // nova kotizokalkulilo $kotkal = new Kotizokalkulilo($_SESSION["partoprenanto"], $_SESSION["partopreno"], $partopreno_renkontigxo, new Kotizosistemo($partopreno_renkontigxo->datoj['kotizosistemo'])); eoecho("<p>Restas pagenda: " . $kotkal->tuta_sumo . " " . CXEFA_VALUTO . "</p>\n"); echo "<div>"; // echo "<table><tr><td>"; // echo "</td><td>"; // echo "</td><td>"; // echo "</td>\n</tr>\n<tr>\n<td>"; rajtligu("pago-detaloj.php?klaso=pago", "==> entajpi pagon", "", "mono", "jes"); tabelu_pseuxdopagojn_por("pago", $_SESSION['partopreno']->datoj['ID'], 'mono'); // echo "</td>\n<td>";
// KONFIRMILOJ if ($kio == 'k') { require_once 'iloj/kreu_konfirmilon.php'; $nombroperpagxo = 1; $numero = $numero * $nombroperpagxo; // $demando = "select p.ID,pn.ID,nomo, personanomo from partoprenantoj as p, partoprenoj as pn where pn.partoprenantoID=p.ID and retakonfirmilo!='J' and 2akonfirmilosendata='0000-00-00' and renkontigxoID='".$_SESSION["renkontigxo"]->datoj[ID]."' and kontrolata='J' and alvenstato='v' limit 0,$numero"; $demando = datumbazdemando(array("p.ID", "pn.ID", "nomo", "personanomo"), array("partoprenantoj" => "p", "partoprenoj" => "pn"), array("pn.partoprenantoID = p.ID", "retakonfirmilo!='J'", "2akonfirmilosendata='0000-00-00'", "kontrolata='J'", "alvenstato = 'v'"), "renkontigxoID", array("order" => "personanomo, nomo", "limit" => "0, {$numero}")); eoecho("<B><BR><BR>Elpremu la konfirmilon por:</B><BR>"); $kon = new Konfirmilo(); $rezulto = sql_faru($demando); while ($row = mysql_fetch_array($rezulto, MYSQL_BOTH)) { eoecho($row[personanomo] . " " . $row[nomo] . "<BR>"); $kon->kreu_konfirmilon($row[1], $row[0], $savu); } $kon->sendu(); hazard_ligu("dosieroj_generitaj/konfirmilo.pdf", "els^uti la konfirmilojn.", "_top", "jes"); } if ($kio == 'sendu') { // $demando = "select p.ID,pn.ID,nomo, personanomo,retposxto,agxo from partoprenantoj as p, partoprenoj as pn where pn.partoprenantoID=p.ID and retakonfirmilo='J' and 2akonfirmilosendata='0000-00-00' and renkontigxoID='".$_SESSION["renkontigxo"]->datoj[ID]."' and alvenstato='v' limit 0,$numero"; $demando = datumbazdemando(array("p.ID", "pn.ID", "nomo", "personanomo", "retposxto", "pn.agxo", "germanakonfirmilo" => "germane"), array("partoprenantoj" => "p", "partoprenoj" => "pn"), array("pn.partoprenantoID = p.ID", "retakonfirmilo = 'J'", "2akonfirmilosendata = '0000-00-00'", "alvenstato = 'v'"), "renkontigxoID", array("limit" => "0, {$numero}")); eoecho("<B><BR><BR>Elsendu la konfirmilon por:</B><BR>"); $rezulto = sql_faru($demando); while ($row = mysql_fetch_array($rezulto, MYSQL_BOTH)) { eoecho($row[personanomo] . " " . $row[nomo] . ""); // TODO:? Kial ne rekte al la partoprenantoj? // [respondo de Martin:] Reine Sicherheitsmaßnahme. Das ist eine Funktion die mehrere Hundert eMails verschickt. Die hab ich totgelegt, damit da nicht versehentlich jemand draufdrückt. // -> vielleicht mit Passwortschutz versehen, oder noch eine Sicherheitsabfrage. $to_name = funkciulo("admin"); $to_address = funkciuladreso("admin"); if ($eksendu == 'J') { echo "Das wärs geworden!! Wenn Du diese Funktion benutzen willst, dann bitte im Quellcode anschalten";
$rezulto = sql_faru($demando); $koloro = 0; while ($row = mysql_fetch_array($rezulto, MYSQL_BOTH)) { eoecho($row[personanomo] . " " . $row[2] . "<BR>"); if ($bunta == "JES") { switch ($koloro % 4) { case 0: $pdf->SetTextColor(200, 0, 0); break; case 1: $pdf->SetTextColor(0, 0, 255); break; case 2: $pdf->SetTextColor(0, 150, 0); break; default: $pdf->SetTextColor(0, 0, 0); break; } $koloro++; } $pdf->write($linlargxo, uni($row[personanomo] . " " . $row[2] . "; " . $row[adresaldonajxo] . " " . $row[strato] . "; " . $row[posxtkodo] . "; " . $row[urbo] . "; " . $row[4] . "; " . $row[telefono] . "; " . $row[telefakso] . "; " . $row[retposxto])); $pdf->ln($interlinspaco); fputs($fp, utf8_decode("'" . $row[personanomo] . "';'" . $row[2] . "';'" . $row[adresaldonajxo] . "';'" . $row[strato] . "';'" . $row[posxtkodo] . "';'" . $row[urbo] . "';'" . $row[4] . "';'" . $row[telefono] . "';'" . $row[telefakso] . "';'" . $row[retposxto]) . "'\n"); } $pdf->Output("dosieroj_generitaj/adresaro.pdf"); fclose($fp); echo "<BR><BR>"; hazard_ligu("dosieroj_generitaj/adresaro.pdf", "els^uti la adresaron (PDF).", "_top", "jes"); hazard_ligu("dosieroj_generitaj/adresaro.csv", "els^uti la adresaron (CSV).", "_top", "jes");
/** * kreas PDF-dokumenton kun duaj informiloj por tiuj, kiuj petis * paperan duan informilon. * * @param int $nombro kiom da ni kreu nun? * @param string $savu "J" = memoru, ke ni kreis/printis/sendis, * alikaze "NE" (ekzemple por kontroli, * ĉu aspektas bone) */ function printu_duajn_konfirmilojn($nombro, $savu) { require_once 'tradukendaj_iloj/kreu_konfirmilon.php'; // paperaj konfirmiloj // $demando = "select p.ID,pn.ID,nomo, personanomo from partoprenantoj as p, partoprenoj as pn where pn.partoprenantoID=p.ID and retakonfirmilo!='J' and 2akonfirmilosendata='0000-00-00' and renkontigxoID='".$_SESSION["renkontigxo"]->datoj[ID]."' and kontrolata='J' and alvenstato='v' limit 0,$nombro"; $demando = datumbazdemando(array("p.ID", "pn.ID", "nomo", "personanomo"), array("partoprenantoj" => "p", "partoprenoj" => "pn"), array("pn.partoprenantoID = p.ID", "retakonfirmilo!='J' or p.retposxto=''", "2akonfirmilosendata='0000-00-00'", "kontrolata='J'", "alvenstato = 'v'"), "renkontigxoID", array("order" => "personanomo, nomo", "limit" => "0, {$nombro}")); eoecho("<B><BR><BR>Kreas la konfirmilon por:</B><BR>"); $kon = new Konfirmilo("unikode"); $rezulto = sql_faru($demando); while ($row = mysql_fetch_array($rezulto, MYSQL_BOTH)) { eoecho($row['personanomo'] . " " . $row['nomo'] . "<BR>"); $kon->kreu_konfirmilon($row[1], $row[0], $savu); } $kon->sendu(); hazard_ligu("dosieroj_generitaj/konfirmilo.pdf", "els^uti la konfirmilojn."); }
{ // TODO: Esploru, cxu la GROUP BY vere necesas. $row = mysql_fetch_array(sql_faru(datumbazdemando(array($speco, "count(*)" => "c"), array("partoprenoj" => "p"), array("{$speco} = '{$valoro}'", "alvenstato = 'a'"), "renkontigxoID", array("group" => "{$speco}"))), MYSQL_BOTH); return $row["c"]; } //nombro de vegetaranoj: //// "Select vegetare, count(*) as c from partoprenoj as p where vegetare='J' and alvenstato='a' and renkontigxoID='".$_SESSION["renkontigxo"]->datoj[ID]."' group by vegetare" $pdf->setXY(110, 40); $pdf->write(9, 'vegetaranoj: ' . kalkulu_partoprenantojn("vegetare", "J")); // $row=mysql_fetch_array(sql_faru("Select partoprentipo, count(*) as c from partoprenoj as p where partoprentipo='p' and alvenstato='a' and renkontigxoID='".$_SESSION["renkontigxo"]->datoj[ID]."' group by partoprentipo"),MYSQL_NUM); $pdf->setXY(110, 45); $pdf->write(9, 'partpartoprenantoj:' . kalkulu_partoprenantojn("partoprentipo", "p")); // $row=mysql_fetch_array(sql_faru("Select komencanto, count(*) as c from partoprenoj as p where komencanto='J' and alvenstato='a' and renkontigxoID='".$_SESSION["renkontigxo"]->datoj[ID]."' group by komencanto"),MYSQL_NUM); $pdf->setXY(110, 50); $pdf->write(9, 'komencantoj:' . kalkulu_partoprenantojn("komencanto", "J")); // // $row=mysql_fetch_array(sql_faru("Select invitletero, count(*) as c from partoprenoj as p where invitletero='J' and renkontigxoID='".$_SESSION["renkontigxo"]->datoj[ID]."' group by invitletero"),MYSQL_NUM); // $pdf->setXY(110,55); // $pdf->write(9,'invitleteroj:'. kalkulu_partoprenantojn("invitletero", "J")); // TODO: Kial GROUP BY ? // $row=mysql_fetch_array(sql_faru("Select invitilosendata, count(*) as c from partoprenoj as p where invitilosendata<>'0000-00-00' and alvenstato='a' and renkontigxoID='".$_SESSION["renkontigxo"]->datoj[ID]."' group by renkontigxoID"),MYSQL_NUM); $row = mysql_fetch_array(sql_faru(datumbazdemando(array("invitilosendata", "count(*)" => "c"), array("partoprenoj" => "p"), array("invitilosendata <> '0000-00-00'", "alvenstato = 'a'"), "renkontigxoID", array("group" => "renkontigxoID"))), MYSQL_BOTH); $pdf->setXY(110, 60); $pdf->write(9, '(elsendata:' . $row["c"] . ')'); // $row=mysql_fetch_array(sql_faru("Select retakonfirmilo, count(*) as c from partoprenoj as p where retakonfirmilo='J' and alvenstato='a' and renkontigxoID='".$_SESSION["renkontigxo"]->datoj[ID]."' group by retakonfirmilo"),MYSQL_NUM); $pdf->setXY(110, 65); $pdf->write(9, 'retakonfirmilo:' . kalkulu_partoprenantojn("retakonfirmilo", "J")); //la aligx/antauxpagtempo diagramo //gesamt Kotizo -> nein, lieber woanders anzeigen $pdf->Output("dosieroj_generitaj/statistikoj.pdf"); hazard_ligu("dosieroj_generitaj/statistikoj.pdf", "els^uti la statistikojn.", "_top", "jes");
/** * La cxefa funkcio por krei la PDF-dosieron. */ function kreu_pdf($dosiernomo) { $this->pdf->Open(); $this->pdf->AddPage(); $this->pdf->SetFont($this->font . 'D', '', 20); $this->pdf->Write(10, eo("Finkalkulo de kotizoj: " . $_SESSION["renkontigxo"]->datoj[nomo] . " en " . $_SESSION["renkontigxo"]->datoj[loko] . "\n")); $this->pdf->SetFontSize(12); $this->pdf->Write(10, "Dato: " . date('Y-m-d') . "\n"); $this->klarigoj(); // $this->pdf->setY(40); $rezulto = sql_faru(datumbazdemando(array("p.ID" => 'antoid', "pn.ID" => 'enoid'), array("partoprenantoj" => "p", "partoprenoj" => "pn"), "p.ID = pn.partoprenantoID", "renkontigxoID", array("order" => "alvenstato, personanomo, nomo"))); $this->kaplinio(); while ($row = mysql_fetch_assoc($rezulto)) { $partoprenanto = new Partoprenanto($row['antoid']); $partopreno = new Partopreno($row['enoid']); $this->tabellinio($partoprenanto, $partopreno); if ($this->pdf->getY() > 250) { $this->pagxsumo(); $this->kaplinio(); $this->pdf->AddPage(); $this->kaplinio(); } } $this->pagxsumo(); $this->fina_sumo(); $this->kaplinio(); $this->pdf->Output($dosiernomo); hazard_ligu($dosiernomo, "els^uti la kalkul-rezulton.", "_top", "jes"); }
} else { ligu("partrezultoj.php?montru_invitpeton=jes", "Montru invitpeto-detalojn"); } rajtligu("invitpeto.php", "redaktu invitpeto-datojn", "", "inviti"); } else { rajtligu("invitpeto.php", "aldonu invitpeto-datojn", "", "inviti"); } echo "<br />\n"; rajtligu("partrezultoj.php?faru=ekzporti", "--> sendu sekurkopion retpos^te", "", "retumi"); echo "<br />\n"; rajtligu("partrezultoj.php?faru=programmesagxoj", "--> sendu au^tomatajn mesag^ojn al programrespondeculoj ktp.", "", "retumi"); echo "<br />\n"; rajtligu("partrezultoj.php?faru=2konfirmi", "--> produkti 2an konfirmilon", "", "administri", "jes"); rajtligu("partrezultoj.php?faru=2konfirm_papere", "(paperpos^te sendita)", "", "administri", "jes"); if ($faru == "2konfirmi") { hazard_ligu("dosieroj_generitaj/konfirmilo.pdf", "(els^uti g^in)"); rajtligu("partrezultoj.php?faru=2konfirmelsendo", "--> elsendi 2an konfirmilon", "", "administri", "jes"); } echo "<BR>\n"; /*if ($_SESSION["partoprenanto"]->datoj[retposxto]) { ligu ("partrezultoj.php?faru=sendukonfirmo","--> sendi 1an konfirmilon"); echo "<BR>\n"; }*/ /* if ($partopreno->datoj[antauxpago] != 0) { rajtligu ("antauxpago.php","--> s^ang^i la antau^pago","","mono"); } else {*/ // }
/** * Kreas adresaron en PDFa formo, kaj paralele en CSVa formo. * La dosieroj estos metataj en 'dosieroj_generitaj', kaj ni fine * montros ligon al tiuj. Dum la kreado montras liston de nomoj * prilaborataj. * * @param string $granda se <samp>"JES"</samp>, la adresaro estos farita * en pli granda versio por korektlegi. * @param string $bunta se <samp>"JES"</samp>, la linioj de la adresaroj * sxangxos inter kvar koloroj - tiel estas pli facile distingi * la unuopajn adresojn, se kelkaj estas plurliniaj. */ function kreu_adresaron($granda, $bunta) { echo "<p>\n"; $fp = fopen($GLOBALS['prafix'] . "/dosieroj_generitaj/adresaro.csv", "w"); //por la .csv versio $font = 'freesans'; $pdf = new TCPDF(); $pdf->AddFont($font, '', $font . '.php'); $pdf->AddFont($font, 'B', $font . 'b.php'); $pdf->SetFont($font, '', 15); $pdf->SetPrintHeader(false); $pdf->SetPrintFooter(false); $pdf->Open(); $pdf->AddPage(); $pdf->write(7, uni("Listo de Partoprenantoj\n" . $_SESSION["renkontigxo"]->datoj["nomo"] . " en " . $_SESSION["renkontigxo"]->datoj["loko"] . " (" . $_SESSION["renkontigxo"]->datoj["de"] . " g^is " . $_SESSION["renkontigxo"]->datoj["gxis"] . ")\n")); if ('JES' == $granda) { $pdf->SetFont($font, '', 12); $pdf->write(8, uni("Bonvolu kontroli (kaj eble korekti) vian" . " adreson en la adresaro, por ke en" . " la fina versio estu g^ustaj datumoj.")); $pdf->ln(12); $linlargxo = 7; $interlinspaco = 13; } else { $pdf->SetFont($font, 'B', 9); // TODO: metu tiun tekston en la datumbazon. $pdf->write(3.7, uni("Vi rajtas uzi tiun adresaron nur por" . " personaj celoj. Vi ne rajtas" . " uzi g^in por amasaj leteroj au^" . " retmesag^oj (ankau^ ne por informi" . " pri via Esperanto-renkontig^o), kaj" . " ne rajtas pludoni g^in (ec^ ne parte). ")); $pdf->SetFont('', ''); $pdf->write(3.7, uni(" Se amiko de vi (kiu partoprenis la " . $_SESSION['renkontigxo']->datoj['mallongigo'] . ") ne ricevis la adresaron," . " li povas mendi propran c^e " . $_SESSION['renkontigxo']->datoj['adminretadreso'] . ". La sama validas por vi, se vi perdos " . " g^in.\n" . "Atentu, la g^usta sinsekvo de la" . " adres-partoj sur leteroj - depende de" . " la lando -" . " ofte ne estas la sama kiel tiu en tiu" . " c^i listo. Informig^u antau^ eksendado" . " de letero (ekzemple per retpos^to al la" . " ricevonto).")); $pdf->ln(7); $linlargxo = 3.0; $interlinspaco = 4.05; } $kampoj = array("p.ID", "pn.ID", "p.nomo" => "famnomo", "personanomo", "sxildnomo", "l.nomo" => "landonomo", "retposxto", "posxtkodo", "urbo", "lando", "telefono"); $kampolisto = "nomo; retpos^to; pos^tkodo; urbo; lando; telefono;"; if (KAMPOELEKTO_IJK) { $kampolisto .= "adreso; tujmesag^iloj; "; $kampoj[] = "adreso"; $kampoj[] = "tujmesagxiloj"; } else { $kampolisto .= " adresaldonaj^o; strato; telefakso; "; $kampoj[] = "adresaldonajxo"; $kampoj[] = "strato"; $kampoj[] = "telefakso"; } $pdf->write($linlargxo * 1.7, uni($kampolisto)); $pdf->ln($interlinspaco); $pdf->ln($interlinspaco); $demando = datumbazdemando($kampoj, array("partoprenantoj" => "p", "partoprenoj" => "pn", "landoj" => "l"), array("pn.partoprenantoID = p.ID", "l.ID = lando", "pn.intolisto = 'J'", "alvenstato = 'a'"), "renkontigxoID", array("order" => "personanomo, famnomo")); echo "<BR><BR>"; $rezulto = sql_faru($demando); $koloro = 0; while ($row = mysql_fetch_assoc($rezulto)) { if ($row['sxildnomo']) { $tutanomo = $row['personanomo'] . ' (' . $row['sxildnomo'] . ') ' . $row['famnomo']; } else { $tutanomo = $row['personanomo'] . ' ' . $row['famnomo']; } eoecho($tutanomo . "<br/>"); if ($bunta == "JES") { switch ($koloro % 4) { case 0: $pdf->SetTextColor(200, 0, 0); break; case 1: $pdf->SetTextColor(0, 0, 255); break; case 2: $pdf->SetTextColor(0, 150, 0); break; default: $pdf->SetTextColor(0, 0, 0); break; } $koloro++; } $datumoj = array($tutanomo, $row['retposxto'], $row['posxtkodo'], $row['urbo'], $row['lando'], $row['telefono']); if (KAMPOELEKTO_IJK) { // TODO: pripensu, kiel trakti plurlinian adreson. array_push($datumoj, $row['adreso'], $row['tujmesagxiloj']); } else { array_push($datumoj, $row['adresaldonajxo'], $row['strato'], $row['telefakso']); } $csv_teksto = "'" . implode("';'", $datumoj) . "'"; $pdf_teksto = implode("; ", $datumoj); $pdf->write($linlargxo, uni($pdf_teksto)); $pdf->ln($interlinspaco); // TODO: pripensu, ĉu ni ne ankaŭ por la CSV-versio restu ĉe UTF-8 fputs($fp, utf8_decode($csv_teksto . "\n")); } $pdf->Output($GLOBALS['prafix'] . "/dosieroj_generitaj/adresaro.pdf"); fclose($fp); echo "<br/><br/>"; hazard_ligu("dosieroj_generitaj/adresaro.pdf", "els^uti la adresaron (PDF)."); hazard_ligu("dosieroj_generitaj/adresaro.csv", "els^uti la adresaron (CSV)."); echo "</p>"; }