Qual: Uniformize code for document generation of shipments.

Prepare usage of odt templates.
This commit is contained in:
Laurent Destailleur 2011-11-30 12:28:01 +01:00
parent a0e701da3d
commit 9f889b0439
7 changed files with 58 additions and 51 deletions

View File

@ -58,7 +58,7 @@ if ($action == 'specimen')
//$exp->fetch_commande(); //$exp->fetch_commande();
// Charge le modele // 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"; $file = "pdf_expedition_".$modele.".modules.php";
if (file_exists($dir.$file)) if (file_exists($dir.$file))
{ {
@ -483,7 +483,7 @@ clearstatcache();
foreach ($conf->file->dol_document_root as $dirroot) foreach ($conf->file->dol_document_root as $dirroot)
{ {
$dir = $dirroot . "/core/modules/expedition/pdf/"; $dir = $dirroot . "/core/modules/expedition/doc/";
if (is_dir($dir)) if (is_dir($dir))
{ {

View File

@ -247,7 +247,7 @@ class FormFile
if (is_array($genallowed)) $modellist=$genallowed; if (is_array($genallowed)) $modellist=$genallowed;
else 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); $modellist=ModelePDFExpedition::liste_modeles($this->db);
} }
} }

View File

@ -19,7 +19,7 @@
*/ */
/** /**
* \file htdocs/core/modules/expedition/pdf/ModelePdfExpedition.class.php * \file htdocs/core/modules/expedition/doc/ModelePdfExpedition.class.php
* \ingroup shipping * \ingroup shipping
* \brief Fichier contenant la classe mere de generation des expeditions * \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) function expedition_pdf_create($db, $object, $modele, $outputlangs)
{ {
global $conf,$langs; global $conf,$langs;
$langs->load("sendings"); $langs->load("sendings");
$dir = "/core/modules/expedition/pdf/"; // Increase limit for PDF build
$modelisok=0; $err=error_reporting();
error_reporting(0);
@set_time_limit(120);
error_reporting($err);
// Positionne modele sur le nom du modele de commande a utiliser $dir = "/core/modules/expedition/";
$file = "pdf_expedition_".$modele.".modules.php"; $srctemplatepath='';
// On verifie l'emplacement du modele // Positionne le modele sur le nom du modele a utiliser
$file = dol_buildpath($dir.$file); if (! dol_strlen($modele))
if ($modele && file_exists($file)) $modelisok=1;
// Si model pas encore bon
if (! $modelisok)
{ {
if ($conf->global->EXPEDITION_ADDON_PDF) $modele = $conf->global->EXPEDITION_ADDON_PDF; if (! empty($conf->global->EXPEDITION_ADDON_PDF))
$file = "pdf_expedition_".$modele.".modules.php"; {
// On verifie l'emplacement du modele $modele = $conf->global->EXPEDITION_ADDON_PDF;
$file = dol_buildpath($dir.$file); }
if (file_exists($file)) $modelisok=1; else
} {
$modele = 'rouget';
}
}
// Si model pas encore bon // If selected modele is a filename template (then $modele="modelname:filename")
if (! $modelisok) $tmp=explode(':',$modele,2);
if (! empty($tmp[1]))
{ {
$liste=ModelePDFExpedition::liste_modeles($db); $modele=$tmp[0];
$modele=key($liste); // Renvoie premiere valeur de cle trouve dans le tableau $srctemplatepath=$tmp[1];
$file = "pdf_expedition_".$modele.".modules.php"; }
// On verifie l'emplacement du modele
$file = dol_buildpath($dir.$file); // Search template file
if (file_exists($file)) $modelisok=1; $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 // Charge le modele
if ($modelisok) if ($filefound)
{ {
dol_syslog("expedition_pdf_create ".$modele); require_once($file);
$classname = "pdf_expedition_".$modele;
require_once($file);
$obj = new $classname($db); $obj = new $classname($db);
@ -132,16 +146,9 @@ function expedition_pdf_create($db, $object, $modele, $outputlangs)
} }
else else
{ {
if (! $conf->global->EXPEDITION_ADDON_PDF) dol_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.$file));
{ return -1;
print $langs->trans("Error")." ".$langs->trans("Error_EXPEDITION_ADDON_PDF_NotDefined"); }
}
else
{
print $langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.$file);
}
return 0;
}
} }
?> ?>

View File

@ -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 * \ingroup expedition
* \brief Fichier de la classe permettant de generer les bordereaux envoi au modele Merou * \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."/contact/class/contact.class.php";
require_once(DOL_DOCUMENT_ROOT."/core/lib/company.lib.php"); require_once(DOL_DOCUMENT_ROOT."/core/lib/company.lib.php");
require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'); require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php');

View File

@ -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 * \ingroup expedition
* \brief Fichier de la classe permettant de generer les bordereaux envoi au modele Rouget * \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/company.lib.php");
require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'); require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php');

View File

@ -1754,7 +1754,7 @@ function migrate_modeles($db,$langs,$conf)
if (! empty($conf->expedition->enabled)) 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); $modellist=ModelePDFExpedition::liste_modeles($db);
if (count($modellist)==0) if (count($modellist)==0)
{ {

View File

@ -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/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/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/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/doc/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_rouget.modules.php';
// Mother classes of pdf generators // Mother classes of pdf generators
require_once dirname(__FILE__).'/../../htdocs/core/modules/facture/modules_facture.php'; 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/commande/modules_commande.php';
require_once dirname(__FILE__).'/../../htdocs/core/modules/propale/modules_propale.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/project/modules_project.php';
require_once dirname(__FILE__).'/../../htdocs/core/modules/fichinter/modules_fichinter.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)) if (empty($user->id))
{ {