public function bukti($a) { $pdfku = new Cezpdf("A5", 'landscape'); //595.28,841.29 $pdfku->addInfo('Title', 'List Barang'); $pdfku->ezSetCmMargins("3", "3", "3", "3"); $barang = $this->barang->detail_peminjaman($a); $pdfku->ezSetY(100); $pdfku->ezSetDy(230); //$pdfku->addJpegFromFile("icon.jpg",20,300,-1); $pdfku->addText(120, $pdfku->y + 30, 18, "Bukti Peminjaman Inventaris Laboratorium"); $pdfku->addText(160, $pdfku->y + 10, 15, "Komputasi Berbasis Jaringan (KBJ)"); $cols_db = array('id_barang' => 'ID Barang', 'nama_barang' => 'Nama Barang'); $option_db = array('showHeadings' => 2, 'shaded' => 0, 'xPos' => 'center', 'xOrientation' => 'center', 'fontSize' => 12, 'cols' => array('id_barang' => array('justification' => 'center', 'width' => '120'), 'nama_barang' => array('justification' => 'center', 'width' => '120'))); $pdfku->ezTable($barang, $cols_db, '', $option_db); $pdfku->addText(100, $pdfku->y - 40, 12, "Mengetahui "); $pdfku->addText(90, $pdfku->y - 60, 12, "Administrator Lab"); $pdfku->addText(400, $pdfku->y - 60, 12, "Kepala Laboratorium"); $pdfku->addText(80, $pdfku->y - 130, 10, "__________________"); $pdfku->addText(400, $pdfku->y - 130, 10, "__________________"); $pdfku->ezStream(); }
public function show($filename = 'doc.pdf') { $this->pdf->ezStream(array('Content-Disposition' => $filename)); }
function kosten_einnahmen_pdf($geldkontos_arr, $monat, $jahr) { $anzahl_konten = count($geldkontos_arr); $datum_jahresanfang = "01.01.{$jahr}"; if ($anzahl_konten) { ob_clean(); // ausgabepuffer leeren /* PDF AUSGABE */ //include_once ('pdfclass/class.ezpdf.php'); $pdf = new Cezpdf('a4', 'portrait'); $pdf->selectFont('Helvetica.afm'); $pdf->ezSetCmMargins(4.5, 0, 0, 0); /* Kopfzeile */ $pdf->addJpegFromFile('includes/logos/logo_hv_sw.jpg', 220, 750, 175, 100); $pdf->setLineStyle(0.5); $pdf->addText(86, 743, 6, "BERLUS HAUSVERWALTUNG * Fontanestr. 1 * 14193 Berlin * Inhaber Wolfgang Wehrheim * Telefon: 89784477 * Fax: 89784479 * Email: info@berlus.de"); $pdf->line(42, 750, 550, 750); /* Footer */ $pdf->line(42, 50, 550, 50); $pdf->addText(170, 42, 6, "BERLUS HAUSVERWALTUNG * Fontanestr. 1 * 14193 Berlin * Inhaber Wolfgang Wehrheim"); $pdf->addText(150, 35, 6, "Bankverbindung: Dresdner Bank Berlin * BLZ: 100 800 00 * Konto-Nr.: 05 804 000 00 * Steuernummer: 24/582/61188"); $pdf->addInfo('Title', "Monatsbericht {$objekt_name} {$monatname} {$jahr}"); $pdf->addInfo('Author', $_SESSION['username']); $pdf->ezStartPageNumbers(100, 760, 8, '', 'Seite {PAGENUM} von {TOTALPAGENUM}', 1); $g_kosten_jahr = 0.0; /* Schleife für jedes Geldkonto bzw. Zeilenausgabe */ for ($a = 0; $a < $anzahl_konten; $a++) { $geldkonto_id = $geldkontos_arr[$a]['GELDKONTO_ID']; $objekt_name = $geldkontos_arr[$a]['OBJEKT_NAME']; $this->kontostand_tagesgenau_bis($geldkonto_id, $datum_jahresanfang); $kontostand_jahresanfang = $this->summe_konto_buchungen; $this->summe_kontobuchungen_jahr_monat($geldkonto_id, '80001', $jahr, $monat); $summe_mieteinnahmen_monat = $this->summe_konto_buchungen; $this->summe_miete_jahr($geldkonto_id, '80001', $jahr, $monat); $summe_mieteinnahmen_jahr = $this->summe_konto_buchungen; $this->summe_kosten_jahr_monat($geldkonto_id, '80001', $jahr, $monat); $summe_kosten_monat = $this->summe_konto_buchungen; $this->summe_kosten_jahr($geldkonto_id, '80001', $jahr, $monat); $summe_kosten_jahr = $this->summe_konto_buchungen; /* * if($monat < 12){ * $monat_neu = $monat + 1; * $jahr_neu = $jahr; * } * if($monat == 12){ * $monat_neu = 1; * $jahr_neu = $jahr +1; * } */ $monat = sprintf('%02d', $monat); $letzter_tag_m = letzter_tag_im_monat($monat, $jahr); $datum_bis = "{$letzter_tag_m}.{$monat}.{$jahr}"; $this->kontostand_tagesgenau_bis($geldkonto_id, $datum_bis); $kontostand_heute = $this->summe_konto_buchungen; $monatname = monat2name($monat); /* Gesamtsummen bilden */ $g_kontostand_ja = $g_kontostand_ja + $kontostand_jahresanfang; $g_me_monat = $g_me_monat + $summe_mieteinnahmen_monat; $g_me_jahr = $g_me_jahr + $summe_mieteinnahmen_jahr; $g_kosten_monat = $g_kosten_monat + $summe_kosten_monat; $g_kosten_jahr += $summe_kosten_jahr; $g_kontostand_akt = $g_kontostand_akt + $kontostand_heute; $kontostand_jahresanfang = nummer_punkt2komma($kontostand_jahresanfang); $summe_mieteinnahmen_monat = nummer_punkt2komma($summe_mieteinnahmen_monat); $summe_mieteinnahmen_jahr = nummer_punkt2komma($summe_mieteinnahmen_jahr); $summe_kosten_monat = nummer_punkt2komma($summe_kosten_monat); $summe_kosten_jahr = nummer_punkt2komma($summe_kosten_jahr); $kontostand_heute = nummer_punkt2komma($kontostand_heute); // echo "<b>$kontostand_jahresanfang| $summe_mieteinnahmen_monat|$summe_mieteinnahmen_jahr|$summe_kosten_monat|$summe_kosten_jahr|$kontostand_heute</b><br>"; $table_arr[$a]['OBJEKT_NAME'] = $objekt_name; $table_arr[$a]['KONTOSTAND1_1'] = $kontostand_jahresanfang; $table_arr[$a]['ME_MONAT'] = $summe_mieteinnahmen_monat; $table_arr[$a]['ME_JAHR'] = $summe_mieteinnahmen_jahr; $table_arr[$a]['KOSTEN_MONAT'] = $summe_kosten_monat; $table_arr[$a]['KOSTEN_JAHR'] = $summe_kosten_jahr; $table_arr[$a]['KONTOSTAND_AKTUELL'] = "<b>{$kontostand_heute}</b>"; } // end for /* Summenzeile hinzufügen */ $table_arr[$a]['OBJEKT_NAME'] = "<b>Summe incl. FON</b>"; $table_arr[$a]['KONTOSTAND1_1'] = '<b>' . nummer_punkt2komma($g_kontostand_ja) . '</b>'; $table_arr[$a]['ME_MONAT'] = '<b>' . nummer_punkt2komma($g_me_monat) . '</b>'; $table_arr[$a]['ME_JAHR'] = '<b>' . nummer_punkt2komma($g_me_jahr) . '</b>'; $table_arr[$a]['KOSTEN_MONAT'] = '<b>' . nummer_punkt2komma($g_kosten_monat) . '</b>'; $table_arr[$a]['KOSTEN_JAHR'] = '<b>' . nummer_punkt2komma($g_kosten_jahr) . '</b>'; $table_arr[$a]['KONTOSTAND_AKTUELL'] = '<b>' . nummer_punkt2komma($g_kontostand_akt) . '</b>'; $pdf->ezTable($table_arr, array('OBJEKT_NAME' => 'Objekt', 'KONTOSTAND1_1' => "Kontostand {$datum_jahresanfang}", 'ME_MONAT' => "Mieten Einnahmen {$monatname}", 'ME_JAHR' => "Mieten Einnahmen {$jahr}", 'KOSTEN_MONAT' => "Kosten {$monatname}", 'KOSTEN_JAHR' => "Kosten {$jahr}", 'KONTOSTAND_AKTUELL' => "Kontostand"), '<b>Kosten & Einnahmen / Objekt (Tabellarische übersicht)</b>', array('shaded' => 0, 'width' => '500', 'justification' => 'right', 'cols' => array('KONTOSTAND1_1' => array('justification' => 'right'), 'ME_MONAT' => array('justification' => 'right'), 'ME_MONAT' => array('justification' => 'right'), 'ME_JAHR' => array('justification' => 'right'), 'KOSTEN_MONAT' => array('justification' => 'right'), 'KOSTEN_JAHR' => array('justification' => 'right'), 'KONTOSTAND_AKTUELL' => array('justification' => 'right')))); ob_clean(); // ausgabepuffer leeren header("Content-type: application/pdf"); // wird von MSIE ignoriert $pdf->ezStream(); } else { echo "Keine Daten Error 65922"; } }
function citeRecords($result, $rowsFound, $query, $queryURL, $showQuery, $showLinks, $rowOffset, $showRows, $previousOffset, $nextOffset, $wrapResults, $citeStyle, $citeOrder, $citeType, $orderBy, $headerMsg, $userID, $viewType) { global $officialDatabaseName; // these variables are defined in 'ini.inc.php' global $databaseBaseURL; global $contentTypeCharset; global $pdfPageSize; global $client; // The array '$transtab_refbase_pdf' contains search & replace patterns for conversion from refbase markup to PDf markup & entities global $transtab_refbase_pdf; // defined in 'transtab_refbase_pdf.inc.php' // Initialize array variables: $yearsArray = array(); $typeTitlesArray = array(); // Define inline text markup to be used by the 'citeRecord()' function: $markupPatternsArray = array("bold-prefix" => "<b>", "bold-suffix" => "</b>", "italic-prefix" => "<i>", "italic-suffix" => "</i>", "underline-prefix" => "<u>", "underline-suffix" => "</u>", "endash" => "¦", "emdash" => "©", "ampersand" => "&", "double-quote" => '"', "double-quote-left" => "ª", "double-quote-right" => "¬", "single-quote" => "'", "single-quote-left" => "®", "single-quote-right" => "¶", "less-than" => "<", "greater-than" => ">", "newline" => "\n"); // Defines search & replace 'actions' that will be applied upon PDF output to all those refbase fields that are listed // in the corresponding 'fields' element: $pdfSearchReplaceActionsArray = array(array('fields' => array("title", "publication", "abbrev_journal", "address", "keywords", "abstract", "orig_title", "series_title", "abbrev_series_title", "notes"), 'actions' => $transtab_refbase_pdf)); // For CLI queries, we'll allow paging thru the result set, i.e. we honour the values of the CLI options '-S|--start' ('$rowOffset') // and '-R|--rows' ('$showRows') ('$rowOffset' and '$showRows' are re-assigned in function 'seekInMySQLResultsToOffset()' in 'include.inc.php') if (preg_match("/^cli/i", $client)) { // if the query originated from a command line client such as the "refbase" CLI client ("cli-refbase-1.0") $showMaxRows = $showRows; } else { $showMaxRows = $rowsFound; } // otherwise show all rows // Setup the basic PDF document structure (PDF functions defined in 'class.ezpdf.php'): $pdf = new Cezpdf($pdfPageSize, 'portrait'); // initialize PDF object if (!empty($headerMsg)) { // adjust upper page margin if a custom header message was given $pageMarginTop = "70"; } else { $pageMarginTop = "50"; } $pdf->ezSetMargins($pageMarginTop, 70, 50, 50); // set document margins (top, bottom, left, right) // Set fonts: $headingFont = 'includes/classes/org/pdf-php/fonts/Helvetica.afm'; $textBodyFont = 'includes/classes/org/pdf-php/fonts/Times-Roman.afm'; // Re-map character numbers from the 0->255 range to a named character, i.e. replace an (unused) character for any other PostScript char; // see the PDF reference for a list of supported PostScript/PDF character names: <http://www.adobe.com/devnet/pdf/pdf_reference.html>; // for the decimal code numbers of the ISO-8859-1 character set, see e.g.: <http://www.ramsch.org/martin/uni/fmi-hp/iso8859-1.html> $diff = array(166 => 'endash', 169 => 'emdash', 170 => 'quotedblleft', 172 => 'quotedblright', 174 => 'quoteleft', 182 => 'quoteright'); // Select a font: $pdf->selectFont($textBodyFont, array('encoding' => 'WinAnsiEncoding', 'differences' => $diff)); $pdf->openHere('Fit'); // Put a footer (and optionally a header) on all the pages: $all = $pdf->openObject(); // start an independent object; all further writes to a page will actually go into this object, until a 'closeObject()' call is made $pdf->saveState(); $pdf->setStrokeColor(0, 0, 0, 1); // set line color $pdf->setLineStyle(0.5); // set line width // - print header line and header message at the specified x/y position: if (!empty($headerMsg)) { // Remove any colon (":") from end of header message: $headerMsg = trimTextPattern($headerMsg, ":", false, true); // function 'trimTextPattern()' is defined in 'include.inc.php' // Decode any HTML entities: // (these may occur in the header message e.g. if the user's preferred display language is not English but German or French, etc) $headerMsg = decodeHTML($contentTypeCharset, $headerMsg); // function 'decodeHTML()' is defined in 'include.inc.php', and '$contentTypeCharset' is defined in 'ini.inc.php' // Convert refbase markup in the header message into appropriate PDF markup & entities: $headerMsg = searchReplaceText($transtab_refbase_pdf, $headerMsg, true); // function 'searchReplaceText()' is defined in 'include.inc.php' if ($pdfPageSize == 'a4') { $pdf->line(20, 800, 575, 800); $pdf->addText(50, 805, 10, $headerMsg); } elseif ($pdfPageSize == 'letter') { $pdf->line(20, 750, 592, 750); $pdf->addText(50, 755, 10, $headerMsg); } } // - print footer line and footer text at the specified x/y position: if ($pdfPageSize == 'a4') { $pdf->line(20, 40, 575, 40); $pdf->addText(50, 28, 10, $officialDatabaseName . ' ¦ ' . $databaseBaseURL); // w.r.t. the endash, see notes at '$markupPatternsArray' and '$diff' above } elseif ($pdfPageSize == 'letter') { $pdf->line(20, 40, 592, 40); $pdf->addText(50, 28, 10, $officialDatabaseName . ' ¦ ' . $databaseBaseURL); } $pdf->restoreState(); $pdf->closeObject(); // close the currently open object; further writes will now go to the current page $pdf->addObject($all, 'all'); // note that object can be told to appear on just odd or even pages by changing 'all' to 'odd' or 'even' // Start printing page numbers: if ($pdfPageSize == 'a4') { $pdf->ezStartPageNumbers(550, 28, 10, '', '', 1); } elseif ($pdfPageSize == 'letter') { $pdf->ezStartPageNumbers(567, 28, 10, '', '', 1); } // LOOP OVER EACH RECORD: // Fetch one page of results (or less if on the last page) // (i.e., upto the limit specified in $showMaxRows) fetch a row into the $row array and ... for ($rowCounter = 0; $rowCounter < $showMaxRows && ($row = @mysql_fetch_array($result)); $rowCounter++) { foreach ($row as $rowFieldName => $rowFieldValue) { // Apply search & replace 'actions' to all fields that are listed in the 'fields' element of the arrays contained in '$pdfSearchReplaceActionsArray': foreach ($pdfSearchReplaceActionsArray as $fieldActionsArray) { if (in_array($rowFieldName, $fieldActionsArray['fields'])) { $row[$rowFieldName] = searchReplaceText($fieldActionsArray['actions'], $row[$rowFieldName], true); } } } // function 'searchReplaceText()' is defined in 'include.inc.php' // Order attributes according to the chosen output style & record type: $record = citeRecord($row, $citeStyle, $citeType, $markupPatternsArray, false); // function 'citeRecord()' is defined in the citation style file given in '$citeStyleFile' (which, in turn, must reside in the 'cite' directory of the refbase root directory), see function 'generateCitations()' // Print out the current record: if (!empty($record)) { // Print any section heading(s): if (preg_match("/year|type/i", $citeOrder)) { $headingPrefix = ""; $headingSuffix = ""; $sectionMarkupPrefix = "<b>"; $sectionMarkupSuffix = "</b>\n"; $subSectionMarkupPrefix = ""; $subSectionMarkupSuffix = "\n"; if ($citeOrder == "type-year") { $sectionMarkupSuffix .= "\n"; } list($yearsArray, $typeTitlesArray, $sectionHeading) = generateSectionHeading($yearsArray, $typeTitlesArray, $row, $citeOrder, $headingPrefix, $headingSuffix, $sectionMarkupPrefix, $sectionMarkupSuffix, $subSectionMarkupPrefix, $subSectionMarkupSuffix); // function 'generateSectionHeading()' is defined in 'cite.inc.php' if (!empty($sectionHeading)) { $pdf->selectFont($headingFont, array('encoding' => 'WinAnsiEncoding', 'differences' => $diff)); // use Helvetica $pdf->ezText($sectionHeading, '14', array('justification' => 'left')); // create heading using a font size of 14pt } } // If character encoding is not UTF-8 already, convert record text to UTF-8: // if ($contentTypeCharset != "UTF-8") // $record = convertToCharacterEncoding("UTF-8", "IGNORE", $record); // function 'convertToCharacterEncoding()' is defined in 'include.inc.php' // NOTE: Export of cited references to PDF does currently only work with a latin1 database but not with UTF-8 (since I don't know how to write Unicode characters to PDF). // As a workaround, we could convert UTF-8 characters to latin1 if possible (and omit any other higher ASCII chars) // TODO: While this workaround indeed fixes display issues with higher ASCII chars that have equivalents in the latin1 charset, this will currently swallow higher ASCII // hyphens/dashes such as endashes (which display correctly without this workaround). // if ($contentTypeCharset == "UTF-8") // $record = convertToCharacterEncoding("ISO-8859-1", "TRANSLIT", $record, "UTF-8"); // function 'convertToCharacterEncoding()' is defined in 'include.inc.php' // Set paragraph text options: $textOptions = array('justification' => 'full'); // possible array options: // 'left'=> number, gap to leave from the left margin // 'right'=> number, gap to leave from the right margin // 'aleft'=> number, absolute left position (overrides 'left') // 'aright'=> number, absolute right position (overrides 'right') // 'justification' => 'left','right','center','centre','full' // // only set one of the next two items (leading overrides spacing) // 'leading' => number, defines the total height taken by the line, independent of the font height. // 'spacing' => a real number, though usually set to one of 1, 1.5, 2 (line spacing as used in word processing) // Write PDF paragraph: $pdf->selectFont($textBodyFont, array('encoding' => 'WinAnsiEncoding')); // use Times-Roman $pdf->ezText($record . "\n", '12', $textOptions); // create text block with record text using "Times Roman" and a font size of 12pt } } return $pdf->ezStream(); }
function creaPDF($ids, $tmpName, $path, $PATHQR, $tmp = "") { require dirname(dirname(dirname(__FILE__))) . '/f4/configuracion/utils.php'; require dirname(dirname(dirname(__FILE__))) . '/f4/configuracion/importeco.php'; require dirname(dirname(dirname(__FILE__))) . "/gui/QRCode/qr_imgV2.php"; $data = ""; $facturaController = new FacturaController($path); $selloController = new SelloController($path); $empresaController = new EmpresaController($path); $sucursalController = new SucursalController($path); $FWK_PDFFONTS = 'pdf/fonts/'; $FWK_PDFDEFAULTFONT = 'pdf/fonts/Helvetica.afm'; $FWK_PDFCOURIERFONT = 'pdf/fonts/Courier.afm'; // Obtener factura y sus anexos $TIPOSCOMPROBANTEMXP = array(1 => "Factura", 3 => "Nota de Cr.", 2 => "NOTA DE DEBITO"); $idconsulta = ""; $idconsulta = explode(",", trim($ids)); foreach ($idconsulta as $valor) { if (is_null($valor) || $valor == "") { array_pop($idconsulta); } } $contadorTotalPaginas = count($idconsulta); $contadorPagina = 1; // Crea el documento pdf $pdf = new Cezpdf('LETTER', 'portrait'); foreach ($idconsulta as $idfactura) { $data['idfactura'] = $idfactura; $factura = $facturaController->execute('facturaParaPdf', $data); $row_factura = $factura['respuesta']; $info_xtra = json_decode($row_factura["info_xtra"]); $data['idfacefactura'] = $factura['respuesta']['idface_factura']; $data['idempresa'] = $factura['respuesta']['idempresa']; $data['idsello'] = $factura['respuesta']['idsello']; $version = $factura['respuesta']['version']; $addenda = $facturaController->execute('datosAddenda', $data); $row_addenda = $addenda['respuesta']; $empresa = $empresaController->execute('allId', $data); $row_empresa = $empresa['respuesta']; $sello = $selloController->execute('obtenerPorIdsello', $data); $row_sello = $sello['respuesta']; $data['sucursal'] = $sello['respuesta']['sucursal']; $sucursal = $sucursalController->execute('nombreSucIdempresa', $data); $row_sucursal = $sucursal['respuesta']; $xmlArray = xml2array(base64_decode($row_factura['factura'])); $attr = "_attr"; if ($version === "3.2") { $NSP = "cfdi:"; } else { $NSP = ""; } $comprobante = $NSP . "Comprobante"; $emisor = $NSP . "Emisor"; $emisorDomFiscal = $NSP . "DomicilioFiscal"; $emisorExpedidoEn = $NSP . "ExpedidoEn"; $receptor = $NSP . "Receptor"; $domicilio = $NSP . "Domicilio"; $concepto = $NSP . "Conceptos"; $conceptoTag = $NSP . "Concepto"; $impuestos = $NSP . "Impuestos"; $traslado = $NSP . "Traslados"; $trasladoTag = $NSP . "Traslado"; $retencion = $NSP . "Retenciones"; $retencionTag = $NSP . "Retencion"; //INICIALIZACIONES $comprobanteNode = null; $emisorNode = null; $emisordomicilioNode = null; $expedidoNode = null; $receptorNode = null; $receptordomicilioNode = null; $conceptoNode = null; $impuestosNode = null; $trasladoNode = null; $retencionNode = null; // -------------------------------------------------chs -------------------------------------------------------------- $comprobanteNode = $xmlArray[$comprobante . $attr]; $emisorNode = $xmlArray[$comprobante][$emisor . $attr]; $emisordomicilioNode = $xmlArray[$comprobante][$emisor][$emisorDomFiscal . $attr]; $expedidoNode = isset($xmlArray[$comprobante][$emisor][$emisorExpedidoEn . $attr]) ? $xmlArray[$comprobante][$emisor][$emisorExpedidoEn . $attr] : ""; $receptorNode = $xmlArray[$comprobante][$receptor . $attr]; $receptordomicilioNode = $xmlArray[$comprobante][$receptor][$domicilio . $attr]; $conceptos = $xmlArray[$comprobante][$concepto]; $impuestosNode = $xmlArray[$comprobante][$impuestos . $attr]; $traslados = $xmlArray[$comprobante][$impuestos][$traslado]; $retenciones = isset($xmlArray[$comprobante][$impuestos][$retencion][$retencionTag . $attr]) ? $xmlArray[$comprobante][$impuestos][$retencion][$retencionTag . $attr] : ""; $regimenFiscal = $xmlArray[$comprobante][$emisor]["cfdi:RegimenFiscal_attr"]["Regimen"]; // --------------------------------------------------------------------------------------------------------------- //descuentos $desc1 = 0.0; $desc2 = 0.0; //================================================================================================================== $pdf->ezSetMargins(100, 30, 30, 30); $pdf->selectFont($FWK_PDFDEFAULTFONT); $pdf->setLineStyle(0.7, '', '', '', 0); $pdf->openHere('Fit'); if ($row_factura['tipocfd'] == 3) { $pdf->setStrokeColor(255, 0, 0); } if ($row_factura['tipocfd'] == 2) { $pdf->setStrokeColor(0, 255, 0); } // Inicia numeracin de paginas. $pagina = 1; $pdf->ezStartPageNumbers(500, 15, 10, '', '{PAGENUM} de {TOTALPAGENUM}', 1); $primeraPagina = $pdf->currentPage; // i. Agrega el logo de la empresa $pathToLogo = $path == "../" ? "../f4/extensiones/" : ""; $logofile = "logos/f.jpg"; //TENDRA QUE VENIR DE UN PARAMETRO EN LA BD. /*if(isset($row_empresa['rfc']) && !empty($row_empresa['rfc'])) $logofile="logos/".$row_empresa['rfc'].".jpg";*/ if (isset($sucursal["respuesta"]["sucursal"]) && !empty($sucursal["respuesta"]["sucursal"])) { $logofile = "logos/" . strtolower($sucursal["respuesta"]["sucursal"]) . ".jpg"; } error_log($logofile); if ($comprobanteNode['serie'] == "X") { $logofile = "logos/wingu-xpress.jpg"; } $pdf->addJpegFromFile($pathToLogo . $logofile, 30, 705, 140); // i. Agrega la leyenda "cancelada" if ($row_factura['estatus'] == 0) { $pdf->setColor(0.9, 0.9, 0.9); $pdf->addText(180, 200, 65, "<b>CANCELADA</b>", -45); $pdf->setColor(0, 0, 0); } // ------------------------------------------ENCABEZADO ------------------------------------------ //ENCABEZADO DE LA FACTURA $tipoDocto = $row_factura['tipodocumento']; $tipoDocto1 = $row_factura['tipodocumento'] == "FACTURA" ? "FACTURA" : ""; $tipoDocto2 = $row_factura['tipodocumento'] == "NOTA CARGO" ? "FACTURA" : ""; $tipoDocto3 = $row_factura['tipodocumento'] == "NOTA CREDITO" ? "NOTA DE CREDITO" : ""; $emisor = utf8_decode($emisorNode['nombre'] . "\n" . $emisorNode['rfc']) . "\n"; $noInterior = isset($emisordomicilioNode['noInterior']) ? $emisordomicilioNode['noInterior'] : ""; $noExterior = isset($emisordomicilioNode['noExterior']) ? $emisordomicilioNode['noExterior'] : ""; $emisor .= utf8_decode($emisordomicilioNode['calle'] . " {$noExterior}"); $emisor .= utf8_decode($emisordomicilioNode['colonia']); if (isset($emisordomicilioNode['localidad'])) { $emisor .= "\n" . utf8_decode($emisordomicilioNode['localidad']); } if ($emisordomicilioNode['municipio'] != "" && isset($emisordomicilioNode['municipio'])) { $emisor .= "\n" . utf8_decode($emisordomicilioNode['municipio']); } if ($emisordomicilioNode['estado'] != "" && isset($emisordomicilioNode['estado'])) { $emisor .= ", " . utf8_decode($emisordomicilioNode['estado']); } if ($emisordomicilioNode['codigoPostal'] != "" && isset($emisordomicilioNode['codigoPostal'])) { $emisor .= "\nCP " . utf8_decode($emisordomicilioNode['codigoPostal']); } $emisor .= " " . utf8_decode($emisordomicilioNode['pais']); $telefono = isset($row_empresa['telefono']) ? $row_empresa['telefono'] : ""; $emisor .= "\nTel: " . $telefono . "\n"; $mail = isset($row_empresa['mail']) ? $row_empresa['mail'] : ""; $emisor .= "\n" . $mail; $emisor1 = utf8_decode($emisorNode['nombre']); $sucursal = ""; if ($expedidoNode != "") { if (utf8_decode($row_sucursal['sucursal']) == "Q") { $tipoSucursal = utf8_decode('Querétaro'); } else { if (utf8_decode($row_sucursal['sucursal']) == "F") { $tipoSucursal = utf8_decode('5/6'); } else { if (utf8_decode($row_sucursal['sucursal']) == "S") { $tipoSucursal = utf8_decode('Santa Fe'); } } } $sucursal = "Sucursal " . $tipoSucursal . "\n"; if (utf8_decode($row_sucursal['sucursal']) != "S") { $noInteriorExpedido = isset($expedidoNode['noInterior']) ? $expedidoNode['noInterior'] : ""; $sucursal .= utf8_decode($expedidoNode['calle'] . " " . $expedidoNode['noExterior'] . " ") . "\n"; $sucursal .= utf8_decode($expedidoNode['colonia']) . "\n"; $sucursal .= utf8_decode($expedidoNode['municipio']) . ", " . utf8_decode($expedidoNode['estado']) . "\n"; $sucursal .= "CP " . utf8_decode($expedidoNode['codigoPostal']) . " " . utf8_decode($expedidoNode['pais']); } } ////////// i. Nombre del emisor $colNames = array(); $tableData = array(array("dato" => $emisor1)); $colOptions = array("dato" => array('justification' => 'left', 'width' => 200)); $options = array('showLines' => 0, 'showHeadings' => 0, 'shaded' => 0, 'shadeCol' => array(1, 1, 1), 'fontSize' => 9, 'textCol' => array(0, 0, 0), 'rowGap' => 0, 'colGap' => 0, 'xPos' => 200, 'xOrientation' => 'right', 'width' => 200, 'cols' => $colOptions, 'innerLineThickness' => 0.3, 'outerLineThickness' => 0.3); // Dibuja la tabla nombre del emisor $pdf->ezSetY(765); $pdf->ezTable($tableData, $colNames, "", $options); ////////// i. Datos del emisor y de la sucursal $tableData = array(array("emisor" => $emisor, "espacio" => "", "sucursal" => $sucursal)); $colOptions = array("emisor" => array('justification' => 'left', 'width' => 150), "espacio" => array('justification' => 'left', 'width' => 3), "sucursal" => array('justification' => 'left', 'width' => 100)); $options = array('showLines' => 0, 'showHeadings' => 0, 'shaded' => 0, 'shadeCol' => array(1, 1, 1), 'fontSize' => 7, 'textCol' => array(0, 0, 0), 'rowGap' => 0, 'colGap' => 0, 'xPos' => 190, 'xOrientation' => 'right', 'width' => 335, 'cols' => $colOptions, 'innerLineThickness' => 0.3, 'outerLineThickness' => 0.3); // Dibuja la tabla $pdf->ezTable($tableData, "", "", $options); ////////// i. Datos del documento $foliodocto = rellena("0", 6, $comprobanteNode['folio']); $seriedocto = $comprobanteNode['serie']; if (!empty($seriedocto)) { $foliodocto = $seriedocto . "-" . rellena("0", 6, $comprobanteNode['folio']); } $fechastr = $comprobanteNode['fecha']; $fechatok = explode("T", $fechastr); $toksf = explode("-", $fechatok[0]); $fechastr = $toksf[2] . "-" . $toksf[1] . "-" . $toksf[0] . " " . $fechatok[1]; $fechastrcfdi = $row_factura['FechaTimbrado']; $ncert = $comprobanteNode['noCertificado']; $aprob = $row_factura['noCertificadoSAT']; //chs $tableData = array(array("dato" => "<b>" . $tipoDocto1 . $tipoDocto2 . $tipoDocto3 . "</b>"), array("dato" => "<b>" . $foliodocto . "</b>"), array("dato" => "FECHA DE EMISION"), array("dato" => $fechastr), array("dato" => "LUGAR DE EXPEDICION"), array("dato" => utf8_decode($info_xtra->LugarExpedicion)), array("dato" => "FECHA DE CERTIFICACION"), array("dato" => $fechastrcfdi), array("dato" => "No. de Serie del Certificado del Emisor"), array("dato" => $ncert), array("dato" => "No. de Serie del Certificado del SAT"), array("dato" => $aprob), array("dato" => "Folio Fiscal"), array("dato" => $row_factura['uuid'])); $colOptions = array("dato" => array('justification' => 'left', 'width' => 120)); /*JASR*/ $options = array('showLines' => 1, 'showHeadings' => 0, 'shaded' => 2, 'shadeCol' => array(1, 1, 1), 'shadeCol2' => array(0.9, 0.9, 0.9), 'fontSize' => 7, 'textCol' => array(1, 1, 1), 'rowGap' => 2, 'colGap' => 5, 'xPos' => 455, 'xOrientation' => 'right', 'width' => 120, 'cols' => $colOptions, 'innerLineThickness' => 0.3, 'outerLineThickness' => 0.3); // Dibuja la tabla datos del documento $pdf->ezSetDy(70); $pdf->ezTable($tableData, "", "", $options); ////////// i. Datos del cliente $noInterior = isset($receptordomicilioNode['noInterior']) ? utf8_decode($receptordomicilioNode['noInterior']) : ""; $municipio = isset($receptordomicilioNode['municipio']) ? $receptordomicilioNode['municipio'] : ""; $localidadCliente = isset($receptordomicilioNode['localidad']) ? utf8_decode($receptordomicilioNode['localidad']) : ""; $tableData1 = array(array("cliente" => "<b>Cliente</b>"), array("cliente" => utf8_decode($receptorNode['nombre'])), array("cliente" => "RFC: " . utf8_decode($receptorNode['rfc'])), array("cliente" => utf8_decode($receptordomicilioNode['calle']) . " " . utf8_decode($receptordomicilioNode['noExterior']) . " {$noInterior} "), array("cliente" => utf8_decode($receptordomicilioNode['colonia']) . " " . $localidadCliente), array("cliente" => utf8_decode($municipio) . ", " . utf8_decode($receptordomicilioNode['estado']) . " " . utf8_decode($receptordomicilioNode['codigoPostal']) . " \n" . utf8_decode($receptordomicilioNode['pais'])), array("cliente" => utf8_decode("Atención: " . $info_xtra->Receptor->contacto . " Cliente: " . $info_xtra->Receptor->noCliente)), array("cliente" => utf8_decode("Tel: " . $info_xtra->Receptor->telefono))); $formaDePago = isset($comprobanteNode['formaDePago']) ? $comprobanteNode['formaDePago'] : "PAGO EN UNA SOLA EXHIBICION"; $metodoPago = isset($comprobanteNode['metodoDePago']) ? $comprobanteNode['metodoDePago'] : "No Identificado"; $numeroCuentaPago = isset($comprobanteNode['NumCtaPago']) ? $comprobanteNode['NumCtaPago'] : "No Identificado"; $tableData2 = array(array("expedido" => "Expedido en: " . utf8_decode($info_xtra->LugarExpedicion)), array("expedido" => "Forma de Pago: " . utf8_decode($formaDePago)), array("expedido" => "Metodo de Pago: " . utf8_decode($metodoPago)), array("expedido" => "No. de Cuenta: " . utf8_decode($numeroCuentaPago)), array("expedido" => "Condiciones de Pago: " . utf8_decode($comprobanteNode['condicionesDePago'])), array("expedido" => "Regimen Fiscal: " . utf8_decode(preg_replace("/Ii/", "II", ucwords(strtolower($regimenFiscal))))), array("expedido" => "Tipo de Cambio: " . $comprobanteNode['TipoCambio'] . " Moneda: " . $comprobanteNode['Moneda']), array("expedido" => "Elaboro: " . utf8_decode($info_xtra->Vendedor)), array("expedido" => utf8_decode("Póliza: " . $info_xtra->NumeroPoliza . " SAP No: " . $info_xtra->NumeroPedido))); $tableData = array(); $aux = count($tableData1) >= count($tableData2) ? $tableData1 : $tableData2; $cont = 0; foreach ($aux as $arr) { array_push($tableData, array("cliente" => $tableData1[$cont]["cliente"], "expedido" => $tableData2[$cont]["expedido"])); $cont++; } $colNames = array("cliente" => "", "expedido" => ""); $colOptions = array("cliente" => array('justification' => 'left', 'width' => 205), "expedido" => array('justification' => 'left', 'width' => 205)); $options = array('showLines' => 1, 'showHeadings' => 0, 'shaded' => 1, 'shadeCol' => array(0.9, 0.9, 0.9), 'fontSize' => 7, 'textCol' => array(0, 0, 0), 'rowGap' => 2, 'colGap' => 5, 'xPos' => 35, 'xOrientation' => 'right', 'width' => 410, 'cols' => $colOptions, 'innerLineThickness' => 0.3, 'outerLineThickness' => 0.3); $pdf->ezSetDy(125); $pdf->ezTable($tableData, $colNames, "", $options); //encabezado //error_log(print_r($info_xtra,true)); $tableData = array(array("dato" => utf8_decode($info_xtra->Consumo->NotaEncabezado))); $colOptions = array("dato" => array('justification' => 'left', 'width' => 540)); $options = array('showLines' => 1, 'showHeadings' => 0, 'shaded' => 0, 'shadeCol' => array(0.9, 0.9, 0.9), 'fontSize' => 7, 'textCol' => array(0, 0, 0), 'rowGap' => 5, 'colGap' => 5, 'xPos' => 35, 'xOrientation' => 'right', 'width' => 120, 'cols' => $colOptions, 'innerLineThickness' => 0.3, 'outerLineThickness' => 0.3); $pdf->ezSetDy(-10); $pdf->ezTable($tableData, "", "", $options); $actualY = $pdf->y; $pdf->setColor(0, 0, 0); $pdf->filledRectangle(30, $actualY - 30, 540, 18); $pdf->ezSetY($actualY - 15); $pdf->setColor(1, 1, 1); $pdf->ezText("<b>Codigo</b>", 7, array('left' => 25, 'justification' => 'left')); $pdf->ezSetY($actualY - 15); $pdf->ezText("<b>Descripcion</b>", 7, array('left' => 180, 'justification' => 'left')); $pdf->ezSetY($actualY - 15); $pdf->ezText("<b>Cant</b>", 7, array('left' => 361, 'justification' => 'left')); $pdf->ezSetY($actualY - 15); $pdf->ezText("<b>Unidad</b>", 7, array('left' => 398, 'justification' => 'left')); $pdf->ezSetY($actualY - 15); $pdf->ezText("<b>Unitario</b>", 7, array('left' => 445, 'justification' => 'left')); $pdf->ezSetY($actualY - 15); $pdf->ezText("<b>Importe</b>", 7, array('left' => 497, 'justification' => 'left')); ////////// i. Partidas $tableData = array(); $renglones = 0; $rowData = array("codigo" => "", "cantidad" => "", "unidad" => "", "descripcion" => "", "unitario" => "", "importe" => ""); $partidaCnt = 0; $cantidadArrayConceptos = count($conceptos); foreach ($conceptos as $key => $conceptoNode) { if (stristr($key, $attr) && $cantidadArrayConceptos == 2) { $partidaCnt++; $renglones += 2; $currentObj = array(); $descripcion = $conceptoNode['descripcion']; $totalPalabras = strlen($descripcion); $totalCaracteres = 4800; if ($totalPalabras >= $totalCaracteres) { $pagDesc = ceil($totalPalabras / $totalCaracteres); $aux = 1; $array = array(); for ($i = 1; $i <= $pagDesc; $i++) { if ($i == $pagDesc) { $array[] = $totalPalabras; } else { $val = $aux += $totalCaracteres; $array[] = $val; } } $desc = array(); $o = 0; foreach ($array as $valor) { $desc[] = substr($descripcion, $o, $valor); $o += $valor - $o; } $cont = 1; foreach ($desc as $descripcionexp) { $currentObj["codigo"] = $info_xtra->Consumo->partidas[$partidaCnt - 1]->codigo; $currentObj["cantidad"] = number_format(abs(doubleval($conceptoNode['cantidad'])), 2); //$currentObj["unidad"]= (isset($conceptoNode['unidad'])) ? $conceptoNode['unidad'] : "No Aplica"; $currentObj["unidad"] = $conceptoNode['unidad']; //)) ? $conceptoNode['unidad'] : "No Aplica"; $currentObj["descripcion"] = str_replace("__", "\n", utf8_decode($descripcionexp) . "\n" . utf8_decode($info_xtra->Consumo->partidas[$partidaCnt - 1]->nota)); if ($info_xtra->TipoImpresion == "KI2") { $contPartidas = count($info_xtra->Consumo->partidas); for ($i = 1; $i < $contPartidas; $i++) { $currentObj["descripcion"] .= $info_xtra->Consumo->partidas[$i]->codigo . " " . $info_xtra->Consumo->partidas[$i]->cantidad . " " . $info_xtra->Consumo->partidas[$i]->unidad . " " . $info_xtra->Consumo->partidas[$i]->descripcion . " \$" . $info_xtra->Consumo->partidas[$i]->valorUnitario . " \n"; } } $currentObj["unitario"] = number_format($conceptoNode['valorUnitario'], 2); $currentObj["importe"] = number_format(doubleval($conceptoNode['importe']), 2); $for = $cont++; log_action("for:::" . $for); if ($for > 1) { $currentObj["codigo"] = ""; $currentObj["cantidad"] = ""; $currentObj["unidad"] = ""; $currentObj["unitario"] = ""; $currentObj["importe"] = ""; } array_push($tableData, $currentObj); } } else { $currentObj["codigo"] = $info_xtra->Consumo->partidas[$partidaCnt - 1]->codigo; $currentObj["cantidad"] = number_format(abs(doubleval($conceptoNode['cantidad'])), 2); //$currentObj["unidad"]= (isset($conceptoNode['unidad'])) ? $conceptoNode['unidad'] : "No Aplica"; $currentObj["unidad"] = $conceptoNode['unidad']; //)) ? $conceptoNode['unidad'] : "No Aplica"; $currentObj["descripcion"] = str_replace("__", "\n", utf8_decode($descripcion) . "\n" . utf8_decode($info_xtra->Consumo->partidas[$partidaCnt - 1]->nota)); if ($info_xtra->TipoImpresion == "KI2") { $contPartidas = count($info_xtra->Consumo->partidas); for ($i = 1; $i < $contPartidas; $i++) { $currentObj["descripcion"] .= utf8_decode($info_xtra->Consumo->partidas[$i]->codigo . " " . $info_xtra->Consumo->partidas[$i]->cantidad . " " . $info_xtra->Consumo->partidas[$i]->unidad . " " . $info_xtra->Consumo->partidas[$i]->descripcion . " " . $info_xtra->Consumo->partidas[$i]->valorUnitario) . " \n"; } } $currentObj["unitario"] = number_format($conceptoNode['valorUnitario'], 2); $currentObj["importe"] = number_format(doubleval($conceptoNode['importe']), 2); array_push($tableData, $currentObj); } } else { foreach ($conceptoNode as $key1 => $conceptoNode1) { log_action(print_r($key1, TRUE)); if (stristr($key1, $attr)) { $partidaCnt++; $renglones += 2; $currentObj = array(); $currentObj["codigo"] = $info_xtra->Consumo->partidas[$partidaCnt - 1]->codigo; $currentObj["cantidad"] = number_format(abs(doubleval($conceptoNode1['cantidad'])), 2); //$currentObj["unidad"]= (isset($conceptoNode['unidad'])) ? $conceptoNode['unidad'] : "No Aplica"; $currentObj["unidad"] = $conceptoNode1['unidad']; //)) ? $conceptoNode['unidad'] : "No Aplica"; $currentObj["descripcion"] = str_replace("__", "\n", utf8_decode($conceptoNode1['descripcion'] . "\n" . $info_xtra->Consumo->partidas[$partidaCnt - 1]->nota)); if ($info_xtra->TipoImpresion == "KI2") { $contPartidas = count($info_xtra->Consumo->partidas); for ($i = 1; $i < $contPartidas; $i++) { $currentObj["descripcion"] .= $info_xtra->Consumo->partidas[$i]->codigo . " " . $info_xtra->Consumo->partidas[$i]->cantidad . " " . $info_xtra->Consumo->partidas[$i]->unidad . " " . $info_xtra->Consumo->partidas[$i]->descripcion . " \$" . $info_xtra->Consumo->partidas[$i]->valorUnitario . " \n"; } } $currentObj["unitario"] = number_format($conceptoNode1['valorUnitario'], 2); $currentObj["importe"] = number_format(doubleval($conceptoNode1['importe']), 2); array_push($tableData, $currentObj); } } //fin foreach 2 chs 20130705 } } $currentObj = array(); $currentObj["codigo"] = ""; $currentObj["cantidad"] = ""; $currentObj["unidad"] = ""; $currentObj["descripcion"] = str_replace("__", "\n", utf8_decode($row_factura["fnotas"])); $currentObj["unitario"] = ""; $currentObj["importe"] = ""; array_push($tableData, $currentObj); if (isset($row_addenda['cl_fld1'])) { $currentObj = array(); $currentObj["cantidad"] = ""; $currentObj["descripcion"] = $row_addenda['cl_fld1']; if (!empty($row_addenda['cl_fld2'])) { $currentObj["descripcion"] .= "\n" . $row_addenda['cl_fld2']; } if (!empty($row_addenda['cl_fld3'])) { $currentObj["descripcion"] .= "\n" . $row_addenda['cl_fld3']; } if (!empty($row_addenda['cl_fld4'])) { $currentObj["descripcion"] .= "\n" . $row_addenda['cl_fld4']; } if (!empty($row_addenda['cl_fld5'])) { $currentObj["descripcion"] .= "\n" . $row_addenda['cl_fld5']; } if (!empty($row_addenda['cl_fld6'])) { $currentObj["descripcion"] .= "\n" . $row_addenda['cl_fld6']; } if (!empty($row_addenda['cl_fld7'])) { $currentObj["descripcion"] .= "\n" . $row_addenda['cl_fld7']; } if (!empty($row_addenda['cl_fld8'])) { $currentObj["descripcion"] .= "\n" . $row_addenda['cl_fld8']; } if (!empty($row_addenda['cl_fld9'])) { $currentObj["descripcion"] .= "\n" . $row_addenda['cl_fld9']; } if (!empty($row_addenda['cl_fld10'])) { $currentObj["descripcion"] .= "\n" . $row_addenda['cl_fld10']; } if (!empty($row_addenda['cl_fld11'])) { $currentObj["descripcion"] .= "\n" . $row_addenda['cl_fld11']; } if (!empty($row_addenda['cl_fld12'])) { $currentObj["descripcion"] .= "\n" . $row_addenda['cl_fld12']; } $currentObj["unitario"] = ""; $currentObj["importe"] = ""; array_push($tableData, $currentObj); } $currentObj = array(); $currentObj["codigo"] = ""; $currentObj["cantidad"] = ""; $currentObj["unidad"] = ""; $currentObj["descripcion"] = ""; $currentObj["unitario"] = ""; $currentObj["importe"] = ""; if ($info_xtra->TipoImpresion == "KI2") { for ($renglones; $renglones < 10 - count($info_xtra->Consumo->partidas) * 0.95; $renglones++) { array_push($tableData, $currentObj); } } else { if ($renglones < 10) { for ($renglones; $renglones < 10; $renglones++) { array_push($tableData, $currentObj); } } } $colNames = array("codigo" => "", "descripcion" => "", "cantidad" => "", "unidad" => "", "unitario" => "", "importe" => ""); $colOptions = array("codigo" => array('justification' => 'center', 'width' => 70), "descripcion" => array('justification' => 'left', 'width' => 280), "cantidad" => array('justification' => 'center', 'width' => 40), "unidad" => array('justification' => 'left', 'width' => 40), "unitario" => array('justification' => 'right', 'width' => 55), "importe" => array('justification' => 'right', 'width' => 55)); $options = array('showLines' => 1, 'showHeadings' => 1, 'shaded' => 1, 'shadeCol' => array(0.9, 0.9, 0.9), 'fontSize' => 7, 'textCol' => array(0, 0, 0), 'rowGap' => 4, 'colGap' => 5, 'xPos' => 35, 'xOrientation' => 'right', 'width' => 410, 'cols' => $colOptions, 'innerLineThickness' => 0.3, 'outerLineThickness' => 0.3); // Dibuja la tabla partidas $pdf->ezSetDy(11); $pdf->ezTable($tableData, $colNames, "", $options); ////////// i. Cantidad con letra $cadena = covertirNumLetras(number_format($comprobanteNode['total'], 2, ".", '')); if ($comprobanteNode['Moneda'] == "USD") { $cadena = str_replace("M.N.", "USD", $cadena); $cadena = str_replace("PESOS", "DOLARES", $cadena); $cadena = str_replace("PESO", "DOLAR", $cadena); } $tableData = array(array("dato" => "<b>Nota:</b>\n" . utf8_decode($info_xtra->Consumo->notaAlPie)), array("dato" => "<b>Total con letra</b>\n" . trim($cadena))); $colNames = array("dato" => "<b>Cant</b>"); $colOptions = array("dato" => array('justification' => 'left', 'width' => 390)); $options = array('showLines' => 1, 'showHeadings' => 0, 'shaded' => 1, 'shadeCol' => array(0.9, 0.9, 0.9), 'fontSize' => 7, 'textCol' => array(0, 0, 0), 'rowGap' => 2.5, 'colGap' => 5, 'xPos' => 35, 'xOrientation' => 'right', 'width' => 120, 'cols' => $colOptions, 'innerLineThickness' => 0.3, 'outerLineThickness' => 0.3); // Dibuja la tabla cantidad con letra $pdf->ezSetDy(0); $pdf->ezTable($tableData, "", "", $options); ////////// i. Totales $f_importe = "\$" . number_format($comprobanteNode['subTotal'], 2); //$f_iva_T=$conceptoNode['totalImpuestosTrasladados']; $f_total = "\$" . number_format($comprobanteNode['total'], 2); $tableData = array(); $rowData = array("leyenda" => "", "cantidad" => ""); $subtotal = array("dato" => "Subtotal", "valor" => $f_importe); array_push($tableData, $subtotal); foreach ($traslados as $key => $trasladoNode) { if ($key === $trasladoTag . $attr) { $tasaImpuesto = array(); $tasaImpuesto_t = number_format($trasladoNode['tasa'], 0); $tasaImpuesto["dato"] = $trasladoNode['impuesto'] . " " . $tasaImpuesto_t . "%"; $tasaImpuesto["valor"] = "\$" . number_format($trasladoNode['importe'], 2); //array_push($tableData,$tasaImpuesto); } } if (!empty($retenciones)) { foreach ($retenciones as $key => $retencionNode) { if ($key === $retencionTag . $attr) { $tasaImpuesto = array(); $tasaImpuesto_t = number_format($retencionNode['tasa'], 2); $tasaImpuesto["dato"] = "Ret. " . $retencionNode['impuesto']; $tasaImpuesto["valor"] = "\$" . number_format($retencionNode['importe'], 2); //array_push($tableData,$tasaImpuesto); } } } //fin if empty $iva = array("dato" => "<b>IVA</b>", "valor" => "<b>\$ " . number_format($info_xtra->TotalImpuestosTrasladados, 2) . "</b>"); array_push($tableData, $iva); $total = array("dato" => "<b>Total</b>", "valor" => "<b>" . $f_total . "</b>"); array_push($tableData, $total); $colNames = array("dato" => "<b>Cant</b>", "valor" => "Importe"); $colOptions = array("dato" => array('justification' => 'right', 'width' => 55), "valor" => array('justification' => 'right', 'width' => 95)); $options = array('showLines' => 1, 'showHeadings' => 0, 'shaded' => 2, 'shadeCol' => array(1, 1, 1), 'shadeCol2' => array(91, 21, 0), 'fontSize' => 7, 'textCol' => array(0, 0, 0), 'rowGap' => 3, 'colGap' => 5, 'xPos' => 425, 'xOrientation' => 'right', 'width' => 120, 'cols' => $colOptions, 'innerLineThickness' => 0.3, 'outerLineThickness' => 0.3); // Dibuja la tabla totales $pdf->ezSetDy(42.5); $pdf->ezTable($tableData, $colNames, "", $options); $rfce = $row_empresa['rfc']; $rfcr = $receptorNode['rfc']; $total = $comprobanteNode['total']; $uuidsat = $row_factura['uuid']; $cadenaQRCode = sprintf("?re=%s&rr=%s&tt=%s&id=%s", $rfce, $rfcr, $total, $uuidsat); /*QR Code: Para usar qr_imgV2(): qr_imgV2(d,e,s,v,t); d= datos Cadena o datos a ser codificados. e= ECC level Puede ser L,M,Q,H (default M) s= module size Para imagen JPEG:8; para PNG:4 v= version 1-40 8 recomendado. t= image type "J":imagen jpeg, "P" o culaquier otra cosa: imagen PNG */ $img_filename = qr_imgV2($cadenaQRCode, "M", 8, 8, "J", $PATHQR); //v:7-13 8 parece adecuado. //$pdf->addJpegFromFile($img_filename,495,$pdf->y,90); //100 //$pdf->addJpegFromFile($img_filename,32,170,130); //100 $pdf->addJpegFromFile($img_filename, 32, $pdf->y - 140, 130); //100 unlink($img_filename); ////////// i. Sello if ($version === "3.2") { $tableData = array(array("dato" => "<b>Sello Digital del Emisor</b>\n" . $row_factura['sello']), array("dato" => "<b>Sello Digital del SAT</b>\n" . $row_factura['selloSAT'])); } else { $tableData = array(array("dato" => "<b>Sello Digital</b>\n" . $row_factura['sello'])); } $colNames = array("dato" => "<b>Cant</b>"); $colOptions = array("dato" => array('justification' => 'left', 'width' => 400)); $options = array('showLines' => 1, 'showHeadings' => 0, 'shaded' => 0, 'shadeCol' => array(0.8, 0.8, 0.8), 'fontSize' => 7, 'textCol' => array(0, 0, 0), 'rowGap' => 5, 'colGap' => 5, 'xPos' => 175, 'xOrientation' => 'right', 'width' => 120, 'cols' => $colOptions, 'innerLineThickness' => 0.3, 'outerLineThickness' => 0.3); // Dibuja la tabla sello $pdf->ezSetDy(-10); $pdf->ezTable($tableData, $colNames, "", $options); /*$pdf->setColor(91,21,0); $pdf->filledRectangle(30,167,134,151); $pdf->setColor(1,1,1); $pdf->filledRectangle(31,167.5,132.3,149.5);*/ ////////// i. Cadena original $columnaCadena = ""; if ($version === "3.2") { $columnaCadena = sprintf("||1.0|%s|%s|%s|%s||", $row_factura['uuid'], $row_factura['FechaTimbrado'], $row_factura['selloCFD'], $row_factura['noCertificadoSAT']); } else { $columnaCadena = sprintf("%s", $row_factura['cadena']); } $tableData = array(array("dato" => "<b>Cadena original del complemento de certificacion digital del SAT</b>\n" . $columnaCadena), array("dato" => "<b>Folio Fiscal</b>\n" . $row_factura['uuid'])); $colNames = array("dato" => "<b>Cant</b>"); $colOptions = array("dato" => array('justification' => 'left', 'width' => 400)); $options = array('showLines' => 1, 'showHeadings' => 0, 'shaded' => 0, 'shadeCol' => array(0.8, 0.8, 0.8), 'fontSize' => 7, 'textCol' => array(0, 0, 0), 'rowGap' => 5, 'colGap' => 5, 'xPos' => 175, 'xOrientation' => 'right', 'width' => 120, 'cols' => $colOptions, 'innerLineThickness' => 0.3, 'outerLineThickness' => 0.3); // Dibuja la tabla cadena original $pdf->ezSetDy(-5); $pdf->ezTable($tableData, $colNames, "", $options); // Leyendas $pdf->ezSetDy(-12); $leyendas = "ESTE DOCUMENTO ES UNA REPRESENTACION IMPRESA DE UN CFDI.\n"; $pdf->setColor(0.5, 0.5, 0.5); $pdf->ezText($leyendas, 5, array('left' => 50, 'justification' => 'center')); $pdf->setColor(0, 0, 0); $pdf->ezStream(array("filename" => $row_factura['folio'] . "_" . str_replace(" ", "-", $receptorNode['nombre']))); //Necesario para que funcione ezStartPageNumbers //REGRESA PARA PONER ENCABEZADO EN PAGINAS 2 -> if ($contadorPagina != $contadorTotalPaginas) { $pdf->ezNewPage(); $pdf->ezSetDy(-12); } $contadorPagina++; } //fin del foreach para la creacion del objeto pdf //ESCRIBE REPORTE AL ARCHIVO. //================================================================================ $pdfcode = $pdf->output(); error_log($tmpName); if ($tmpName === 2 || !$tmpName) { $tmpName = !$tmpName ? $tmpName : true; } else { exit($pdfcode); } //save the file if ($tmpName) { $nombrePDF = tempnam($tmp . "tmp/", 'face5') . ".pdf"; $nombreToks = explode("/", $nombrePDF); if (count($nombreToks) < 2) { $nombreToks = explode("\\", $nombrePDF); } $lastTok = count($nombreToks) - 1; $nombrePDF = $nombreToks[$lastTok]; $archivoPDF = $tmp . "tmp/" . $nombrePDF; $archivos = array($nombrePDF, $archivoPDF); error_log(print_R($archivos, true)); } else { $nombrePDF = $tipoDocto . "_" . $row_factura['serie'] . $row_factura['folio'] . ".pdf"; //$archivoPDF ="tmp/".$nombrePDF;//chs 20130705 $archivoPDF = $tmp . "tmp/" . $nombrePDF; $archivos = array($nombrePDF, $archivoPDF); error_log(2); ob_flush(); ob_clean(); } global $SITE_ROOT; error_log($archivoPDF); @file_put_contents($SITE_ROOT . "gui/" . $archivoPDF, $pdfcode); /*$fp = fopen($archivoPDF,'w+'); fwrite($fp,$pdfcode); fclose($fp);*/ return $archivos; }
function get_printable_timeSheet_file($timeSheetID, $timeSheetPrintMode, $printDesc, $format) { global $TPL; $TPL["timeSheetID"] = $timeSheetID; $TPL["timeSheetPrintMode"] = $timeSheetPrintMode; $TPL["printDesc"] = $printDesc; $TPL["format"] = $format; $db = new db_alloc(); if ($timeSheetID) { $timeSheet = new timeSheet(); $timeSheet->set_id($timeSheetID); $timeSheet->select(); $timeSheet->set_tpl_values(); $person = $timeSheet->get_foreign_object("person"); $TPL["timeSheet_personName"] = $person->get_name(); $timeSheet->set_tpl_values("timeSheet_"); // Display the project name. $project = new project(); $project->set_id($timeSheet->get_value("projectID")); $project->select(); $TPL["timeSheet_projectName"] = $project->get_value("projectName", DST_HTML_DISPLAY); // Get client name $client = $project->get_foreign_object("client"); $client->set_tpl_values(); $TPL["clientName"] = $client->get_value("clientName", DST_HTML_DISPLAY); $TPL["companyName"] = config::get_config_item("companyName"); $TPL["companyNos1"] = config::get_config_item("companyACN"); $TPL["companyNos2"] = config::get_config_item("companyABN"); unset($br); $phone = config::get_config_item("companyContactPhone"); $fax = config::get_config_item("companyContactFax"); $phone and $TPL["phone"] = "Ph: " . $phone; $fax and $TPL["fax"] = "Fax: " . $fax; $timeSheet->load_pay_info(); $db->query(prepare("SELECT max(dateTimeSheetItem) AS maxDate\n ,min(dateTimeSheetItem) AS minDate\n ,count(timeSheetItemID) as count\n FROM timeSheetItem \n WHERE timeSheetID=%d ", $timeSheetID)); $db->next_record(); $timeSheet->set_id($timeSheetID); $timeSheet->select() || alloc_error("Unable to select time sheet, trying to use id: " . $timeSheetID); $TPL["period"] = format_date(DATE_FORMAT, $db->f("minDate")) . " to " . format_date(DATE_FORMAT, $db->f("maxDate")); $TPL["img"] = config::get_config_item("companyImage"); $TPL["companyContactAddress"] = config::get_config_item("companyContactAddress"); $TPL["companyContactAddress2"] = config::get_config_item("companyContactAddress2"); $TPL["companyContactAddress3"] = config::get_config_item("companyContactAddress3"); $email = config::get_config_item("companyContactEmail"); $email and $TPL["companyContactEmail"] = "Email: " . $email; $web = config::get_config_item("companyContactHomePage"); $web and $TPL["companyContactHomePage"] = "Web: " . $web; $TPL["footer"] = config::get_config_item("timeSheetPrintFooter"); $TPL["taxName"] = config::get_config_item("taxName"); $default_header = "Time Sheet"; $default_id_label = "Time Sheet ID"; $default_contractor_label = "Contractor"; $default_total_label = "TOTAL AMOUNT PAYABLE"; if ($timeSheetPrintMode == "money") { $default_header = "Tax Invoice"; $default_id_label = "Invoice Number"; } if ($timeSheetPrintMode == "estimate") { $default_header = "Estimate"; $default_id_label = "Estimate Number"; $default_contractor_label = "Issued By"; $default_total_label = "TOTAL AMOUNT ESTIMATED"; } if ($format != "html") { // Build PDF document $font1 = ALLOC_MOD_DIR . "util/fonts/Helvetica.afm"; $font2 = ALLOC_MOD_DIR . "util/fonts/Helvetica-Oblique.afm"; $pdf_table_options = array("showLines" => 0, "shaded" => 0, "showHeadings" => 0, "xPos" => "left", "xOrientation" => "right", "fontSize" => 10, "rowGap" => 0, "fontSize" => 10); $cols = array("one" => "", "two" => "", "three" => "", "four" => ""); $cols3 = array("one" => "", "two" => ""); $cols_settings["one"] = array("justification" => "right"); $cols_settings["three"] = array("justification" => "right"); $pdf_table_options2 = array("showLines" => 0, "shaded" => 0, "showHeadings" => 0, "width" => 400, "fontSize" => 10, "xPos" => "center", "xOrientation" => "center", "cols" => $cols_settings); $cols_settings2["gst"] = array("justification" => "right"); $cols_settings2["money"] = array("justification" => "right"); $pdf_table_options3 = array("showLines" => 2, "shaded" => 0, "width" => 400, "xPos" => "center", "fontSize" => 10, "cols" => $cols_settings2, "lineCol" => array(0.8, 0.8, 0.8), "splitRows" => 1, "protectRows" => 0); $cols_settings["two"] = array("justification" => "right", "width" => 80); $pdf_table_options4 = array("showLines" => 2, "shaded" => 0, "width" => 400, "showHeadings" => 0, "fontSize" => 10, "xPos" => "center", "cols" => $cols_settings, "lineCol" => array(0.8, 0.8, 0.8)); $pdf = new Cezpdf(); $pdf->ezSetMargins(90, 90, 90, 90); $pdf->selectFont($font1); $pdf->ezStartPageNumbers(436, 80, 10, 'right', 'Page {PAGENUM} of {TOTALPAGENUM}'); $pdf->ezStartPageNumbers(200, 80, 10, 'left', '<b>' . $default_id_label . ': </b>' . $TPL["timeSheetID"]); $pdf->ezSetY(775); $TPL["companyName"] and $contact_info[] = array($TPL["companyName"]); $TPL["companyContactAddress"] and $contact_info[] = array($TPL["companyContactAddress"]); $TPL["companyContactAddress2"] and $contact_info[] = array($TPL["companyContactAddress2"]); $TPL["companyContactAddress3"] and $contact_info[] = array($TPL["companyContactAddress3"]); $TPL["companyContactEmail"] and $contact_info[] = array($TPL["companyContactEmail"]); $TPL["companyContactHomePage"] and $contact_info[] = array($TPL["companyContactHomePage"]); $TPL["phone"] and $contact_info[] = array($TPL["phone"]); $TPL["fax"] and $contact_info[] = array($TPL["fax"]); $pdf->selectFont($font2); $y = $pdf->ezTable($contact_info, false, "", $pdf_table_options); $pdf->selectFont($font1); $line_y = $y - 10; $pdf->setLineStyle(1, "round"); $pdf->line(90, $line_y, 510, $line_y); $pdf->ezSetY(782); $image_jpg = ALLOC_LOGO; if (file_exists($image_jpg)) { $pdf->ezImage($image_jpg, 0, sprintf("%d", config::get_config_item("logoScaleX")), 'none'); $y = 700; } else { $y = $pdf->ezText($TPL["companyName"], 27, array("justification" => "right")); } $nos_y = $line_y + 22; $TPL["companyNos2"] and $nos_y = $line_y + 34; $pdf->ezSetY($nos_y); $TPL["companyNos1"] and $y = $pdf->ezText($TPL["companyNos1"], 10, array("justification" => "right")); $TPL["companyNos2"] and $y = $pdf->ezText($TPL["companyNos2"], 10, array("justification" => "right")); $pdf->ezSetY($line_y - 20); $y = $pdf->ezText($default_header, 20, array("justification" => "center")); $pdf->ezSetY($y - 20); $ts_info[] = array("one" => "<b>" . $default_id_label . ":</b>", "two" => $TPL["timeSheetID"], "three" => "<b>Date Issued:</b>", "four" => date("d/m/Y")); $ts_info[] = array("one" => "<b>Client:</b>", "two" => $TPL["clientName"], "three" => "<b>Project:</b>", "four" => $TPL["timeSheet_projectName"]); $ts_info[] = array("one" => "<b>" . $default_contractor_label . ":</b>", "two" => $TPL["timeSheet_personName"], "three" => "<b>Billing Period:</b>", "four" => $TPL["period"]); if ($timeSheetPrintMode == "estimate") { // This line needs to be glued to the above line $temp = array_pop($ts_info); $temp["three"] = ""; // Nuke Billing Period for the Estimate version of the pdf. $temp["four"] = ""; // Nuke Billing Period for the Estimate version of the pdf. $ts_info[] = $temp; } $y = $pdf->ezTable($ts_info, $cols, "", $pdf_table_options2); $pdf->ezSetY($y - 20); if ($timeSheetPrintMode == "money" || $timeSheetPrintMode == "estimate") { list($rows, $info) = $this->get_timeSheetItem_list_money($TPL["timeSheetID"]); $cols2 = array("desc" => "Description", "units" => "Units", "money" => "Charges", "gst" => $TPL["taxName"]); $taxPercent = config::get_config_item("taxPercent"); if ($taxPercent === '') { unset($cols2["gst"]); } $rows[] = array("desc" => "<b>TOTAL</b>", "units" => $info["total_units"], "money" => $info["total"], "gst" => $info["total_gst"]); $y = $pdf->ezTable($rows, $cols2, "", $pdf_table_options3); $pdf->ezSetY($y - 20); if ($taxPercent !== '') { $totals[] = array("one" => "TOTAL " . $TPL["taxName"], "two" => $info["total_gst"]); } $totals[] = array("one" => "TOTAL CHARGES", "two" => $info["total"]); $totals[] = array("one" => "<b>" . $default_total_label . "</b>", "two" => "<b>" . $info["total_inc_gst"] . "</b>"); $y = $pdf->ezTable($totals, $cols3, "", $pdf_table_options4); } else { if ($timeSheetPrintMode == "units") { list($rows, $info) = $this->get_timeSheetItem_list_units($TPL["timeSheetID"]); $cols2 = array("desc" => "Description", "units" => "Units"); $rows[] = array("desc" => "<b>TOTAL</b>", "units" => "<b>" . $info["total"] . "</b>"); $y = $pdf->ezTable($rows, $cols2, "", $pdf_table_options3); } else { if ($timeSheetPrintMode == "items") { list($rows, $info) = $this->get_timeSheetItem_list_items($TPL["timeSheetID"]); $cols2 = array("date" => "Date", "units" => "Units", "multiplier_string" => "Multiplier", "desc" => "Description"); $rows[] = array("date" => "<b>TOTAL</b>", "units" => "<b>" . $info["total"] . "</b>"); $y = $pdf->ezTable($rows, $cols2, "", $pdf_table_options3); } } } $pdf->ezSetY($y - 20); $pdf->ezText(str_replace(array("<br>", "<br/>", "<br />"), "\n", $TPL["footer"]), 10); $pdf->ezStream(array("Content-Disposition" => "timeSheet_" . $timeSheetID . ".pdf")); // Else HTML format } else { if (file_exists(ALLOC_LOGO)) { $TPL["companyName"] = '<img alt="Company logo" src="' . $TPL["url_alloc_logo"] . '" />'; } $TPL["this_tsp"] = $this; $TPL["main_alloc_title"] = "Time Sheet - " . APPLICATION_NAME; include_template(dirname(__FILE__) . "/../templates/timeSheetPrintM.tpl"); } } }
function get_printable_file($_FORM = array()) { global $TPL; $db = new db_alloc(); $TPL["companyName"] = config::get_config_item("companyName"); $TPL["companyNos1"] = config::get_config_item("companyACN"); $TPL["companyNos2"] = config::get_config_item("companyABN"); $TPL["img"] = config::get_config_item("companyImage"); $TPL["companyContactAddress"] = config::get_config_item("companyContactAddress"); $TPL["companyContactAddress2"] = config::get_config_item("companyContactAddress2"); $TPL["companyContactAddress3"] = config::get_config_item("companyContactAddress3"); $email = config::get_config_item("companyContactEmail"); $email and $TPL["companyContactEmail"] = "Email: " . $email; $web = config::get_config_item("companyContactHomePage"); $web and $TPL["companyContactHomePage"] = "Web: " . $web; $phone = config::get_config_item("companyContactPhone"); $fax = config::get_config_item("companyContactFax"); $phone and $TPL["phone"] = "Ph: " . $phone; $fax and $TPL["fax"] = "Fax: " . $fax; $taskPriorities = config::get_config_item("taskPriorities"); $projectPriorities = config::get_config_item("projectPriorities"); // Add requested fields to pdf $_FORM["showEdit"] = false; $fields["taskID"] = "ID"; $fields["taskName"] = "Task"; $_FORM["showProject"] and $fields["projectName"] = "Project"; $_FORM["showPriority"] || $_FORM["showPriorityFactor"] and $fields["priorityFactor"] = "Pri"; $_FORM["showPriority"] and $fields["taskPriority"] = "Task Pri"; $_FORM["showPriority"] and $fields["projectPriority"] = "Proj Pri"; $_FORM["showCreator"] and $fields["creator_name"] = "Creator"; $_FORM["showManager"] and $fields["manager_name"] = "Manager"; $_FORM["showAssigned"] and $fields["assignee_name"] = "Assigned To"; $_FORM["showDate1"] and $fields["dateTargetStart"] = "Targ Start"; $_FORM["showDate2"] and $fields["dateTargetCompletion"] = "Targ Compl"; $_FORM["showDate3"] and $fields["dateActualStart"] = "Start"; $_FORM["showDate4"] and $fields["dateActualCompletion"] = "Compl"; $_FORM["showDate5"] and $fields["dateCreated"] = "Created"; $_FORM["showTimes"] and $fields["timeBestLabel"] = "Best"; $_FORM["showTimes"] and $fields["timeExpectedLabel"] = "Likely"; $_FORM["showTimes"] and $fields["timeWorstLabel"] = "Worst"; $_FORM["showTimes"] and $fields["timeActualLabel"] = "Actual"; $_FORM["showTimes"] and $fields["timeLimitLabel"] = "Limit"; $_FORM["showPercent"] and $fields["percentComplete"] = "%"; $_FORM["showStatus"] and $fields["taskStatusLabel"] = "Status"; $rows = task::get_list($_FORM); $taskListRows = array(); foreach ((array) $rows as $row) { $row["taskPriority"] = $taskPriorities[$row["priority"]]["label"]; $row["projectPriority"] = $projectPriorities[$row["projectPriority"]]["label"]; $row["taskDateStatus"] = strip_tags($row["taskDateStatus"]); $row["percentComplete"] = strip_tags($row["percentComplete"]); $taskListRows[] = $row; } if ($_FORM["format"] != "html" && $_FORM["format"] != "html_plus") { // Build PDF document $font1 = ALLOC_MOD_DIR . "util/fonts/Helvetica.afm"; $font2 = ALLOC_MOD_DIR . "util/fonts/Helvetica-Oblique.afm"; $pdf_table_options = array("showLines" => 0, "shaded" => 0, "showHeadings" => 0, "xPos" => "left", "xOrientation" => "right", "fontSize" => 10, "rowGap" => 0, "fontSize" => 10); $pdf_table_options3 = array("showLines" => 2, "shaded" => 0, "width" => 750, "xPos" => "center", "fontSize" => 10, "lineCol" => array(0.8, 0.8, 0.8), "splitRows" => 1, "protectRows" => 0); $pdf = new Cezpdf(null, 'landscape'); $pdf->ezSetMargins(40, 40, 40, 40); $pdf->selectFont($font1); $pdf->ezStartPageNumbers(436, 30, 10, 'center', 'Page {PAGENUM} of {TOTALPAGENUM}'); $pdf->ezSetY(560); $TPL["companyContactAddress"] and $contact_info[] = array($TPL["companyContactAddress"]); $TPL["companyContactAddress2"] and $contact_info[] = array($TPL["companyContactAddress2"]); $TPL["companyContactAddress3"] and $contact_info[] = array($TPL["companyContactAddress3"]); $TPL["companyContactEmail"] and $contact_info[] = array($TPL["companyContactEmail"]); $TPL["companyContactHomePage"] and $contact_info[] = array($TPL["companyContactHomePage"]); $TPL["phone"] and $contact_info[] = array($TPL["phone"]); $TPL["fax"] and $contact_info[] = array($TPL["fax"]); $pdf->selectFont($font2); $y = $pdf->ezTable($contact_info, false, "", $pdf_table_options); $pdf->selectFont($font1); $line_y = $y - 10; $pdf->setLineStyle(1, "round"); $pdf->line(40, $line_y, 801, $line_y); $pdf->ezSetY(570); $image_jpg = ALLOC_LOGO; if (file_exists($image_jpg)) { $pdf->ezImage($image_jpg, 0, sprintf("%d", config::get_config_item("logoScaleX")), 'none'); $y = 700; } else { $y = $pdf->ezText($TPL["companyName"], 27, array("justification" => "right")); } $nos_y = $line_y + 22; $TPL["companyNos2"] and $nos_y = $line_y + 34; $pdf->ezSetY($nos_y); $TPL["companyNos1"] and $y = $pdf->ezText($TPL["companyNos1"], 10, array("justification" => "right")); $TPL["companyNos2"] and $y = $pdf->ezText($TPL["companyNos2"], 10, array("justification" => "right")); $pdf->ezSetY($line_y - 10); $y = $pdf->ezText("Task List", 20, array("justification" => "center")); $pdf->ezSetY($y - 20); $y = $pdf->ezTable($taskListRows, $fields, "", $pdf_table_options3); $pdf->ezSetY($y - 20); $pdf->ezStream(); // Else HTML format } else { echo task::get_list_html($taskListRows, $_FORM); } }
function generate_invoice_file($verbose = false, $getfile = false) { // Build PDF document $font1 = ALLOC_MOD_DIR . "util/fonts/Helvetica.afm"; $font2 = ALLOC_MOD_DIR . "util/fonts/Helvetica-Oblique.afm"; $db = new db_alloc(); // Get client name $client = $this->get_foreign_object("client"); $clientName = $client->get_value("clientName"); // Get cyber info $companyName = config::get_config_item("companyName"); $companyNos1 = config::get_config_item("companyACN"); $companyNos2 = config::get_config_item("companyABN"); $phone = config::get_config_item("companyContactPhone"); $fax = config::get_config_item("companyContactFax"); $phone and $phone = "Ph: " . $phone; $fax and $fax = "Fax: " . $fax; $img = config::get_config_item("companyImage"); $companyContactAddress = config::get_config_item("companyContactAddress"); $companyContactAddress2 = config::get_config_item("companyContactAddress2"); $companyContactAddress3 = config::get_config_item("companyContactAddress3"); $email = config::get_config_item("companyContactEmail"); $email and $companyContactEmail = "Email: " . $email; $web = config::get_config_item("companyContactHomePage"); $web and $companyContactHomePage = "Web: " . $web; $footer = config::get_config_item("timeSheetPrintFooter"); $taxName = config::get_config_item("taxName"); if ($this->get_value("invoiceDateFrom") && $this->get_value("invoiceDateTo") && $this->get_value("invoiceDateFrom") != $this->get_value("invoiceDateTo")) { $period = format_date(DATE_FORMAT, $this->get_value("invoiceDateFrom")) . " to " . format_date(DATE_FORMAT, $this->get_value("invoiceDateTo")); } else { $period = format_date(DATE_FORMAT, $this->get_value("invoiceDateTo")); } $default_header = "Tax Invoice"; $default_id_label = "Invoice Number"; $pdf_table_options = array("showLines" => 0, "shaded" => 0, "showHeadings" => 0, "xPos" => "left", "xOrientation" => "right", "fontSize" => 10, "rowGap" => 0, "fontSize" => 10); $cols = array("one" => "", "two" => "", "three" => "", "four" => ""); $cols3 = array("one" => "", "two" => ""); $cols_settings["one"] = array("justification" => "right"); $cols_settings["three"] = array("justification" => "right"); $pdf_table_options2 = array("showLines" => 0, "shaded" => 0, "showHeadings" => 0, "width" => 400, "fontSize" => 10, "xPos" => "center", "xOrientation" => "center", "cols" => $cols_settings); $cols_settings2["gst"] = array("justification" => "right"); $cols_settings2["money"] = array("justification" => "right"); $cols_settings2["unit"] = array("justification" => "right"); $pdf_table_options3 = array("showLines" => 2, "shaded" => 0, "width" => 400, "xPos" => "center", "fontSize" => 10, "cols" => $cols_settings2, "lineCol" => array(0.8, 0.8, 0.8), "splitRows" => 1, "protectRows" => 0); $cols_settings["two"] = array("justification" => "right", "width" => 80); $pdf_table_options4 = array("showLines" => 2, "shaded" => 0, "width" => 400, "showHeadings" => 0, "fontSize" => 10, "xPos" => "center", "cols" => $cols_settings, "lineCol" => array(0.8, 0.8, 0.8)); $pdf = new Cezpdf(); $pdf->ezSetMargins(90, 90, 90, 90); $pdf->selectFont($font1); $pdf->ezStartPageNumbers(436, 80, 10, 'right', 'Page {PAGENUM} of {TOTALPAGENUM}'); $pdf->ezStartPageNumbers(200, 80, 10, 'left', '<b>' . $default_id_label . ': </b>' . $this->get_value("invoiceNum")); $pdf->ezSetY(775); $companyName and $contact_info[] = array($companyName); $companyContactAddress and $contact_info[] = array($companyContactAddress); $companyContactAddress2 and $contact_info[] = array($companyContactAddress2); $companyContactAddress3 and $contact_info[] = array($companyContactAddress3); $companyContactEmail and $contact_info[] = array($companyContactEmail); $companyContactHomePage and $contact_info[] = array($companyContactHomePage); $phone and $contact_info[] = array($phone); $fax and $contact_info[] = array($fax); $pdf->selectFont($font2); $y = $pdf->ezTable($contact_info, false, "", $pdf_table_options); $pdf->selectFont($font1); $line_y = $y - 10; $pdf->setLineStyle(1, "round"); $pdf->line(90, $line_y, 510, $line_y); $pdf->ezSetY(782); $image_jpg = ALLOC_LOGO; if (file_exists($image_jpg)) { $pdf->ezImage($image_jpg, 0, sprintf("%d", config::get_config_item("logoScaleX")), 'none'); $y = 700; } else { $y = $pdf->ezText($companyName, 27, array("justification" => "right")); } $nos_y = $line_y + 22; $companyNos2 and $nos_y = $line_y + 34; $pdf->ezSetY($nos_y); $companyNos1 and $y = $pdf->ezText($companyNos1, 10, array("justification" => "right")); $companyNos2 and $y = $pdf->ezText($companyNos2, 10, array("justification" => "right")); $pdf->ezSetY($line_y - 20); $y = $pdf->ezText($default_header, 20, array("justification" => "center")); $pdf->ezSetY($y - 20); $ts_info[] = array("one" => "<b>" . $default_id_label . ":</b>", "two" => $this->get_value("invoiceNum"), "three" => "<b>Date Issued:</b>", "four" => date("d/m/Y")); $ts_info[] = array("one" => "<b>Client:</b>", "two" => $clientName, "three" => "<b>Billing Period:</b>", "four" => $period); $y = $pdf->ezTable($ts_info, $cols, "", $pdf_table_options2); $pdf->ezSetY($y - 20); list($rows, $info) = $this->get_invoiceItem_list_for_file($verbose); $cols2 = array("desc" => "Description", "quantity" => "Qty", "unit" => "Unit Price", "money" => "Charges", "gst" => $taxName); $taxPercent = config::get_config_item("taxPercent"); if ($taxPercent === '') { unset($cols2["gst"]); } $rows[] = array("desc" => "<b>TOTAL</b>", "money" => $info["total"], "gst" => $info["total_gst"]); $y = $pdf->ezTable($rows, $cols2, "", $pdf_table_options3); $pdf->ezSetY($y - 20); if ($taxPercent !== '') { $totals[] = array("one" => "TOTAL " . $taxName, "two" => $info["total_gst"]); } $totals[] = array("one" => "TOTAL CHARGES", "two" => $info["total"]); $totals[] = array("one" => "<b>TOTAL AMOUNT PAYABLE</b>", "two" => "<b>" . $info["total_inc_gst"] . "</b>"); $y = $pdf->ezTable($totals, $cols3, "", $pdf_table_options4); $pdf->ezSetY($y - 20); $pdf->ezText(str_replace(array("<br>", "<br/>", "<br />"), "\n", $footer), 10); // Add footer #$all = $pdf->openObject(); #$pdf->saveState(); #$pdf->addText(415,80,12,"<b>".$default_id_label.":</b>".$this->get_value("invoiceNum")); #$pdf->restoreState(); #$pdf->closeObject(); #$pdf->addObject($all,'all'); if ($getfile) { return $pdf->ezOutput(); } else { $pdf->ezStream(array("Content-Disposition" => "invoice_" . $this->get_id() . ".pdf")); } }
function CREATEPDF($p) { $sGeo = explode("|", $p); $tokens = explode(",", $sGeo[0]); $sMin = explode(" ", $tokens[0]); $sMax = explode(" ", $tokens[2]); $sMinX = $sMin[0]; $sMinY = $sMin[1]; $oPDF = new Cezpdf('a4', 'portrait') or die("Kan PDFLib niet gebruiken"); $oPDF->ezSetMargins(20, 20, 20, 20); $oPDF->openHere('Fit'); $ext1 = $sMax[1] - $sMin[0]; $ext2 = $sMax[2] - $sMin[1]; $oPDF->setLineStyle(2); $oPDF->rectangle(20, 20, 595.28 - 40, 841.89 - 40); for ($iRecord = 1; $iRecord < count($sGeo) - 1; $iRecord++) { $oPDF->setLineStyle(0.1); $oPDF->setColor(1, 0, 0); $oPDF->setStrokeColor(0.5, 0.5, 0.5); $tokens = explode(",", $sGeo[$iRecord]); $point = array(); $waarde = 0; //$waardex = (297.64); //$waardey = (420.945); //$waardex = 0; //$waardey = 0; for ($gRecord = 0; $gRecord < count($tokens); $gRecord++) { $sPunt = explode(" ", $tokens[$gRecord]); if ($gRecord == 0) { $sX = $sPunt[0] - $sMinX; $sY = $sPunt[1] - $sMinY; $point[$waarde] = $sX * 1000 / 0.3528 / 350000; $point[$waarde + 1] = $sY * 1000 / 0.3528 / 350000; } elseif ($gRecord == count($tokens) - 1) { $sX = $sPunt[1] - $sMinX; $sY = $sPunt[2] - $sMinY; $point[$waarde] = $sX * 1000 / 0.3528 / 350000; $point[$waarde + 1] = $sY * 1000 / 0.3528 / 350000; } else { $sX = $sPunt[1] - $sMinX; $sY = $sPunt[2] - $sMinY; $point[$waarde] = $sX * 1000 / 0.3528 / 350000; $point[$waarde + 1] = $sY * 1000 / 0.3528 / 350000; } $waarde = $waarde + 2; } $oPDF->polygon($point, $waarde / 2, 1); $oPDF->polygon($point, $waarde / 2); unset($point); } $oPDF->ezStream(); }
function printPDF($res, $res2, $data) { require_once $GLOBALS['fileroot'] . "/library/classes/class.ezpdf.php"; $pdf = new Cezpdf("LETTER"); $pdf->ezSetMargins(72, 30, 50, 30); $pdf->selectFont($GLOBALS['fileroot'] . "/library/fonts/Helvetica.afm"); $opts = array('justification' => "center"); $pdf->ezText($res['facility_address'], "", $opts); $pdf->ezText("\n" . $res2['patient_name'] . "\n" . xl('Date of Birth') . ": " . $res2['patient_DOB'] . "\n" . $res2['patient_address']); $pdf->ezText("\n"); $opts = array('maxWidth' => 550, 'fontSize' => 8); $pdf->ezTable($data, "", $title, $opts); $pdf->ezText("\n\n\n\n" . xl('Signature') . ":________________________________", "", array('justification' => 'right')); $pdf->ezStream(); }
function pdfoutput__make_pdf_calendar($displayfrom = 0, $wholeyear = false, $admin = false, $forward = 0, $file = false) { global $settings, $lang; if ($displayfrom == 0) { $displayfrom = time(); } // prepare pdf include_once '../tagsets/class.ezpdf.php'; $pdf = new Cezpdf('a4'); $pdf->selectFont('../tagsets/fonts/Times-Roman.afm'); $fontsize = $settings['calendar_pdf_table_fontsize'] ? $settings['calendar_pdf_table_fontsize'] : 8; $titlefontsize = $settings['calendar_pdf_title_fontsize'] ? $settings['calendar_pdf_title_fontsize'] : 12; //start building calendar $displayfrom_lower = $displayfrom; $displayfrom_upper = date__skip_months($forward, $displayfrom_lower); if ($wholeyear) { $displayfrom_upper = mktime(0, 0, 0, 1, 1, date('Y', $displayfrom) + 1); } $results = calendar__get_events($admin, $displayfrom_lower, $displayfrom_upper, false, true); $month_names = explode(",", $lang['month_names']); //loop through each month for ($itime = $displayfrom_lower; $itime <= $displayfrom_upper; $itime = date__skip_months(1, $itime)) { $year = date("Y", $itime); $month = date("m", $itime); $weeks = days_in_month($month, $year); $table_title = $month_names[$month - 1] . ' ' . $year; $table_headings = array(); $calendar__weekdays = explode(",", $lang['format_datetime_weekday_abbr']); for ($i3 = 1; $i3 <= 7; ++$i3) { if (!isset($lang['format_datetime_firstdayofweek_0:Su_1:Mo']) || !$lang['format_datetime_firstdayofweek_0:Su_1:Mo']) { $wdindex = $i3 - 2; if ($wdindex < 0) { $wdindex = 6; } } else { $wdindex = $i3 - 1; } $table_headings[$i3] = $calendar__weekdays[$wdindex]; } $table_data = array(); for ($i2 = 1; $i2 <= count($weeks); ++$i2) { $las1 = array(); $las2 = array(); for ($i3 = 1; $i3 <= 7; ++$i3) { if (!isset($weeks[$i2][$i3])) { $las1[$i3] = ""; $las2[$i3] = ""; } else { $las1[$i3] = $weeks[$i2][$i3]; $las2[$i3] = ""; //the date is the key of the $results array for easy searching $today = $year * 10000 + $month * 100 + $weeks[$i2][$i3]; if (isset($results[$today])) { foreach ($results[$today] as $item) { $las2[$i3] .= $item['display_time']; $las2[$i3] .= "\n" . "<i>" . $item['location'] . "</i>\n"; if ($admin || $settings['public_calendar_hide_exp_name'] != 'y') { $las2[$i3] .= '<b>' . $item['title'] . '</b>'; } else { $las2[$i3] .= '<b>' . $lang['calendar_experiment_session'] . '</b>'; } $las2[$i3] .= "\n"; if ($admin) { $las2[$i3] .= experiment__list_experimenters($item['experimenters'], false, true) . "\n"; } if ($item['type'] == "experiment_session") { if ($admin) { $las2[$i3] .= $item['participants_registered'] . " (" . $item['participants_needed'] . "," . $item['participants_reserve'] . ")"; } else { $las2[$i3] .= $statusdata[$item['status']]['message']; } } $las2[$i3] .= "\n\n"; } } } } $table_data[] = $las1; $table_data[] = $las2; } $y = $pdf->ezTable($table_data, $table_headings, $table_title, array('gridlines' => 31, 'showHeadings' => 1, 'shaded' => 2, 'shadeCol' => array(1, 1, 1), 'shadeCol2' => array(0.9, 0.9, 1), 'fontSize' => $fontsize, 'titleFontSize' => $titlefontsize, 'rowGap' => 1, 'colGap' => 3, 'innerLineThickness' => 0.5, 'outerLineThickness' => 1, 'maxWidth' => 500, 'width' => 500, 'protectRows' => 2)); $pdf->ezSetDy(-20); } if ($file) { $pdffilecode = $pdf->output(); return $pdffilecode; //$fname ="/apache/orsee/admin/pdfdir/test.pdf"; //$fp = fopen($fname,'w'); //fwrite($fp,$pdffilecode); //fclose($fp); //echo '<A HREF="pdfdir/test.pdf" target="_blank">pdf file</A><BR><BR>'; //$pdfcode = str_replace("\n","\n<br>",htmlspecialchars($pdfcode)); //echo trim($pdfcode); } else { $pdf->ezStream(array('Content-Disposition' => 'calendar.pdf', 'Accept-Ranges' => 0, 'compress' => 1)); } }
//line Y coordinates in landscape mode are upside down (500 is on top, 10 is on the bottom) $pdf->line(50, 50, 790, 50); $pdf->line(50, 550, 790, 550); $pdf->ezSetY(450); //@todo replace image //$pdf->ezImage(api_get_path(SYS_CODE_PATH).'img/dokeos_logo_certif.png',1,400,'','center',''); $pdf->ezSetY(480); $pdf->ezText($certif_text, 28, array('justification' => 'center')); //$pdf->ezSetY(750); $pdf->ezSetY(50); $pdf->ezText($date, 18, array('justification' => 'center')); $pdf->ezSetY(580); $pdf->ezText($organization_name, 22, array('justification' => 'left')); $pdf->ezSetY(580); $pdf->ezText($portal_name, 22, array('justification' => 'right')); $pdf->ezStream(); } exit; } else { $cats = Category::load($category); $stud_id = api_is_allowed_to_edit() ? null : api_get_user_id(); $allcat = $cats[0]->get_subcategories($stud_id); $alleval = $cats[0]->get_evaluations($stud_id); $alllink = $cats[0]->get_links($stud_id); } $addparams = array('selectcat' => $cats[0]->get_id()); if (isset($_GET['search'])) { $addparams['search'] = $keyword; } if (isset($_GET['studentoverview'])) { $addparams['studentoverview'] = '';
function acta($argumento) { $fecha_doc = $argumento["fecha_doc"]; $usuarioAutorizaNomb = $argumento["usuarioAutorizaNomb"]; //rint ($query); $pdf = new Cezpdf("LETTER", "portrait"); //LETTER = Carta,portrait = vertical $year = date("Y"); $day = date("d"); $month = date("m"); $a = array("left" => 0); $b = array("justification" => "center"); $d = array("justification" => "left", "leading" => 8); $c = array("left" => 0, "leading" => 12); //leading = espaciado $e = array("left" => 0, "leading" => 15); //leading = espaciado $pdf->ezSetCmMargins(4, 3, 4, 2); //top,botton,left,right /* Se establece la fuente que se utilizara para el texto. */ $pdf->selectFont("../include/pdf/fonts/Times-Roman.afm"); $pdf->ezText("ACTA DE RECUPERACION DE RADICADOS \n\n", 15, $b); //$pdf->ezText($this->query." : \n" ,12,$d); $txtformat = "Radicados recuperados a {$fecha_doc} y autorizados por {$usuarioAutorizaNomb} \n\n "; $pdf->ezText($txtformat, 12, $c); $this->conexion->getResult($this->query); $data = array(); $columna = array(); $contador = 0; while ($this->conexion->cursor->next_record() != 0) { $radicado = $this->conexion->cursor->f('radi_nume_radi'); $columna[$contador++] = $radicado; if ($contador == 4) { $contador = 0; $data = array_merge($data, array(array('-1-' => $columna[0], '-2-' => $columna[1], '-3-' => $columna[2], '-4-' => $columna[3]))); array_splice($columna, 0); } //$data= array_merge ($data,array (array('Número'=>$rucConsecutivo."-".$rucYear,'Usuario'=>$nombre,'Defensor Público'=>$nombreDefensor))); } if ($contador != 0) { $data = array_merge($data, array(array('-1-' => $columna[0], '-2-' => $columna[1], '-3-' => $columna[2], '-4-' => $columna[3]))); } $pdf->ezTable($data); $pdf->ezStream(); }
function printPDF($res, $res2, $data) { $pdf = new Cezpdf("LETTER"); $pdf->ezSetMargins(72, 30, 50, 30); $pdf->selectFont('Helvetica'); $opts = array('justification' => "center"); $pdf->ezText($res['facility_address'], "", $opts); $pdf->ezText("\n" . $res2['patient_name'] . "\n" . xl('Date of Birth') . ": " . $res2['patient_DOB'] . "\n" . $res2['patient_address']); $pdf->ezText("\n"); $opts = array('maxWidth' => 550, 'fontSize' => 8); $pdf->ezTable($data, "", $title, $opts); $pdf->ezText("\n\n\n\n" . xl('Signature') . ":________________________________", "", array('justification' => 'right')); $pdf->ezStream(); }
function saldenliste_mv_pdf($monat, $jahr) { ob_clean(); // ausgabepuffer leeren /* PDF AUSGABE */ //include_once ('pdfclass/class.ezpdf.php'); $pdf = new Cezpdf('a4', 'portrait'); $pdf->selectFont('Helvetica.afm'); $pdf->ezSetCmMargins(4.5, 0, 0, 0); /* Kopfzeile */ $pdf->addJpegFromFile('includes/logos/logo_hv_sw.jpg', 220, 750, 175, 100); $pdf->setLineStyle(0.5); $pdf->addText(86, 743, 6, "BERLUS HAUSVERWALTUNG * Fontanestr. 1 * 14193 Berlin * Inhaber Wolfgang Wehrheim * Telefon: 89784477 * Fax: 89784479 * Email: info@berlus.de"); $pdf->line(42, 750, 550, 750); /* Footer */ $pdf->line(42, 50, 550, 50); $pdf->addText(170, 42, 6, "BERLUS HAUSVERWALTUNG * Fontanestr. 1 * 14193 Berlin * Inhaber Wolfgang Wehrheim"); $pdf->addText(150, 35, 6, "Bankverbindung: Dresdner Bank Berlin * BLZ: 100 800 00 * Konto-Nr.: 05 804 000 00 * Steuernummer: 24/582/61188"); $pdf->addInfo('Title', "Saldenliste {$objekt_name} {$monatname} {$jahr}"); $pdf->addInfo('Author', $_SESSION[username]); $pdf->ezStartPageNumbers(550, 755, 7, '', "Seite {PAGENUM} von {TOTALPAGENUM}"); // echo "Monatsbericht Mieter - Monatsbericht Kostenkonten<br>"; // echo "<h3>Aktuelle Mieterstatistik mit ausgezogene Mieter<br></h3>"; $s = new statistik(); $jahr = $_REQUEST[jahr]; if (empty($jahr)) { $jahr = date("Y"); } else { if (strlen($jahr) < 4) { $jahr = date("Y"); } } // $jahr_monat = date("Y-m"); // $jahr = date("Y"); $monat = $_REQUEST[monat]; if (empty($monat)) { $monat = date("m"); } else { if (strlen($monat) < 2) { $monat = '0' . $monat; } } // $monat = '04'; $jahr_monat = $jahr . '-' . $monat; // $jahr_vormonat = mktime(0, 0, 0, date("m")-1, date("d"), date("Y")); // $jahr_vormonat = date("Y-m",$jahr_vormonat); $bg = new berlussimo_global(); $link = "?daten=mietvertrag_raus&mietvertrag_raus=saldenliste"; $bg->objekt_auswahl_liste($link); $bg->monate_jahres_links($jahr, $link); if (isset($_SESSION['objekt_id'])) { $objekt_id = $_SESSION['objekt_id']; $einheit_info = new einheit(); $o = new objekt(); $objekt_name = $o->get_objekt_name($objekt_id); $monatname = monat2name($monat); $pdf->addText(70, 755, 10, "Saldenliste {$objekt_name} {$monatname} {$jahr}"); $pdf->ezSetDy(25); $pdf->ezSetCmMargins(3, 3, 3, 3); $text_options = array(left => 0, justification => 'left'); $pdf->ezText("<b>Einheit</b>", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(left => 100, justification => 'left'); $pdf->ezText("<b>Mieter</b>", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(left => 270, justification => 'left'); $pdf->ezText("<b>Einzug</b>", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(left => 320, justification => 'left'); $pdf->ezText("<b>Auszug</b>", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(right => 0, justification => 'right'); $pdf->ezText("<b>SALDO EUR</b>", 8, $text_options); /* Aktuell bzw. gewünschten Monat berechnen */ $ob = new objekt(); $einheiten_array = $ob->einheiten_objekt_arr($objekt_id); // $einheiten_array = $s->vermietete_monat_jahr($jahr_monat,$objekt_id, ''); /* * echo "<pre>"; * print_r($einheiten_array); * echo "<h1> EINHEITEN: $anzahl_aktuell</h1>"; * $mv_array = $einheit_info->get_mietvertrag_ids('7'); * print_r($mv_array); */ $summe_sv = 0; $summe_mieten = 0; $summe_umlagen = 0; $summe_akt_gsoll = 0; $summe_g_zahlungen = 0; $summe_saldo_neu = 0; $anzahl_aktuell = count($einheiten_array); $miete = new miete(); $zeilen_pro_seite = 60; $aktuelle_zeile = 0; for ($i = 0; $i < $anzahl_aktuell; $i++) { $mv_array = $einheit_info->get_mietvertraege_bis("" . $einheiten_array[$i]['EINHEIT_ID'] . "", $jahr, $monat); $mv_anzahl = count($mv_array); if (is_array($mv_array)) { for ($b = 0; $b < $mv_anzahl; $b++) { $mv_id = $mv_array[$b]['MIETVERTRAG_ID']; $mk = new mietkonto(); $mieter_ids = $mk->get_personen_ids_mietvertrag($mv_id); for ($a = 0; $a < count($mieter_ids); $a++) { $mieter_daten_arr[] = $mk->get_person_infos($mieter_ids[$a][PERSON_MIETVERTRAG_PERSON_ID]); } // $miete->mietkonto_berechnung_monatsgenau($mv_id, $jahr, $monat); $end_saldoo = $miete->saldo_berechnen_monatsgenau($mv_id, $monat, $jahr); $zeile = $zeile + 1; $einheit_kurzname = $einheiten_array[$i]['EINHEIT_KURZNAME']; $vn = RTRIM(LTRIM($mieter_daten_arr['0']['0']['PERSON_VORNAME'])); $nn = RTRIM(LTRIM($mieter_daten_arr['0']['0']['PERSON_NACHNAME'])); $akt_gesamt_soll = $miete->saldo_vormonat_stand + $miete->sollmiete_warm; $this->get_mietvertrag_infos_aktuell($mv_id); $l_tag_akt_monat = letzter_tag_im_monat($monat, $jahr); $l_datum = "{$jahr}-{$monat}-{$l_tag_akt_monat}"; if ($this->mietvertrag_bis == '0000-00-00' or $this->mietvertrag_bis > $l_datum) { $mv_bis = 'aktuell'; } else { $mv_bis = date_mysql2german($this->mietvertrag_bis); } $mv_von = date_mysql2german($this->mietvertrag_von); $end_saldoo = nummer_punkt2komma($end_saldoo); if ($mv_bis == 'aktuell') { // echo "$zeile. $einheit_kurzname $nn $vn SALDO NEU: $end_saldoo <br>"; $pdf->ezSetCmMargins(3, 3, 3, 3); $text_options = array(left => 0, justification => 'left'); $pdf->ezText("{$einheit_kurzname}", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(left => 100, justification => 'left'); $pdf->ezText("{$nn} {$vn}", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(left => 270, justification => 'left'); $pdf->ezText("{$mv_von}", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(left => 320, justification => 'left'); $pdf->ezText("", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(right => 0, justification => 'right'); $pdf->ezText("{$end_saldoo}", 8, $text_options); $aktuelle_zeile++; } else { // echo "<b>$zeile. $einheit_kurzname $nn $vn SALDO NEU: $end_saldoo € BEENDET AM :$mv_bis €</b><br>"; $pdf->ezSetCmMargins(3, 3, 3, 3); $text_options = array(left => 0, justification => 'left'); $pdf->ezText("{$einheit_kurzname}", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(left => 100, justification => 'left'); $pdf->ezText("{$nn} {$vn}", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(left => 270, justification => 'left'); $pdf->ezText("{$mv_von}", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(left => 320, justification => 'left'); $pdf->ezText("{$mv_bis}", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(right => 0, justification => 'right'); $pdf->ezText("{$end_saldoo}", 8, $text_options); $aktuelle_zeile++; } if ($zeilen_pro_seite == $aktuelle_zeile) { $pdf->ezNewPage(); /* Kopfzeile */ $pdf->addJpegFromFile('includes/logos/logo_hv_sw.jpg', 220, 750, 175, 100); $pdf->setLineStyle(0.5); $pdf->addText(86, 743, 6, "BERLUS HAUSVERWALTUNG * Fontanestr. 1 * 14193 Berlin * Inhaber Wolfgang Wehrheim * Telefon: 89784477 * Fax: 89784479 * Email: info@berlus.de"); $pdf->line(42, 750, 550, 750); /* Footer */ $pdf->line(42, 50, 550, 50); $pdf->addText(170, 42, 6, "BERLUS HAUSVERWALTUNG * Fontanestr. 1 * 14193 Berlin * Inhaber Wolfgang Wehrheim"); $pdf->addText(150, 35, 6, "Bankverbindung: Dresdner Bank Berlin * BLZ: 100 800 00 * Konto-Nr.: 05 804 000 00 * Steuernummer: 24/582/61188"); $pdf->addInfo('Title', "Saldenliste {$objekt_name} {$monatname} {$jahr}"); $pdf->addText(70, 755, 10, "Saldenliste {$objekt_name} {$monatname} {$jahr}"); $pdf->ezStartPageNumbers(550, 755, 7, '', "Seite {PAGENUM} von {TOTALPAGENUM}"); /* Überschriftzeile */ $pdf->ezSetDy(-18); $pdf->ezSetCmMargins(3, 3, 3, 3); $text_options = array(left => 0, justification => 'left'); $pdf->ezText("<b>Einheit</b>", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(left => 100, justification => 'left'); $pdf->ezText("<b>Mieter</b>", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(left => 270, justification => 'left'); $pdf->ezText("<b>Einzug</b>", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(left => 320, justification => 'left'); $pdf->ezText("<b>Auszug</b>", 8, $text_options); $pdf->ezSetDy(9); $text_options = array(right => 0, justification => 'right'); $pdf->ezText("<b>SALDO EUR</b>", 8, $text_options); $aktuelle_zeile = 0; } unset($mieter_daten_arr); unset($nn); unset($vn); } // end if is_array mv_ids } } // hinweis_ausgeben("Saldenliste mit Vormieter für $objekt_name wurde erstellt<br>"); ob_clean(); // ausgabepuffer leeren $pdf->ezStopPageNumbers(); $pdf->ezStream(); /* Falls kein Objekt ausgewählt */ } else { echo "Objekt auswählen"; } }
public function pdfObservations($result) { global $loggedUser, $dateformat, $instDir, $objObservation, $objObserver, $objInstrument, $objLocation, $objPresentations, $objObject, $objFilter, $objEyepiece, $objLens; $result = $this->sortResult($result); $pdf = new Cezpdf('a4', 'portrait'); $pdf->ezStartPageNumbers(300, 30, 10); $pdf->selectFont($instDir . 'lib/fonts/Helvetica.afm'); $pdf->ezText(utf8_decode(html_entity_decode($_GET['pdfTitle'])) . "\n"); $i = 0; while (list($key, $value) = each($result)) { if ($i++ > 0) { $pdf->ezNewPage(); } $obs = $objObservation->getAllInfoDsObservation($value['observationid']); $object = $objObject->getAllInfoDsObject($obs['objectname']); if ($loggedUser && $objObserver->getObserverProperty($loggedUser, 'UT')) { $date = sscanf($obs["date"], "%4d%2d%2d"); } else { $date = sscanf($obs["localdate"], "%4d%2d%2d"); } if ($obs['seeing'] > -1) { $seeing = true; } else { $seeing = false; } $formattedDate = date($dateformat, mktime(0, 0, 0, $date[1], $date[2], $date[0])); $temp = array("Name" => html_entity_decode(LangPDFMessage1) . " : " . $obs['objectname'], "altname" => html_entity_decode(LangPDFMessage2) . " : " . $object["altname"], "type" => $GLOBALS[$object['type']] . html_entity_decode(LangPDFMessage12) . $GLOBALS[$object['con']], "visibility" => $obs['visibility'] ? html_entity_decode(LangViewObservationField22) . " : " . $GLOBALS['Visibility' . $obs['visibility']] : '', "seeing" => $seeing ? LangViewObservationField6 . " : " . $GLOBALS['Seeing' . $obs['seeing']] : '', "limmag" => $obs['limmag'] ? LangViewObservationField7 . " : " . $obs['limmag'] : '', "filter" => $obs['filterid'] ? LangViewObservationField31 . " : " . $objFilter->getFilterPropertyFromId($obs['filterid'], 'name') : '', "eyepiece" => $obs['eyepieceid'] ? LangViewObservationField30 . " : " . $objEyepiece->getEyepiecePropertyFromId($obs['eyepieceid'], 'name') : '', "lens" => $obs['lensid'] ? LangViewObservationField32 . " : " . $objLens->getLensPropertyFromId($obs['lensid'], 'name') : '', "observer" => html_entity_decode(LangPDFMessage13) . $objObserver->getObserverProperty($obs['observerid'], 'firstname') . " " . $objObserver->getObserverProperty($obs['observerid'], 'name') . html_entity_decode(LangPDFMessage14) . $formattedDate, "instrument" => html_entity_decode(LangPDFMessage11) . " : " . $objInstrument->getInstrumentPropertyFromId($obs['instrumentid'], 'name'), "location" => html_entity_decode(LangPDFMessage10) . " : " . $objLocation->getLocationPropertyFromId($obs['locationid'], 'name'), "description" => $objPresentations->br2nl(html_entity_decode($obs['description'])), "desc" => html_entity_decode(LangPDFMessage15)); $obs1[] = $temp; $nm = $obs['objectname']; if ($object["altname"]) { $nm = $nm . " (" . $object["altname"] . ")"; } $pdf->ezText($nm, "14"); $tmp = array(array("type" => $temp["type"])); $pdf->ezTable($tmp, array("type" => utf8_decode(html_entity_decode(LangPDFMessage5))), "", array("width" => "500", "showHeadings" => "0", "showLines" => "0", "shaded" => "0")); $tmp = array(array("location" => $temp["location"], "instrument" => $temp["instrument"])); $pdf->ezTable($tmp, array("location" => utf8_decode(html_entity_decode(LangPDFMessage1)), "instrument" => utf8_decode(html_entity_decode(LangPDFMessage2))), "", array("width" => "500", "showHeadings" => "0", "showLines" => "0", "shaded" => "0")); $tmp = array(array("eyepiece" => $temp["eyepiece"])); if ($obs['eyepieceid']) { $pdf->ezTable($tmp, array("eyepiece" => "test"), "", array("width" => "500", "showHeadings" => "0", "showLines" => "0", "shaded" => "0")); } $tmp = array(array("filter" => $temp["filter"])); if ($obs['filterid']) { $pdf->ezTable($tmp, array("filter" => "test"), "", array("width" => "500", "showHeadings" => "0", "showLines" => "0", "shaded" => "0")); } $tmp = array(array("lens" => $temp["lens"])); if ($obs['lensid']) { $pdf->ezTable($tmp, array("lens" => "test"), "", array("width" => "500", "showHeadings" => "0", "showLines" => "0", "shaded" => "0")); } $tmp = array(array("seeing" => $temp["seeing"])); if ($seeing) { $pdf->ezTable($tmp, array("seeing" => "test"), "", array("width" => "500", "showHeadings" => "0", "showLines" => "0", "shaded" => "0")); } $tmp = array(array("limmag" => $temp["limmag"])); if ($obs['limmag']) { $pdf->ezTable($tmp, array("limmag" => "test"), "", array("width" => "500", "showHeadings" => "0", "showLines" => "0", "shaded" => "0")); } $tmp = array(array("visibility" => $temp["visibility"])); if ($obs['visibility']) { $pdf->ezTable($tmp, array("visibility" => "test"), "", array("width" => "500", "showHeadings" => "0", "showLines" => "0", "shaded" => "0")); } $tmp = array(array("observer" => $temp["observer"])); $pdf->ezTable($tmp, array("observer" => utf8_decode(html_entity_decode(LangPDFMessage1))), "", array("width" => "500", "showHeadings" => "0", "showLines" => "0", "shaded" => "0")); $pdf->ezText(utf8_decode(LangPDFMessage15), "12"); $pdf->ezText(""); $tmp = array(array("description" => $temp["description"])); $pdf->ezTable($tmp, array("description" => utf8_decode(html_entity_decode(LangPDFMessage1))), "", array("width" => "500", "showHeadings" => "0", "showLines" => "0", "shaded" => "0")); if ($objObservation->getDsObservationProperty($value['observationid'], 'hasDrawing')) { $pdf->ezText(""); $pdf->ezImage($instDir . "deepsky/drawings/" . $value['observationid'] . ".jpg", 0, 500, "none", "left"); } $pdf->ezText(""); } $pdf->ezStream(); }
$user = isset($_GET['user']) ? $_GET['user'] : ''; $owner = isset($_GET['owner']) ? $_GET['owner'] : ''; $mode = isset($_GET['mode']) && is_numeric($_GET['mode']) ? $_GET['mode'] : 1; $pdf->setEncryption($user, $owner, array(), $mode); } // select a font $pdf->selectFont('Times-Roman'); $pdf->openHere('Fit'); $pdf->ezText("This example shows how to crypt the PDF document\n"); $pdf->ezText("\nUse \"?mode=1\" for RC4 40bit encryption\n"); $pdf->ezText("\nUse \"?mode=2\" for RC4 128bit encryption\n"); $pdf->ezText("\nUse \"?nocrypt\" to disable the encryption\n"); $pdf->ezText("\nUse \"?user=password\" to set a user password\n"); $pdf->ezText("\nUse \"?owner=password\" to set a owner password\n"); if (isset($_GET['nocrypt'])) { $pdf->ezText("<b>Not encrypt</b> - nocrypt parameter found"); } if (isset($_GET['d']) && $_GET['d']) { echo $pdf->ezOutput(TRUE); } else { if ($mode > 1) { $encMode = "128BIT"; } else { if ($mode > 0) { $encMode = "40BIT"; } else { $encMode = "NONE"; } } $pdf->ezStream(array('Content-Disposition' => "encrypted_" . $encMode . (isset($_GET['user']) ? "_withUserPW" : "") . (isset($_GET['owner']) ? "_withOwnerPW" : ""), 'attached' => 0)); }
/** * Crea un pdf con el estado de cuenta de el cliente especificado * @param Array $args, $args['id_cliente'=>12[,'tipo_venta'=> 'credito | contado | saldo'] ], por default obtiene todas las compras del cliente */ public static function imprimirEstadoCuentaCliente($args) { //verificamos que se haya especificado el id del cliente if (!isset($args['id_cliente'])) { Logger::log("Error al obtener el estado de cuenta, no se ha especificado un cliente."); die('{"success": false, "reason": "Error al obtener el estado de cuenta, no se ha especificado un cliente."}'); } //verificamos que el cliente exista if (!($cliente = ClienteDAO::getByPK($args['id_cliente']))) { Logger::log("Error al obtener el estado de cuenta, no se tiene registro del cliente {$args['id_cliente']}."); die('{"success": false, "reason": "Error al obtener el estado de cuenta, no se tiene registro del cliente ' . $args['id_cliente'] . '"}'); } //obtenemos los datos del emisor $estado_cuenta = estadoCuentaCliente($args); //buscar los datos del emisor if (!($emisor = PosConfigDAO::getByPK('emisor'))) { Logger::log("no encuentro los datos del emisor"); die("no encuentro los datos del emisor"); } $emisor = json_decode($emisor->getValue())->emisor; $sucursal = SucursalDAO::getByPK($_SESSION['sucursal']); if (!$sucursal) { die("Sucursal invalida"); } include_once 'librerias/ezpdf/class.pdf.php'; include_once 'librerias/ezpdf/class.ezpdf.php'; $pdf = new Cezpdf(); $pdf->selectFont('../server/librerias/ezpdf/fonts/Helvetica.afm'); //margenes de un centimetro para toda la pagina $pdf->ezSetMargins(1, 1, 1, 1); /* * LOGO */ if (!($logo = PosConfigDAO::getByPK('url_logo'))) { Logger::log("Verifique la configuracion del pos_config, no se encontro el camṕo 'url_logo'"); die("Verifique la configuracion del POS, no se encontro el url del logo"); } //addJpegFromFile(imgFileName,x,y,w,[h]) //detectamos el tipo de imagen del logo if (substr($logo->getValue(), -3) == "jpg" || substr($logo->getValue(), -3) == "JPG" || substr($logo->getValue(), -4) == "jpeg" || substr($logo->getValue(), -4) == "JPEG") { $pdf->addJpegFromFile($logo->getValue(), puntos_cm(2), puntos_cm(25.5), puntos_cm(3.5)); } elseif (substr($logo->getValue(), -3) == "png" || substr($logo->getValue(), -3) == "PNG") { $pdf->addPngFromFile($logo->getValue(), puntos_cm(2), puntos_cm(25.5), puntos_cm(3.5)); } else { Logger::log("Verifique la configuracion del pos_config, la extension de la imagen del logo no es compatible"); die("La extension de la imagen usada para el logo del negocio no es valida."); } /* * ************************ * ENCABEZADO * ************************* */ $e = "<b>" . self::readableText($emisor->nombre) . "</b>\n"; $e .= formatAddress($emisor); $e .= "RFC: " . $emisor->rfc . "\n\n"; //datos de la sucursal $e .= "<b>Lugar de expedicion</b>\n"; $e .= self::readableText($sucursal->getDescripcion()) . "\n"; $e .= formatAddress($sucursal); $datos = array(array("emisor" => $e)); $pdf->ezSetY(puntos_cm(28.6)); $opciones_tabla = array(); $opciones_tabla['showLines'] = 0; $opciones_tabla['showHeadings'] = 0; $opciones_tabla['shaded'] = 0; $opciones_tabla['fontSize'] = 8; $opciones_tabla['xOrientation'] = 'right'; $opciones_tabla['xPos'] = puntos_cm(7.3); $opciones_tabla['width'] = puntos_cm(11); $opciones_tabla['textCol'] = array(0, 0, 0); $opciones_tabla['titleFontSize'] = 12; $opciones_tabla['rowGap'] = 3; $opciones_tabla['colGap'] = 3; $pdf->ezTable($datos, "", "", $opciones_tabla); $cajero = UsuarioDAO::getByPK($_SESSION['userid'])->getNombre(); $datos = array(array("col" => "<b>Cajero</b>"), array("col" => self::readableText($cajero)), array("col" => "<b>Cliente</b>"), array("col" => self::readableText($cliente->getRazonSocial())), array("col" => "<b>Limite de Credito</b>"), array("col" => FormatMoney($estado_cuenta->limite_credito, DONT_USE_HTML)), array("col" => "<b>Saldo</b>"), array("col" => FormatMoney($estado_cuenta->saldo, DONT_USE_HTML))); $pdf->ezSetY(puntos_cm(28.8)); $opciones_tabla['xPos'] = puntos_cm(12.2); $opciones_tabla['width'] = puntos_cm(6); $opciones_tabla['showLines'] = 0; $opciones_tabla['shaded'] = 2; $opciones_tabla['shadeCol'] = array(1, 1, 1); //$opciones_tabla['shadeCol2'] = array(0.054901961, 0.756862745, 0.196078431); $opciones_tabla['shadeCol2'] = array(0.8984375, 0.95703125, 0.99609375); $pdf->ezTable($datos, "", "", $opciones_tabla); //roundRect($pdf, puntos_cm(12.2), puntos_cm(28.8), puntos_cm(6), puntos_cm(4.25)); /** * ESTADO DE CUENTA */ $elementos = array(array('id_venta' => 'Venta', 'fecha' => 'Fecha', 'sucursal' => 'Sucursal', 'cajero' => 'Cajero', 'tipo_venta' => 'Tipo', 'tipo_pago' => 'Pago', 'total' => 'Total', 'pagado' => 'Pagado', 'saldo' => 'Saldo')); foreach ($estado_cuenta->array_ventas as $venta) { $array_venta = array(); $array_venta['id_venta'] = $venta['id_venta']; $array_venta['fecha'] = $venta['fecha']; $array_venta['sucursal'] = self::readableText($venta['sucursal']); $array_venta['cajero'] = self::readableText($venta['cajero']); $array_venta['cancelada'] = self::readableText($venta['cancelada']); $array_venta['tipo_venta'] = self::readableText($venta['tipo_venta']); $array_venta['tipo_pago'] = self::readableText($venta['tipo_pago']); $array_venta['total'] = FormatMoney($venta['total'], DONT_USE_HTML); $array_venta['pagado'] = FormatMoney($venta['pagado'], DONT_USE_HTML); $array_venta['saldo'] = FormatMoney($venta['saldo'], DONT_USE_HTML); array_push($elementos, $array_venta); } $pdf->ezText("", 8, array('justification' => 'center')); $pdf->ezSetY(puntos_cm(24)); $opciones_tabla['xPos'] = puntos_cm(2); $opciones_tabla['width'] = puntos_cm(16.2); $pdf->ezTable($elementos, "", "Estado de Cuenta", $opciones_tabla); //roundRect($pdf, puntos_cm(2), puntos_cm(24.3), puntos_cm(16.2), puntos_cm(3.2)); /* * ************************ * notas de abajo * ************************* */ $pdf->setLineStyle(1); $pdf->setStrokeColor(0.3359375, 0.578125, 0.89453125); $pdf->line(puntos_cm(2), puntos_cm(1.3), puntos_cm(18.2), puntos_cm(1.3)); $pdf->addText(puntos_cm(2), puntos_cm(1.0), 7, "Fecha de impresion: " . date("d/m/y") . " " . date("H:i:s")); //addJpegFromFile(imgFileName,x,y,w,[h]) //$pdf->addJpegFromFile("../www/media/logo_simbolo.jpg", puntos_cm(15.9), puntos_cm(.25), 25); $pdf->addText(puntos_cm(16.7), puntos_cm(0.6), 8, "caffeina.mx"); $pdf->ezStream(); }
function dofreePDF() { global $mosConfig_live_site, $mosConfig_sitename, $mosConfig_offset; global $mainframe, $database, $my; $id = intval(mosGetParam($_REQUEST, 'id', 1)); $gid = $my->gid; $now = _CURRENT_SERVER_TIME; $nullDate = $database->getNullDate(); // query to check for state and access levels $query = "SELECT a.*, cc.name AS category, s.name AS section, s.published AS sec_pub, cc.published AS cat_pub," . "\n s.access AS sec_access, cc.access AS cat_access, s.id AS sec_id, cc.id as cat_id" . "\n FROM #__content AS a" . "\n LEFT JOIN #__categories AS cc ON cc.id = a.catid" . "\n LEFT JOIN #__sections AS s ON s.id = cc.section AND s.scope = 'content'" . "\n WHERE a.id = " . (int) $id . "\n AND a.state = 1" . "\n AND a.access <= " . (int) $gid . "\n AND ( a.publish_up = " . $database->Quote($nullDate) . " OR a.publish_up <= " . $database->Quote($now) . " )" . "\n AND ( a.publish_down = " . $database->Quote($nullDate) . " OR a.publish_down >= " . $database->Quote($now) . " )"; $database->setQuery($query); $row = NULL; if ($database->loadObject($row)) { /* * check whether category is published */ if (!$row->cat_pub && $row->catid) { mosNotAuth(); return; } /* * check whether section is published */ if (!$row->sec_pub && $row->sectionid) { mosNotAuth(); return; } /* * check whether category access level allows access */ if ($row->cat_access > $gid && $row->catid) { mosNotAuth(); return; } /* * check whether section access level allows access */ if ($row->sec_access > $gid && $row->sectionid) { mosNotAuth(); return; } include 'includes/class.ezpdf.php'; $params = new mosParameters($row->attribs); $params->def('author', !$mainframe->getCfg('hideAuthor')); $params->def('createdate', !$mainframe->getCfg('hideCreateDate')); $params->def('modifydate', !$mainframe->getCfg('hideModifyDate')); $row->fulltext = pdfCleaner($row->fulltext); $row->introtext = pdfCleaner($row->introtext); $pdf = new Cezpdf('a4', 'P'); //A4 Portrait $pdf->ezSetCmMargins(2, 1.5, 1, 1); $pdf->selectFont('./fonts/Helvetica.afm'); //choose font $all = $pdf->openObject(); $pdf->saveState(); $pdf->setStrokeColor(0, 0, 0, 1); // footer $pdf->addText(250, 822, 6, $mosConfig_sitename); $pdf->line(10, 40, 578, 40); $pdf->line(10, 818, 578, 818); $pdf->addText(30, 34, 6, $mosConfig_live_site); $pdf->addText(250, 34, 6, _PDF_POWERED); $pdf->addText(450, 34, 6, _PDF_GENERATED . ' ' . date('j F, Y, H:i', time() + $mosConfig_offset * 60 * 60)); $pdf->restoreState(); $pdf->closeObject(); $pdf->addObject($all, 'all'); $pdf->ezSetDy(30); $txt1 = $row->title; $pdf->ezText($txt1, 14); $txt2 = AuthorDateLine($row, $params); $pdf->ezText($txt2, 8); $txt3 = $row->introtext . "\n" . $row->fulltext; $pdf->ezText($txt3, 10); $pdf->ezStream(); } else { mosNotAuth(); return; } }
/** * Print generic footer * * @param $type display type (0=HTML, 1=Sylk,2=PDF,3=CSV) * @param $title title of file : used for PDF (default '') * * @return string to display **/ static function showFooter($type, $title = "") { $out = ""; switch ($type) { case self::PDF_OUTPUT_LANDSCAPE: //pdf global $PDF_HEADER, $PDF_ARRAY; $pdf = new Cezpdf('a4', 'landscape'); $pdf->selectFont(GLPI_ROOT . "/lib/ezpdf/fonts/Helvetica.afm"); $nb = count($PDF_ARRAY); $tmptxt = sprintf(_n('%s item', '%s items', $nb), $nb); $pdf->ezStartPageNumbers(750, 10, 10, 'left', "GLPI PDF export - " . Html::convDate(date("Y-m-d")) . " - " . Toolbox::decodeFromUtf8($tmptxt, 'windows-1252') . " - {PAGENUM}/{TOTALPAGENUM}"); $options = array('fontSize' => 8, 'colGap' => 2, 'maxWidth' => 800, 'titleFontSize' => 8); $pdf->ezTable($PDF_ARRAY, $PDF_HEADER, Toolbox::decodeFromUtf8($title, 'windows-1252'), $options); $pdf->ezStream(); break; case self::PDF_OUTPUT_PORTRAIT: //pdf global $PDF_HEADER, $PDF_ARRAY; $pdf = new Cezpdf('a4', 'portrait'); $pdf->selectFont(GLPI_ROOT . "/lib/ezpdf/fonts/Helvetica.afm"); $nb = count($PDF_ARRAY); $tmptxt = sprintf(_n('%s item', '%s items', $nb), $nb); $pdf->ezStartPageNumbers(550, 10, 10, 'left', "GLPI PDF export - " . Html::convDate(date("Y-m-d")) . " - " . Toolbox::decodeFromUtf8($tmptxt, 'windows-1252') . " - {PAGENUM}/{TOTALPAGENUM}"); $options = array('fontSize' => 8, 'colGap' => 2, 'maxWidth' => 565, 'titleFontSize' => 8); $pdf->ezTable($PDF_ARRAY, $PDF_HEADER, Toolbox::decodeFromUtf8($title, 'windows-1252'), $options); $pdf->ezStream(); break; case self::SYLK_OUTPUT: //sylk global $SYLK_HEADER, $SYLK_ARRAY, $SYLK_SIZE; // largeurs des colonnes foreach ($SYLK_SIZE as $num => $val) { $out .= "F;W" . $num . " " . $num . " " . min(50, $val) . "\n"; } $out .= "\n"; // Header foreach ($SYLK_HEADER as $num => $val) { $out .= "F;SDM4;FG0C;" . ($num == 1 ? "Y1;" : "") . "X{$num}\n"; $out .= "C;N;K\"" . self::sylk_clean($val) . "\"\n"; $out .= "\n"; } // Datas foreach ($SYLK_ARRAY as $row => $tab) { foreach ($tab as $num => $val) { $out .= "F;P3;FG0L;" . ($num == 1 ? "Y" . $row . ";" : "") . "X{$num}\n"; $out .= "C;N;K\"" . self::sylk_clean($val) . "\"\n"; } } $out .= "E\n"; break; case self::CSV_OUTPUT: //csv break; default: $out = "</table></div>\n"; } return $out; }
/** * Creates a PDF document and sends this pricelist to the client * * Unfortunately, ezpdf does not return anything after printing the * document, so there's no way to tell whether it has succeeded. * Thus, you should not rely on the return value, except when it is * false -- in that case, loading of some data failed. * @return boolean False on failure, true on supposed success */ function send_as_pdf() { global $objInit, $_ARRAYLANG; if (!$this->load()) { return \Message::error($_ARRAYLANG['TXT_SHOP_PRICELIST_ERROR_LOADING']); } $objPdf = new \Cezpdf('A4'); $objPdf->setEncryption('', '', array('print')); $objPdf->selectFont(\Cx\Core\Core\Controller\Cx::instanciate()->getCodeBaseLibraryPath() . '/ezpdf/fonts/' . $this->font); $objPdf->ezSetMargins(0, 0, 0, 0); // Reset margins $objPdf->setLineStyle(0.5); $marginTop = 30; $biggerCountTop = $biggerCountBottom = 0; $arrHeaderLeft = $arrHeaderRight = $arrFooterLeft = $arrFooterRight = array(); if ($this->header) { // header should be shown $arrHeaderLeft = explode("\n", $this->header_left); $arrHeaderRight = explode("\n", $this->header_right); $countLeft = count($arrHeaderLeft); $countRight = count($arrHeaderRight); $biggerCountTop = $countLeft > $countRight ? $countLeft : $countRight; $marginTop = $biggerCountTop * 14 + 36; } // Bottom margin $marginBottom = 20; $arrFooterRight = array(); if ($this->footer) { // footer should be shown // Old, obsolete: $this->footer_left = str_replace('<--DATE-->', date(ASCMS_DATE_FORMAT_DATE, time()), $this->footer_left); $this->footer_right = str_replace('<--DATE-->', date(ASCMS_DATE_FORMAT_DATE, time()), $this->footer_right); // New: $this->footer_left = str_replace('[DATE]', date(ASCMS_DATE_FORMAT_DATE, time()), $this->footer_left); $this->footer_right = str_replace('[DATE]', date(ASCMS_DATE_FORMAT_DATE, time()), $this->footer_right); $arrFooterLeft = explode("\n", $this->footer_left); $arrFooterRight = explode("\n", $this->footer_right); $countLeft = count($arrFooterLeft); $countRight = count($arrFooterRight); $biggerCountBottom = $countLeft > $countRight ? $countLeft : $countRight; $marginBottom = $biggerCountBottom * 20 + 20; } // Borders if ($this->border) { $linesForAllPages = $objPdf->openObject(); $objPdf->saveState(); $objPdf->setStrokeColor(0, 0, 0, 1); $objPdf->rectangle(10, 10, 575.28, 821.89); $objPdf->restoreState(); $objPdf->closeObject(); $objPdf->addObject($linesForAllPages, 'all'); } // Header $headerArray = array(); $startpointY = 0; if ($this->header) { $objPdf->ezSetY(830); $headerForAllPages = $objPdf->openObject(); $objPdf->saveState(); for ($i = 0; $i < $biggerCountTop; ++$i) { $headerArray[$i] = array('left' => isset($arrHeaderLeft[$i]) ? $arrHeaderLeft[$i] : '', 'right' => isset($arrHeaderRight[$i]) ? $arrHeaderRight[$i] : ''); } $tempY = $objPdf->ezTable($headerArray, '', '', array('showHeadings' => 0, 'fontSize' => $this->font_size_header, 'shaded' => 0, 'width' => 540, 'showLines' => 0, 'xPos' => 'center', 'xOrientation' => 'center', 'cols' => array('right' => array('justification' => 'right')))); $tempY -= 5; if ($this->border) { $objPdf->setStrokeColor(0, 0, 0); $objPdf->line(10, $tempY, 585.28, $tempY); } $startpointY = $tempY - 5; $objPdf->restoreState(); $objPdf->closeObject(); $objPdf->addObject($headerForAllPages, 'all'); } // Footer $pageNumbersX = $pageNumbersY = $pageNumbersFont = 0; if ($this->footer) { $footerForAllPages = $objPdf->openObject(); $objPdf->saveState(); $tempY = $marginBottom - 5; if ($this->border) { $objPdf->setStrokeColor(0, 0, 0); $objPdf->line(10, $tempY, 585.28, $tempY); } // length of the longest word $longestWord = 0; foreach ($arrFooterRight as $line) { if ($longestWord < strlen($line)) { $longestWord = strlen($line); } } for ($i = $biggerCountBottom - 1; $i >= 0; --$i) { if (empty($arrFooterLeft[$i])) { $arrFooterLeft[$i] = ''; } if (empty($arrFooterRight[$i])) { $arrFooterRight[$i] = ''; } if ($arrFooterLeft[$i] == '<--PAGENUMBER-->' || $arrFooterLeft[$i] == '[PAGENUMBER]') { $pageNumbersX = 65; $pageNumbersY = $tempY - 18 - $i * $this->font_size_footer; $pageNumbersFont = $this->font_size_list; } else { $objPdf->addText(25, $tempY - 18 - $i * $this->font_size_footer, $this->font_size_footer, $arrFooterLeft[$i]); } if ($arrFooterRight[$i] == '<--PAGENUMBER-->' || $arrFooterRight[$i] == '[PAGENUMBER]') { $pageNumbersX = 595.28 - 25; $pageNumbersY = $tempY - 18 - $i * $this->font_size_footer; $pageNumbersFont = $this->font_size_list; } else { // Properly align right $width = $objPdf->getTextWidth($this->font_size_footer, $arrFooterRight[$i]); $objPdf->addText(595.28 - $width - 25, $tempY - 18 - $i * $this->font_size_footer, $this->font_size_footer, $arrFooterRight[$i]); } } $objPdf->restoreState(); $objPdf->closeObject(); $objPdf->addObject($footerForAllPages, 'all'); } // Page numbers if (isset($pageNumbersX)) { $objPdf->ezStartPageNumbers($pageNumbersX, $pageNumbersY, $pageNumbersFont, '', $_ARRAYLANG['TXT_SHOP_PRICELIST_FORMAT_PAGENUMBER'], 1); } // Margins $objPdf->ezSetMargins($marginTop, $marginBottom, 30, 30); // Product table if (isset($startpointY)) { $objPdf->ezSetY($startpointY); } $objInit->backendLangId = $this->lang_id; $_ARRAYLANG = $objInit->loadLanguageData('Shop'); Currency::setActiveCurrencyId($this->currency_id); $currency_symbol = Currency::getActiveCurrencySymbol(); $category_ids = $this->category_ids(); if ($category_ids == '*') { $category_ids = null; } $count = 1000; // Be sensible! // Pattern is "%" because all-empty parameters will result in an // empty array! $arrProduct = Products::getByShopParams($count, 0, null, $category_ids, null, '%', null, null, '`category_id` ASC, `name` ASC'); $arrCategoryName = ShopCategories::getNameArray(); $arrOutput = array(); foreach ($arrProduct as $product_id => $objProduct) { $categoryIds = explode(',', $objProduct->category_id()); $arrCategoryNames = array(); foreach ($categoryIds as $categoryId) { $arrCategoryNames[] = $arrCategoryName[$categoryId]; } //$objProduct = new Product(); $arrOutput[$product_id] = array('product_name' => self::decode($objProduct->name()), 'category_name' => self::decode(implode(', ', $arrCategoryNames)), 'product_code' => self::decode($objProduct->code()), 'product_id' => self::decode($objProduct->id()), 'price' => ($objProduct->discount_active() ? "S " . Currency::formatPrice($objProduct->discountprice()) : Currency::formatPrice($objProduct->price())) . ' ' . $currency_symbol); } $objPdf->ezTable($arrOutput, array('product_name' => '<b>' . self::decode($_ARRAYLANG['TXT_SHOP_PRODUCT_NAME']) . '</b>', 'category_name' => '<b>' . self::decode($_ARRAYLANG['TXT_SHOP_CATEGORY_NAME']) . '</b>', 'product_code' => '<b>' . self::decode($_ARRAYLANG['TXT_SHOP_PRODUCT_CODE']) . '</b>', 'product_id' => '<b>' . self::decode($_ARRAYLANG['TXT_ID']) . '</b>', 'price' => '<b>' . self::decode($_ARRAYLANG['TXT_SHOP_PRICE']) . '</b>'), '', array('showHeadings' => 1, 'fontSize' => $this->font_size_list, 'width' => 530, 'innerLineThickness' => 0.5, 'outerLineThickness' => 0.5, 'shaded' => 2, 'shadeCol' => array(hexdec(substr($this->row_color_1, 0, 2)) / 255, hexdec(substr($this->row_color_1, 2, 2)) / 255, hexdec(substr($this->row_color_1, 4, 2)) / 255), 'shadeCol2' => array(hexdec(substr($this->row_color_2, 0, 2)) / 255, hexdec(substr($this->row_color_2, 2, 2)) / 255, hexdec(substr($this->row_color_2, 4, 2)) / 255), 'cols' => array('product_name' => array('width' => 255), 'category_name' => array('width' => 130), 'product_code' => array('width' => 50), 'product_id' => array('width' => 40, 'justification' => 'right'), 'price' => array('width' => 55, 'justification' => 'right')))); $objPdf->ezStream(); // Never reached return true; }
function _print_prescription_old($p, &$toFile) { $pdf = new Cezpdf($GLOBALS['rx_paper_size']); $pdf->ezSetMargins($GLOBALS['rx_top_margin'], $GLOBALS['rx_bottom_margin'], $GLOBALS['rx_left_margin'], $GLOBALS['rx_right_margin']); $pdf->selectFont('Helvetica'); if (!empty($this->pconfig['logo'])) { $pdf->ezImage($this->pconfig['logo'], "", "", "none", "left"); } $pdf->ezText($p->get_prescription_display(), 10); if ($this->pconfig['use_signature']) { $pdf->ezImage($this->pconfig['signature'], "", "", "none", "left"); } else { $pdf->ezText("\n\n\n\nSignature:________________________________", 10); } if (!empty($toFile)) { $toFile = $pdf->ezOutput(); } else { $pdf->ezStream(); // $pdf->ezStream(array('compress' => 0)); // for testing with uncompressed output } return; }
function berechnung_anzeigen($leerstand_arr, $vermietete_arr, $monat, $jahr) { echo '<pre>'; // print_r($vermietete_arr); $anzahl_vermietete = count($vermietete_arr); $mv = new mietvertrag(); $m = new mietkonto(); $haeuser = array(); $gsollmiete_vermietet = 0; for ($a = 0; $a < $anzahl_vermietete; $a++) { $einheit_id = $vermietete_arr[$a]['EINHEIT_ID']; $haus_str = $vermietete_arr[$a]['HAUS_STRASSE']; $haus_nr = $vermietete_arr[$a]['HAUS_NUMMER']; $haus_str_nr = $haus_str . ' ' . $haus_nr; if (!in_array($haus_str_nr, $haeuser)) { $haeuser[] = $haus_str_nr; } $mv->get_mietvertrag_infos_aktuell($einheit_id); $summe_f_monatlich = $m->summe_forderung_monatlich($mv->mietvertrag_id, $monat, $jahr); $gsollmiete_vermietet = $gsollmiete_vermietet + $summe_f_monatlich; } $anzahl_leer = count($leerstand_arr); $gsollmiete_leer = 0; for ($b = 0; $b < $anzahl_leer; $b++) { $einheit_id = $leerstand_arr[$b]['EINHEIT_ID']; $haus_str = $leerstand_arr[$b]['HAUS_STRASSE']; $haus_nr = $leerstand_arr[$b]['HAUS_NUMMER']; $haus_str_nr = $haus_str . ' ' . $haus_nr; if (!in_array($haus_str_nr, $haeuser)) { $haeuser[] = $haus_str_nr; } $sollmiete_leer = $this->get_sollmiete_leerstand($einheit_id); $gsollmiete_leer = $gsollmiete_leer + $sollmiete_leer; } // print_r($haeuser); $g_summe = $gsollmiete_vermietet + $gsollmiete_leer; $g_summe_a = nummer_punkt2komma($g_summe); $gsollmiete_vermietet_a = nummer_punkt2komma($gsollmiete_vermietet); $gsollmiete_leer_a = nummer_punkt2komma($gsollmiete_leer); $v_geb = $g_summe / 100 * 5; $brutto_vgeb = $v_geb * 1.19; $mwst_eur = $v_geb / 100 * 19; $mwst_eur = nummer_punkt2komma($mwst_eur); $brutto_vgeb_a = nummer_punkt2komma($brutto_vgeb); $v_geb_a = nummer_punkt2komma($v_geb); if (!isset($_REQUEST['pdf'])) { echo "{$gsollmiete_vermietet_a} € GESAMT SOLL VERMIETET<br>"; echo "{$gsollmiete_leer_a} € GESAMT SOLL LEER<br>"; echo " {$g_summe_a} € GESAMT SOLL<br>"; echo " {$v_geb_a} € NETTO VERWALTERGEBÜHR 5%<br>"; echo " <b>{$brutto_vgeb_a} € INKL. 19% MWST VERWALTERGEBÜHR 5%</b><hr>"; } else { /* PDF AUSGABE */ ob_clean(); // ausgabepuffer leeren header("Content-type: application/pdf"); // wird von MSIE ignoriert //include_once ('pdfclass/class.ezpdf.php'); $pdf = new Cezpdf('a4', 'portrait'); $pdf->ezSetCmMargins(4.5, 1, 1, 1); $berlus_schrift = 'pdfclass/fonts/Times-Roman.afm'; $text_schrift = 'pdfclass/fonts/Arial.afm'; $pdf->addJpegFromFile('includes/logos/logo_hv_sw.jpg', 220, 750, 175, 100); // $pdf->addJpgFromFile('pdfclass/logo_262_150_sw1.jpg', 300, 500, 250, 150); $pdf->setLineStyle(0.5); $pdf->selectFont($berlus_schrift); $pdf->addText(42, 743, 6, "BERLUS HAUSVERWALTUNG - Fontanestr. 1 - 14193 Berlin"); $pdf->line(42, 750, 550, 750); $monatsname = monat2name($monat); $pdf->addText(42, 720, 12, "Berechnungsbogen für die Verwaltergebühr {$monatsname} {$jahr}"); $pdf->addText(42, 650, 10, "Gesamtsoll aus vermieteten Einheiten"); $pdf->addText(300, 650, 10, "{$gsollmiete_vermietet_a} €"); $pdf->addText(42, 635, 10, "Gesamtsoll aus leerstehenden Einheiten"); $pdf->addText(300, 635, 10, "{$gsollmiete_leer_a} €"); $pdf->setLineStyle(0.5); $pdf->line(42, 630, 350, 630); $pdf->addText(42, 620, 10, "<b>Gesamtsoll"); $pdf->addText(300, 620, 10, "{$g_summe_a} €</b>"); $pdf->addText(42, 595, 10, "5% Verwaltergebühr"); $pdf->addText(300, 595, 10, "{$v_geb_a} €"); $pdf->addText(42, 585, 10, "+ 19% MWSt"); $pdf->addText(300, 585, 10, "{$mwst_eur} €"); $pdf->setLineStyle(0.5); $pdf->line(42, 580, 350, 580); $pdf->addText(42, 570, 10, "<b>Verwaltergebühr brutto"); $pdf->addText(300, 570, 10, "{$brutto_vgeb_a} €</b>"); /* Häuser */ $pdf->addText(42, 480, 10, "In diese Berechnung wurden folgende Häuser einbezogen:"); $text_xpos = 460; for ($c = 0; $c < count($haeuser); $c++) { $haus = $haeuser[$c]; $pdf->addText(42, $text_xpos, 10, "<b>{$haus}</b>"); $text_xpos = $text_xpos - 10; if ($text_xpos == 100) { $pdf->ezNewPage(); $text_xpos = 650; $pdf->ezSetCmMargins(4.5, 1, 1, 1); $berlus_schrift = 'pdfclass/fonts/Times-Roman.afm'; $text_schrift = 'pdfclass/fonts/Arial.afm'; $pdf->addJpegFromFile('includes/logos/logo_hv_sw.jpg', 220, 750, 175, 100); // $pdf->addJpgFromFile('pdfclass/logo_262_150_sw.jpg', 450, 780, 100, 42); $pdf->setLineStyle(0.5); $pdf->selectFont($berlus_schrift); $pdf->addText(42, 743, 6, "BERLUS HAUSVERWALTUNG - Fontanestr. 1 - 14193 Berlin"); $pdf->line(42, 750, 550, 750); $pdf->addText(42, 720, 12, "Berechnungsbogen für die Verwaltergebühr {$monat}/{$jahr}"); } } $pdf->ezStream(); } }