diff --git a/htdocs/core/modules/propale/doc_generic_proposal_odt.modules.php b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php similarity index 100% rename from htdocs/core/modules/propale/doc_generic_proposal_odt.modules.php rename to htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php diff --git a/htdocs/core/modules/propale/pdf_propale_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php similarity index 99% rename from htdocs/core/modules/propale/pdf_propale_azur.modules.php rename to htdocs/core/modules/propale/doc/pdf_azur.modules.php index 2befc3339cd46f1fc798f7eba4c8a8c907f6761d..0a13926af356f3b6ba7913cb028a276c850a2666 100644 --- a/htdocs/core/modules/propale/pdf_propale_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -2,7 +2,7 @@ /* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2005-2011 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2008 Raphael Bertrand <raphael.bertrand@resultic.fr> - * Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es> + * Copyright (C) 2010-2012 Juanjo Menent <jmenent@2byte.es> * * 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 @@ -20,7 +20,7 @@ */ /** - * \file htdocs/core/modules/propale/pdf_propale_azur.modules.php + * \file htdocs/core/modules/propale/pdf_azur.modules.php * \ingroup propale * \brief Fichier de la classe permettant de generer les propales au modele Azur * \author Laurent Destailleur @@ -33,10 +33,10 @@ require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'); /** - * \class pdf_propale_azur + * \class pdf_azur * \brief Classe permettant de generer les propales au modele Azur */ -class pdf_propale_azur extends ModelePDFPropales +class pdf_azur extends ModelePDFPropales { var $emetteur; // Objet societe qui emet @@ -46,7 +46,7 @@ class pdf_propale_azur extends ModelePDFPropales * * @param DoliDB $DB Database handler */ - function pdf_propale_azur($db) + function pdf_azur($db) { global $conf,$langs,$mysoc; diff --git a/htdocs/core/modules/propale/pdf_propale_jaune.modules.php b/htdocs/core/modules/propale/doc/pdf_jaune.modules.php similarity index 99% rename from htdocs/core/modules/propale/pdf_propale_jaune.modules.php rename to htdocs/core/modules/propale/doc/pdf_jaune.modules.php index aed35de0c83f5eb977d6b912b474bcbd568dc6ec..d37eeb8a2b3645ca3dadc596baf4ff0e2de98129 100644 --- a/htdocs/core/modules/propale/pdf_propale_jaune.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_jaune.modules.php @@ -2,7 +2,7 @@ /* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2005-2011 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2008 Raphael Bertrand <raphael.bertrand@resultic.fr> - * Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es> + * Copyright (C) 2010-2012 Juanjo Menent <jmenent@2byte.es> * * 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 @@ -20,7 +20,7 @@ */ /** - * \file htdocs/core/modules/propale/pdf_propale_jaune.modules.php + * \file htdocs/core/modules/propale/pdf_jaune.modules.php * \ingroup propale * \brief Fichier de la classe permettant de generer les propales au modele Jaune * \author Laurent Destailleur @@ -33,10 +33,10 @@ require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'); /** - * \class pdf_propale_jaune + * \class pdf_jaune * \brief Classe permettant de generer les propales au modele Jaune */ -class pdf_propale_jaune extends ModelePDFPropales +class pdf_jaune extends ModelePDFPropales { var $emetteur; // Objet societe qui emet @@ -46,7 +46,7 @@ class pdf_propale_jaune extends ModelePDFPropales * * @param DoliDB $DB Database handler */ - function pdf_propale_jaune($db) + function pdf_jaune($db) { global $conf,$langs,$mysoc; diff --git a/htdocs/core/modules/propale/modules_propale.php b/htdocs/core/modules/propale/modules_propale.php index f04c20feae5ca9762fec29fce6b49dfcb09d61a1..3dbe4e79d66aa3dfc5a876d21fa702b4110b2ee1 100644 --- a/htdocs/core/modules/propale/modules_propale.php +++ b/htdocs/core/modules/propale/modules_propale.php @@ -2,6 +2,7 @@ /* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2005-2011 Regis Houssin <regis@dolibarr.fr> + * Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es> * * 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 @@ -149,7 +150,6 @@ function propale_pdf_create($db, $object, $modele, $outputlangs, $hidedetails=0, $dir = "/core/modules/propale/"; $srctemplatepath=''; - $modelisok=0; // Positionne le modele sur le nom du modele a utiliser if (! dol_strlen($modele)) @@ -164,6 +164,78 @@ function propale_pdf_create($db, $object, $modele, $outputlangs, $hidedetails=0, } } + // 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."_".$modele.".modules.php"; + + // On verifie l'emplacement du modele + $file = dol_buildpath($dir.'doc/'.$file); + + if (file_exists($file)) + { + $filefound=1; + $classname=$prefix.'_'.$modele; + break; + } + } + + // Charge le modele + if ($filefound) + { + require_once($file); + + $obj = new $classname($db); + $obj->message = $message; + + // 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, $srctemplatepath, $hidedetails, $hidedesc, $hideref, $hookmanager) > 0) + { + $outputlangs->charset_output=$sav_charset_output; + + // We delete old preview + require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); + dol_delete_preview($object); + + // Success in building document. We build meta file. + dol_meta_create($object); + + // Appel des triggers + include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"); + $interface=new Interfaces($db); + $result=$interface->run_triggers('PROPAL_BUILDDOC',$object,$user,$langs,$conf); + if ($result < 0) { $error++; $this->errors=$interface->errors; } + // Fin appel triggers + + return 1; + } + else + { + $outputlangs->charset_output=$sav_charset_output; + dol_print_error($db,"propal_pdf_create Error: ".$obj->error); + return -1; + } + + } + else + { + dol_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.$file)); + return -1; + } + + + /* // Positionne modele sur le nom du modele de propale a utiliser $file = "pdf_propale_".$modele.".modules.php"; @@ -241,6 +313,7 @@ function propale_pdf_create($db, $object, $modele, $outputlangs, $hidedetails=0, } return 0; } + */ } ?>