Initial Commit
This commit is contained in:
@@ -0,0 +1,152 @@
|
||||
<?php
|
||||
|
||||
use Fpdf\Fpdf;
|
||||
|
||||
class Zend_Controller_Action_Helper_Pdf extends Zend_Controller_Action_Helper_Abstract {
|
||||
|
||||
protected $_dataHelper;
|
||||
|
||||
public function init() {
|
||||
define('EURO', chr(128));
|
||||
$this -> _dataHelper = $this -> getActionController() -> getHelper('ExtractData');
|
||||
}
|
||||
|
||||
public function creaPdf($row,$articolo, $filename) {
|
||||
/////////////////////////////////////////////////////////
|
||||
|
||||
// operazioni preliminari fattorizzate in questo punto del codice
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
|
||||
$font = "Arial";
|
||||
|
||||
$font_size = 10;
|
||||
|
||||
$pdf = new Fpdf();
|
||||
|
||||
$pdf -> AddPage();
|
||||
|
||||
$pdf -> SetFillColor(238, 238, 238);
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
|
||||
// Logo aziendale
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
|
||||
// col seguente codice siamo in grado di eseguire correttamente sia girando come ADMIN che come Utente (sia in modalità acquisto che reinvio-fatture)
|
||||
try{
|
||||
if ($row['nome_logo'] && file_exists("public/front/img/".$row['nome_logo'])) {
|
||||
if ($row['nome_logo'] == 'IntestazioneFattura.jpg') {
|
||||
$pdf->Image("public/front/img/" . $row['nome_logo'], 10, 5, 80, 60);
|
||||
} else {
|
||||
$pdf->Image("public/front/img/" . $row['nome_logo'], 10, 10, 80, 60);
|
||||
}
|
||||
}else{
|
||||
$pdf -> Image("public/front/img/IntestazioneFattura2.jpg", 10, 10, 80, 60);
|
||||
}
|
||||
}catch(Exception $e){
|
||||
$pdf -> Image("public/front/img/IntestazioneFattura2.jpg", 10, 10, 80, 60);
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
|
||||
// recupero dati
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
|
||||
// FINE
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
|
||||
$pdf -> Output($filename, "F");
|
||||
@chmod(0777, $filename);
|
||||
|
||||
return $filename;
|
||||
}
|
||||
|
||||
private function printEuro($x) {
|
||||
setlocale(LC_MONETARY, 'it_IT');
|
||||
$x = $this -> money_format('%.2n', $x + 0);
|
||||
$x = str_replace("EUR", EURO, $x);
|
||||
$x = trim($x);
|
||||
return $x;
|
||||
}
|
||||
|
||||
private function money_format($format, $number) {
|
||||
$regex = '/%((?:[\^!\-]|\+|\(|\=.)*)([0-9]+)?' . '(?:#([0-9]+))?(?:\.([0-9]+))?([in%])/';
|
||||
if (setlocale(LC_MONETARY, 0) == 'C') {
|
||||
setlocale(LC_MONETARY, '');
|
||||
}
|
||||
$locale = localeconv();
|
||||
preg_match_all($regex, $format, $matches, PREG_SET_ORDER);
|
||||
foreach ($matches as $fmatch) {
|
||||
$value = floatval($number);
|
||||
$flags = array('fillchar' => preg_match('/\=(.)/', $fmatch[1], $match) ? $match[1] : ' ', 'nogroup' => preg_match('/\^/', $fmatch[1]) > 0, 'usesignal' => preg_match('/\+|\(/', $fmatch[1], $match) ? $match[0] : '+', 'nosimbol' => preg_match('/\!/', $fmatch[1]) > 0, 'isleft' => preg_match('/\-/', $fmatch[1]) > 0);
|
||||
$width = trim($fmatch[2]) ? (int)$fmatch[2] : 0;
|
||||
$left = trim($fmatch[3]) ? (int)$fmatch[3] : 0;
|
||||
$right = trim($fmatch[4]) ? (int)$fmatch[4] : $locale['int_frac_digits'];
|
||||
$conversion = $fmatch[5];
|
||||
|
||||
$positive = true;
|
||||
if ($value < 0) {
|
||||
$positive = false;
|
||||
$value *= -1;
|
||||
}
|
||||
$letter = $positive ? 'p' : 'n';
|
||||
|
||||
$prefix = $suffix = $cprefix = $csuffix = $signal = '';
|
||||
|
||||
$signal = $positive ? $locale['positive_sign'] : $locale['negative_sign'];
|
||||
switch (true) {
|
||||
case $locale["{$letter}_sign_posn"] == 1 && $flags['usesignal'] == '+' :
|
||||
$prefix = $signal;
|
||||
break;
|
||||
case $locale["{$letter}_sign_posn"] == 2 && $flags['usesignal'] == '+' :
|
||||
$suffix = $signal;
|
||||
break;
|
||||
case $locale["{$letter}_sign_posn"] == 3 && $flags['usesignal'] == '+' :
|
||||
$cprefix = $signal;
|
||||
break;
|
||||
case $locale["{$letter}_sign_posn"] == 4 && $flags['usesignal'] == '+' :
|
||||
$csuffix = $signal;
|
||||
break;
|
||||
case $flags['usesignal'] == '(' :
|
||||
case $locale["{$letter}_sign_posn"] == 0 :
|
||||
$prefix = '(';
|
||||
$suffix = ')';
|
||||
break;
|
||||
}
|
||||
if (!$flags['nosimbol']) {
|
||||
$currency = $cprefix . ($conversion == 'i' ? $locale['int_curr_symbol'] : $locale['currency_symbol']) . $csuffix;
|
||||
} else {
|
||||
$currency = '';
|
||||
}
|
||||
$space = $locale["{$letter}_sep_by_space"] ? ' ' : '';
|
||||
|
||||
$value = number_format($value, $right, $locale['mon_decimal_point'], $flags['nogroup'] ? '' : $locale['mon_thousands_sep']);
|
||||
$value = @explode($locale['mon_decimal_point'], $value);
|
||||
|
||||
$n = strlen($prefix) + strlen($currency) + strlen($value[0]);
|
||||
if ($left > 0 && $left > $n) {
|
||||
$value[0] = str_repeat($flags['fillchar'], $left - $n) . $value[0];
|
||||
}
|
||||
$value = implode($locale['mon_decimal_point'], $value);
|
||||
if ($locale["{$letter}_cs_precedes"]) {
|
||||
$value = $prefix . $currency . $space . $value . $suffix;
|
||||
} else {
|
||||
$value = $prefix . $value . $space . $currency . $suffix;
|
||||
}
|
||||
if ($width > 0) {
|
||||
$value = str_pad($value, $width, $flags['fillchar'], $flags['isleft'] ? STR_PAD_RIGHT : STR_PAD_LEFT);
|
||||
}
|
||||
|
||||
$format = str_replace($fmatch[0], $value, $format);
|
||||
}
|
||||
return $format;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user