diff --git a/htdocs/admin/expedition.php b/htdocs/admin/expedition.php
index 2d0fdf18218..3d0fac4c72b 100644
--- a/htdocs/admin/expedition.php
+++ b/htdocs/admin/expedition.php
@@ -118,11 +118,11 @@ if ($action == 'specimen')
$dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
foreach($dirmodels as $reldir)
{
- $file=dol_buildpath($reldir."core/modules/expedition/doc/pdf_".$modele.".modules.php",0);
+ $file=dol_buildpath($reldir."core/modules/expedition/doc/pdf_expedition_".$modele.".modules.php",0);
if (file_exists($file))
{
$filefound=1;
- $classname = "pdf_".$modele;
+ $classname = "pdf_expedition_".$modele;
break;
}
}
@@ -140,8 +140,8 @@ if ($action == 'specimen')
}
else
{
- $mesg=''.$obj->error.'';
- dol_syslog($obj->error, LOG_ERR);
+ $mesg=''.$module->error.'';
+ dol_syslog($module->error, LOG_ERR);
}
}
else
@@ -339,10 +339,9 @@ foreach ($dirmodels as $reldir)
while (($file = readdir($handle))!==false)
{
- if (preg_match('/^(mod_.*)\.php$/i',$file,$reg))
+ if (substr($file, 0, 15) == 'mod_expedition_' && substr($file, dol_strlen($file)-3, 3) == 'php')
{
- $file = $reg[1];
- $classname = substr($file,4);
+ $file = substr($file, 0, dol_strlen($file)-4);
require_once(DOL_DOCUMENT_ROOT ."/core/modules/expedition/".$file.".php");
@@ -477,7 +476,7 @@ foreach ($dirmodels as $reldir)
$classname = substr($file, 0, dol_strlen($file) - 12);
$var=!$var;
- print "
| ";
+ print ' |
| ';
print $name;
print " | \n";
require_once($dir.$file);
@@ -489,17 +488,10 @@ foreach ($dirmodels as $reldir)
// Active
if (in_array($name, $def))
{
- print " | \n";
- //if ($conf->global->EXPEDITION_ADDON_PDF != $name)
- //{
- print '';
- print img_picto($langs->trans("Activated"),'switch_on');
- print '';
- //}
- //else
- //{
- // print img_picto($langs->trans("Activated"),'switch_on');
- //}
+ print " | \n";
+ print '';
+ print img_picto($langs->trans("Activated"),'switch_on');
+ print '';
print " | ";
}
else
diff --git a/htdocs/admin/livraison.php b/htdocs/admin/livraison.php
index f0c857a7ca2..01b60b15c97 100644
--- a/htdocs/admin/livraison.php
+++ b/htdocs/admin/livraison.php
@@ -6,6 +6,7 @@
* Copyright (C) 2004 Eric Seigne
* Copyright (C) 2005-2012 Regis Houssin
* Copyright (C) 2011-2012 Juanjo Menent
+ * Copyright (C) 2011-2012 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
@@ -36,8 +37,11 @@ $langs->load("deliveries");
if (!$user->admin) accessforbidden();
-$action = GETPOST('action','alpha');
-$value = GETPOST('value','alpha');
+$action = GETPOST('action','alpha');
+$value = GETPOST('value','alpha');
+$label = GETPOST('label','alpha');
+$scandir = GETPOST('scandir','alpha');
+$type='delivery';
/*
* Actions
@@ -61,105 +65,6 @@ if ($action == 'updateMask')
}
}
-if ($action == 'specimen')
-{
- $modele=GETPOST('module','alpha');
-
- $sending = new Livraison($db);
- $sending->initAsSpecimen();
- //$sending->fetch_commande();
-
- // Charge le modele
- $dir = DOL_DOCUMENT_ROOT . "/core/modules/livraison/pdf/";
- $file = "pdf_".$modele.".modules.php";
- if (file_exists($dir.$file))
- {
- $classname = "pdf_".$modele;
- require_once($dir.$file);
-
- $obj = new $classname($db);
-
- if ($obj->write_file($sending,$langs) > 0)
- {
- header("Location: ".DOL_URL_ROOT."/document.php?modulepart=livraison&file=SPECIMEN.pdf");
- return;
- }
- else
- {
- $mesg=''.$obj->error.'';
- dol_syslog($obj->error, LOG_ERR);
- }
- }
- else
- {
- $mesg=''.$langs->trans("ErrorModuleNotFound").'';
- dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
- }
-}
-
-if ($action == 'set')
-{
- $label = GETPOST('label','alpha');
- $scandir = GETPOST('scandir','alpha');
-
- $type='delivery';
- $sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)";
- $sql.= " VALUES ('".$db->escape($value)."','".$type."',".$conf->entity.", ";
- $sql.= ($label?"'".$db->escape($label)."'":'null').", ";
- $sql.= (! empty($scandir)?"'".$db->escape($scandir)."'":"null");
- $sql.= ")";
- $resql=$db->query($sql);
-}
-
-if ($action == 'del')
-{
- $type='delivery';
- $sql = "DELETE FROM ".MAIN_DB_PREFIX."document_model";
- $sql.= " WHERE nom = '".$db->escape($value)."'";
- $sql.= " AND type = '".$type."'";
- $sql.= " AND entity = ".$conf->entity;
-
- if ($db->query($sql))
- {
- if ($conf->global->LIVRAISON_ADDON_PDF == "$value") dolibarr_del_const($db, 'LIVRAISON_ADDON_PDF',$conf->entity);
- }
-}
-
-if ($action == 'setdoc')
-{
- $label = GETPOST('label','alpha');
- $scandir = GETPOST('scandir','alpha');
- $db->begin();
-
- if (dolibarr_set_const($db, "LIVRAISON_ADDON_PDF",$value,'chaine',0,'',$conf->entity))
- {
- $conf->global->LIVRAISON_ADDON_PDF = $value;
- }
-
- // On active le modele
- $type='delivery';
- $sql_del = "DELETE FROM ".MAIN_DB_PREFIX."document_model";
- $sql_del.= " WHERE nom = '".$db->escape($value)."'";
- $sql_del.= " AND type = '".$type."'";
- $sql_del.= " AND entity = ".$conf->entity;
- $result1=$db->query($sql_del);
-
- $sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)";
- $sql.= " VALUES ('".$db->escape($value)."', '".$type."', ".$conf->entity.", ";
- $sql.= ($label?"'".$db->escape($label)."'":'null').", ";
- $sql.= (! empty($scandir)?"'".$db->escape($scandir)."'":"null");
- $sql.= ")";
- $result2=$db->query($sql);
- if ($result1 && $result2)
- {
- $db->commit();
- }
- else
- {
- $db->rollback();
- }
-}
-
if ($action == 'set_DELIVERY_FREE_TEXT')
{
$free=GETPOST('DELIVERY_FREE_TEXT','alpha');
@@ -177,6 +82,82 @@ if ($action == 'set_DELIVERY_FREE_TEXT')
}
}
+if ($action == 'specimen')
+{
+ $modele=GETPOST('module','alpha');
+
+ $sending = new Livraison($db);
+ $sending->initAsSpecimen();
+
+ // Search template files
+ $file=''; $classname=''; $filefound=0;
+ $dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
+ foreach($dirmodels as $reldir)
+ {
+ $file=dol_buildpath($reldir."core/modules/livraison/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($sending,$langs) > 0)
+ {
+ header("Location: ".DOL_URL_ROOT."/document.php?modulepart=livraison&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);
+ }
+}
+
+if ($action == 'set')
+{
+ $ret = addDocumentModel($value, $type, $label, $scandir);
+}
+
+if ($action == 'del')
+{
+ $ret = delDocumentModel($value, $type);
+ if ($ret > 0)
+ {
+ if ($conf->global->LIVRAISON_ADDON_PDF == "$value") dolibarr_del_const($db, 'LIVRAISON_ADDON_PDF',$conf->entity);
+ }
+}
+
+if ($action == 'setdoc')
+{
+ if (dolibarr_set_const($db, "LIVRAISON_ADDON_PDF",$value,'chaine',0,'',$conf->entity))
+ {
+ // La constante qui a ete lue en avant du nouveau set
+ // on passe donc par une variable pour avoir un affichage coherent
+ $conf->global->LIVRAISON_ADDON_PDF = $value;
+ }
+
+ // On active le modele
+ $ret = delDocumentModel($value, $type);
+ if ($ret > 0)
+ {
+ $ret = addDocumentModel($value, $type, $label, $scandir);
+ }
+}
+
if ($action == 'setmod')
{
// TODO Verifier si module numerotation choisi peut etre active
@@ -190,10 +171,12 @@ if ($action == 'setmod')
* View
*/
-$form=new Form($db);
+$dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
llxHeader("","");
+$form=new Form($db);
+
$linkback=''.$langs->trans("BackToModuleList").'';
print_fiche_titre($langs->trans("SendingsSetup"),$linkback,'setup');
print '
';
@@ -236,9 +219,9 @@ print '
'."\n";
clearstatcache();
-foreach ($conf->file->dol_document_root as $dirroot)
+foreach ($dirmodels as $reldir)
{
- $dir = $dirroot . "/core/modules/livraison/";
+ $dir = dol_buildpath($reldir."core/modules/livraison/");
if (is_dir($dir))
{
@@ -365,9 +348,10 @@ print "\n";
clearstatcache();
-foreach ($conf->file->dol_document_root as $dirroot)
+$var=true;
+foreach ($dirmodels as $reldir)
{
- $dir = $dirroot . "/core/modules/livraison/pdf/";
+ $dir = dol_buildpath($reldir."core/modules/livraison/pdf/");
if (is_dir($dir))
{
@@ -382,7 +366,8 @@ foreach ($conf->file->dol_document_root as $dirroot)
$classname = substr($file, 0, dol_strlen($file) - 12);
$var=!$var;
- print "| ";
+
+ print ' |
| ';
print $name;
print " | \n";
require_once($dir.$file);
@@ -394,17 +379,10 @@ foreach ($conf->file->dol_document_root as $dirroot)
// Activ
if (in_array($name, $def))
{
- print " | \n";
- //if ($conf->global->LIVRAISON_ADDON_PDF != "$name")
- //{
- print 'scandir.'&label='.urlencode($module->name).'">';
- print img_picto($langs->trans("Enabled"),'switch_on');
- print '';
- //}
- //else
- //{
- // print img_picto($langs->trans("Enabled"),'switch_on');
- //}
+ print " | \n";
+ print 'scandir.'&label='.urlencode($module->name).'">';
+ print img_picto($langs->trans("Enabled"),'switch_on');
+ print '';
print " | ";
}
else
@@ -447,11 +425,9 @@ foreach ($conf->file->dol_document_root as $dirroot)
}
print '';
-
/*
-*
-*
-*/
+ * Autres Options
+ */
print "
";
print_titre($langs->trans("OtherOptions"));
@@ -482,4 +458,4 @@ dol_htmloutput_mesg($mesg);
$db->close();
llxFooter();
-?>
+?>
\ No newline at end of file
diff --git a/htdocs/commande/contact.php b/htdocs/commande/contact.php
index 9e4cfd2923b..df22b17b4fa 100644
--- a/htdocs/commande/contact.php
+++ b/htdocs/commande/contact.php
@@ -2,6 +2,7 @@
/* Copyright (C) 2005 Patrick Rouillon
* Copyright (C) 2005-2011 Laurent Destailleur
* Copyright (C) 2005-2012 Regis Houssin
+ * Copyright (C) 2011-2012 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
@@ -106,10 +107,10 @@ else if ($action == 'deletecontact' && $user->rights->commande->creer)
}
}
-else if ($action == 'setaddress' && $user->rights->commande->creer)
-{
- $object->fetch($id);
- $object->setDeliveryAddress($_POST['fk_address']);
+else if ($action == 'setaddress' && $user->rights->commande->creer)
+{
+ $object->fetch($id);
+ $object->setDeliveryAddress($_POST['fk_address']);
}
/*
@@ -173,27 +174,27 @@ if ($id > 0 || ! empty($ref))
print "| ".$langs->trans("Company")." | ";
print ''.$object->client->getNomUrl(1).' |
';
- // Delivery address
- if ($conf->global->SOCIETE_ADDRESSES_MANAGEMENT)
- {
- print '| ';
- print '';
- print ' | ';
-
- if ($action == 'editdelivery_address')
- {
- $formother->form_address($_SERVER['PHP_SELF'].'?id='.$object->id,$object->fk_delivery_address,GETPOST('socid','int'),'fk_address','commande',$object->id);
- }
- else
- {
- $formother->form_address($_SERVER['PHP_SELF'].'?id='.$object->id,$object->fk_delivery_address,GETPOST('socid','int'),'none','commande',$object->id);
- }
- print ' |
';
+ // Delivery address
+ if ($conf->global->SOCIETE_ADDRESSES_MANAGEMENT)
+ {
+ print '| ';
+ print '';
+ print ' | ';
+
+ if ($action == 'editdelivery_address')
+ {
+ $formother->form_address($_SERVER['PHP_SELF'].'?id='.$object->id,$object->fk_delivery_address,GETPOST('socid','int'),'fk_address','commande',$object->id);
+ }
+ else
+ {
+ $formother->form_address($_SERVER['PHP_SELF'].'?id='.$object->id,$object->fk_delivery_address,GETPOST('socid','int'),'none','commande',$object->id);
+ }
+ print ' |
';
}
print "";
@@ -202,8 +203,15 @@ if ($id > 0 || ! empty($ref))
print '
';
- // Contacts lines
- include(DOL_DOCUMENT_ROOT.'/core/tpl/contacts.tpl.php');
+ // Select template for Contacts lines
+ if (file_exists(DOL_DOCUMENT_ROOT."/theme/".$conf->theme."/tpl/contacts.tpl.php"))
+ {
+ include(DOL_DOCUMENT_ROOT."/theme/".$conf->theme."/tpl/contacts.tpl.php");
+ }
+ else
+ {
+ include(DOL_DOCUMENT_ROOT.'/core/tpl/contacts.tpl.php');
+ }
}
else
diff --git a/htdocs/core/modules/expedition/modules_expedition.php b/htdocs/core/modules/expedition/modules_expedition.php
index f239178236e..b06872d3e0d 100644
--- a/htdocs/core/modules/expedition/modules_expedition.php
+++ b/htdocs/core/modules/expedition/modules_expedition.php
@@ -5,7 +5,7 @@
* Copyright (C) 2005-2011 Regis Houssin
* Copyright (C) 2006 Andre Cianfarani
* Copyright (C) 2011 Juanjo Menent
- * Copyright (C) 2011 Philippe Grand
+ * Copyright (C) 2011-2012 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
@@ -156,13 +156,8 @@ function expedition_pdf_create($db, $object, $modele, $outputlangs)
$langs->load("sendings");
- // Increase limit for PDF build
- $err=error_reporting();
- error_reporting(0);
- @set_time_limit(120);
- error_reporting($err);
+ $error=0;
- $dir = "/core/modules/expedition/";
$srctemplatepath='';
// Positionne le modele sur le nom du modele a utiliser
@@ -180,28 +175,33 @@ function expedition_pdf_create($db, $object, $modele, $outputlangs)
// 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];
- }
+ if (! empty($tmp[1]))
+ {
+ $modele=$tmp[0];
+ $srctemplatepath=$tmp[1];
+ }
- // Search template file
+ // Search template files
$file=''; $classname=''; $filefound=0;
- foreach(array('doc','pdf') as $prefix)
+ $dirmodels=array('/');
+ if (is_array($conf->modules_parts['models'])) $dirmodels=array_merge($dirmodels,$conf->modules_parts['models']);
+ foreach($dirmodels as $reldir)
{
- $file = $prefix."_expedition_".$modele.".modules.php";
+ 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;
- }
- }
+ // On verifie l'emplacement du modele
+ $file=dol_buildpath($reldir."core/modules/expedition/doc/".$file,0);
+ if (file_exists($file))
+ {
+ $filefound=1;
+ $classname=$prefix.'_expedition_'.$modele;
+ break;
+ }
+ }
+ if ($filefound) break;
+ }
// Charge le modele
if ($filefound)
@@ -215,7 +215,7 @@ function expedition_pdf_create($db, $object, $modele, $outputlangs)
// 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)
+ if ($obj->write_file($object, $outputlangs, $srctemplatepath) > 0)
{
$outputlangs->charset_output=$sav_charset_output;
@@ -238,4 +238,4 @@ function expedition_pdf_create($db, $object, $modele, $outputlangs)
return -1;
}
}
-?>
+?>
\ No newline at end of file
diff --git a/htdocs/core/modules/livraison/modules_livraison.php b/htdocs/core/modules/livraison/modules_livraison.php
index 1454421b1fb..c9343e8ae95 100644
--- a/htdocs/core/modules/livraison/modules_livraison.php
+++ b/htdocs/core/modules/livraison/modules_livraison.php
@@ -3,6 +3,7 @@
* Copyright (C) 2004-2011 Laurent Destailleur
* Copyright (C) 2004 Eric Seigne
* Copyright (C) 2006-2011 Regis Houssin
+ * Copyright (C) 2011-2012 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
@@ -154,33 +155,62 @@ abstract class ModeleNumRefDeliveryOrder
* @param Translate $outputlangs objet lang a utiliser pour traduction
* @return int 0 if KO, 1 if OK
*/
-function delivery_order_pdf_create($db, $object, $model='', $outputlangs='')
+function delivery_order_pdf_create($db, $object, $modele, $outputlangs='')
{
global $conf,$langs;
+
$langs->load("deliveries");
- $dir = "/core/modules/livraison/pdf/";
+ $error=0;
+
+ $srctemplatepath='';
// Positionne modele sur le nom du modele de bon de livraison a utiliser
- if (! dol_strlen($model))
+ if (! dol_strlen($modele))
{
if ($conf->global->LIVRAISON_ADDON_PDF)
{
- $model = $conf->global->LIVRAISON_ADDON_PDF;
+ $modele = $conf->global->LIVRAISON_ADDON_PDF;
}
else
{
- print $langs->trans("Error")." ".$langs->trans("Error_LIVRAISON_ADDON_PDF_NotDefined");
- return 0;
+ $modele = 'typhon';
}
}
- // Charge le modele
- $file = "pdf_".$model.".modules.php";
- // On verifie l'emplacement du modele
- $file = dol_buildpath($dir.$file);
- if (file_exists($file))
+
+ // 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 files
+ $file=''; $classname=''; $filefound=0;
+ $dirmodels=array('/');
+ if (is_array($conf->modules_parts['models'])) $dirmodels=array_merge($dirmodels,$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/livraison/pdf/".$file,0);
+ if (file_exists($file))
+ {
+ $filefound=1;
+ $classname=$prefix.'_'.$modele;
+ break;
+ }
+ }
+ if ($filefound) break;
+ }
+
+ // Charge le modele
+ if ($filefound)
{
- $classname = "pdf_".$model;
require_once($file);
$obj = new $classname($db);
@@ -212,4 +242,4 @@ function delivery_order_pdf_create($db, $object, $model='', $outputlangs='')
}
}
-?>
+?>
\ No newline at end of file
diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php
index b34c255f61b..d3fd5832a78 100644
--- a/htdocs/expedition/class/expedition.class.php
+++ b/htdocs/expedition/class/expedition.class.php
@@ -1060,7 +1060,7 @@ class Expedition extends CommonObject
// Initialise parametres
$this->id=0;
- $this->ref = 'SPECIMEN_SHIP';
+ $this->ref = 'SPECIMEN';
$this->specimen=1;
$this->statut = 1;
$this->livraison_id = 0;
diff --git a/htdocs/livraison/class/livraison.class.php b/htdocs/livraison/class/livraison.class.php
index 5377fee4f97..e709dc4d6db 100644
--- a/htdocs/livraison/class/livraison.class.php
+++ b/htdocs/livraison/class/livraison.class.php
@@ -3,6 +3,7 @@
* Copyright (C) 2005-2010 Regis Houssin
* Copyright (C) 2006-2007 Laurent Destailleur
* Copyright (C) 2007 Franky Van Liedekerke
+ * Copyright (C) 2011-2012 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
@@ -773,7 +774,7 @@ class Livraison extends CommonObject
// Initialise parametres
$this->id=0;
- $this->ref = 'SPECIMEN_RECEIPT';
+ $this->ref = 'SPECIMEN';
$this->specimen=1;
$this->socid = 1;
$this->date_delivery = $now;
@@ -905,4 +906,4 @@ class LivraisonLigne
}
-?>
+?>
\ No newline at end of file