diff --git a/htdocs/adherents/cartes/carte.php b/htdocs/adherents/cartes/carte.php index dc1b6563c53..b5e4efaec16 100644 --- a/htdocs/adherents/cartes/carte.php +++ b/htdocs/adherents/cartes/carte.php @@ -190,7 +190,7 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg { $mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("DescADHERENT_ETIQUETTE_TYPE")); } - if (! $mesg) $result=members_label_pdf_create($db, $arrayofmembers, $modellabel, $outputlangs); + if (! $mesg) $result=doc_label_pdf_create($db, $arrayofmembers, $modellabel, $outputlangs); } if ($result <= 0) diff --git a/htdocs/barcode/printsheet.php b/htdocs/barcode/printsheet.php index bb3934625b6..01e969fc927 100644 --- a/htdocs/barcode/printsheet.php +++ b/htdocs/barcode/printsheet.php @@ -145,7 +145,9 @@ if ($action == 'builddoc') // Load barcode class for generating barcode image $classname = "mod".ucfirst($generator); $module = new $classname($db); - if ($generator != 'tcpdfbarcode') { + if ($generator != 'tcpdfbarcode') + { + // May be phpbarcode $template = 'standardlabel'; $is2d = false; if ($module->encodingIsSupported($encoding)) @@ -153,12 +155,12 @@ if ($action == 'builddoc') $barcodeimage=$conf->barcode->dir_temp.'/barcode_'.$code.'_'.$encoding.'.png'; dol_delete_file($barcodeimage); // File is created with full name $barcodeimage = $conf->barcode->dir_temp.'/barcode_'.$code.'_'.$encoding.'.png'; - $result=$module->writeBarCode($code,$encoding,'Y',4); - + $result=$module->writeBarCode($code,$encoding,'Y',4,1); if ($result <= 0 || ! dol_is_file($barcodeimage)) { $error++; setEventMessages('Failed to generate image file of barcode for code='.$code.' encoding='.$encoding.' file='.basename($barcodeimage), null, 'errors'); + setEventMessages($module->error, null, 'errors'); } } else @@ -207,7 +209,7 @@ if ($action == 'builddoc') for ($i=0; $i < $numberofsticker; $i++) { - $arrayofmembers[]=array( + $arrayofrecords[]=array( 'textleft'=>$textleft, 'textheader'=>$textheader, 'textfooter'=>$textfooter, @@ -226,7 +228,7 @@ if ($action == 'builddoc') // Build and output PDF if ($mode == 'label') { - if (! count($arrayofmembers)) + if (! count($arrayofrecords)) { $mesg=$langs->trans("ErrorRecordNotFound"); } @@ -234,7 +236,7 @@ if ($action == 'builddoc') { $mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("DescADHERENT_ETIQUETTE_TYPE")); } - if (! $mesg) $result=members_label_pdf_create($db, $arrayofmembers, $modellabel, $outputlangs, $diroutput, $template); + if (! $mesg) $result=doc_label_pdf_create($db, $arrayofrecords, $modellabel, $outputlangs, $diroutput, $template, 'tmp_barcode_sheet.pdf'); } if ($result <= 0) @@ -283,10 +285,13 @@ print '
'; print '
'; print $langs->trans("DescADHERENT_ETIQUETTE_TYPE").'   '; print '
'; -// List of possible labels (defined into $_Avery_Labels variable set into format_cards.lib.php) +// List of possible labels (defined into $_Avery_Labels variable set into core/lib/format_cards.lib.php) $arrayoflabels=array(); foreach(array_keys($_Avery_Labels) as $codecards) { + $labeltoshow=$_Avery_Labels[$codecards]['name']; + //$labeltoshow.=' ('.$_Avery_Labels[$row['code']]['paper-size'].')'; + $arrayoflabels[$codecards]=$labeltoshow; $arrayoflabels[$codecards]=$_Avery_Labels[$codecards]['name']; } print $form->selectarray('modellabel',$arrayoflabels,(GETPOST('modellabel')?GETPOST('modellabel'):$conf->global->ADHERENT_ETIQUETTE_TYPE),1,0,0); diff --git a/htdocs/core/lib/barcode.lib.php b/htdocs/core/lib/barcode.lib.php index eaaa6f349c4..6fa6b55151e 100644 --- a/htdocs/core/lib/barcode.lib.php +++ b/htdocs/core/lib/barcode.lib.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2004-2016 Laurent Destailleur * Copyright (C) 2004-2010 Folke Ashberg: Some lines of code were inspired from work * of Folke Ashberg into PHP-Barcode 0.3pl2, available as GPL * source code at http://www.ashberg.de/bar. @@ -59,21 +59,20 @@ else $genbarcode_loc = $conf->global->GENBARCODE_LOCATION; /** * Print barcode * - * @param string $code Code - * @param string $encoding Encoding - * @param integer $scale Scale - * @param string $mode 'png' or 'jpg' ... - * @return array $bars array('encoding': the encoding which has been used, 'bars': the bars, 'text': text-positioning info) + * @param string $code Code + * @param string $encoding Encoding + * @param integer $scale Scale + * @param string $mode 'png' or 'jpg' ... + * @return array|string $bars array('encoding': the encoding which has been used, 'bars': the bars, 'text': text-positioning info) or string with error message */ function barcode_print($code, $encoding="ANY", $scale = 2 ,$mode = "png") { - // DOLCHANGE LDR Add log dol_syslog("barcode.lib.php::barcode_print $code $encoding $scale $mode"); $bars=barcode_encode($code,$encoding); if (! $bars || ! empty($bars['error'])) { - // DOLCHANGE LDR Return error message instead of array + // Return error message instead of array if (empty($bars['error'])) $error='Bad Value '.$code.' for encoding '.$encoding; else $error=$bars['error']; dol_syslog('barcode.lib.php::barcode_print '.$error, LOG_ERR); diff --git a/htdocs/core/lib/format_cards.lib.php b/htdocs/core/lib/format_cards.lib.php index f86468aeb9f..7e89946d471 100644 --- a/htdocs/core/lib/format_cards.lib.php +++ b/htdocs/core/lib/format_cards.lib.php @@ -34,26 +34,34 @@ global $_Avery_Labels; $sql = "SELECT rowid, code, name, paper_size, orientation, metric, leftmargin, topmargin, nx, ny, spacex, spacey, width, height, font_size, custom_x, custom_y, active FROM ".MAIN_DB_PREFIX."c_format_cards WHERE active=1 ORDER BY code ASC"; $resql = $db->query($sql); -while ($row = $db->fetch_array($resql)) { - $_Avery_Labels[$row['code']]['name']=$row['name']; - $_Avery_Labels[$row['code']]['paper-size']=$row['paper_size']; - $_Avery_Labels[$row['code']]['orientation']=$row['orientation']; - $_Avery_Labels[$row['code']]['metric']=$row['metric']; - $_Avery_Labels[$row['code']]['marginLeft']=$row['leftmargin']; - $_Avery_Labels[$row['code']]['marginTop']=$row['topmargin']; - $_Avery_Labels[$row['code']]['marginTop']=$row['topmargin']; - $_Avery_Labels[$row['code']]['NX']=$row['nx']; - $_Avery_Labels[$row['code']]['NY']=$row['ny']; - $_Avery_Labels[$row['code']]['SpaceX']=$row['spacex']; - $_Avery_Labels[$row['code']]['SpaceY']=$row['spacey']; - $_Avery_Labels[$row['code']]['width']=$row['width']; - $_Avery_Labels[$row['code']]['height']=$row['height']; - $_Avery_Labels[$row['code']]['font-size']=$row['font_size']; - $_Avery_Labels[$row['code']]['custom_x']=$row['custom_x']; - $_Avery_Labels[$row['code']]['custom_y']=$row['custom_y']; +if ($resql) +{ + while ($row = $db->fetch_array($resql)) + { + $_Avery_Labels[$row['code']]['name']=$row['name']; + $_Avery_Labels[$row['code']]['paper-size']=$row['paper_size']; + $_Avery_Labels[$row['code']]['orientation']=$row['orientation']; + $_Avery_Labels[$row['code']]['metric']=$row['metric']; + $_Avery_Labels[$row['code']]['marginLeft']=$row['leftmargin']; + $_Avery_Labels[$row['code']]['marginTop']=$row['topmargin']; + $_Avery_Labels[$row['code']]['marginTop']=$row['topmargin']; + $_Avery_Labels[$row['code']]['NX']=$row['nx']; + $_Avery_Labels[$row['code']]['NY']=$row['ny']; + $_Avery_Labels[$row['code']]['SpaceX']=$row['spacex']; + $_Avery_Labels[$row['code']]['SpaceY']=$row['spacey']; + $_Avery_Labels[$row['code']]['width']=$row['width']; + $_Avery_Labels[$row['code']]['height']=$row['height']; + $_Avery_Labels[$row['code']]['font-size']=$row['font_size']; + $_Avery_Labels[$row['code']]['custom_x']=$row['custom_x']; + $_Avery_Labels[$row['code']]['custom_y']=$row['custom_y']; + } +} +else +{ + dol_print_error($db); } -// we add characteristics to the name +// We add characteristics to the name foreach($_Avery_Labels as $key => $val) { $_Avery_Labels[$key]['name'].=' ('.$_Avery_Labels[$key]['paper-size'].' - '.$_Avery_Labels[$key]['NX'].'x'.$_Avery_Labels[$key]['NY'].')'; diff --git a/htdocs/core/modules/barcode/doc/phpbarcode.modules.php b/htdocs/core/modules/barcode/doc/phpbarcode.modules.php index 8f76595bf88..d04c6a70c04 100644 --- a/htdocs/core/modules/barcode/doc/phpbarcode.modules.php +++ b/htdocs/core/modules/barcode/doc/phpbarcode.modules.php @@ -105,13 +105,14 @@ class modPhpbarcode extends ModeleBarCode /** * Return an image file on the fly (no need to write on disk) * - * @param string $code Value to encode - * @param string $encoding Mode of encoding - * @param string $readable Code can be read - * @param integer $scale Scale - * @return int <0 if KO, >0 if OK + * @param string $code Value to encode + * @param string $encoding Mode of encoding + * @param string $readable Code can be read + * @param integer $scale Scale + * @param integer $nooutputiferror No output if error + * @return int <0 if KO, >0 if OK */ - function buildBarCode($code,$encoding,$readable='Y',$scale=1) + function buildBarCode($code,$encoding,$readable='Y',$scale=1,$nooutputiferror=0) { global $_GET,$_SERVER; global $conf; @@ -135,7 +136,7 @@ class modPhpbarcode extends ModeleBarCode if (! is_array($result)) { $this->error=$result; - print $this->error; + if (empty($nooutputiferror)) print $this->error; return -1; } @@ -145,13 +146,14 @@ class modPhpbarcode extends ModeleBarCode /** * Save an image file on disk (with no output) * - * @param string $code Value to encode - * @param string $encoding Mode of encoding - * @param string $readable Code can be read - * @param integer $scale Scale - * @return int <0 if KO, >0 if OK + * @param string $code Value to encode + * @param string $encoding Mode of encoding + * @param string $readable Code can be read + * @param integer $scale Scale + * @param integer $nooutputiferror No output if error + * @return int <0 if KO, >0 if OK */ - function writeBarCode($code,$encoding,$readable='Y',$scale=1) + function writeBarCode($code,$encoding,$readable='Y',$scale=1,$nooutputiferror=0) { global $conf,$filebarcode; @@ -161,7 +163,7 @@ class modPhpbarcode extends ModeleBarCode $filebarcode=$file; // global var to be used in barcode_outimage called by barcode_print in buildBarCode - $result=$this->buildBarCode($code,$encoding,$readable,$scale); + $result=$this->buildBarCode($code,$encoding,$readable,$scale,$nooutputiferror); return $result; } diff --git a/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php b/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php index eb1b801821b..47912c47c20 100644 --- a/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php +++ b/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php @@ -89,12 +89,14 @@ class modTcpdfbarcode extends ModeleBarCode /** * Return an image file on the fly (no need to write on disk) * - * @param String $code Value to encode - * @param String $encoding Mode of encoding - * @param String $readable Code can be read - * @return int <0 if KO, >0 if OK + * @param string $code Value to encode + * @param string $encoding Mode of encoding + * @param string $readable Code can be read + * @param integer $scale Scale (not used with this engine) + * @param integer $nooutputiferror No output if error (not used with this engine) + * @return int <0 if KO, >0 if OK */ - function buildBarCode($code,$encoding,$readable='Y') + function buildBarCode($code,$encoding,$readable='Y',$scale=1,$nooutputiferror=0) { global $_GET; @@ -134,12 +136,14 @@ class modTcpdfbarcode extends ModeleBarCode /** * Save an image file on disk (with no output) * - * @param String $code Value to encode - * @param String $encoding Mode of encoding - * @param String $readable Code can be read - * @return int <0 if KO, >0 if OK + * @param string $code Value to encode + * @param string $encoding Mode of encoding + * @param string $readable Code can be read + * @param integer $scale Scale (not used with this engine) + * @param integer $nooutputiferror No output if error (not used with this engine) + * @return int <0 if KO, >0 if OK */ - function writeBarCode($code,$encoding,$readable='Y') + function writeBarCode($code,$encoding,$readable='Y',$scale=1,$nooutputiferror=0) { global $conf,$_GET; diff --git a/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php index 09dfe2efe5e..5fce4c63a51 100644 --- a/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php +++ b/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php @@ -231,9 +231,10 @@ class pdf_standardlabel extends CommonStickerGenerator * @param Translate $outputlangs Lang object for output language * @param string $srctemplatepath Full path of source filename for generator using a template file * @param string $outputdir Output directory for pdf file + * @param string $filename Short file name of PDF output file * @return int 1=OK, 0=KO */ - function write_file($arrayofrecords,$outputlangs,$srctemplatepath,$outputdir='') + function write_file($arrayofrecords,$outputlangs,$srctemplatepath,$outputdir='',$filename='tmp_address_sheet.pdf') { global $user,$conf,$langs,$mysoc,$_Avery_Labels; @@ -263,7 +264,6 @@ class pdf_standardlabel extends CommonStickerGenerator $keywords=$title." ".$outputlangs->convToOutputCharset($mysoc->name); $dir = (empty($outputdir)?$conf->adherent->dir_temp:$outputdir); - $filename='tmp_address_sheet.pdf'; $file = $dir."/".$filename; if (! file_exists($dir)) diff --git a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php index 2089cf6e0b9..4605b81de5e 100644 --- a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php +++ b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php @@ -272,9 +272,10 @@ class pdf_tcpdflabel extends CommonStickerGenerator * @param Translate $outputlangs Lang object for output language * @param string $srctemplatepath Full path of source filename for generator using a template file * @param string $outputdir Output directory for pdf file + * @param string $filename Short file name of PDF output file * @return int 1=OK, 0=KO */ - function write_file($arrayofrecords,$outputlangs,$srctemplatepath,$outputdir='') + function write_file($arrayofrecords,$outputlangs,$srctemplatepath,$outputdir='',$filename='tmp_address_sheet.pdf') { global $user,$conf,$langs,$mysoc,$_Avery_Labels; @@ -304,7 +305,6 @@ class pdf_tcpdflabel extends CommonStickerGenerator $keywords=$title." ".$outputlangs->convToOutputCharset($mysoc->name); $dir = (empty($outputdir)?$conf->adherent->dir_temp:$outputdir); - $filename='tmp_address_sheet.pdf'; $file = $dir."/".$filename; if (! file_exists($dir)) diff --git a/htdocs/core/modules/printsheet/modules_labels.php b/htdocs/core/modules/printsheet/modules_labels.php index 1b077f8eab5..bac32ec45d2 100644 --- a/htdocs/core/modules/printsheet/modules_labels.php +++ b/htdocs/core/modules/printsheet/modules_labels.php @@ -60,7 +60,7 @@ class ModelePDFLabels /** - * Create a document onto disk accordign to template module + * Create a document onto disk according to template module. * * @param DoliDB $db Database handler * @param array $arrayofrecords Array of records @@ -68,9 +68,10 @@ class ModelePDFLabels * @param Translate $outputlangs Objet lang a utiliser pour traduction * @param string $outputdir Output directory * @param string $template pdf generenate document class to use default 'standardlabel' + * @param string $filename Short file name of PDF output file * @return int <0 if KO, >0 if OK */ -function members_label_pdf_create($db, $arrayofrecords, $modele, $outputlangs, $outputdir='', $template='standardlabel') +function doc_label_pdf_create($db, $arrayofrecords, $modele, $outputlangs, $outputdir='', $template='standardlabel', $filename='tmp_address_sheet.pdf') { global $conf,$langs; $langs->load("members"); @@ -109,6 +110,8 @@ function members_label_pdf_create($db, $arrayofrecords, $modele, $outputlangs, $ } else $srctemplatepath=$code; + dol_syslog("modele=".$modele." outputdir=".$outputdir." template=".$template." code=".$code." srctemplatepath=".$srctemplatepath." filename=".$filename, LOG_DEBUG); + // Search template files $file=''; $classname=''; $filefound=0; $dirmodels=array('/'); @@ -141,7 +144,7 @@ function members_label_pdf_create($db, $arrayofrecords, $modele, $outputlangs, $ // We save charset_output to restore it because write_file can change it if needed for // output format that does not support UTF8. $sav_charset_output=$outputlangs->charset_output; - if ($obj->write_file($arrayofrecords, $outputlangs, $srctemplatepath, $outputdir) > 0) + if ($obj->write_file($arrayofrecords, $outputlangs, $srctemplatepath, $outputdir, $filename) > 0) { $outputlangs->charset_output=$sav_charset_output; return 1; @@ -149,7 +152,7 @@ function members_label_pdf_create($db, $arrayofrecords, $modele, $outputlangs, $ else { $outputlangs->charset_output=$sav_charset_output; - dol_print_error($db,"members_label_pdf_create Error: ".$obj->error); + dol_print_error($db,"doc_label_pdf_create Error: ".$obj->error); return -1; } }