From 6aa7e9083497ab34dd101182cc694f42ceb8a612 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Thu, 1 Mar 2012 08:03:27 +0100 Subject: [PATCH] Fix: merge problem --- htdocs/admin/fournisseur.php | 129 ++++++++++-------- htdocs/core/class/conf.class.php | 5 +- .../modules_facturefournisseur.php | 32 +++-- .../modules_commandefournisseur.php | 79 +++++++---- 4 files changed, 142 insertions(+), 103 deletions(-) diff --git a/htdocs/admin/fournisseur.php b/htdocs/admin/fournisseur.php index 208ed58daaa..088873e0cd6 100644 --- a/htdocs/admin/fournisseur.php +++ b/htdocs/admin/fournisseur.php @@ -75,33 +75,42 @@ if ($action == 'specimen') // For orders $commande = new CommandeFournisseur($db); $commande->initAsSpecimen(); $commande->thirdparty=$specimenthirdparty; - - // Charge le modele - $dir = "/core/modules/supplier_order/pdf/"; - $file = "pdf_".$modele.".modules.php"; - $file = dol_buildpath($dir.$file); - if (file_exists($file)) + + // Search template files + $file=''; $classname=''; $filefound=0; + $dirmodels=array_merge(array('/'),$conf->modules_parts['models']); + foreach($dirmodels as $reldir) { - $classname = "pdf_".$modele; - require_once($file); - - $obj = new $classname($db,$commande); - - if ($obj->write_file($commande,$langs) > 0) - { - header("Location: ".DOL_URL_ROOT."/document.php?modulepart=commande_fournisseur&file=SPECIMEN.pdf"); - return; - } - else - { - $mesg='
'.$obj->error.'
'; - dol_syslog($obj->error, LOG_ERR); - } + $file=dol_buildpath($reldir."core/modules/supplier_order/pdf/pdf_".$modele.".modules.php",0); + if (file_exists($file)) + { + $filefound=1; + $classname = "pdf_".$modele; + break; + } + } + + if ($filefound) + { + require_once($file); + + $module = new $classname($db); + + if ($module->write_file($commande,$langs) > 0) + { + header("Location: ".DOL_URL_ROOT."/document.php?modulepart=commande_fournisseur&file=SPECIMEN.pdf"); + return; + } + else + { + $mesg=''.$module->error.''; + dol_syslog($module->error, LOG_ERR); + } } else { - $mesg='
'.$langs->trans("ErrorModuleNotFound").'
'; - dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR); + $mesg=''.$langs->trans("ErrorModuleNotFound").''; + dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR); } } @@ -112,33 +121,42 @@ if ($action == 'specimenfacture') // For invoices $facture = new FactureFournisseur($db); $facture->initAsSpecimen(); $facture->thirdparty=$specimenthirdparty; // Define who should has build the invoice (so the supplier) - - // Charge le modele - $dir = "/core/modules/supplier_invoice/pdf/"; - $file = "pdf_".$modele.".modules.php"; - $file = dol_buildpath($dir.$file); - if (file_exists($file)) + + // Search template files + $file=''; $classname=''; $filefound=0; + $dirmodels=array_merge(array('/'),$conf->modules_parts['models']); + foreach($dirmodels as $reldir) { - $classname = "pdf_".$modele; - require_once($file); - - $obj = new $classname($db,$facture); - - if ($obj->write_file($facture,$langs) > 0) - { - header("Location: ".DOL_URL_ROOT."/document.php?modulepart=facture_fournisseur&file=SPECIMEN.pdf"); - return; - } - else - { - $mesg='
'.$obj->error.'
'; - dol_syslog($obj->error, LOG_ERR); - } + $file=dol_buildpath($reldir."core/modules/supplier_invoice/pdf/pdf_".$modele.".modules.php",0); + if (file_exists($file)) + { + $filefound=1; + $classname = "pdf_".$modele; + break; + } + } + + if ($filefound) + { + require_once($file); + + $module = new $classname($db); + + if ($module->write_file($facture,$langs) > 0) + { + header("Location: ".DOL_URL_ROOT."/document.php?modulepart=facture_fournisseur&file=SPECIMEN.pdf"); + return; + } + else + { + $mesg=''.$module->error.''; + dol_syslog($module->error, LOG_ERR); + } } else { - $mesg='
'.$langs->trans("ErrorModuleNotFound").'
'; - dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR); + $mesg=''.$langs->trans("ErrorModuleNotFound").''; + dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR); } } @@ -244,10 +262,12 @@ if ($action == 'set_SUPPLIER_INVOICE_FREE_TEXT') * View */ -$form=new Form($db); +$dirmodels=array_merge(array('/'),$conf->modules_parts['models']); llxHeader(); +$form=new Form($db); + $linkback=''.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans("SuppliersSetup"),$linkback,'setup'); @@ -269,9 +289,9 @@ print "\n"; clearstatcache(); -foreach ($conf->file->dol_document_root as $dirroot) +foreach ($dirmodels as $reldir) { - $dir = $dirroot . "/core/modules/supplier_order/"; + $dir = dol_buildpath($reldir."core/modules/supplier_order/"); if (is_dir($dir)) { @@ -403,9 +423,9 @@ print ''."\n"; clearstatcache(); -foreach ($conf->file->dol_document_root as $dirroot) +foreach ($dirmodels as $reldir) { - $dir = $dirroot . "/core/modules/supplier_order/pdf/"; + $dir = dol_buildpath($reldir."core/modules/supplier_order/pdf/"); if (is_dir($dir)) { @@ -536,9 +556,9 @@ print ''."\n"; clearstatcache(); -foreach ($conf->file->dol_document_root as $dirroot) +foreach ($dirmodels as $reldir) { - $dir = $dirroot . "/core/modules/supplier_invoice/pdf/"; + $dir = dol_buildpath($reldir."core/modules/supplier_invoice/pdf/"); if (is_dir($dir)) { @@ -645,7 +665,6 @@ print ''; dol_htmloutput_mesg($mesg); -llxFooter(); - $db->close(); +llxFooter(); ?> diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php index f8fe5ca70f0..1ab58c019da 100644 --- a/htdocs/core/class/conf.class.php +++ b/htdocs/core/class/conf.class.php @@ -65,9 +65,6 @@ class Conf public $barcode_modules = array(); public $substitutions_modules = array(); public $societe_modules = array(); - public $facture_modules = array(); - public $commande_modules = array(); - public $propale_modules = array(); var $logbuffer = array(); @@ -171,7 +168,7 @@ class Conf $arrValue = @unserialize($value); if (is_array($arrValue) && ! empty($arrValue)) $value = $arrValue; else if (in_array($partname,array('login','menus','triggers'))) $value = '/'.$modulename.'/core/'.$partname.'/'; - else if (in_array($partname,array('models','facture','commande','propale'))) $value = '/'.$modulename.'/'; + else if (in_array($partname,array('models'))) $value = '/'.$modulename.'/'; else if ($value == 1) $value = '/'.$modulename.'/core/modules/'.$partname.'/'; $this->$varname = array_merge($this->$varname, array($modulename => $value)); // TODO deprecated $this->modules_parts[$partname] = array_merge($this->modules_parts[$partname], array($modulename => $value)); diff --git a/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php b/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php index 11d0cddffe5..ad85e1dd1c0 100755 --- a/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php +++ b/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php @@ -1,5 +1,6 @@ +/* Copyright (C) 2010 Juanjo Menent + * Copyright (C) 2012 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 @@ -76,7 +77,6 @@ function supplier_invoice_pdf_create($db, $object, $modele, $outputlangs) @set_time_limit(120); error_reporting($err); - $dir = "/core/modules/supplier_invoice/"; $srctemplatepath=''; // Positionne modele sur le nom du modele de invoice fournisseur a utiliser @@ -102,19 +102,23 @@ function supplier_invoice_pdf_create($db, $object, $modele, $outputlangs) // Search template file $file=''; $classname=''; $filefound=0; - foreach(array('doc','pdf') as $prefix) + $dirmodels=array_merge(array('/'),$conf->modules_parts['models']); + foreach($dirmodels as $reldir) { - $file = $prefix."_".$modele.".modules.php"; - - // On verifie l'emplacement du modele - $file = dol_buildpath($dir.'pdf/'.$file); // TODO rename into doc/ - - if (file_exists($file)) - { - $filefound=1; - $classname=$prefix.'_'.$modele; - break; - } + foreach(array('doc','pdf') as $prefix) + { + $file = $prefix."_".$modele.".modules.php"; + + // On verifie l'emplacement du modele + $file=dol_buildpath($reldir."core/modules/supplier_invoice/pdf/".$file,0); + if (file_exists($file)) + { + $filefound=1; + $classname=$prefix.'_'.$modele; + break; + } + } + if ($filefound) break; } // Charge le modele diff --git a/htdocs/core/modules/supplier_order/modules_commandefournisseur.php b/htdocs/core/modules/supplier_order/modules_commandefournisseur.php index 0cd0d7f89ba..8ed10c6cadb 100644 --- a/htdocs/core/modules/supplier_order/modules_commandefournisseur.php +++ b/htdocs/core/modules/supplier_order/modules_commandefournisseur.php @@ -2,7 +2,7 @@ /* Copyright (C) 2003-2004 Rodolphe Quiedeville * Copyright (C) 2004-2005 Laurent Destailleur * Copyright (C) 2004 Eric Seigne - * Copyright (C) 2005-2010 Regis Houssin + * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2006 Andre Cianfarani * Copyright (C) 2011 Philippe Grand * @@ -153,43 +153,62 @@ function supplier_order_pdf_create($db, $object, $model, $outputlangs, $hidedeta { global $conf,$langs; $langs->load("suppliers"); - - $dir = "/core/modules/supplier_order/pdf/"; + + $error=0; + + // Increase limit for PDF build + $err=error_reporting(); + error_reporting(0); + @set_time_limit(120); + error_reporting($err); + $srctemplatepath=''; - $modelisok=0; - $liste=array(); - - // Positionne modele sur le nom du modele de commande fournisseur a utiliser - $file = "pdf_".$model.".modules.php"; - // On verifie l'emplacement du modele - $file = dol_buildpath($dir.$file); - if ($model && file_exists($file)) $modelisok=1; - - // Si model pas encore bon - if (! $modelisok) + + // Positionne le modele sur le nom du modele a utiliser + if (! dol_strlen($modele)) { - if ($conf->global->COMMANDE_SUPPLIER_ADDON_PDF) $model = $conf->global->COMMANDE_SUPPLIER_ADDON_PDF; - $file = "pdf_".$model.".modules.php"; - // On verifie l'emplacement du modele - $file = dol_buildpath($dir.$file); - if (file_exists($file)) $modelisok=1; + if (! empty($conf->global->COMMANDE_SUPPLIER_ADDON_PDF)) + { + $modele = $conf->global->COMMANDE_SUPPLIER_ADDON_PDF; + } + else + { + $modele = 'muscadet'; + } } - - // 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])) { - $liste=ModelePDFSuppliersOrders::liste_modeles($db); - $model=key($liste); // Renvoie la premiere valeur de cle trouvee dans le tableau - $file = "pdf_".$model.".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]; + } + + // Search template files + $file=''; $classname=''; $filefound=0; + $dirmodels=array_merge(array('/'),$conf->modules_parts['models']); + foreach($dirmodels as $reldir) + { + foreach(array('doc','pdf') as $prefix) + { + $file = $prefix."_".$modele.".modules.php"; + + // On verifie l'emplacement du modele + $file=dol_buildpath($reldir."core/modules/supplier_order/pdf/".$file,0); + if (file_exists($file)) + { + $filefound=1; + $classname=$prefix.'_'.$modele; + break; + } + } + if ($filefound) break; } // Charge le modele - if ($modelisok) + if ($filefound) { - $classname = "pdf_".$model; require_once($file); $obj = new $classname($db);