From 2920d5d840ae4e466fe4e9172e603a40e06e6691 Mon Sep 17 00:00:00 2001 From: Grand Philippe Date: Wed, 7 Dec 2011 16:20:29 +0100 Subject: [PATCH] uniformize code --- .../doc/ModelePdfExpedition.class.php | 154 ------------------ .../doc/pdf_expedition_merou.modules.php | 2 +- .../doc/pdf_expedition_rouget.modules.php | 2 +- .../modules/expedition/modules_expedition.php | 139 +++++++++++++++- htdocs/expedition/fiche.php | 2 +- 5 files changed, 138 insertions(+), 161 deletions(-) delete mode 100644 htdocs/core/modules/expedition/doc/ModelePdfExpedition.class.php mode change 100755 => 100644 htdocs/core/modules/expedition/modules_expedition.php diff --git a/htdocs/core/modules/expedition/doc/ModelePdfExpedition.class.php b/htdocs/core/modules/expedition/doc/ModelePdfExpedition.class.php deleted file mode 100644 index 8b6fea4ae37..00000000000 --- a/htdocs/core/modules/expedition/doc/ModelePdfExpedition.class.php +++ /dev/null @@ -1,154 +0,0 @@ - - * Copyright (C) 2005-2011 Laurent Destailleur - * Copyright (C) 2005-2011 Regis Houssin - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * or see http://www.gnu.org/ - */ - -/** - * \file htdocs/core/modules/expedition/doc/ModelePdfExpedition.class.php - * \ingroup shipping - * \brief Fichier contenant la classe mere de generation des expeditions - */ -require_once(DOL_DOCUMENT_ROOT."/core/class/commondocgenerator.class.php"); - - -/** - * \class ModelePdfExpedition - * \brief Parent class of sending receipts models - */ -abstract class ModelePdfExpedition extends CommonDocGenerator -{ - var $error=''; - - - /** - * \brief Return list of active generation modules - * \param $db Database handler - */ - function liste_modeles($db) - { - global $conf; - - $type='shipping'; - $liste=array(); - - include_once(DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'); - $liste=getListOfModels($db,$type,''); - - return $liste; - } -} - - -/** - * Cree un bon d'expedition sur disque - * @param db objet base de donnee - * @param object object expedition - * @param modele force le modele a utiliser ('' to not force) - * @param outputlangs objet lang a utiliser pour traduction - * @return int <=0 if KO, >0 if OK - */ -function expedition_pdf_create($db, $object, $modele, $outputlangs) -{ - global $conf,$langs; - - $langs->load("sendings"); - - // Increase limit for PDF build - $err=error_reporting(); - error_reporting(0); - @set_time_limit(120); - error_reporting($err); - - $dir = "/core/modules/expedition/"; - $srctemplatepath=''; - - // Positionne le modele sur le nom du modele a utiliser - if (! dol_strlen($modele)) - { - if (! empty($conf->global->EXPEDITION_ADDON_PDF)) - { - $modele = $conf->global->EXPEDITION_ADDON_PDF; - } - else - { - $modele = 'rouget'; - } - } - - // If selected modele is a filename template (then $modele="modelname:filename") - $tmp=explode(':',$modele,2); - if (! empty($tmp[1])) - { - $modele=$tmp[0]; - $srctemplatepath=$tmp[1]; - } - - // Search template file - $file=''; $classname=''; $filefound=0; - foreach(array('doc','pdf') as $prefix) - { - $file = $prefix."_expedition_".$modele.".modules.php"; - - // On verifie l'emplacement du modele - $file = dol_buildpath($dir.'doc/'.$file); - - if (file_exists($file)) - { - $filefound=1; - $classname=$prefix.'_expedition_'.$modele; - break; - } - } - - // Charge le modele - if ($filefound) - { - require_once($file); - - $obj = new $classname($db); - - $result=$object->fetch_origin(); - - // 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($object, $outputlangs) > 0) - { - $outputlangs->charset_output=$sav_charset_output; - - // we delete preview files - //require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); - //dol_delete_preview($object); - return 1; - } - else - { - $outputlangs->charset_output=$sav_charset_output; - dol_syslog("Erreur dans expedition_pdf_create"); - dol_print_error($db,$obj->error); - return 0; - } - } - else - { - dol_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.$file)); - return -1; - } -} - -?> diff --git a/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php index 44c0d67a858..8e94f6c1c74 100644 --- a/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php @@ -24,7 +24,7 @@ * \brief Fichier de la classe permettant de generer les bordereaux envoi au modele Merou */ -require_once DOL_DOCUMENT_ROOT."/core/modules/expedition/doc/ModelePdfExpedition.class.php"; +require_once DOL_DOCUMENT_ROOT."/core/modules/expedition/modules_expedition.php"; require_once DOL_DOCUMENT_ROOT."/contact/class/contact.class.php"; require_once(DOL_DOCUMENT_ROOT."/core/lib/company.lib.php"); require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'); diff --git a/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php index cc4e3c716e8..e22e5e49dee 100644 --- a/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php @@ -24,7 +24,7 @@ * \brief Fichier de la classe permettant de generer les bordereaux envoi au modele Rouget */ -require_once DOL_DOCUMENT_ROOT."/core/modules/expedition/doc/ModelePdfExpedition.class.php"; +require_once DOL_DOCUMENT_ROOT."/core/modules/expedition/expedition/modules_expedition.php"; require_once(DOL_DOCUMENT_ROOT."/core/lib/company.lib.php"); require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'); diff --git a/htdocs/core/modules/expedition/modules_expedition.php b/htdocs/core/modules/expedition/modules_expedition.php old mode 100755 new mode 100644 index c169f90f162..3d4ba8e3e6d --- a/htdocs/core/modules/expedition/modules_expedition.php +++ b/htdocs/core/modules/expedition/modules_expedition.php @@ -5,6 +5,7 @@ * Copyright (C) 2005-2011 Regis Houssin * Copyright (C) 2006 Andre Cianfarani * Copyright (C) 2011 Juanjo Menent + * Copyright (C) 2011 Philippe Grand * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,14 +27,47 @@ * \ingroup expedition * \brief File of class to manage expedition numbering */ + require_once(DOL_DOCUMENT_ROOT."/core/class/commondocgenerator.class.php"); -class ModelNumRefExpedition + /** + * \class ModelePdfExpedition + * \brief Parent class of sending receipts models + */ +abstract class ModelePdfExpedition extends CommonDocGenerator +{ + var $error=''; + + + /** + * \brief Return list of active generation modules + * \param $db Database handler + */ + function liste_modeles($db) + { + global $conf; + + $type='shipping'; + $liste=array(); + + include_once(DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'); + $liste=getListOfModels($db,$type,''); + + return $liste; + } +} + + +/** + * \class ModelNumRefExpedition + * \brief Classe mere des modeles de numerotation des references d expedition + */ +abstract class ModelNumRefExpedition { var $error=''; - /** - * Return if a module can be used or not - * @return boolean true if module can be used + /** Return if a module can be used or not + * + * @return boolean true if module can be used */ function isEnabled() { @@ -96,4 +130,101 @@ class ModelNumRefExpedition return $langs->trans("NotAvailable"); } } + +/** + * Cree un bon d'expedition sur disque + * @param db objet base de donnee + * @param object object expedition + * @param modele force le modele a utiliser ('' to not force) + * @param outputlangs objet lang a utiliser pour traduction + * @return int <=0 if KO, >0 if OK + */ +function expedition_pdf_create($db, $object, $modele, $outputlangs) +{ + global $conf,$langs; + + $langs->load("sendings"); + + // Increase limit for PDF build + $err=error_reporting(); + error_reporting(0); + @set_time_limit(120); + error_reporting($err); + + $dir = "/core/modules/expedition/"; + $srctemplatepath=''; + + // Positionne le modele sur le nom du modele a utiliser + if (! dol_strlen($modele)) + { + if (! empty($conf->global->EXPEDITION_ADDON_PDF)) + { + $modele = $conf->global->EXPEDITION_ADDON_PDF; + } + else + { + $modele = 'rouget'; + } + } + + // If selected modele is a filename template (then $modele="modelname:filename") + $tmp=explode(':',$modele,2); + if (! empty($tmp[1])) + { + $modele=$tmp[0]; + $srctemplatepath=$tmp[1]; + } + + // Search template file + $file=''; $classname=''; $filefound=0; + foreach(array('doc','pdf') as $prefix) + { + $file = $prefix."_expedition_".$modele.".modules.php"; + + // On verifie l'emplacement du modele + $file = dol_buildpath($dir.'doc/'.$file); + + if (file_exists($file)) + { + $filefound=1; + $classname=$prefix.'_expedition_'.$modele; + break; + } + } + + // Charge le modele + if ($filefound) + { + require_once($file); + + $obj = new $classname($db); + + $result=$object->fetch_origin(); + + // 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($object, $outputlangs) > 0) + { + $outputlangs->charset_output=$sav_charset_output; + + // we delete preview files + //require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); + //dol_delete_preview($object); + return 1; + } + else + { + $outputlangs->charset_output=$sav_charset_output; + dol_syslog("Erreur dans expedition_pdf_create"); + dol_print_error($db,$obj->error); + return 0; + } + } + else + { + dol_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.$file)); + return -1; + } +} ?> diff --git a/htdocs/expedition/fiche.php b/htdocs/expedition/fiche.php index 99f3faddf0a..8c87face017 100644 --- a/htdocs/expedition/fiche.php +++ b/htdocs/expedition/fiche.php @@ -33,7 +33,7 @@ require_once(DOL_DOCUMENT_ROOT."/core/class/html.formfile.class.php"); require_once(DOL_DOCUMENT_ROOT."/product/class/html.formproduct.class.php"); require_once(DOL_DOCUMENT_ROOT."/core/lib/product.lib.php"); require_once(DOL_DOCUMENT_ROOT."/core/lib/sendings.lib.php"); -require_once(DOL_DOCUMENT_ROOT."/core/modules/expedition/doc/ModelePdfExpedition.class.php"); +require_once(DOL_DOCUMENT_ROOT."/core/modules/expedition/modules_expedition.php"); if ($conf->product->enabled || $conf->service->enabled) require_once(DOL_DOCUMENT_ROOT."/product/class/product.class.php"); if ($conf->propal->enabled) require_once(DOL_DOCUMENT_ROOT."/comm/propal/class/propal.class.php"); if ($conf->commande->enabled) require_once(DOL_DOCUMENT_ROOT."/commande/class/commande.class.php");