diff --git a/htdocs/admin/expedition.php b/htdocs/admin/expedition.php index 2719ef96b6d2668c7c808adf1c788da7f630470a..217b920b8c3f72157634a7321e60c79c9aad7e08 100644 --- a/htdocs/admin/expedition.php +++ b/htdocs/admin/expedition.php @@ -58,7 +58,7 @@ if ($action == 'specimen') //$exp->fetch_commande(); // Charge le modele - $dir = DOL_DOCUMENT_ROOT . "/core/modules/expedition/pdf/"; + $dir = DOL_DOCUMENT_ROOT . "/core/modules/expedition/doc/"; $file = "pdf_expedition_".$modele.".modules.php"; if (file_exists($dir.$file)) { @@ -483,7 +483,7 @@ clearstatcache(); foreach ($conf->file->dol_document_root as $dirroot) { - $dir = $dirroot . "/core/modules/expedition/pdf/"; + $dir = $dirroot . "/core/modules/expedition/doc/"; if (is_dir($dir)) { diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index 52c68848b15687663fa67b40504ba6d9274d88a1..2b9e28c07a9a98e1da5f3f73f35a5d65e628e092 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -247,7 +247,7 @@ class FormFile if (is_array($genallowed)) $modellist=$genallowed; else { - include_once(DOL_DOCUMENT_ROOT.'/core/modules/expedition/pdf/ModelePdfExpedition.class.php'); + include_once(DOL_DOCUMENT_ROOT.'/core/modules/expedition/doc/ModelePdfExpedition.class.php'); $modellist=ModelePDFExpedition::liste_modeles($this->db); } } diff --git a/htdocs/core/modules/expedition/pdf/ModelePdfExpedition.class.php b/htdocs/core/modules/expedition/doc/ModelePdfExpedition.class.php similarity index 65% rename from htdocs/core/modules/expedition/pdf/ModelePdfExpedition.class.php rename to htdocs/core/modules/expedition/doc/ModelePdfExpedition.class.php index 2ba0f1883b853ea444145b01e8a5d06af800f0f5..8b6fea4ae37013a4f5418805aba551e681e6e240 100644 --- a/htdocs/core/modules/expedition/pdf/ModelePdfExpedition.class.php +++ b/htdocs/core/modules/expedition/doc/ModelePdfExpedition.class.php @@ -19,7 +19,7 @@ */ /** - * \file htdocs/core/modules/expedition/pdf/ModelePdfExpedition.class.php + * \file htdocs/core/modules/expedition/doc/ModelePdfExpedition.class.php * \ingroup shipping * \brief Fichier contenant la classe mere de generation des expeditions */ @@ -65,46 +65,60 @@ abstract class ModelePdfExpedition extends CommonDocGenerator function expedition_pdf_create($db, $object, $modele, $outputlangs) { global $conf,$langs; - $langs->load("sendings"); - $dir = "/core/modules/expedition/pdf/"; - $modelisok=0; + $langs->load("sendings"); - // Positionne modele sur le nom du modele de commande a utiliser - $file = "pdf_expedition_".$modele.".modules.php"; + // Increase limit for PDF build + $err=error_reporting(); + error_reporting(0); + @set_time_limit(120); + error_reporting($err); - // On verifie l'emplacement du modele - $file = dol_buildpath($dir.$file); + $dir = "/core/modules/expedition/"; + $srctemplatepath=''; - if ($modele && file_exists($file)) $modelisok=1; + // 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'; + } + } - // Si model pas encore bon - if (! $modelisok) + // If selected modele is a filename template (then $modele="modelname:filename") + $tmp=explode(':',$modele,2); + if (! empty($tmp[1])) { - if ($conf->global->EXPEDITION_ADDON_PDF) $modele = $conf->global->EXPEDITION_ADDON_PDF; - $file = "pdf_expedition_".$modele.".modules.php"; - // On verifie l'emplacement du modele - $file = dol_buildpath($dir.$file); - if (file_exists($file)) $modelisok=1; - } + $modele=$tmp[0]; + $srctemplatepath=$tmp[1]; + } - // Si model pas encore bon - if (! $modelisok) + // Search template file + $file=''; $classname=''; $filefound=0; + foreach(array('doc','pdf') as $prefix) { - $liste=ModelePDFExpedition::liste_modeles($db); - $modele=key($liste); // Renvoie premiere valeur de cle trouve dans le tableau - $file = "pdf_expedition_".$modele.".modules.php"; - // On verifie l'emplacement du modele - $file = dol_buildpath($dir.$file); - if (file_exists($file)) $modelisok=1; + $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 ($modelisok) + if ($filefound) { - dol_syslog("expedition_pdf_create ".$modele); - $classname = "pdf_expedition_".$modele; - require_once($file); + require_once($file); $obj = new $classname($db); @@ -132,16 +146,9 @@ function expedition_pdf_create($db, $object, $modele, $outputlangs) } else { - if (! $conf->global->EXPEDITION_ADDON_PDF) - { - print $langs->trans("Error")." ".$langs->trans("Error_EXPEDITION_ADDON_PDF_NotDefined"); - } - else - { - print $langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.$file); - } - return 0; - } + dol_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.$file)); + return -1; + } } ?> diff --git a/htdocs/core/modules/expedition/pdf/pdf_expedition_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php similarity index 99% rename from htdocs/core/modules/expedition/pdf/pdf_expedition_merou.modules.php rename to htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php index c7159277e892797f047df14fcea9936dffc3961f..9d14713d57a4c40023dbad6ed2871d0d49d313d9 100644 --- a/htdocs/core/modules/expedition/pdf/pdf_expedition_merou.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php @@ -19,12 +19,12 @@ */ /** - * \file htdocs/core/modules/expedition/pdf/pdf_expedition_merou.modules.php + * \file htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php * \ingroup expedition * \brief Fichier de la classe permettant de generer les bordereaux envoi au modele Merou */ -require_once DOL_DOCUMENT_ROOT."/core/modules/expedition/pdf/ModelePdfExpedition.class.php"; +require_once DOL_DOCUMENT_ROOT."/core/modules/expedition/doc/ModelePdfExpedition.class.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/pdf/pdf_expedition_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php similarity index 99% rename from htdocs/core/modules/expedition/pdf/pdf_expedition_rouget.modules.php rename to htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php index 85de36612cba4ecc0924797cdd7575b47aa628b0..cc4e3c716e815b4f744cf57c0c8df4359132c8fd 100644 --- a/htdocs/core/modules/expedition/pdf/pdf_expedition_rouget.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php @@ -19,12 +19,12 @@ */ /** - * \file htdocs/core/modules/expedition/pdf/pdf_expedition_rouget.modules.php + * \file htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php * \ingroup expedition * \brief Fichier de la classe permettant de generer les bordereaux envoi au modele Rouget */ -require_once DOL_DOCUMENT_ROOT."/core/modules/expedition/pdf/ModelePdfExpedition.class.php"; +require_once DOL_DOCUMENT_ROOT."/core/modules/expedition/doc/ModelePdfExpedition.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/install/upgrade2.php b/htdocs/install/upgrade2.php index 4571d8bdd6b1773cfb163f91d71c03517acd2c25..820a8921a6c2991e0c3c2483e1f29c0701f79a35 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -1754,7 +1754,7 @@ function migrate_modeles($db,$langs,$conf) if (! empty($conf->expedition->enabled)) { - include_once(DOL_DOCUMENT_ROOT.'/core/modules/expedition/pdf/ModelePdfExpedition.class.php'); + include_once(DOL_DOCUMENT_ROOT.'/core/modules/expedition/doc/ModelePdfExpedition.class.php'); $modellist=ModelePDFExpedition::liste_modeles($db); if (count($modellist)==0) { diff --git a/test/phpunit/BuildDocTest.php b/test/phpunit/BuildDocTest.php index c1b0512144780f1d0882a90362ee1114e6ab900a..10857fa5e0fca1dc286fd3a373d7a0dc45a2ab81 100644 --- a/test/phpunit/BuildDocTest.php +++ b/test/phpunit/BuildDocTest.php @@ -43,15 +43,15 @@ require_once dirname(__FILE__).'/../../htdocs/core/modules/propale/pdf_propale_a require_once dirname(__FILE__).'/../../htdocs/core/modules/propale/pdf_propale_jaune.modules.php'; require_once dirname(__FILE__).'/../../htdocs/core/modules/project/pdf/pdf_baleine.modules.php'; require_once dirname(__FILE__).'/../../htdocs/core/modules/fichinter/pdf_soleil.modules.php'; -require_once dirname(__FILE__).'/../../htdocs/core/modules/expedition/pdf/pdf_expedition_merou.modules.php'; -require_once dirname(__FILE__).'/../../htdocs/core/modules/expedition/pdf/pdf_expedition_rouget.modules.php'; +require_once dirname(__FILE__).'/../../htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php'; +require_once dirname(__FILE__).'/../../htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php'; // Mother classes of pdf generators require_once dirname(__FILE__).'/../../htdocs/core/modules/facture/modules_facture.php'; require_once dirname(__FILE__).'/../../htdocs/core/modules/commande/modules_commande.php'; require_once dirname(__FILE__).'/../../htdocs/core/modules/propale/modules_propale.php'; require_once dirname(__FILE__).'/../../htdocs/core/modules/project/modules_project.php'; require_once dirname(__FILE__).'/../../htdocs/core/modules/fichinter/modules_fichinter.php'; -require_once dirname(__FILE__).'/../../htdocs/core/modules/expedition/pdf/ModelePdfExpedition.class.php'; +require_once dirname(__FILE__).'/../../htdocs/core/modules/expedition/doc/ModelePdfExpedition.class.php'; if (empty($user->id)) {