function hae_saldovahvistus_pdf($saldovahvistus, $boss = false) { global $kukarow, $yhtiorow, $pdf, $kala, $sivu, $norm, $pieni, $kieli, $bold, $lask, $rectparam, $sivu_numero_obj_ids; $sivu_numero_obj_ids = array(); //PDF parametrit $pdf = new pdffile(); $pdf->set_default('margin-top', 0); $pdf->set_default('margin-bottom', 0); $pdf->set_default('margin-left', 0); $pdf->set_default('margin-right', 0); $rectparam = array(); $rectparam["width"] = 0.3; $lask = 1; $sivu = 1; $norm["height"] = 10; $norm["font"] = "Times-Roman"; $pieni["height"] = 8; $pieni["font"] = "Times-Roman"; $bold["height"] = 10; $bold["font"] = "Times-Bold"; //Otetaan tässä asiakkaan kieli talteen $kieli = $saldovahvistus['asiakas']['kieli']; $firstpage = alku($saldovahvistus); $firstpage = rivit($firstpage, $saldovahvistus['laskut'], $saldovahvistus, $boss); $kala -= 20; $pdf->draw_text(250, $kala, t('Avoin saldo yhteensä', $kieli), $firstpage, $bold); $pdf->draw_text(452.5, $kala, $saldovahvistus['avoin_saldo_summa'], $firstpage, $bold); $pdf->draw_text(500, $kala, $saldovahvistus['valkoodi'], $firstpage, $bold); loppu($firstpage, $saldovahvistus); if (!empty($sivu_numero_obj_ids)) { foreach ($sivu_numero_obj_ids as $sivu_numero_obj_id) { $pdf->objects[$sivu_numero_obj_id]['text'] .= $pdf->currentPage['number'] + 1; } } //keksitään uudelle failille joku varmasti uniikki nimi: list($usec, $sec) = explode(' ', microtime()); mt_srand((double) $sec + (double) $usec * 100000); $pdffilenimi = "/tmp/saldovahvistus-" . md5(uniqid(mt_rand(), true)) . ".pdf"; //kirjoitetaan pdf faili levylle.. $fh = fopen($pdffilenimi, "w"); if (fwrite($fh, $pdf->generate()) === FALSE) { die("PDF kirjoitus epäonnistui {$pdffilenimi}"); } fclose($fh); return $pdffilenimi; }
$laskurow = mysql_fetch_array($result); $query = "SELECT *, concat(rpad(upper(hyllyalue), 5, '0'),lpad(upper(hyllynro), 5, '0'),lpad(upper(hyllyvali), 5, '0'),lpad(upper(hyllytaso), 5, '0')) sorttauskentta\n FROM tilausrivi\n WHERE otunnus = '{$laskurow['laskutunnus']}'\n and yhtio = '{$kukarow['yhtio']}'\n ORDER BY tunnus"; $result = pupe_query($query); //kuollaan jos yhtään riviä ei löydy if (mysql_num_rows($result) == 0) { echo t("Laskurivejä ei löytynyt"); exit; } require_once "tulosta_tarjous.inc"; $sivu = 1; // aloitellaan laskun teko $firstpage = alku(); while ($row = mysql_fetch_array($result)) { rivi($firstpage); } loppu($firstpage); alvierittely($firstpage); //keksitään uudelle failille joku varmasti uniikki nimi: list($usec, $sec) = explode(' ', microtime()); mt_srand((double) $sec + (double) $usec * 100000); $pdffilenimi = "/tmp/tarjous-" . md5(uniqid(mt_rand(), true)) . ".pdf"; //kirjoitetaan pdf faili levylle.. $fh = fopen($pdffilenimi, "w"); if (fwrite($fh, $pdf->generate()) === FALSE) { die("PDF kirjoitus epäonnistui {$pdffilenimi}"); } fclose($fh); //Työnnetään tuo pdf vaan putkeen! echo file_get_contents($pdffilenimi); //poistetaan tmp file samantien kuleksimasta... unlink($pdffilenimi);
function generoi_pdf_tiedostot(&$data_array, $params, $kieli) { global $pdf, $asiakasrow, $yhtiorow, $sivu, $norm, $pieni, $pvm, $alkuvv, $alkukk, $alkupp, $loppuvv, $loppukk, $loppupp, $kala, $sivu, $lask, $sumkpled, $sumkplva, $sumed, $sumva, $asiakas_numero; $alkuvv = $params['alkuvv']; $alkukk = $params['alkukk']; $alkupp = $params['alkupp']; $loppuvv = $params['loppuvv']; $loppukk = $params['loppukk']; $loppupp = $params['loppupp']; $pdf_tiedostot = array(); $i = 0; echo '<br/>' . t('Tehdään pdf tiedostot') . '<br/>'; $bar2 = new ProgressBar(); $bar2->initialize(count($data_array) - 1); foreach ($data_array as &$data) { $bar2->increase(); $pdf = new pdffile(); $pdf->set_default('margin-top', 0); $pdf->set_default('margin-bottom', 0); $pdf->set_default('margin-left', 0); $pdf->set_default('margin-right', 0); // defaultteja layouttiin $kala = 575; $lask = 1; $sivu = 1; $asiakasrow = $data['asiakasrow']; // kirjotetaan header $firstpage = alku("osasto"); $firstpage = rivi_kaikki($firstpage, 'osasto', $data['tilaukset_ilman_try'], $params); $sumkpled = $data['summat_ilman_try']['sumkpled']; $sumkplva = $data['summat_ilman_try']['sumkplva']; $sumed = $data['summat_ilman_try']['sumed']; $sumva = $data['summat_ilman_try']['sumva']; // kirjotetaan footer loppu($firstpage, "dontsend"); // defaultteja layouttiin $kala = 575; $lask = 1; $sivu = 1; // uus pdf header $firstpage = alku(); $firstpage = rivi_kaikki($firstpage, '', $data['tilaukset_try']); $sumkpled = $data['summat_try']['sumkpled']; $sumkplva = $data['summat_try']['sumkplva']; $sumed = $data['summat_try']['sumed']; $sumva = $data['summat_try']['sumva']; $asiakas_numero = $data['asiakasrow']['asiakasnro']; // kirjotetaan footer ja palautetaan luodun tiedoston polku $pdf_tiedostot[] = loppu($firstpage); $data['tiedosto'] = $pdf_tiedostot[$i]; $i++; } return $pdf_tiedostot; }
function rivi($firstpage, $summa, $korko) { global $firstpage, $pdf, $yhtiorow, $kukarow, $row, $kala, $sivu, $lask, $rectparam, $norm, $pieni, $lask, $kieli, $karhutunnus, $karhukertanro; // siirrytäänkö uudelle sivulle? if ($kala < 153) { $sivu++; loppu($firstpage, '', ''); $firstpage = alku(); $lask = 1; } // ei anneta negatiivisia korkoja $row['korko'] = $row['summa'] >= 0 ? $row['korko'] : 0.0; $pdf->draw_text(30, $kala, $row["laskunro"] . " / " . $row["viite"], $firstpage, $norm); if (!empty($karhutunnus)) { $query = "SELECT count(distinct ktunnus) ktun\n FROM karhu_lasku\n JOIN karhukierros ON (karhukierros.tunnus = karhu_lasku.ktunnus AND karhukierros.tyyppi = '')\n WHERE ltunnus = {$row['tunnus']}\n AND ktunnus <= {$karhutunnus}"; $karhukertares = pupe_query($query); $karhukertarow = mysql_fetch_assoc($karhukertares); $karhukertanro = $karhukertarow["ktun"]; $query = "SELECT\n max(karhukierros.pvm) as kpvm\n FROM karhu_lasku\n JOIN karhukierros ON (karhukierros.tunnus = karhu_lasku.ktunnus AND karhukierros.tyyppi = '')\n WHERE ltunnus = {$row['tunnus']}\n AND ktunnus < {$karhutunnus}"; $karhukertares = pupe_query($query); $karhukertarow = mysql_fetch_assoc($karhukertares); $karhuedpvm = $karhukertarow["kpvm"]; } else { $karhukertanro = $row["karhuttu"] + 1; $karhuedpvm = $row["kpvm"]; } if ($yhtiorow['maksukehotus_kentat'] == 'J' or $yhtiorow['maksukehotus_kentat'] == 'L') { $pdf->draw_text(130, $kala, tv1dateconv($row["tapvm"]), $firstpage, $norm); $pdf->draw_text(190, $kala, tv1dateconv($row["erpcm"]), $firstpage, $norm); $oikpos = $pdf->strlen($row["ika"], $norm); $pdf->draw_text(270 - $oikpos, $kala, $row["ika"], $firstpage, $norm); if ($row["valkoodi"] != $yhtiorow["valkoodi"]) { $oikpos = $pdf->strlen($row["summa_valuutassa"], $norm); $pdf->draw_text(460 - $oikpos, $kala, $row["summa_valuutassa"], $firstpage, $norm); } else { $oikpos = $pdf->strlen($row["summa"], $norm); $pdf->draw_text(460 - $oikpos, $kala, $row["summa"], $firstpage, $norm); } if ($yhtiorow["maksukehotus_kentat"] == "" or $yhtiorow["maksukehotus_kentat"] == "J") { $pdf->draw_text(295, $kala, tv1dateconv($karhuedpvm), $firstpage, $norm); $oikpos = $pdf->strlen($karhukertanro, $norm); $pdf->draw_text(385 - $oikpos, $kala, $karhukertanro, $firstpage, $norm); } $oikpos = $pdf->strlen(sprintf('%.2f', $row["korko"]), $norm); $pdf->draw_text(515 - $oikpos, $kala, $row["korko"], $firstpage, $norm); $oikpos = $pdf->strlen(sprintf('%.2f', $row["summa"] + $row["korko"]), $norm); $pdf->draw_text(565 - $oikpos, $kala, sprintf('%.2f', $row["summa"] + $row["korko"]), $firstpage, $norm); } else { $pdf->draw_text(180, $kala, tv1dateconv($row["tapvm"]), $firstpage, $norm); $pdf->draw_text(240, $kala, tv1dateconv($row["erpcm"]), $firstpage, $norm); $oikpos = $pdf->strlen($row["ika"], $norm); $pdf->draw_text(338 - $oikpos, $kala, $row["ika"], $firstpage, $norm); if ($row["valkoodi"] != $yhtiorow["valkoodi"]) { $oikpos = $pdf->strlen($row["summa_valuutassa"], $norm); $pdf->draw_text(500 - $oikpos, $kala, $row["summa_valuutassa"] . " " . $row["valkoodi"], $firstpage, $norm); } else { $oikpos = $pdf->strlen($row["summa"], $norm); $pdf->draw_text(500 - $oikpos, $kala, $row["summa"] . " " . $row["valkoodi"], $firstpage, $norm); } if ($yhtiorow["maksukehotus_kentat"] == "" or $yhtiorow["maksukehotus_kentat"] == "J") { $pdf->draw_text(365, $kala, tv1dateconv($karhuedpvm), $firstpage, $norm); $oikpos = $pdf->strlen($karhukertanro, $norm); $pdf->draw_text(560 - $oikpos, $kala, $karhukertanro, $firstpage, $norm); } } $kala = $kala - 13; $lask++; if ($row["valkoodi"] != $yhtiorow["valkoodi"]) { $summa += $row["summa_valuutassa"]; } else { $summa += $row["summa"]; } $korko += $row["korko"]; $palautus = array("korko" => $korko, "summa" => $summa); return $palautus; }
function loppu($firstpage, $summat) { global $pdf, $yhtiorow, $kukarow, $sivu, $rectparam, $norm, $pieni, $kieli, $lask, $kala; if (count($summat) > 1 and $lask > 35) { $sivu++; loppu($firstpage, array()); $firstpage = alku(); $kala = 605; $lask = 1; } //yhteensärivi $pdf->draw_rectangle(110, 394, 90, 580, $firstpage, $rectparam); $pdf->draw_rectangle(110, 540, 90, 580, $firstpage, $rectparam); if (count($summat) > 1) { $oikpos = $pdf->strlen("----------------", $norm); $pdf->draw_text(480 - $oikpos, $kala, "----------------", $firstpage, $norm); $kala = $kala - 13; } foreach ($summat as $valuutta => $summa) { if (count($summat) == 1) { $pdf->draw_text(404, 92, t("YHTEENSÄ", $kieli) . ":", $firstpage, $norm); $pdf->draw_text(464, 92, sprintf('%.2f', $summa), $firstpage, $norm); $pdf->draw_text(550, 92, $valuutta, $firstpage, $norm); } else { $pdf->draw_text(300, $kala, $valuutta, $firstpage, $norm); $summa = sprintf('%.2f', $summa); $oikpos = $pdf->strlen($summa, $norm); $pdf->draw_text(480 - $oikpos, $kala, $summa, $firstpage, $norm); $kala = $kala - 13; } } //Pankkiyhteystiedot $pdf->draw_rectangle(90, 20, 20, 580, $firstpage, $rectparam); $pdf->draw_text(30, 82, t("Pankkiyhteys", $kieli), $firstpage, $pieni); $pdf->draw_text(30, 72, $yhtiorow["pankkiiban1"] . " " . $yhtiorow["pankkiswift1"], $firstpage, $norm); $pdf->draw_text(217, 72, $yhtiorow["pankkiiban2"] . " " . $yhtiorow["pankkiswift2"], $firstpage, $norm); $pdf->draw_text(404, 72, $yhtiorow["pankkiiban3"] . " " . $yhtiorow["pankkiswift3"], $firstpage, $norm); //Alimmat kolme laatikkoa, yhtiötietoja $pdf->draw_rectangle(70, 20, 20, 580, $firstpage, $rectparam); $pdf->draw_rectangle(70, 207, 20, 580, $firstpage, $rectparam); $pdf->draw_rectangle(70, 394, 20, 580, $firstpage, $rectparam); $pdf->draw_text(30, 55, $yhtiorow["nimi"], $firstpage, $pieni); $pdf->draw_text(30, 45, $yhtiorow["osoite"], $firstpage, $pieni); $pdf->draw_text(30, 35, $yhtiorow["postino"] . " " . $yhtiorow["postitp"], $firstpage, $pieni); $pdf->draw_text(30, 25, $yhtiorow["maa"], $firstpage, $pieni); $pdf->draw_text(217, 55, t("Puhelin", $kieli) . ":", $firstpage, $pieni); $pdf->draw_text(252, 55, $yhtiorow["puhelin"], $firstpage, $pieni); $pdf->draw_text(217, 45, t("Fax", $kieli) . ":", $firstpage, $pieni); $pdf->draw_text(252, 45, $yhtiorow["fax"], $firstpage, $pieni); $pdf->draw_text(217, 35, t("Email", $kieli) . ":", $firstpage, $pieni); $pdf->draw_text(252, 35, $yhtiorow["email"], $firstpage, $pieni); $pdf->draw_text(404, 55, t("Y-tunnus", $kieli) . ":", $firstpage, $pieni); $pdf->draw_text(450, 55, $yhtiorow["ytunnus"], $firstpage, $pieni); $pdf->draw_text(404, 45, t("Kotipaikka", $kieli) . ":", $firstpage, $pieni); $pdf->draw_text(450, 45, $yhtiorow["kotipaikka"], $firstpage, $pieni); $pdf->draw_text(404, 35, t("Enn.per.rek", $kieli), $firstpage, $pieni); $pdf->draw_text(404, 25, t("Alv.rek", $kieli), $firstpage, $pieni); }
function rivi($firstpage, $summa) { global $firstpage, $pdf, $row, $kala, $sivu, $lask, $rectparam, $norm, $pieni, $lask, $kieli, $karhukertanro, $yhtiorow, $kukarow; if ($lask == 29 and $sivu == 1 or $lask == 37 and $sivu > 1) { $sivu++; loppu($firstpage, ''); $firstpage = alku(); $kala = 605; $lask = 1; } $pdf->draw_text(30, $kala, $row["laskunro"] . " / " . $row["viite"], $firstpage, $norm); $pdf->draw_text(180, $kala, tv1dateconv($row["tapvm"]), $firstpage, $norm); $pdf->draw_text(240, $kala, tv1dateconv($row["erpcm"]), $firstpage, $norm); $oikpos = $pdf->strlen($row["ika"], $norm); $pdf->draw_text(338 - $oikpos, $kala, $row["ika"], $firstpage, $norm); $pdf->draw_text(365, $kala, tv1dateconv($row["kpvm"]), $firstpage, $norm); if ($row["valkoodi"] != $yhtiorow["valkoodi"]) { $oikpos = $pdf->strlen($row["summa_valuutassa"], $norm); $pdf->draw_text(500 - $oikpos, $kala, $row["summa_valuutassa"] . " " . $row["valkoodi"], $firstpage, $norm); $summa += $row["summa_valuutassa"]; } else { $oikpos = $pdf->strlen($row["summa"], $norm); $pdf->draw_text(500 - $oikpos, $kala, $row["summa"] . " " . $row["valkoodi"], $firstpage, $norm); $summa += $row["summa"]; } if ($karhukertanro == "") { $karhukertanro = $row["karhuttu"] + 1; } $oikpos = $pdf->strlen($karhukertanro, $norm); $pdf->draw_text(560 - $oikpos, $kala, $karhukertanro, $firstpage, $norm); $kala = $kala - 13; $lask++; return $summa; }