diff --git a/ChangeLog b/ChangeLog index 2b8a3f8da52..841e4b39651 100644 --- a/ChangeLog +++ b/ChangeLog @@ -109,6 +109,7 @@ For developers: - New: Added hook "formConfirm" and "doActions" for supplier invoice card. - New: [ task #1511, #1426 ] Added hook "doActions" for supplier card and supplier order card. - New: renamed table llx_c_pays to llx_c_country & libelle field to label. +- New: Added hook "formConfirm" and "doActions" for fichinter card - Qual: Renamed table llx_c_civilite into llx_c_civility, field civilite into label in the same table, and field civilite into civility in other table. diff --git a/build/debian/changelog b/build/debian/changelog index 06d0d2212d5..76e8ae3a2fc 100644 --- a/build/debian/changelog +++ b/build/debian/changelog @@ -1,3 +1,10 @@ +dolibarr (3.6.1-3) unstable; urgency=low + + [ Laurent Destailleur (eldy) ] + * New upstream release. + + -- Laurent Destailleur (eldy) Tue, 23 Sep 2014 12:00:00 +0100 + dolibarr (3.6.0-3) unstable; urgency=low [ Laurent Destailleur (eldy) ] diff --git a/build/exe/doliwamp/doliwamp.iss b/build/exe/doliwamp/doliwamp.iss index da727786896..1657ff1c7e7 100644 --- a/build/exe/doliwamp/doliwamp.iss +++ b/build/exe/doliwamp/doliwamp.iss @@ -17,9 +17,9 @@ ; ----- Change this ----- AppName=DoliWamp ; DoliWamp-x.x.x or DoliWamp-x.x.x-alpha or DoliWamp-x.x.x-beta or DoliWamp-x.x.x-rc or DoliWamp-x.x.x -AppVerName=DoliWamp-3.6.0 +AppVerName=DoliWamp-3.6.1 ; DoliWamp-x.x x or DoliWamp-x.x.x-alpha or DoliWamp-x.x.x-beta or DoliWamp-x.x.x-rc or DoliWamp-x.x.x -OutputBaseFilename=DoliWamp-3.6.0 +OutputBaseFilename=DoliWamp-3.6.1 ; ----- End of change ;OutputManifestFile=build\doliwampbuild.log ; Define full path from which all relative path are defined diff --git a/build/makepack-dolibarr.pl b/build/makepack-dolibarr.pl index b0ee55e399b..0b881cedb35 100755 --- a/build/makepack-dolibarr.pl +++ b/build/makepack-dolibarr.pl @@ -460,8 +460,8 @@ if ($nboftargetok) { $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/license.txt`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/PHPExcel/Shared/PDF`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/PHPExcel/Shared/PCLZip`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/dejavu-fonts-ttf-2.33`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/freefont-20100919`; + $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/dejavu-fonts-ttf-*`; + $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/freefont-*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/utils`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/LICENSE.TXT`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/savant`; @@ -610,9 +610,6 @@ if ($nboftargetok) { print "Version is $MAJOR.$MINOR.$REL1-$RPMSUBVERSION\n"; - #print "Create directory $RPMDIR\n"; - #$ret=`mkdir -p "$RPMDIR"`; - print "Remove target ".$FILENAMERPM."...\n"; unlink("$NEWDESTI/".$FILENAMERPM); print "Remove target ".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm...\n"; @@ -620,13 +617,13 @@ if ($nboftargetok) { print "Create directory $BUILDROOT/$FILENAMETGZ2\n"; $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2`; + print "Copy $BUILDROOT/$PROJECT to $BUILDROOT/$FILENAMETGZ2\n"; $cmd="cp -pr '$BUILDROOT/$PROJECT' '$BUILDROOT/$FILENAMETGZ2'"; $ret=`$cmd`; - # Set owners - #print "Set owners on files/dir\n"; - #$ret=`chown -R root.root $BUILDROOT/$FILENAMETGZ2`; + # Removed files we don't need + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/htdocs/includes/ckeditor/_source`; print "Set permissions on files/dir\n"; $ret=`chmod -R 755 $BUILDROOT/$FILENAMETGZ2`; @@ -747,10 +744,18 @@ if ($nboftargetok) { $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/rpm`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/zip`; # Removed duplicate license files + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/_source/LICENSE.md`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/_source/plugins/scayt/LICENSE.md`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/_source/plugins/wsc/LICENSE.md`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/LICENSE.md`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/plugins/scayt/LICENSE.md`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/plugins/wsc/LICENSE.md`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/jquery/plugins/flot/LICENSE.txt`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/tcpdf/fonts/dejavu-fonts-ttf-2.34/LICENSE`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/tcpdf/fonts/freefont-20120503/COPYING`; + # Removed files we don't need + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/_source`; + # Rename upstream changelog to match debian rules $ret=`mv $BUILDROOT/$PROJECT.tmp/ChangeLog $BUILDROOT/$PROJECT.tmp/changelog`; diff --git a/build/makepack-howto.txt b/build/makepack-howto.txt index 24e5f809185..40b0e5180bc 100644 --- a/build/makepack-howto.txt +++ b/build/makepack-howto.txt @@ -36,14 +36,13 @@ complete release of Dolibarr, step by step. - Update version number with x.y.z in build/exe/doliwamp/doliwamp.iss - Update version number with x.y.z in build/rpm/*.spec - Commit all changes. -- Add a Tag (x.y.z) - Build Dolibarr and DoliWamp packages with makepack-dolibarr.pl - Check content of built packages. - Move build files into www.dolibarr.org web site (/home/dolibarr/wwwroot/files/stable). - Run makepack-dolibarr.pl again with option to publish files on - sourceforge. + sourceforge. This will also add official tag. - Edit symbolic links in directory "/home/dolibarr/wwwroot/files/stable/xxx" on server to point to new files (used by some web sites). diff --git a/build/rpm/dolibarr_fedora.spec b/build/rpm/dolibarr_fedora.spec index d676e59255e..439a09b8266 100755 --- a/build/rpm/dolibarr_fedora.spec +++ b/build/rpm/dolibarr_fedora.spec @@ -333,6 +333,9 @@ fi # version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release %changelog +* Wed Sep 24 2014 Laurent Destailleur 3.6.1-0.3 +- Upstream release + * Wed Jul 15 2014 Laurent Destailleur 3.6.0-0.3 - Upstream release diff --git a/build/rpm/dolibarr_generic.spec b/build/rpm/dolibarr_generic.spec index ef94435a62a..945e8f4812c 100755 --- a/build/rpm/dolibarr_generic.spec +++ b/build/rpm/dolibarr_generic.spec @@ -569,6 +569,9 @@ fi # version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release %changelog +* Wed Sep 24 2014 Laurent Destailleur 3.6.1-0.3 +- Upstream release + * Wed Jul 15 2014 Laurent Destailleur 3.6.0-0.3 - Upstream release diff --git a/build/rpm/dolibarr_mandriva.spec b/build/rpm/dolibarr_mandriva.spec index dfa148570f0..17b46c3c143 100755 --- a/build/rpm/dolibarr_mandriva.spec +++ b/build/rpm/dolibarr_mandriva.spec @@ -338,6 +338,9 @@ fi # version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release %changelog +* Wed Sep 24 2014 Laurent Destailleur 3.6.1-0.3 +- Upstream release + * Wed Jul 15 2014 Laurent Destailleur 3.6.0-0.3 - Upstream release diff --git a/build/rpm/dolibarr_opensuse.spec b/build/rpm/dolibarr_opensuse.spec index b3b304312f5..f6192c87c9b 100755 --- a/build/rpm/dolibarr_opensuse.spec +++ b/build/rpm/dolibarr_opensuse.spec @@ -349,6 +349,9 @@ fi # version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release %changelog +* Wed Sep 24 2014 Laurent Destailleur 3.6.1-0.3 +- Upstream release + * Wed Jul 15 2014 Laurent Destailleur 3.6.0-0.3 - Upstream release diff --git a/dev/skeletons/skeleton_page.php b/dev/skeletons/skeleton_page.php index 67d6298863a..deaecd95526 100644 --- a/dev/skeletons/skeleton_page.php +++ b/dev/skeletons/skeleton_page.php @@ -114,8 +114,8 @@ if ($action == 'add') } { // Creation KO - if (! empty($object->errors)) setEventMessage($object->errors, 'errors'); - else setEventMessage($object->error, 'errors'); + if (! empty($object->errors)) setEventMessages(null, $object->errors, 'errors'); + else setEventMessages($object->error, null, 'errors'); $action='create'; } } @@ -139,7 +139,7 @@ if ($action == 'update' && ! GETPOST('cancel')) if (empty($object->ref)) { $error++; - setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Ref")),'errors'); + setEventMessages($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Ref")),null,'errors'); } if (! $error) @@ -152,8 +152,8 @@ if ($action == 'update' && ! GETPOST('cancel')) else { // Creation KO - if (! empty($object->errors)) setEventMessage($object->errors, 'errors'); - else setEventMessage($object->error, 'errors'); + if (! empty($object->errors)) setEventMessages(null, $object->errors, 'errors'); + else setEventMessages($object->error, null, 'errors'); $action='edit'; } } @@ -170,14 +170,14 @@ if ($action == 'confirm_delete') if ($result > 0) { // Delete OK - setEventMessage($langs->trans("RecordDeleted")); + setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs'); header("Location: ".dol_buildpath('/buildingmanagement/list.php',1)); exit; } else { - if (! empty($object->errors)) setEventMessage($object->errors,'errors'); - else setEventMessage($object->error,'errors'); + if (! empty($object->errors)) setEventMessages(null,$object->errors,'errors'); + else setEventMessages($object->error,null,'errors'); } } @@ -327,6 +327,8 @@ if ($id && (empty($action) || $action == 'view')) print '
'."\n"; $parameters=array(); $reshook=$hookmanager->executeHooks('addMoreActionsButtons',$parameters,$object,$action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + if (empty($reshook)) { if ($user->rights->mymodule->write) diff --git a/htdocs/adherents/canvas/actions_adherentcard_common.class.php b/htdocs/adherents/canvas/actions_adherentcard_common.class.php index 79ba8597672..cf89e1f526c 100644 --- a/htdocs/adherents/canvas/actions_adherentcard_common.class.php +++ b/htdocs/adherents/canvas/actions_adherentcard_common.class.php @@ -94,7 +94,7 @@ abstract class ActionsAdherentCardCommon /** * Load data control * - * @param string &$action Type of action + * @param string $action Type of action * @param int $id Id of object * @return void */ @@ -228,7 +228,7 @@ abstract class ActionsAdherentCardCommon /** * Set content of ->tpl array, to use into template * - * @param string &$action Type of action + * @param string $action Type of action * @param int $id Id * @return string HTML output */ diff --git a/htdocs/adherents/canvas/default/actions_adherentcard_default.class.php b/htdocs/adherents/canvas/default/actions_adherentcard_default.class.php index b88e4b2134f..5c40cb22954 100644 --- a/htdocs/adherents/canvas/default/actions_adherentcard_default.class.php +++ b/htdocs/adherents/canvas/default/actions_adherentcard_default.class.php @@ -76,7 +76,7 @@ class ActionsAdherentCardDefault extends ActionsAdherentCardCommon /** * Assign custom values for canvas * - * @param string &$action Type of action + * @param string $action Type of action * @param int $id Id * @return void */ diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index 3b1f61df5b5..1c9de056acc 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -117,6 +117,7 @@ $hookmanager->initHooks(array('membercard')); $parameters=array('rowid'=>$rowid, 'objcanvas'=>$objcanvas); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if ($action == 'setuserid' && ($user->rights->user->self->creer || $user->rights->user->user->creer)) { diff --git a/htdocs/admin/commande.php b/htdocs/admin/commande.php index 1d05efa8e99..e5b2e5e6b1d 100644 --- a/htdocs/admin/commande.php +++ b/htdocs/admin/commande.php @@ -4,7 +4,7 @@ * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2004 Andre Cianfarani - * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2005-2014 Regis Houssin * Copyright (C) 2008 Raphael Bertrand (Resultic) * Copyright (C) 2011-2013 Juanjo Menent * Copyright (C) 2011-2013 Philippe Grand @@ -117,6 +117,35 @@ else if ($action == 'specimen') } } +// Define constants for submodules that contains parameters (forms with param1, param2, ... and value1, value2, ...) +if ($action == 'setModuleOptions') +{ + $post_size=count($_POST); + + $db->begin(); + + for($i=0;$i < $post_size;$i++) + { + if (array_key_exists('param'.$i,$_POST)) + { + $param=GETPOST("param".$i,'alpha'); + $value=GETPOST("value".$i,'alpha'); + if ($param) $res = dolibarr_set_const($db,$param,$value,'chaine',0,'',$conf->entity); + if (! $res > 0) $error++; + } + } + if (! $error) + { + $db->commit(); + setEventMessage($langs->trans("SetupSaved")); + } + else + { + $db->rollback(); + setEventMessage($langs->trans("Error"),'errors'); + } +} + // Activate a model if ($action == 'set') { @@ -192,14 +221,6 @@ else if ($action == 'set_COMMANDE_FREE_TEXT') setEventMessage($langs->trans("Error"),'errors'); } } -else if ($action=='setModuleOptions') { - if (dolibarr_set_const($db, "COMMANDE_ADDON_PDF_ODT_PATH",GETPOST('value1'),'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->COMMANDE_ADDON_PDF_ODT_PATH = GETPOST('value1'); - } -} /* diff --git a/htdocs/admin/expedition.php b/htdocs/admin/expedition.php index d89b406280b..2efdfdd56ba 100644 --- a/htdocs/admin/expedition.php +++ b/htdocs/admin/expedition.php @@ -138,6 +138,35 @@ else if ($action == 'specimen') } } +// Define constants for submodules that contains parameters (forms with param1, param2, ... and value1, value2, ...) +else if ($action == 'setModuleOptions') +{ + $post_size=count($_POST); + + $db->begin(); + + for($i=0;$i < $post_size;$i++) + { + if (array_key_exists('param'.$i,$_POST)) + { + $param=GETPOST("param".$i,'alpha'); + $value=GETPOST("value".$i,'alpha'); + if ($param) $res = dolibarr_set_const($db,$param,$value,'chaine',0,'',$conf->entity); + if (! $res > 0) $error++; + } + } + if (! $error) + { + $db->commit(); + setEventMessage($langs->trans("SetupSaved")); + } + else + { + $db->rollback(); + setEventMessage($langs->trans("Error"),'errors'); + } +} + // Activate a model else if ($action == 'set') { @@ -175,14 +204,6 @@ else if ($action == 'setmodel') { dolibarr_set_const($db, "EXPEDITION_ADDON_NUMBER",$value,'chaine',0,'',$conf->entity); } -else if ($action=='setModuleOptions') { - if (dolibarr_set_const($db, "EXPEDITION_ADDON_PDF_ODT_PATH",GETPOST('value1'),'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->EXPEDITION_ADDON_PDF_ODT_PATH = GETPOST('value1'); - } -} /* diff --git a/htdocs/admin/fichinter.php b/htdocs/admin/fichinter.php index 37a3b2a5a5c..dad5f484a4d 100644 --- a/htdocs/admin/fichinter.php +++ b/htdocs/admin/fichinter.php @@ -3,7 +3,7 @@ * Copyright (C) 2004-2011 Laurent Destailleur * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2004 Benoit Mortier - * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2005-2014 Regis Houssin * Copyright (C) 2008 Raphael Bertrand (Resultic) * Copyright (C) 2011-2013 Juanjo Menent * Copyright (C) 2011-2013 Philippe Grand @@ -113,6 +113,35 @@ else if ($action == 'specimen') // For fiche inter } } +// Define constants for submodules that contains parameters (forms with param1, param2, ... and value1, value2, ...) +if ($action == 'setModuleOptions') +{ + $post_size=count($_POST); + + $db->begin(); + + for($i=0;$i < $post_size;$i++) + { + if (array_key_exists('param'.$i,$_POST)) + { + $param=GETPOST("param".$i,'alpha'); + $value=GETPOST("value".$i,'alpha'); + if ($param) $res = dolibarr_set_const($db,$param,$value,'chaine',0,'',$conf->entity); + if (! $res > 0) $error++; + } + } + if (! $error) + { + $db->commit(); + setEventMessage($langs->trans("SetupSaved")); + } + else + { + $db->rollback(); + setEventMessage($langs->trans("Error"),'errors'); + } +} + // Activate a model else if ($action == 'set') { @@ -261,13 +290,13 @@ foreach ($dirmodels as $reldir) require_once $dir.$file.'.php'; $module = new $file; - + if ($module->isEnabled()) { // Show modules according to features level if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; - + $var=!$var; print ''.$module->nom."\n"; print $module->info(); @@ -372,78 +401,99 @@ foreach ($dirmodels as $reldir) $handle=opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) - { - if (substr($file, dol_strlen($file) -12) == '.modules.php' && substr($file,0,4) == 'pdf_') + while (($file = readdir($handle))!==false) + { + $filelist[]=$file; + } + closedir($handle); + arsort($filelist); + + foreach($filelist as $file) + { + if (preg_match('/\.modules\.php$/i',$file) && preg_match('/^(pdf_|doc_)/',$file)) { - $var=!$var; - - $name = substr($file, 4, dol_strlen($file) -16); - $classname = substr($file, 0, dol_strlen($file) -12); - - require_once $dir.'/'.$file; - $module = new $classname($db); - - print ''; - print (empty($module->name)?$name:$module->name); - print "\n"; - require_once $dir.$file; - $module = new $classname($db); - print $module->description; - print ''; - - // Active - if (in_array($name, $def)) + if (file_exists($dir.'/'.$file)) { - print "\n"; - print 'scandir.'&label='.urlencode($module->name).'">'; - print img_picto($langs->trans("Enabled"),'switch_on'); - print ''; - print ""; - } - else - { - print "\n"; - print 'scandir.'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"),'switch_off').''; - print ""; - } + $var=!$var; - // Default - print ""; - if ($conf->global->FICHEINTER_ADDON_PDF == "$name") - { - print img_picto($langs->trans("Default"),'on'); - } - else - { - print 'scandir.'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').''; - } - print ''; + $name = substr($file, 4, dol_strlen($file) -16); + $classname = substr($file, 0, dol_strlen($file) -12); - // Info - $htmltooltip = ''.$langs->trans("Name").': '.$module->name; - $htmltooltip.='
'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown")); - $htmltooltip.='
'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur; - $htmltooltip.='

'.$langs->trans("FeaturesSupported").':'; - $htmltooltip.='
'.$langs->trans("Logo").': '.yn($module->option_logo,1,1); - $htmltooltip.='
'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1); - $htmltooltip.='
'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1); - $htmltooltip.='
'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang,1,1); - $htmltooltip.='
'.$langs->trans("WatermarkOnDraftOrders").': '.yn($module->option_draft_watermark,1,1); - print ''; - print $form->textwithpicto('',$htmltooltip,-1,0); - print ''; - - // Preview - $link=''.img_object($langs->trans("Preview"),'intervention').''; - print ''; - print $link; - print ''; + require_once $dir.'/'.$file; + $module = new $classname($db); - print ''; + $modulequalified=1; + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified=0; + if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) $modulequalified=0; + + if ($modulequalified) + { + print ''; + print (empty($module->name)?$name:$module->name); + print "\n"; + if (method_exists($module,'info')) print $module->info($langs); + else print $module->description; + print ''; + + // Active + if (in_array($name, $def)) + { + print "\n"; + print 'scandir.'&label='.urlencode($module->name).'">'; + print img_picto($langs->trans("Enabled"),'switch_on'); + print ''; + print ""; + } + else + { + print "\n"; + print 'scandir.'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"),'switch_off').''; + print ""; + } + + // Default + print ""; + if ($conf->global->FICHEINTER_ADDON_PDF == "$name") + { + print img_picto($langs->trans("Default"),'on'); + } + else + { + print 'scandir.'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').''; + } + print ''; + + // Info + $htmltooltip = ''.$langs->trans("Name").': '.$module->name; + $htmltooltip.='
'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown")); + $htmltooltip.='
'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur; + $htmltooltip.='

'.$langs->trans("FeaturesSupported").':'; + $htmltooltip.='
'.$langs->trans("Logo").': '.yn($module->option_logo,1,1); + $htmltooltip.='
'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1); + $htmltooltip.='
'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1); + $htmltooltip.='
'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang,1,1); + $htmltooltip.='
'.$langs->trans("WatermarkOnDraftOrders").': '.yn($module->option_draft_watermark,1,1); + print ''; + print $form->textwithpicto('',$htmltooltip,-1,0); + print ''; + + // Preview + print ''; + if ($module->type == 'pdf') + { + print ''.img_object($langs->trans("Preview"),'intervention').''; + } + else + { + print img_object($langs->trans("PreviewNotAvailable"),'generic'); + } + print ''; + + print ''; + } + } } } - closedir($handle); } } } diff --git a/htdocs/admin/livraison.php b/htdocs/admin/livraison.php index 415bff261de..b591aa79c08 100644 --- a/htdocs/admin/livraison.php +++ b/htdocs/admin/livraison.php @@ -4,7 +4,7 @@ * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2004 Eric Seigne - * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2005-2014 Regis Houssin * Copyright (C) 2011-2013 Juanjo Menent * Copyright (C) 2011-2013 Philippe Grand * @@ -95,7 +95,7 @@ if ($action == 'specimen') $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); + $file=dol_buildpath($reldir."core/modules/livraison/doc/pdf_".$modele.".modules.php",0); if (file_exists($file)) { $filefound=1; @@ -128,6 +128,35 @@ if ($action == 'specimen') } } +// Define constants for submodules that contains parameters (forms with param1, param2, ... and value1, value2, ...) +if ($action == 'setModuleOptions') +{ + $post_size=count($_POST); + + $db->begin(); + + for($i=0;$i < $post_size;$i++) + { + if (array_key_exists('param'.$i,$_POST)) + { + $param=GETPOST("param".$i,'alpha'); + $value=GETPOST("value".$i,'alpha'); + if ($param) $res = dolibarr_set_const($db,$param,$value,'chaine',0,'',$conf->entity); + if (! $res > 0) $error++; + } + } + if (! $error) + { + $db->commit(); + setEventMessage($langs->trans("SetupSaved")); + } + else + { + $db->rollback(); + setEventMessage($langs->trans("Error"),'errors'); + } +} + if ($action == 'set') { $ret = addDocumentModel($value, $type, $label, $scandir); @@ -356,75 +385,101 @@ clearstatcache(); $var=true; foreach ($dirmodels as $reldir) { - $dir = dol_buildpath($reldir."core/modules/livraison/pdf/"); + $dir = dol_buildpath($reldir."core/modules/livraison/doc/"); if (is_dir($dir)) { $handle = opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) - { - if (substr($file, dol_strlen($file) -12) == '.modules.php' && substr($file,0,4) == 'pdf_') + while (($file = readdir($handle))!==false) + { + $filelist[]=$file; + } + closedir($handle); + arsort($filelist); + + foreach($filelist as $file) + { + if (preg_match('/\.modules\.php$/i',$file) && preg_match('/^(pdf_|doc_)/',$file)) { - $name = substr($file, 4, dol_strlen($file) - 16); - $classname = substr($file, 0, dol_strlen($file) - 12); + if (file_exists($dir.'/'.$file)) + { + $var=!$var; - $var=!$var; + $name = substr($file, 4, dol_strlen($file) -16); + $classname = substr($file, 0, dol_strlen($file) -12); - print ''; - print $name; - print "\n"; - require_once $dir.$file; - $module = new $classname($db); + require_once $dir.'/'.$file; + $module = new $classname($db); - print $module->description; - print ''; + $modulequalified=1; + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified=0; + if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) $modulequalified=0; - // Activ - if (in_array($name, $def)) - { - print "\n"; - print 'scandir.'&label='.urlencode($module->name).'">'; - print img_picto($langs->trans("Enabled"),'switch_on'); - print ''; - print ""; - } - else - { - print "\n"; - print 'scandir.'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"),'switch_off').''; - print ""; - } + if ($modulequalified) + { + print ''; + print (empty($module->name)?$name:$module->name); + print "\n"; + if (method_exists($module,'info')) print $module->info($langs); + else print $module->description; + print ''; - // Default - print ""; - if ($conf->global->LIVRAISON_ADDON_PDF == "$name") - { - print img_picto($langs->trans("Default"),'on'); - } - else - { - print 'scandir.'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').''; - } - print ''; + // Active + if (in_array($name, $def)) + { + print "\n"; + print 'scandir.'&label='.urlencode($module->name).'">'; + print img_picto($langs->trans("Enabled"),'switch_on'); + print ''; + print ""; + } + else + { + print "\n"; + print 'scandir.'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"),'switch_off').''; + print ""; + } - // Info - $htmltooltip = ''.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown")); - $htmltooltip.='
'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur; - $htmltooltip.='

'.$langs->trans("FeaturesSupported").':'; - $htmltooltip.='
'.$langs->trans("Logo").': '.yn($module->option_logo,1,1); - print ''; - print $form->textwithpicto('',$htmltooltip,1,0); - print ''; - print ''; - print ''.img_object($langs->trans("Preview"),'sending').''; - print ''; + // Default + print ""; + if ($conf->global->LIVRAISON_ADDON_PDF == "$name") + { + print img_picto($langs->trans("Default"),'on'); + } + else + { + print 'scandir.'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').''; + } + print ''; - print ''; + // Info + $htmltooltip = ''.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown")); + $htmltooltip.='
'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur; + $htmltooltip.='

'.$langs->trans("FeaturesSupported").':'; + $htmltooltip.='
'.$langs->trans("Logo").': '.yn($module->option_logo,1,1); + print ''; + print $form->textwithpicto('',$htmltooltip,1,0); + print ''; + + // Preview + print ''; + if ($module->type == 'pdf') + { + print ''.img_object($langs->trans("Preview"),'sending').''; + } + else + { + print img_object($langs->trans("PreviewNotAvailable"),'generic'); + } + print ''; + + print ''; + } + } } } - closedir($handle); } } } diff --git a/htdocs/admin/system/index.php b/htdocs/admin/system/index.php index 30bd3f80d4a..64df9432e82 100644 --- a/htdocs/admin/system/index.php +++ b/htdocs/admin/system/index.php @@ -117,4 +117,3 @@ print info_admin($langs->trans("SystemInfoDesc")).'
'; llxFooter(); $db->close(); - diff --git a/htdocs/categories/categorie.php b/htdocs/categories/categorie.php index a21f7a53699..d1fe7848564 100644 --- a/htdocs/categories/categorie.php +++ b/htdocs/categories/categorie.php @@ -102,7 +102,7 @@ $hookmanager->initHooks(array('categorycard')); $parameters=array('id'=>$socid); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks -$error=$hookmanager->error; $errors=array_merge($errors, (array) $hookmanager->errors); +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if (empty($reshook)) { diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 7ca82a2751e..827e2df976a 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -219,6 +219,7 @@ if ($action == 'add') if ($value['id'] > 0) { $usertodo->fetch($value['id']); + $object->userownerid = $usertodo->id; } $object->usertodo = $usertodo; $object->transparency = (GETPOST("transparency")=='on'?1:0); @@ -235,17 +236,21 @@ if ($action == 'add') if ($_POST["doneby"] > 0) { $userdone->fetch($_POST["doneby"]); + $object->userdoneid = $userdone->id; } $object->userdone = $userdone; } $object->note = trim($_POST["note"]); + if (isset($_POST["contactid"])) $object->contact = $contact; + if (GETPOST('socid','int') > 0) { $societe = new Societe($db); $societe->fetch(GETPOST('socid','int')); - $object->societe = $societe; + $object->societe = $societe; // deprecated + $object->thirdparty = $societe; } // Special for module webcal and phenix @@ -359,8 +364,10 @@ if ($action == 'update') $object->priority = $_POST["priority"]; $object->fulldayevent= $_POST["fullday"]?1:0; $object->location = GETPOST('location'); - $object->societe->id = $_POST["socid"]; - $object->contact->id = $_POST["contactid"]; + $object->socid = $_POST["socid"]; + $object->contactid = $_POST["contactid"]; + $object->societe->id = $_POST["socid"]; // deprecated + $object->contact->id = $_POST["contactid"]; // deprecated $object->fk_project = $_POST["projectid"]; $object->note = $_POST["note"]; $object->pnote = $_POST["note"]; @@ -795,22 +802,16 @@ if ($action == 'create') if ($id > 0) { $result1=$object->fetch($id); - $result2=$object->fetch_userassigned(); - $result3=$object->fetch_optionals($id,$extralabels); + $result2=$object->fetch_thirdparty(); + $result3=$object->fetch_userassigned(); + $result4=$object->fetch_optionals($id,$extralabels); - if ($result1 < 0 || $result2 < 0 || $result3 < 0) + if ($result1 < 0 || $result2 < 0 || $result3 < 0 || $result4 < 0) { dol_print_error($db,$object->error); exit; } - $societe = new Societe($db); - if ($object->societe->id) - { - $result=$societe->fetch($object->societe->id); - } - $object->societe = $societe; - if ($object->author->id > 0) { $tmpuser=new User($db); $res=$tmpuser->fetch($object->author->id); $object->author=$tmpuser; } if ($object->usermod->id > 0) { $tmpuser=new User($db); $res=$tmpuser->fetch($object->usermod->id); $object->usermod=$tmpuser; } if ($object->usertodo->id > 0) { $tmpuser=new User($db); $res=$tmpuser->fetch($object->usertodo->id); $object->usertodo=$tmpuser; } @@ -959,12 +960,12 @@ if ($id > 0) print ''; $events=array(); $events[]=array('method' => 'getContacts', 'url' => dol_buildpath('/core/ajax/contacts.php',1), 'htmlname' => 'contactid', 'params' => array('add-customer-contact' => 'disabled')); - print $form->select_company($object->societe->id,'socid','',1,1,0,$events); + print $form->select_company($object->thirdparty->id,'socid','',1,1,0,$events); print ''; // Contact print ''.$langs->trans("Contact").''; - $form->select_contacts($object->societe->id, $object->contact->id,'contactid',1); + $form->select_contacts($object->thirdparty->id, $object->contact->id,'contactid',1); print ''; } @@ -978,7 +979,7 @@ if ($id > 0) $langs->load("project"); print ''.$langs->trans("Project").''; - $numprojet=$formproject->select_projects($object->societe->id,$object->fk_project,'projectid'); + $numprojet=$formproject->select_projects($object->thirdparty->id,$object->fk_project,'projectid'); if ($numprojet==0) { print '   '.$langs->trans("AddProject").''; @@ -1152,12 +1153,12 @@ if ($id > 0) // Third party - Contact if ($conf->societe->enabled) { - print ''.$langs->trans("ActionOnCompany").''.($object->societe->id?$object->societe->getNomUrl(1):$langs->trans("None")); - if ($object->societe->id && $object->type_code == 'AC_TEL') + print ''.$langs->trans("ActionOnCompany").''.($object->thirdparty->id?$object->thirdparty->getNomUrl(1):$langs->trans("None")); + if (is_object($object->thirdparty) && $object->thirdparty->id > 0 && $object->type_code == 'AC_TEL') { - if ($object->societe->fetch($object->societe->id)) + if ($object->thirdparty->fetch($object->thirdparty->id)) { - print "
".dol_print_phone($object->societe->phone); + print "
".dol_print_phone($object->thirdparty->phone); } } print ''; diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index ffe07614b7d..fa7130ec018 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -47,8 +47,10 @@ class ActionComm extends CommonObject var $datec; // Date creation record (datec) var $datem; // Date modification record (tms) - var $author; // Object user that create action - var $usermod; // Object user that modified action + var $author; // Object user that create action //deprecated + var $usermod; // Object user that modified action // deprecated + var $authorid; // Id user that create action + var $usermodid; // Id user that modified action var $datep; // Date action start (datep) var $datef; // Date action end (datep2) @@ -63,8 +65,9 @@ class ActionComm extends CommonObject var $note; // Description var $userassigned = array(); // Array of user ids - var $usertodo; // Object user of owner - var $userdone; // Object user that did action (deprecated) + var $userownerid; // Id of user owner + var $usertodo; // Object user of owner // deprecated + var $userdone; // Object user that did action // deprecated var $socid; var $contactid; @@ -134,6 +137,9 @@ class ActionComm extends CommonObject if ($this->elementtype=='commande') $this->elementtype='order'; if ($this->elementtype=='contrat') $this->elementtype='contract'; + $userownerid=isset($this->usertodo->id)?$this->usertodo->id:$this->userownerid; // For backward compatibility + $userdoneid=isset($this->userdone->id)?$this->userdone->id:$this->userdoneid; // For backward compatibility + if (! $this->type_id && $this->type_code) { // Get id from code @@ -192,13 +198,13 @@ class ActionComm extends CommonObject $sql.= (isset($this->durationp) && $this->durationp >= 0 && $this->durationp != ''?"'".$this->durationp."'":"null").","; // deprecated $sql.= (isset($this->type_id)?$this->type_id:"null").","; $sql.= (isset($this->code)?" '".$this->code."'":"null").","; - $sql.= (isset($this->societe->id) && $this->societe->id > 0?" '".$this->societe->id."'":"null").","; + $sql.= (isset($this->socid) && $this->socid > 0?" '".$this->socid."'":"null").","; $sql.= (isset($this->fk_project) && $this->fk_project > 0?" '".$this->fk_project."'":"null").","; $sql.= " '".$this->db->escape($this->note)."',"; - $sql.= (isset($this->contact->id) && $this->contact->id > 0?"'".$this->contact->id."'":"null").","; + $sql.= (isset($this->contactid) && $this->contactid > 0?"'".$this->contactid."'":"null").","; $sql.= (isset($user->id) && $user->id > 0 ? "'".$user->id."'":"null").","; - $sql.= (isset($this->usertodo->id) && $this->usertodo->id > 0?"'".$this->usertodo->id."'":"null").","; - $sql.= (isset($this->userdone->id) && $this->userdone->id > 0?"'".$this->userdone->id."'":"null").","; + $sql.= ($userownerid>0?"'".$userownerid."'":"null").","; + $sql.= ($userdoneid>0?"'".$userdoneid."'":"null").","; $sql.= "'".$this->db->escape($this->label)."','".$this->percentage."','".$this->priority."','".$this->fulldayevent."','".$this->db->escape($this->location)."','".$this->punctual."',"; $sql.= "'".$this->transparency."',"; $sql.= (! empty($this->fk_element)?$this->fk_element:"null").","; @@ -351,17 +357,20 @@ class ActionComm extends CommonObject $this->author->lastname = $obj->lastname; $this->usermod->id = $obj->fk_user_mod; - $this->usertodo->id = $obj->fk_user_action; - $this->userdone->id = $obj->fk_user_done; + $this->userownerid = $obj->fk_user_action; + $this->usertodo->id = $obj->fk_user_action; // deprecated + //$this->userdone->id = $obj->fk_user_done; $this->priority = $obj->priority; $this->fulldayevent = $obj->fulldayevent; $this->location = $obj->location; $this->transparency = $obj->transparency; - $this->socid = $obj->fk_soc; // To have fetch_thirdparty method working - $this->societe->id = $obj->fk_soc; - $this->contact->id = $obj->fk_contact; - $this->fk_project = $obj->fk_project; + $this->socid = $obj->fk_soc; // To have fetch_thirdparty method working + $this->contactid = $obj->fk_contact; + $this->fk_project = $obj->fk_project; // To have fetch_project method working + + $this->societe->id = $obj->fk_soc; // For backward compatibility + $this->contact->id = $obj->fk_contact; // For backward compatibility $this->fk_element = $obj->fk_element; $this->elementtype = $obj->elementtype; @@ -378,19 +387,25 @@ class ActionComm extends CommonObject /** - * Initialize this->userassigned array + * Initialize this->userassigned array with list of id of user assigned to event * * @return int <0 if KO, >0 if OK */ function fetch_userassigned() { global $langs; + $sql.="SELECT fk_actioncomm, element_type, fk_element, answer_status, mandatory, transparency"; $sql.=" FROM ".MAIN_DB_PREFIX."actioncomm_resources"; $sql.=" WHERE element_type = 'user' AND fk_actioncomm = ".$this->id; $resql2=$this->db->query($sql); if ($resql2) { + $this->userassigned=array(); + + // If owner is known, we must but id first into list + if ($this->userownerid > 0) $this->userassigned[$this->userownerid]=array('id'=>$this->userownerid); // Set first so will be first into list. + while ($obj = $this->db->fetch_object($resql2)) { $this->userassigned[$obj->fk_element]=array('id'=>$obj->fk_element, 'mandatory'=>$obj->mandatory, 'answer_status'=>$obj->answer_status, 'transparency'=>$obj->transparency); diff --git a/htdocs/comm/action/class/cactioncomm.class.php b/htdocs/comm/action/class/cactioncomm.class.php index 8908b4e2a46..065f01d2091 100644 --- a/htdocs/comm/action/class/cactioncomm.class.php +++ b/htdocs/comm/action/class/cactioncomm.class.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2005 Laurent Destailleur + * Copyright (C) 2004-2014 Laurent Destailleur * * 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 @@ -37,6 +37,7 @@ class CActionComm var $type; var $libelle; var $active; + var $color; var $type_actions=array(); @@ -59,7 +60,7 @@ class CActionComm */ function fetch($id) { - $sql = "SELECT id, code, type, libelle, active"; + $sql = "SELECT id, code, type, libelle, color, active"; $sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm"; if (is_numeric($id)) $sql.= " WHERE id=".$id; else $sql.= " WHERE code='".$id."'"; @@ -77,12 +78,13 @@ class CActionComm $this->type = $obj->type; $this->libelle = $obj->libelle; $this->active = $obj->active; + $this->color = $obj->color; $this->db->free($resql); return 1; } else - { + { $this->db->free($resql); return 0; } @@ -95,7 +97,7 @@ class CActionComm } /** - * Return list of event types + * Return list of event types: array(id=>label) or array(code=>label) * * @param int $active 1 or 0 to filter on event state active or not ('' by default = no filter) * @param string $idorcode 'id' or 'code' @@ -111,7 +113,7 @@ class CActionComm $repid = array(); $repcode = array(); - $sql = "SELECT id, code, libelle, module, type"; + $sql = "SELECT id, code, libelle, module, type, color"; $sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm"; if ($active != '') $sql.=" WHERE active=".$active; if (! empty($excludetype)) $sql.=($active != ''?" AND":" WHERE")." type <> '".$excludetype."'"; diff --git a/htdocs/comm/action/document.php b/htdocs/comm/action/document.php index b000d2017d7..0556e532f35 100644 --- a/htdocs/comm/action/document.php +++ b/htdocs/comm/action/document.php @@ -60,12 +60,7 @@ $object = new ActionComm($db); if ($objectid > 0) { $ret = $object->fetch($objectid); - if ($ret > 0) { - $company=new Societe($db); - $company->fetch($object->societe->id); - $object->societe=$company; // For backward compatibility - $object->thirdparty=$company; - } + $object->fetch_thirdparty(); } // Get parameters @@ -112,7 +107,7 @@ if ($object->id > 0) $now=dol_now(); $delay_warning=$conf->global->MAIN_DELAY_ACTIONS_TODO*24*60*60; - + dol_fiche_head($head, 'documents', $langs->trans("Action"),0,'action'); // Affichage fiche action en mode visu @@ -202,17 +197,17 @@ if ($object->id > 0) print ''.$langs->trans("ActionAffectedTo").''; if ($object->usertodo->id > 0) print $object->usertodo->getNomUrl(1); print ''; - + print '

'; // Third party - Contact - print ''; diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php index 44d1e209694..8f3d82f5f9b 100644 --- a/htdocs/comm/action/index.php +++ b/htdocs/comm/action/index.php @@ -419,6 +419,7 @@ if ($actioncode) $sql.=" AND ca.code='".$db->escape($actioncode)."'"; if ($pid) $sql.=" AND a.fk_project=".$db->escape($pid); if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND (a.fk_soc IS NULL OR sc.fk_user = " .$user->id . ")"; if ($socid > 0) $sql.= ' AND a.fk_soc = '.$socid; +// FIXME: We must filter on assignement table if ($usergroup > 0) $sql.= " AND ugu.fk_user = a.fk_user_action"; if ($action == 'show_day') { @@ -453,6 +454,7 @@ if ($status == '-1') { $sql.= " AND a.percent = -1"; } // Not applicable if ($status == '50') { $sql.= " AND (a.percent > 0 AND a.percent < 100)"; } // Running already started if ($status == 'done' || $status == '100') { $sql.= " AND (a.percent = 100 OR (a.percent = -1 AND a.datep2 <= '".$db->idate($now)."'))"; } if ($status == 'todo') { $sql.= " AND ((a.percent >= 0 AND a.percent < 100) OR (a.percent = -1 AND a.datep2 > '".$db->idate($now)."'))"; } +// FIXME: We must filter on assignement table if ($filtera > 0 || $filtert > 0 || $filterd > 0 || $usergroup > 0) { $sql.= " AND ("; @@ -484,10 +486,12 @@ if ($resql) $event->type_code=$obj->code; $event->libelle=$obj->label; $event->percentage=$obj->percent; - $event->author->id=$obj->fk_user_author; // user id of creator - $event->usertodo->id=$obj->fk_user_action; // user id of owner - $event->userdone->id=$obj->fk_user_done; // deprecated - // $event->userstodo=... with s after user, in future version, will be an array with all id of user assigned to event + //$event->author->id=$obj->fk_user_author; // user id of creator + $event->authorid=$obj->fk_user_author; // user id of creator + $event->userownerid=$obj->fk_user_action; // user id of owner + $event->fetch_userassigned(); // This load $event->userassigned + //$event->usertodo->id=$obj->fk_user_action; // user id of owner + //$event->userdone->id=$obj->fk_user_done; // deprecated $event->priority=$obj->priority; $event->fulldayevent=$obj->fulldayevent; $event->location=$obj->location; @@ -1069,7 +1073,7 @@ $db->close(); * @param int $year Year * @param int $monthshown Current month shown in calendar view * @param string $style Style to use for this day - * @param array &$eventarray Array of events + * @param array $eventarray Array of events * @param int $maxprint Nb of actions to show each day on month view (0 means no limit) * @param int $maxnbofchar Nb of characters to show for event line * @param string $newparam Parameters on current URL @@ -1132,19 +1136,19 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa { if ($i < $maxprint || $maxprint == 0 || ! empty($conf->global->MAIN_JS_SWITCH_AGENDA)) { - $ponct=($event->date_start_in_calendar == $event->date_end_in_calendar); + $keysofuserassigned=array_keys($event->userassigned); + + $ponct=($event->date_start_in_calendar == $event->date_end_in_calendar); // Define $color and $cssclass of event $color=-1; $cssclass=''; $colorindex=-1; - if ((! empty($event->author->id) && $event->author->id == $user->id) - || (! empty($event->usertodo->id) && $event->usertodo->id == $user->id) - || (! empty($event->userdone->id) && $event->userdone->id == $user->id)) - { - $nummytasks++; $cssclass='family_mytasks'; + if (in_array($user->id, $keysofuserassigned)) + { + $nummytasks++; $cssclass='family_mytasks'; // TODO Set a color using user color // Must defined rule to choose color of who to use. - // event->usertodo->id will still contains user id of owner - // event->userstodo will be an array in future. + // event->ownerid will still contains user id of owner + // event->userassigned will be an array in future. // $color=$user->color; } else if ($event->type_code == 'ICALEVENT') @@ -1164,7 +1168,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa if ($color == -1) // Color was not forced. Set color according to color index. { // Define color index if not yet defined - $idusertouse=($event->usertodo->id?$event->usertodo->id:0); + $idusertouse=($event->userownerid?$event->userownerid:0); if (isset($colorindexused[$idusertouse])) { $colorindex=$colorindexused[$idusertouse]; // Color already assigned to this user @@ -1344,7 +1348,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa } else { - print 'escape($actioncode)."'"; if ($pid) $sql.=" AND a.fk_project=".$db->escape($pid); if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND (a.fk_soc IS NULL OR sc.fk_user = " .$user->id . ")"; if ($socid > 0) $sql.= " AND s.rowid = ".$socid; +// FIXME: We must filter on assignement table if ($usergroup > 0) $sql.= " AND ugu.fk_user = a.fk_user_action"; if ($type) $sql.= " AND c.id = ".$type; if ($status == '0') { $sql.= " AND a.percent = 0"; } @@ -170,6 +171,7 @@ if ($status == '-1') { $sql.= " AND a.percent = -1"; } // Not applicable if ($status == '50') { $sql.= " AND (a.percent > 0 AND a.percent < 100)"; } // Running already started if ($status == 'done' || $status == '100') { $sql.= " AND (a.percent = 100 OR (a.percent = -1 AND a.datep2 <= '".$db->idate($now)."'))"; } if ($status == 'todo') { $sql.= " AND ((a.percent >= 0 AND a.percent < 100) OR (a.percent = -1 AND a.datep2 > '".$db->idate($now)."'))"; } +// FIXME: We must filter on assignement table if ($filtera > 0 || $filtert > 0 || $filterd > 0 || $usergroup > 0) { $sql.= " AND ("; diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php index f6a616d3496..d66765b139b 100644 --- a/htdocs/comm/action/peruser.php +++ b/htdocs/comm/action/peruser.php @@ -335,6 +335,7 @@ if ($actioncode) $sql.=" AND ca.code='".$db->escape($actioncode)."'"; if ($pid) $sql.=" AND a.fk_project=".$db->escape($pid); if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND (a.fk_soc IS NULL OR sc.fk_user = " .$user->id . ")"; if ($socid > 0) $sql.= ' AND a.fk_soc = '.$socid; +// FIXME: We must filter on assignement table if ($usergroup > 0) $sql.= " AND ugu.fk_user = a.fk_user_action"; if ($action == 'show_day') { @@ -369,6 +370,7 @@ if ($status == '-1') { $sql.= " AND a.percent = -1"; } // Not applicable if ($status == '50') { $sql.= " AND (a.percent > 0 AND a.percent < 100)"; } // Running already started if ($status == 'done' || $status == '100') { $sql.= " AND (a.percent = 100 OR (a.percent = -1 AND a.datep2 <= '".$db->idate($now)."'))"; } if ($status == 'todo') { $sql.= " AND ((a.percent >= 0 AND a.percent < 100) OR (a.percent = -1 AND a.datep2 > '".$db->idate($now)."'))"; } +// FIXME: We must filter on assignement table if ($filtera > 0 || $filtert > 0 || $filterd > 0 || $usergroup > 0) { $sql.= " AND ("; @@ -398,13 +400,14 @@ if ($resql) $event->datep=$db->jdate($obj->datep); // datep and datef are GMT date $event->datef=$db->jdate($obj->datep2); $event->type_code=$obj->code; - $event->libelle=$obj->label; // deprecated + //$event->libelle=$obj->label; // deprecated $event->label=$obj->label; $event->percentage=$obj->percent; - $event->author->id=$obj->fk_user_author; // user id of creator - $event->usertodo->id=$obj->fk_user_action; // user id of owner - $event->userdone->id=$obj->fk_user_done; // deprecated - // $event->userstodo=... with s after user, in future version, will be an array with all id of user assigned to event + //$event->author->id=$obj->fk_user_author; // user id of creator + $event->authorid=$obj->fk_user_author; // user id of creator + $event->userownerid=$obj->fk_user_action; // user id of owner + $event->fetch_userassigned(); // This load $event->userassigned + //$event->userdone->id=$obj->fk_user_done; // deprecated $event->priority=$obj->priority; $event->fulldayevent=$obj->fulldayevent; $event->location=$obj->location; @@ -412,8 +415,8 @@ if ($resql) $event->socid=$obj->fk_soc; $event->contactid=$obj->fk_contact; - $event->societe->id=$obj->fk_soc; - $event->contact->id=$obj->fk_contact; + //$event->societe->id=$obj->fk_soc; // deprecated + //$event->contact->id=$obj->fk_contact; // deprecated // Defined date_start_in_calendar and date_end_in_calendar property // They are date start and end of action but modified to not be outside calendar view. @@ -424,7 +427,7 @@ if ($resql) else $event->date_end_in_calendar=$event->datep; } else - { + { $event->date_start_in_calendar=$event->datep; if ($event->datef != '' && $event->datef >= $event->datep) $event->date_end_in_calendar=$event->datef; else $event->date_end_in_calendar=$event->datep; @@ -442,7 +445,7 @@ if ($resql) // This record is out of visible range } else - { + { if ($event->date_start_in_calendar < $firstdaytoshow) $event->date_start_in_calendar=$firstdaytoshow; if ($event->date_end_in_calendar > $lastdaytoshow) $event->date_end_in_calendar=$lastdaytoshow; @@ -598,6 +601,9 @@ else $usernames = $tmpgroup->listUsersForGroup(); } +// Load array of colors by type +// TODO +$colorsbytype=array(); // Loop on each user to show calendar $sav = $tmpday; @@ -608,6 +614,7 @@ foreach ($usernames as $username) echo ''; $tmpday = $sav; + // Lopp on each day of week $i = 0; for ($iter_day = 0; $iter_day < 7; $iter_day++) { @@ -631,7 +638,7 @@ foreach ($usernames as $username) if ($todayarray['mday']==$tmpday && $todayarray['mon']==$month && $todayarray['year']==$year) $today=1; if ($today) $style='cal_today_peruser'; - show_day_events2($username, $tmpday, $month, $year, $monthshown, $style, $eventarray, 0, $maxnbofchar, $newparam, 1, 300, $showheader); + show_day_events2($username, $tmpday, $month, $year, $monthshown, $style, $eventarray, 0, $maxnbofchar, $newparam, 1, 300, $showheader, $colorsbytype); $i++; } @@ -695,7 +702,7 @@ $db->close(); * @param int $year Year * @param int $monthshown Current month shown in calendar view * @param string $style Style to use for this day - * @param array &$eventarray Array of events + * @param array $eventarray Array of events * @param int $maxprint Nb of actions to show each day on month view (0 means no limit) * @param int $maxnbofchar Nb of characters to show for event line * @param string $newparam Parameters on current URL @@ -721,8 +728,9 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & $i=0; $nummytasks=0; $numother=0; $numbirthday=0; $numical=0; $numicals=array(); $ymd=sprintf("%04d",$year).sprintf("%02d",$month).sprintf("%02d",$day); - $nextindextouse=count($colorindexused); // At first run this is 0, so fist user has 0, next 1, ... + $nextindextouse=count($colorindexused); // At first run, this is 0, so fist user has 0, next 1, ... + // We are in a particular day for $username, now we scan all events foreach ($eventarray as $daykey => $notused) { $annee = date('Y',$daykey); @@ -733,17 +741,18 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & //Tout les events à la même date : foreach ($eventarray[$daykey] as $index => $event) { - if ($username->id != $event->usertodo->id) continue; // We discard record if event is from another user than user we want to show + $keysofuserassigned=array_keys($event->userassigned); + if (! in_array($username->id,$keysofuserassigned)) continue; // We discard record if event is from another user than user we want to show + //if ($username->id != $event->userownerid) continue; // We discard record if event is from another user than user we want to show $ponct=($event->date_start_in_calendar == $event->date_end_in_calendar); // Define $color and $cssclass of event $color=-1; $cssclass=''; $colorindex=-1; - if ((! empty($event->author->id) && $event->author->id == $user->id) - || (! empty($event->usertodo->id) && $event->usertodo->id == $user->id) - || (! empty($event->userdone->id) && $event->userdone->id == $user->id)) + if (in_array($user->id, $keysofuserassigned)) { $nummytasks++; $cssclass='family_mytasks'; + // TODO Set color according to event type } else if ($event->type_code == 'ICALEVENT') { @@ -765,7 +774,7 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & if ($color == -1) // Color was not forced. Set color according to color index. { // Define color index if not yet defined - $idusertouse=($event->usertodo->id?$event->usertodo->id:0); + $idusertouse=($event->userownerid?$event->userownerid:0); if (isset($colorindexused[$idusertouse])) { $colorindex=$colorindexused[$idusertouse]; // Color already assigned to this user diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index 5ad90cd24de..f1d27b791e6 100644 --- a/htdocs/comm/card.php +++ b/htdocs/comm/card.php @@ -78,6 +78,7 @@ $object = new Societe($db); $parameters = array('socid' => $id); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if ($action == 'setcustomeraccountancycode') diff --git a/htdocs/comm/list.php b/htdocs/comm/list.php index 18f03f28ca9..ac354d4d08d 100644 --- a/htdocs/comm/list.php +++ b/htdocs/comm/list.php @@ -73,6 +73,7 @@ $hookmanager->initHooks(array('customerlist')); $parameters=array(); $reshook=$hookmanager->executeHooks('doActions',$parameters); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); // Do we click on purge search criteria ? if (GETPOST("button_removefilter_x")) @@ -269,7 +270,7 @@ if ($result) print ''; print ''; - + $parameters=array('obj' => $obj); $formconfirm=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/comm/mailing/card.php b/htdocs/comm/mailing/card.php index 441e51ef293..efff271a08c 100644 --- a/htdocs/comm/mailing/card.php +++ b/htdocs/comm/mailing/card.php @@ -101,6 +101,7 @@ $object->substitutionarrayfortest=array( $parameters=array(); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); // Action clone object if ($action == 'confirm_clone' && $confirm == 'yes') diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index 3eac57a64b4..19be47d5b5f 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -105,8 +105,8 @@ $permissionnote = $user->rights->propale->creer; // Used by the include of actio */ $parameters = array('socid' => $socid); -$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some - // hooks +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); include DOL_DOCUMENT_ROOT . '/core/actions_setnotes.inc.php'; // Must be include, not includ_once diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index 4b43eadeebf..51c07eaa5b2 100644 --- a/htdocs/comm/propal/list.php +++ b/htdocs/comm/propal/list.php @@ -91,6 +91,7 @@ $hookmanager->initHooks(array('propallist')); $parameters=array('socid'=>$socid); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); // Do we click on purge search criteria ? if (GETPOST("button_removefilter_x")) diff --git a/htdocs/comm/prospect/list.php b/htdocs/comm/prospect/list.php index 6e138c1153c..7dada3e115f 100644 --- a/htdocs/comm/prospect/list.php +++ b/htdocs/comm/prospect/list.php @@ -161,6 +161,7 @@ $hookmanager->initHooks(array('prospectlist')); $parameters=array(); $reshook=$hookmanager->executeHooks('doActions',$parameters); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if ($action == 'cstc') { diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 29b22f8dbd2..6c8c54791bf 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -100,6 +100,7 @@ $permissionnote = $user->rights->commande->creer; // Used by the include of acti $parameters = array('socid' => $socid); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); include DOL_DOCUMENT_ROOT . '/core/actions_setnotes.inc.php'; // Must be include, not includ_once @@ -371,11 +372,11 @@ else if ($action == 'add' && $user->rights->commande->creer) { // If some invoice's lines already known $NBLINES = 8; for($i = 1; $i <= $NBLINES; $i ++) { - if ($_POST ['idprod' . $i]) { + if ($_POST['idprod' . $i]) { $xid = 'idprod' . $i; $xqty = 'qty' . $i; $xremise = 'remise_percent' . $i; - $object->add_product($_POST [$xid], $_POST [$xqty], $_POST [$xremise]); + $object->add_product($_POST[$xid], $_POST[$xqty], $_POST[$xremise]); } } } @@ -546,7 +547,7 @@ else if ($action == 'addline' && $user->rights->commande->creer) { if (is_array($extralabelsline)) { // Get extra fields foreach ($extralabelsline as $key => $value) { - unset($_POST ["options_" . $key]); + unset($_POST["options_" . $key]); } } @@ -725,23 +726,23 @@ else if ($action == 'addline' && $user->rights->commande->creer) { $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); } - unset($_POST ['prod_entry_mode']); + unset($_POST['prod_entry_mode']); - unset($_POST ['qty']); - unset($_POST ['type']); - unset($_POST ['remise_percent']); - unset($_POST ['price_ht']); - unset($_POST ['price_ttc']); - unset($_POST ['tva_tx']); - unset($_POST ['product_ref']); - unset($_POST ['product_label']); - unset($_POST ['product_desc']); - unset($_POST ['fournprice']); - unset($_POST ['buying_price']); - unset($_POST ['np_marginRate']); - unset($_POST ['np_markRate']); - unset($_POST ['dp_desc']); - unset($_POST ['idprod']); + unset($_POST['qty']); + unset($_POST['type']); + unset($_POST['remise_percent']); + unset($_POST['price_ht']); + unset($_POST['price_ttc']); + unset($_POST['tva_tx']); + unset($_POST['product_ref']); + unset($_POST['product_label']); + unset($_POST['product_desc']); + unset($_POST['fournprice']); + unset($_POST['buying_price']); + unset($_POST['np_marginRate']); + unset($_POST['np_markRate']); + unset($_POST['dp_desc']); + unset($_POST['idprod']); unset($_POST['date_starthour']); unset($_POST['date_startmin']); @@ -796,7 +797,7 @@ else if ($action == 'updateligne' && $user->rights->commande->creer && GETPOST(' // Unset extrafield POST Data if (is_array($extralabelsline)) { foreach ($extralabelsline as $key => $value) { - unset($_POST ["options_" . $key]); + unset($_POST["options_" . $key]); } } @@ -850,18 +851,18 @@ else if ($action == 'updateligne' && $user->rights->commande->creer && GETPOST(' $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); } - unset($_POST ['qty']); - unset($_POST ['type']); - unset($_POST ['productid']); - unset($_POST ['remise_percent']); - unset($_POST ['price_ht']); - unset($_POST ['price_ttc']); - unset($_POST ['tva_tx']); - unset($_POST ['product_ref']); - unset($_POST ['product_label']); - unset($_POST ['product_desc']); - unset($_POST ['fournprice']); - unset($_POST ['buying_price']); + unset($_POST['qty']); + unset($_POST['type']); + unset($_POST['productid']); + unset($_POST['remise_percent']); + unset($_POST['price_ht']); + unset($_POST['price_ttc']); + unset($_POST['tva_tx']); + unset($_POST['product_ref']); + unset($_POST['product_label']); + unset($_POST['product_desc']); + unset($_POST['fournprice']); + unset($_POST['buying_price']); } else { setEventMessage($object->error, 'errors'); } @@ -1699,6 +1700,8 @@ if ($action == 'create' && $user->rights->commande->creer) { $author = new User($db); $author->fetch($object->user_author_id); + $res = $object->fetch_optionals($object->id, $extralabels); + $head = commande_prepare_head($object); dol_fiche_head($head, 'order', $langs->trans("CustomerOrder"), 0, 'order'); @@ -2120,30 +2123,38 @@ if ($action == 'create' && $user->rights->commande->creer) { } // Other attributes (TODO Move this into an include) - $res = $object->fetch_optionals($object->id, $extralabels); $parameters = array('colspan' => ' colspan="3"'); - $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by - // hook - if (empty($reshook) && ! empty($extrafields->attribute_label)) { - foreach ($extrafields->attribute_label as $key => $label) { - if ($action == 'edit_extras') { - $value = (isset($_POST ["options_" . $key]) ? $_POST ["options_" . $key] : $object->array_options ["options_" . $key]); - } else { - $value = $object->array_options ["options_" . $key]; + $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if (empty($reshook) && ! empty($extrafields->attribute_label)) + { + foreach ($extrafields->attribute_label as $key => $label) + { + if ($action == 'edit_extras') + { + $value = (isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); } - if ($extrafields->attribute_type [$key] == 'separate') { + else + { + $value = $object->array_options["options_" . $key]; + } + + if ($extrafields->attribute_type[$key] == 'separate') + { print $extrafields->showSeparator($key); - } else { + } + else + { print 'attribute_required [$key])) - print ' class="fieldrequired"'; + if (! empty($extrafields->attribute_required [$key])) print ' class="fieldrequired"'; print '>' . $label . ''."\n"; } @@ -4289,7 +4302,7 @@ class Form /** * Return HTML code to output a barcode * - * @param Object &$object Object containing data to retrieve file name + * @param Object $object Object containing data to retrieve file name * @param int $width Width of photo * @return string HTML code to output barcode */ diff --git a/htdocs/core/class/html.formother.class.php b/htdocs/core/class/html.formother.class.php index 968dcd3856e..7abe08729d2 100644 --- a/htdocs/core/class/html.formother.class.php +++ b/htdocs/core/class/html.formother.class.php @@ -462,7 +462,7 @@ class FormOther /** * Write lines of a project (all lines of a project if parent = 0) * - * @param int &$inc Cursor counter + * @param int $inc Cursor counter * @param int $parent Id of parent task we want to see * @param array $lines Array of task lines * @param int $level Level diff --git a/htdocs/core/class/ldap.class.php b/htdocs/core/class/ldap.class.php index 30eeca5a486..88abc140104 100644 --- a/htdocs/core/class/ldap.class.php +++ b/htdocs/core/class/ldap.class.php @@ -370,7 +370,7 @@ class Ldap * Ldap object connect and bind must have been done * * @param string $dn DN entry key - * @param string[] $info Attributes array + * @param array $info Attributes array * @param User $user Objet user that create * @return int <0 if KO, >0 if OK */ @@ -423,7 +423,7 @@ class Ldap * Ldap object connect and bind must have been done * * @param string $dn DN entry key - * @param string[] $info Attributes array + * @param array $info Attributes array * @param string $user Objet user that modify * @return int <0 if KO, >0 if OK */ @@ -475,7 +475,7 @@ class Ldap * Ldap object connect and bind must have been done * * @param string $dn DN entry key - * @param string[] $info Attributes array + * @param array $info Attributes array * @param User $user Objet user that update * @param string $olddn Old DN entry key (before update) * @return int <0 if KO, >0 if OK @@ -563,7 +563,7 @@ class Ldap * Build a LDAP message * * @param string $dn DN entry key - * @param string[] $info Attributes array + * @param array $info Attributes array * @return string Content of file */ function dump_content($dn, $info) @@ -605,7 +605,7 @@ class Ldap * Dump a LDAP message to ldapinput.in file * * @param string $dn DN entry key - * @param string[] $info Attributes array + * @param array $info Attributes array * @return int <0 if KO, >0 if OK */ function dump($dn, $info) @@ -642,7 +642,7 @@ class Ldap * Ldap object connect and bind must have been done * * @param string $dn DN entry key - * @param string[] $info Attributes array + * @param array $info Attributes array * @param User $user Objet user that create * @return int <0 if KO, >0 if OK */ @@ -694,7 +694,7 @@ class Ldap * Ldap object connect and bind must have been done * * @param string $dn DN entry key - * @param string[] $info Attributes array + * @param array $info Attributes array * @param User $user Objet user that create * @return int <0 if KO, >0 if OK */ @@ -746,7 +746,7 @@ class Ldap * Ldap object connect and bind must have been done * * @param string $dn DN entry key - * @param string[] $info Attributes array + * @param array $info Attributes array * @param User $user Objet user that create * @return int <0 if KO, >0 if OK */ diff --git a/htdocs/core/class/link.class.php b/htdocs/core/class/link.class.php index 0c7d52f9569..dce575a1d47 100644 --- a/htdocs/core/class/link.class.php +++ b/htdocs/core/class/link.class.php @@ -222,7 +222,7 @@ class Link extends CommonObject /** * Loads all links from database * - * @param array &$links array of Link objects to fill + * @param array $links array of Link objects to fill * @param string $objecttype type of the associated object in dolibarr * @param int $objectid id of the associated object in dolibarr * @param string $sortfield field used to sort diff --git a/htdocs/core/class/menubase.class.php b/htdocs/core/class/menubase.class.php index aa43c545c8d..c1c760a29e7 100644 --- a/htdocs/core/class/menubase.class.php +++ b/htdocs/core/class/menubase.class.php @@ -376,7 +376,7 @@ class Menubase * @param string $myleftmenu Value for leftmenu to filter menu to load (always '') * @param int $type_user 0=Menu for backoffice, 1=Menu for front office * @param string $menu_handler Filter on name of menu_handler used (auguria, eldy...) - * @param array &$tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty) + * @param array $tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty) * @return array Return array with menu entries for top menu */ function menuTopCharger($mymainmenu, $myleftmenu, $type_user, $menu_handler, &$tabMenu) @@ -404,7 +404,7 @@ class Menubase * @param string $myleftmenu Value for leftmenu to filter menu to load (always '') * @param int $type_user 0=Menu for backoffice, 1=Menu for front office * @param string $menu_handler Filter on name of menu_handler used (auguria, eldy...) - * @param array &$tabMenu Array with menu entries already loaded + * @param array $tabMenu Array with menu entries already loaded * @return Menu Menu array for particular mainmenu value or full tabArray */ function menuLeftCharger($newmenu, $mymainmenu, $myleftmenu, $type_user, $menu_handler, &$tabMenu) @@ -489,7 +489,7 @@ class Menubase * @param string $myleftmenu Value for left that defined leftmenu * @param int $type_user Looks for menu entry for 0=Internal users, 1=External users * @param string $menu_handler Name of menu_handler used ('auguria', 'eldy'...) - * @param array &$tabMenu Array to store new entries found (in most cases, it's empty, but may be alreay filled) + * @param array $tabMenu Array to store new entries found (in most cases, it's empty, but may be alreay filled) * @return int >0 if OK, <0 if KO */ function menuLoad($mymainmenu, $myleftmenu, $type_user, $menu_handler, &$tabMenu) diff --git a/htdocs/core/class/rssparser.class.php b/htdocs/core/class/rssparser.class.php index 80ca1b155b7..d9a7d8348d6 100644 --- a/htdocs/core/class/rssparser.class.php +++ b/htdocs/core/class/rssparser.class.php @@ -258,7 +258,7 @@ class RssParser if (!is_resource($xmlparser)) { $this->error="ErrorFailedToCreateParser"; return -1; } - + xml_set_object($xmlparser, $this); xml_set_element_handler($xmlparser, 'feed_start_element', 'feed_end_element'); xml_set_character_data_handler($xmlparser, 'feed_cdata'); @@ -268,7 +268,7 @@ class RssParser //var_dump($rss->_format);exit; } } - + // If $rss loaded if ($rss) { @@ -452,7 +452,7 @@ class RssParser * * @param string $p Start * @param string $element Tag - * @param array &$attrs Attributes of tags + * @param array $attrs Attributes of tags * @return void */ function feed_start_element($p, $element, &$attrs) @@ -644,7 +644,7 @@ class RssParser /** * To concat 2 string with no warning if an operand is not defined * - * @param string &$str1 Str1 + * @param string $str1 Str1 * @param string $str2 Str2 * @return string String cancatenated */ diff --git a/htdocs/core/db/DoliDB.class.php b/htdocs/core/db/DoliDB.class.php index e0921f7acac..59fee975e38 100644 --- a/htdocs/core/db/DoliDB.class.php +++ b/htdocs/core/db/DoliDB.class.php @@ -17,8 +17,8 @@ */ /** - * \file htdocs/core/db/dolidb.class.php - * \brief Class file to manage Dolibarr database access + * \file htdocs/core/db/DoliDB.class.php + * \brief Class file to manage Dolibarr database access */ require_once DOL_DOCUMENT_ROOT .'/core/db/Database.interface.php'; diff --git a/htdocs/core/js/editinplace.js b/htdocs/core/js/editinplace.js index 4fe29e4b4fb..17d70220b31 100644 --- a/htdocs/core/js/editinplace.js +++ b/htdocs/core/js/editinplace.js @@ -1,4 +1,4 @@ -// Copyright (C) 2011-2012 Regis Houssin +// Copyright (C) 2011-2014 Regis Houssin // Copyright (C) 2011 Laurent Destailleur // // This program is free software; you can redistribute it and/or modify @@ -358,12 +358,19 @@ $(document).ready(function() { var res = $.parseJSON(result); if (res.error) { $(obj).html(obj.revert); - $.jnotify(res.error, "error", true); + var htmlname = $(obj).attr('id').substr(8); + var errormsg = $( '#errormsg_' + htmlname ).val(); + if (errormsg != undefined) { + $.jnotify(errormsg, "error", true); + } else { + $.jnotify(res.error, "error", true); + } + } else { var htmlname = $(obj).attr('id').substr(8); - var success = $( '#success_' + htmlname ).val(); - if (success != undefined) { - $.jnotify(success, "ok"); + var successmsg = $( '#successmsg_' + htmlname ).val(); + if (successmsg != undefined) { + $.jnotify(successmsg, "ok"); } $(obj).html(res.value); $(obj).hide(); diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index 14963b72288..a3cf6acca32 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -851,18 +851,18 @@ function unActivateModule($value, $requiredby=1) /** * Add external modules to list of dictionaries * - * @param array &$taborder Taborder - * @param array &$tabname Tabname - * @param array &$tablib Tablib - * @param array &$tabsql Tabsql - * @param array &$tabsqlsort Tabsqlsort - * @param array &$tabfield Tabfield - * @param array &$tabfieldvalue Tabfieldvalue - * @param array &$tabfieldinsert Tabfieldinsert - * @param array &$tabrowid Tabrowid - * @param array &$tabcond Tabcond - * @param array &$tabhelp Tabhelp - * @param array &$tabfieldcheck Tabfieldcheck + * @param array $taborder Taborder + * @param array $tabname Tabname + * @param array $tablib Tablib + * @param array $tabsql Tabsql + * @param array $tabsqlsort Tabsqlsort + * @param array $tabfield Tabfield + * @param array $tabfieldvalue Tabfieldvalue + * @param array $tabfieldinsert Tabfieldinsert + * @param array $tabrowid Tabrowid + * @param array $tabcond Tabcond + * @param array $tabhelp Tabhelp + * @param array $tabfieldcheck Tabfieldcheck * @return int 1 */ function complete_dictionary_with_modules(&$taborder,&$tabname,&$tablib,&$tabsql,&$tabsqlsort,&$tabfield,&$tabfieldvalue,&$tabfieldinsert,&$tabrowid,&$tabcond,&$tabhelp,&$tabfieldcheck) diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php index 8590f63803f..b8bbfd14f4a 100644 --- a/htdocs/core/lib/files.lib.php +++ b/htdocs/core/lib/files.lib.php @@ -43,7 +43,7 @@ function dol_basename($pathfile) * @param string $types Can be "directories", "files", or "all" * @param int $recursive Determines whether subdirectories are searched * @param string $filter Regex filter to restrict list. This regex value must be escaped for '/', since this char is used for preg_match function - * @param string[] $excludefilter Array of Regex for exclude filter (example: array('(\.meta|_preview\.png)$','^\.')) + * @param array $excludefilter Array of Regex for exclude filter (example: array('(\.meta|_preview\.png)$','^\.')) * @param string $sortcriteria Sort criteria ("","fullname","name","date","size") * @param string $sortorder Sort order (SORT_ASC, SORT_DESC) * @param int $mode 0=Return array minimum keys loaded (faster), 1=Force all keys like date and size to be loaded (slower), 2=Force load of date only, 3=Force load of size only @@ -1294,7 +1294,7 @@ function dol_uncompress($inputfile,$outputdir) * * @param string $dir Directory to scan * @param string $regexfilter Regex filter to restrict list. This regex value must be escaped for '/', since this char is used for preg_match function - * @param string[] $excludefilter Array of Regex for exclude filter (example: array('(\.meta|_preview\.png)$','^\.')). This regex value must be escaped for '/', since this char is used for preg_match function + * @param array $excludefilter Array of Regex for exclude filter (example: array('(\.meta|_preview\.png)$','^\.')). This regex value must be escaped for '/', since this char is used for preg_match function * @param int $nohook Disable all hooks * @return string Full path to most recent file */ diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index dc87e64950d..ad87d0f2644 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -3985,7 +3985,7 @@ function make_substitutions($chaine,$substitutionarray) /** * Complete the $substitutionarray with more entries * - * @param array &$substitutionarray Array substitution old value => new value value + * @param array $substitutionarray Array substitution old value => new value value * @param Translate $outputlangs If we want substitution from special constants, we provide a language * @param Object $object If we want substitution from special constants, we provide data in a source object * @param Mixed $parameters Add more parameters (useful to pass product lines) @@ -4344,7 +4344,7 @@ function dol_htmloutput_errors($mesgstring='', $mesgarray='', $keepembedded=0) * or descending output and uses optionally natural case insensitive sorting (which * can be optionally case sensitive as well). * - * @param array &$array Array to sort (array of array('key','otherkey1','otherkey2'...)) + * @param array $array Array to sort (array of array('key','otherkey1','otherkey2'...)) * @param string $index Key in array to use for sorting criteria * @param int $order Sort order * @param int $natsort 1=use "natural" sort (natsort), 0=use "standard" sort (asort) @@ -4564,8 +4564,8 @@ function picto_from_langcode($codelang) * @param Conf $conf Object conf * @param Translate $langs Object langs * @param Object $object Object object - * @param array &$head Object head - * @param int &$h New position to fill + * @param array $head Object head + * @param int $h New position to fill * @param string $type Value for object where objectvalue can be * 'thirdparty' to add a tab in third party view * 'intervention' to add a tab in intervention view diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php index 05abcd625e8..38ca67bc9b2 100644 --- a/htdocs/core/lib/functions2.lib.php +++ b/htdocs/core/lib/functions2.lib.php @@ -1108,7 +1108,7 @@ function numero_semaine($time) * Convertit une masse d'une unite vers une autre unite * * @param float $weight Masse a convertir - * @param int &$from_unit Unite originale en puissance de 10 + * @param int $from_unit Unite originale en puissance de 10 * @param int $to_unit Nouvelle unite en puissance de 10 * @return float Masse convertie */ @@ -1143,7 +1143,7 @@ function weight_convert($weight,&$from_unit,$to_unit) * * @param DoliDB $db Handler database * @param Conf $conf Object conf - * @param User &$user Object user + * @param User $user Object user * @param array $tab Tableau (cle=>valeur) des parametres a sauvegarder * @return int <0 if KO, >0 if OK * diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index 0f3e097bddd..f34a8dda51e 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -422,7 +422,7 @@ function pdf_build_address($outputlangs,$sourcecompany,$targetcompany='',$target /** * Show header of page for PDF generation * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Translate $outputlangs Object lang for output * @param int $page_height Height of page * @return void @@ -443,7 +443,7 @@ function pdf_pagehead(&$pdf,$outputlangs,$page_height) /** * Add a draft watermark on PDF files * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Translate $outputlangs Object lang * @param int $h Height of PDF * @param int $w Width of PDF @@ -483,7 +483,7 @@ function pdf_watermark(&$pdf, $outputlangs, $h, $w, $unit, $text) /** * Show bank informations for PDF generation * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Translate $outputlangs Object lang * @param int $curx X * @param int $cury Y @@ -645,7 +645,7 @@ function pdf_bank(&$pdf,$outputlangs,$curx,$cury,$account,$onlynumber=0,$default /** * Show footer of page for PDF generation * - * @param PDF &$pdf The PDF factory + * @param PDF $pdf The PDF factory * @param Translate $outputlangs Object lang for output * @param string $paramfreetext Constant name of free text * @param Societe $fromcompany Object company @@ -859,7 +859,7 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass /** * Show linked objects for PDF generation * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param object $object Object * @param Translate $outputlangs Object lang * @param int $posx X @@ -897,7 +897,7 @@ function pdf_writeLinkedObjects(&$pdf,$object,$outputlangs,$posx,$posy,$w,$h,$al /** * Output line description into PDF * - * @param PDF &$pdf PDF object + * @param PDF $pdf PDF object * @param Object $object Object * @param int $i Current line number * @param Translate $outputlangs Object lang for output diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php index f99034e088a..e9ceb297680 100644 --- a/htdocs/core/lib/project.lib.php +++ b/htdocs/core/lib/project.lib.php @@ -206,13 +206,13 @@ function project_admin_prepare_head() /** * Show task lines with a particular parent * - * @param string &$inc Counter that count number of lines legitimate to show (for return) + * @param string $inc Counter that count number of lines legitimate to show (for return) * @param int $parent Id of parent task to start - * @param array &$lines Array of all tasks - * @param int &$level Level of task + * @param array $lines Array of all tasks + * @param int $level Level of task * @param string $var Color * @param int $showproject Show project columns - * @param int &$taskrole Array of roles of user for each tasks + * @param int $taskrole Array of roles of user for each tasks * @param int $projectsListId List of id of project allowed to user (string separated with comma) * @param int $addordertick Add a tick to move task * @return void @@ -443,12 +443,12 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t /** * Output a task line * - * @param string &$inc ? + * @param string $inc ? * @param string $parent ? * @param Object $lines ? - * @param int &$level ? - * @param string &$projectsrole ? - * @param string &$tasksrole ? + * @param int $level ? + * @param string $projectsrole ? + * @param string $tasksrole ? * @param string $mine Show only task lines I am assigned to * @param int $restricteditformytask 0=No restriction, 1=Enable add time only if task is a task i am affected to * @return $inc @@ -589,10 +589,10 @@ function projectLinesb(&$inc, $parent, $lines, &$level, &$projectsrole, &$tasksr /** * Search in task lines with a particular parent if there is a task for a particular user (in taskrole) * - * @param string &$inc Counter that count number of lines legitimate to show (for return) + * @param string $inc Counter that count number of lines legitimate to show (for return) * @param int $parent Id of parent task to start - * @param array &$lines Array of all tasks - * @param string &$taskrole Array of task filtered on a particular user + * @param array $lines Array of all tasks + * @param string $taskrole Array of task filtered on a particular user * @return int 1 if there is */ function searchTaskInChild(&$inc, $parent, &$lines, &$taskrole) diff --git a/htdocs/core/lib/treeview.lib.php b/htdocs/core/lib/treeview.lib.php index 1bbf2e55e27..470da211f2e 100644 --- a/htdocs/core/lib/treeview.lib.php +++ b/htdocs/core/lib/treeview.lib.php @@ -28,7 +28,7 @@ /** * Show indent and picto of a tree line. Return array with information of line. * - * @param array &$fulltree Array of entries in correct order + * @param array $fulltree Array of entries in correct order * @param string $key Key of entry into fulltree to show picto * @param int $silent Do not output indent and picto, returns only value * @return array array(0 or 1 if at least one of this level after, 0 or 1 if at least one of higher level after, nbofdirinsub, nbofdocinsub) diff --git a/htdocs/core/lib/ws.lib.php b/htdocs/core/lib/ws.lib.php index 1e7f4b4e522..533a13e1fb6 100644 --- a/htdocs/core/lib/ws.lib.php +++ b/htdocs/core/lib/ws.lib.php @@ -27,9 +27,9 @@ * Check authentication array and set error, errorcode, errorlabel * * @param array $authentication Array with authentication informations ('login'=>,'password'=>,'entity'=>,'dolibarrkey'=>) - * @param int &$error Number of errors - * @param string &$errorcode Error string code - * @param string &$errorlabel Error string label + * @param int $error Number of errors + * @param string $errorcode Error string code + * @param string $errorlabel Error string label * @return User Return user object identified by login/pass/entity into authentication array */ function check_authentication($authentication,&$error,&$errorcode,&$errorlabel) diff --git a/htdocs/core/login/functions_forceuser.php b/htdocs/core/login/functions_forceuser.php index c990c0bd45e..94201c74ad0 100644 --- a/htdocs/core/login/functions_forceuser.php +++ b/htdocs/core/login/functions_forceuser.php @@ -46,4 +46,3 @@ function check_user_password_forceuser($usertotest,$passwordtotest,$entitytotest return $login; } - diff --git a/htdocs/core/login/functions_http.php b/htdocs/core/login/functions_http.php index 9d03913d2bc..285ebebbabf 100644 --- a/htdocs/core/login/functions_http.php +++ b/htdocs/core/login/functions_http.php @@ -43,4 +43,3 @@ function check_user_password_http($usertotest,$passwordtotest,$entitytotest) return $login; } - diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php index 76866123673..c411ef96039 100644 --- a/htdocs/core/menus/standard/auguria.lib.php +++ b/htdocs/core/menus/standard/auguria.lib.php @@ -31,8 +31,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php'; * @param DoliDB $db Database handler * @param string $atarget Target * @param int $type_user 0=Menu for backoffice, 1=Menu for front office - * @param array &$tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty) - * @param array &$menu Object Menu to return back list of menu entries + * @param array $tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty) + * @param array $menu Object Menu to return back list of menu entries * @param int $noout Disable output (Initialise &$menu only). * @return int 0 */ @@ -203,8 +203,8 @@ function print_end_menu_array_auguria() * @param DoliDB $db Database handler * @param array $menu_array_before Table of menu entries to show before entries of menu handler * @param array $menu_array_after Table of menu entries to show after entries of menu handler - * @param array &$tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty) - * @param Menu &$menu Object Menu to return back list of menu entries + * @param array $tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty) + * @param Menu $menu Object Menu to return back list of menu entries * @param int $noout Disable output (Initialise &$menu only). * @param string $forcemainmenu 'x'=Force mainmenu to mainmenu='x' * @param string $forceleftmenu 'all'=Force leftmenu to '' (= all) @@ -402,8 +402,8 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM * Function to test if an entry is enabled or not * * @param string $type_user 0=We need backoffice menu, 1=We need frontoffice menu - * @param array &$menuentry Array for menu entry - * @param array &$listofmodulesforexternal Array with list of modules allowed to external users + * @param array $menuentry Array for menu entry + * @param array $listofmodulesforexternal Array with list of modules allowed to external users * @return int 0=Hide, 1=Show, 2=Show gray */ function dol_auguria_showmenu($type_user, &$menuentry, &$listofmodulesforexternal) @@ -430,4 +430,3 @@ function dol_auguria_showmenu($type_user, &$menuentry, &$listofmodulesforexterna if (! $menuentry['perms']) return 2; // No permissions and user is external return 1; } - diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 1c90e19f096..7d32abe7571 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -32,8 +32,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php'; * @param DoliDB $db Database handler * @param string $atarget Target (Example: '' or '_top') * @param int $type_user 0=Menu for backoffice, 1=Menu for front office - * @param array &$tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty) - * @param array &$menu Object Menu to return back list of menu entries + * @param array $tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty) + * @param array $menu Object Menu to return back list of menu entries * @param int $noout Disable output (Initialise &$menu only). * @return int 0 */ @@ -428,8 +428,8 @@ function print_end_menu_array() * @param DoliDB $db Database handler * @param array $menu_array_before Table of menu entries to show before entries of menu handler (menu->liste filled with menu->add) * @param array $menu_array_after Table of menu entries to show after entries of menu handler (menu->liste filled with menu->add) - * @param array &$tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty) - * @param Menu &$menu Object Menu to return back list of menu entries + * @param array $tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty) + * @param Menu $menu Object Menu to return back list of menu entries * @param int $noout Disable output (Initialise &$menu only). * @param string $forcemainmenu 'x'=Force mainmenu to mainmenu='x' * @param string $forceleftmenu 'all'=Force leftmenu to '' (= all) @@ -1443,8 +1443,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu * Function to test if an entry is enabled or not * * @param string $type_user 0=We need backoffice menu, 1=We need frontoffice menu - * @param array &$menuentry Array for menu entry - * @param array &$listofmodulesforexternal Array with list of modules allowed to external users + * @param array $menuentry Array for menu entry + * @param array $listofmodulesforexternal Array with list of modules allowed to external users * @return int 0=Hide, 1=Show, 2=Show gray */ function dol_eldy_showmenu($type_user, &$menuentry, &$listofmodulesforexternal) diff --git a/htdocs/core/modules/action/rapport.pdf.php b/htdocs/core/modules/action/rapport.pdf.php index 1f03ea19d62..38996c7e6f0 100644 --- a/htdocs/core/modules/action/rapport.pdf.php +++ b/htdocs/core/modules/action/rapport.pdf.php @@ -185,7 +185,7 @@ class CommActionRapport /** * Write content of pages * - * @param PDF &$pdf Object pdf + * @param PDF $pdf Object pdf * @param Translate $outputlangs Object langs * @return int 1 */ @@ -299,7 +299,7 @@ class CommActionRapport /** * Show top header of page. * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Translate $outputlangs Object lang for output * @param int $pagenb Page nb * @return void diff --git a/htdocs/core/modules/barcode/mod_barcode_product_standard.php b/htdocs/core/modules/barcode/mod_barcode_product_standard.php index e03bdc6d2e9..28fa03ee4f3 100644 --- a/htdocs/core/modules/barcode/mod_barcode_product_standard.php +++ b/htdocs/core/modules/barcode/mod_barcode_product_standard.php @@ -20,7 +20,7 @@ */ /** - * \file htdocs/core/modules/product/mod_barcode_product_standard.php + * \file htdocs/core/modules/barcode/mod_barcode_product_standard.php * \ingroup barcode * \brief File of class to manage barcode numbering with standard rule */ @@ -162,7 +162,7 @@ class mod_barcode_product_standard extends ModeleNumRefBarCode * Check validity of code according to its rules * * @param DoliDB $db Database handler - * @param string &$code Code to check/correct + * @param string $code Code to check/correct * @param Product $product Object product * @param int $thirdparty_type 0 = customer/prospect , 1 = supplier * @param string $type type of barcode (EAN, ISBN, ...) @@ -177,7 +177,7 @@ class mod_barcode_product_standard extends ModeleNumRefBarCode global $conf; //var_dump($code.' '.$product->ref.' '.$thirdparty_type);exit; - + require_once DOL_DOCUMENT_ROOT .'/core/lib/functions2.lib.php'; $result=0; @@ -282,7 +282,7 @@ class mod_barcode_product_standard extends ModeleNumRefBarCode { $newcodefortest=substr($newcodefortest,0,12); } - + $result=check_value($mask,$newcodefortest); return $result; diff --git a/htdocs/core/modules/cheque/pdf/pdf_blochet.class.php b/htdocs/core/modules/cheque/pdf/pdf_blochet.class.php index 1112150a0e9..aa61f5eb7aa 100644 --- a/htdocs/core/modules/cheque/pdf/pdf_blochet.class.php +++ b/htdocs/core/modules/cheque/pdf/pdf_blochet.class.php @@ -201,7 +201,7 @@ class BordereauChequeBlochet extends ModeleChequeReceipts /** * Generate Header * - * @param PDF &$pdf Pdf object + * @param PDF $pdf Pdf object * @param int $page Current page number * @param int $pages Total number of pages * @param Translate $outputlangs Object language for output @@ -307,7 +307,7 @@ class BordereauChequeBlochet extends ModeleChequeReceipts /** * Output array * - * @param PDF &$pdf PDF object + * @param PDF $pdf PDF object * @param int $pagenb Page nb * @param int $pages Pages * @param Translate $outputlangs Object lang @@ -365,7 +365,7 @@ class BordereauChequeBlochet extends ModeleChequeReceipts /** * Show footer of page. Need this->emetteur object * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param Object $object Object to show * @param Translate $outputlangs Object lang for output * @param int $hidefreetext 1=Hide free text diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index 2b7ee2f18a3..7c2b7e742a5 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -544,7 +544,7 @@ class pdf_einstein extends ModelePDFCommandes /** * Show payments table * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object order * @param int $posy Position y in PDF * @param Translate $outputlangs Object langs for output @@ -559,7 +559,7 @@ class pdf_einstein extends ModelePDFCommandes /** * Show miscellaneous information (payment mode, payment term, ...) * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $posy Y * @param Translate $outputlangs Langs object @@ -743,7 +743,7 @@ class pdf_einstein extends ModelePDFCommandes /** * Show total to pay * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Facture $object Object invoice * @param int $deja_regle Montant deja regle * @param int $posy Position depart @@ -1000,7 +1000,7 @@ class pdf_einstein extends ModelePDFCommandes /** * Show table for lines * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param string $tab_top Top position of table * @param string $tab_height Height of table (rectangle) * @param int $nexY Y (not used) @@ -1095,7 +1095,7 @@ class pdf_einstein extends ModelePDFCommandes /** * Show top header of page. * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output @@ -1274,7 +1274,7 @@ class pdf_einstein extends ModelePDFCommandes /** * Show footer of page. Need this->emetteur object * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param Object $object Object to show * @param Translate $outputlangs Object lang for output * @param int $hidefreetext 1=Hide free text diff --git a/htdocs/core/modules/commande/doc/pdf_proforma.modules.php b/htdocs/core/modules/commande/doc/pdf_proforma.modules.php index 290341e5ddb..05dfadac4a7 100644 --- a/htdocs/core/modules/commande/doc/pdf_proforma.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_proforma.modules.php @@ -543,7 +543,7 @@ class pdf_proforma extends ModelePDFCommandes /** * Show payments table * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object order * @param int $posy Position y in PDF * @param Translate $outputlangs Object langs for output @@ -558,7 +558,7 @@ class pdf_proforma extends ModelePDFCommandes /** * Show miscellaneous information (payment mode, payment term, ...) * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $posy Y * @param Translate $outputlangs Langs object @@ -700,7 +700,7 @@ class pdf_proforma extends ModelePDFCommandes /** * Show total to pay * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Facture $object Object invoice * @param int $deja_regle Montant deja regle * @param int $posy Position depart @@ -957,7 +957,7 @@ class pdf_proforma extends ModelePDFCommandes /** * Show table for lines * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param string $tab_top Top position of table * @param string $tab_height Height of table (rectangle) * @param int $nexY Y (not used) @@ -1052,7 +1052,7 @@ class pdf_proforma extends ModelePDFCommandes /** * Show top header of page. * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output @@ -1231,7 +1231,7 @@ class pdf_proforma extends ModelePDFCommandes /** * Show footer of page. Need this->emetteur object * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param Object $object Object to show * @param Translate $outputlangs Object lang for output * @param int $hidefreetext 1=Hide free text diff --git a/htdocs/core/modules/contract/doc/pdf_strato.modules.php b/htdocs/core/modules/contract/doc/pdf_strato.modules.php index c4d8eb4a1e4..d522a12eef2 100644 --- a/htdocs/core/modules/contract/doc/pdf_strato.modules.php +++ b/htdocs/core/modules/contract/doc/pdf_strato.modules.php @@ -380,7 +380,7 @@ class pdf_strato extends ModelePDFContract /** * Show table for lines * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param string $tab_top Top position of table * @param string $tab_height Height of table (rectangle) * @param int $nexY Y @@ -446,7 +446,7 @@ class pdf_strato extends ModelePDFContract /** * Show top header of page. * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output @@ -625,7 +625,7 @@ class pdf_strato extends ModelePDFContract /** * Show footer of page. Need this->emetteur object * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param Object $object Object to show * @param Translate $outputlangs Object lang for output * @param int $hidefreetext 1=Hide free text diff --git a/htdocs/core/modules/contract/mod_contract_olive.php b/htdocs/core/modules/contract/mod_contract_olive.php index 2b10d520b25..6d22aebeb3d 100644 --- a/htdocs/core/modules/contract/mod_contract_olive.php +++ b/htdocs/core/modules/contract/mod_contract_olive.php @@ -43,7 +43,7 @@ class mod_contract_olive extends ModelNumRefContracts var $code_auto = 0; // Numerotation automatique - /** + /** * Return description of module * * @return string Description of module @@ -51,7 +51,7 @@ class mod_contract_olive extends ModelNumRefContracts function info() { global $langs; - + $langs->load("companies"); return $langs->trans("LeopardNumRefModelDesc"); } @@ -74,7 +74,7 @@ class mod_contract_olive extends ModelNumRefContracts * Check validity of code according to its rules * * @param DoliDB $db Database handler - * @param string &$code Code to check/correct + * @param string $code Code to check/correct * @param Product $product Object product * @param int $type 0 = product , 1 = service * @return int 0 if OK diff --git a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php index 9b088504649..69286c7980d 100644 --- a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php @@ -73,7 +73,7 @@ class pdf_merou extends ModelePdfExpedition /** * Function to build pdf onto disk * - * @param Object &$object Object expedition to generate (or id if old method) + * @param Object $object Object expedition to generate (or id if old method) * @param Translate $outputlangs Lang output object * @param string $srctemplatepath Full path of source filename for generator using a template file * @param int $hidedetails Do not show line details @@ -376,7 +376,7 @@ class pdf_merou extends ModelePdfExpedition /** * Show table for lines * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param string $tab_top Top position of table * @param string $tab_height Height of table (rectangle) * @param int $nexY Y @@ -417,7 +417,7 @@ class pdf_merou extends ModelePdfExpedition /** * Show footer of page. Need this->emetteur object * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param Object $object Object to show * @param Translate $outputlangs Object lang for output * @param int $hidefreetext 1=Hide free text @@ -446,7 +446,7 @@ class pdf_merou extends ModelePdfExpedition /** * Show top header of page. * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output diff --git a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php index d0b503d1ee6..bf4b738354a 100644 --- a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php @@ -76,7 +76,7 @@ class pdf_rouget extends ModelePdfExpedition /** * Function to build pdf onto disk * - * @param Object &$object Object expedition to generate (or id if old method) + * @param Object $object Object expedition to generate (or id if old method) * @param Translate $outputlangs Lang output object * @param string $srctemplatepath Full path of source filename for generator using a template file * @param int $hidedetails Do not show line details @@ -377,7 +377,7 @@ class pdf_rouget extends ModelePdfExpedition /** * Show table for lines * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param string $tab_top Top position of table * @param string $tab_height Height of table (rectangle) * @param int $nexY Y @@ -432,7 +432,7 @@ class pdf_rouget extends ModelePdfExpedition /** * Show top header of page. * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output @@ -672,7 +672,7 @@ class pdf_rouget extends ModelePdfExpedition /** * Show footer of page. Need this->emetteur object * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param Object $object Object to show * @param Translate $outputlangs Object lang for output * @param int $hidefreetext 1=Hide free text diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php index 8a8ab5fa89e..6b337ac4ad3 100644 --- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php @@ -599,7 +599,7 @@ class pdf_crabe extends ModelePDFFactures /** * Show payments table * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object invoice * @param int $posy Position y in PDF * @param Translate $outputlangs Object langs for output @@ -735,7 +735,7 @@ class pdf_crabe extends ModelePDFFactures /** * Show miscellaneous information (payment mode, payment term, ...) * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $posy Y * @param Translate $outputlangs Langs object @@ -891,7 +891,7 @@ class pdf_crabe extends ModelePDFFactures /** * Show total to pay * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Facture $object Object invoice * @param int $deja_regle Montant deja regle * @param int $posy Position depart @@ -1185,7 +1185,7 @@ class pdf_crabe extends ModelePDFFactures /** * Show table for lines * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param string $tab_top Top position of table * @param string $tab_height Height of table (rectangle) * @param int $nexY Y (not used) @@ -1289,7 +1289,7 @@ class pdf_crabe extends ModelePDFFactures /** * Show top header of page. * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output @@ -1520,7 +1520,7 @@ class pdf_crabe extends ModelePDFFactures /** * Show footer of page. Need this->emetteur object * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param Object $object Object to show * @param Translate $outputlangs Object lang for output * @param int $hidefreetext 1=Hide free text diff --git a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php index fa2e3c85c06..7a697817eb3 100644 --- a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php +++ b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php @@ -362,7 +362,7 @@ class pdf_soleil extends ModelePDFFicheinter /** * Show table for lines * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param string $tab_top Top position of table * @param string $tab_height Height of table (rectangle) * @param int $nexY Y @@ -425,7 +425,7 @@ class pdf_soleil extends ModelePDFFicheinter /** * Show top header of page. * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output @@ -604,7 +604,7 @@ class pdf_soleil extends ModelePDFFicheinter /** * Show footer of page. Need this->emetteur object * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param Object $object Object to show * @param Translate $outputlangs Object lang for output * @param int $hidefreetext 1=Hide free text diff --git a/htdocs/core/modules/livraison/pdf/index.html b/htdocs/core/modules/livraison/doc/index.html similarity index 100% rename from htdocs/core/modules/livraison/pdf/index.html rename to htdocs/core/modules/livraison/doc/index.html diff --git a/htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php similarity index 98% rename from htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php rename to htdocs/core/modules/livraison/doc/pdf_typhon.modules.php index 569cfdff85e..bb9f1d155ff 100644 --- a/htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php +++ b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php @@ -1,6 +1,6 @@ - * Copyright (C) 2005-2009 Regis Houssin + * Copyright (C) 2005-2014 Regis Houssin * Copyright (C) 2007 Franky Van Liedekerke * Copyright (C) 2008 Chiptronik * Copyright (C) 2011-2012 Philippe Grand @@ -21,7 +21,7 @@ */ /** - * \file htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php + * \file htdocs/core/modules/livraison/doc/pdf_typhon.modules.php * \ingroup livraison * \brief File of class to manage receving receipts with template Typhon * \author Laurent Destailleur @@ -97,10 +97,10 @@ class pdf_typhon extends ModelePDFDeliveryOrder // Define position of columns $this->posxdesc=$this->marge_gauche+1; - $this->posxcomm=900; + $this->posxcomm=112; //$this->posxtva=112; //$this->posxup=126; - $this->posxqty=140; + $this->posxqty=174; $this->posxremainingqty=165; //$this->posxdiscount=162; //$this->postotalht=174; @@ -558,7 +558,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder /** * Show miscellaneous information (payment mode, payment term, ...) * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $posy Y * @param Translate $outputlangs Langs object @@ -585,7 +585,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder /** * Show table for lines * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param string $tab_top Top position of table * @param string $tab_height Height of table (rectangle) * @param int $nexY Y (not used) @@ -636,21 +636,21 @@ class pdf_typhon extends ModelePDFDeliveryOrder $pdf->line($this->posxqty, $tab_top, $this->posxqty, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxqty, $tab_top+1); - $pdf->MultiCell($this->posxremainingqty - $this->posxqty, 2, $outputlangs->transnoentities("QtyShipped"),'','C'); + $pdf->MultiCell($this->posxremainingqty - $this->posxqty, 2, $outputlangs->transnoentities("QtyShipped"),'','R'); } // Remain to ship $pdf->line($this->posxremainingqty, $tab_top, $this->posxremainingqty, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxremainingqty, $tab_top+1); - $pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->posxremainingqty, 2, $outputlangs->transnoentities("KeepToShip"),'','C'); + $pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->posxremainingqty, 2, $outputlangs->transnoentities("KeepToShip"),'','R'); } } /** * Show top header of page. * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output @@ -866,7 +866,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder /** * Show footer of page. Need this->emetteur object * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param Object $object Object to show * @param Translate $outputlangs Object lang for output * @param int $hidefreetext 1=Hide free text diff --git a/htdocs/core/modules/member/doc/pdf_standard.class.php b/htdocs/core/modules/member/doc/pdf_standard.class.php index 043a2e89f5c..cef4155c607 100644 --- a/htdocs/core/modules/member/doc/pdf_standard.class.php +++ b/htdocs/core/modules/member/doc/pdf_standard.class.php @@ -99,7 +99,7 @@ class pdf_standard * Methode qui permet de modifier la taille des caracteres * Cela modiera aussi l'espace entre chaque ligne * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param int $pt point * @return void */ @@ -118,7 +118,7 @@ class pdf_standard * - %LOGO% is replace with company logo * - %PHOTO% is replace with photo provided as parameter * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param string $textleft Text left * @param string $header Header * @param string $footer Footer @@ -300,7 +300,7 @@ class pdf_standard /** * Print dot line * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param int $x1 X1 * @param int $y1 Y1 * @param int $x2 X2 @@ -341,7 +341,7 @@ class pdf_standard /** * Fonction realisant une croix aux 4 coins des cartes * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param int $x1 X1 * @param int $y1 Y1 * @param int $x2 X2 @@ -412,7 +412,7 @@ class pdf_standard /** * Set format * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param string $format Format * @return void */ diff --git a/htdocs/core/modules/modSalaries.class.php b/htdocs/core/modules/modSalaries.class.php index c82e3d83784..35f5a145bee 100644 --- a/htdocs/core/modules/modSalaries.class.php +++ b/htdocs/core/modules/modSalaries.class.php @@ -23,7 +23,7 @@ */ /** - * \defgroup tax Module salaries + * \defgroup salaries Module salaries * \brief Module to include salaries management * \file htdocs/core/modules/modSalaries.class.php * \ingroup salaries diff --git a/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php index b6e35f95f8e..8ae45bdc681 100644 --- a/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php +++ b/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php @@ -99,7 +99,7 @@ class pdf_standardlabel * Methode qui permet de modifier la taille des caracteres * Cela modiera aussi l'espace entre chaque ligne * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param int $pt point * @return void */ @@ -117,7 +117,7 @@ class pdf_standardlabel * - %LOGO% is replace with company logo * - %PHOTO% is replace with photo provided as parameter * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param string $textleft Text left * @param string $header Header * @param string $footer Footer @@ -292,7 +292,7 @@ class pdf_standardlabel /** * Print dot line * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param int $x1 X1 * @param int $y1 Y1 * @param int $x2 X2 @@ -333,7 +333,7 @@ class pdf_standardlabel /** * Fonction realisant une croix aux 4 coins des cartes * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param int $x1 X1 * @param int $y1 Y1 * @param int $x2 X2 @@ -404,7 +404,7 @@ class pdf_standardlabel /** * Set format * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param string $format Format * @return void */ diff --git a/htdocs/core/modules/product/mod_codeproduct_elephant.php b/htdocs/core/modules/product/mod_codeproduct_elephant.php index 3ab5fdb9e09..37383474c2d 100644 --- a/htdocs/core/modules/product/mod_codeproduct_elephant.php +++ b/htdocs/core/modules/product/mod_codeproduct_elephant.php @@ -220,7 +220,7 @@ class mod_codeproduct_elephant extends ModeleProductCode * Check validity of code according to its rules * * @param DoliDB $db Database handler - * @param string &$code Code to check/correct + * @param string $code Code to check/correct * @param Product $product Object product * @param int $type 0 = customer/prospect , 1 = supplier * @return int 0 if OK diff --git a/htdocs/core/modules/product/mod_codeproduct_leopard.php b/htdocs/core/modules/product/mod_codeproduct_leopard.php index df71792ee86..a3df52f682f 100644 --- a/htdocs/core/modules/product/mod_codeproduct_leopard.php +++ b/htdocs/core/modules/product/mod_codeproduct_leopard.php @@ -91,7 +91,7 @@ class mod_codeproduct_leopard extends ModeleProductCode * Check validity of code according to its rules * * @param DoliDB $db Database handler - * @param string &$code Code to check/correct + * @param string $code Code to check/correct * @param Product $product Object product * @param int $type 0 = product , 1 = service * @return int 0 if OK diff --git a/htdocs/core/modules/project/pdf/pdf_baleine.modules.php b/htdocs/core/modules/project/pdf/pdf_baleine.modules.php index 58dd367757e..502e98eece2 100644 --- a/htdocs/core/modules/project/pdf/pdf_baleine.modules.php +++ b/htdocs/core/modules/project/pdf/pdf_baleine.modules.php @@ -337,7 +337,7 @@ class pdf_baleine extends ModelePDFProjects /** * Show table for lines * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param string $tab_top Top position of table * @param string $tab_height Height of table (rectangle) * @param int $nexY Y @@ -370,7 +370,7 @@ class pdf_baleine extends ModelePDFProjects /** * Show top header of page. * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output @@ -456,7 +456,7 @@ class pdf_baleine extends ModelePDFProjects /** * Show footer of page. Need this->emetteur object * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param Object $object Object to show * @param Translate $outputlangs Object lang for output * @param int $hidefreetext 1=Hide free text diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index f1871c175a6..1b042f3a0d6 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -600,7 +600,7 @@ class pdf_azur extends ModelePDFPropales /** * Show payments table * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object proposal * @param int $posy Position y in PDF * @param Translate $outputlangs Object langs for output @@ -615,7 +615,7 @@ class pdf_azur extends ModelePDFPropales /** * Show miscellaneous information (payment mode, payment term, ...) * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $posy Y * @param Translate $outputlangs Langs object @@ -793,7 +793,7 @@ class pdf_azur extends ModelePDFPropales /** * Show total to pay * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Facture $object Object invoice * @param int $deja_regle Montant deja regle * @param int $posy Position depart @@ -1065,7 +1065,7 @@ class pdf_azur extends ModelePDFPropales /** * Show table for lines * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param string $tab_top Top position of table * @param string $tab_height Height of table (rectangle) * @param int $nexY Y (not used) @@ -1169,7 +1169,7 @@ class pdf_azur extends ModelePDFPropales /** * Show top header of page. * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output @@ -1369,7 +1369,7 @@ class pdf_azur extends ModelePDFPropales /** * Show footer of page. Need this->emetteur object * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param Object $object Object to show * @param Translate $outputlangs Object lang for output * @param int $hidefreetext 1=Hide free text diff --git a/htdocs/core/modules/rapport/pdf_paiement.class.php b/htdocs/core/modules/rapport/pdf_paiement.class.php index 683034156da..63be8703a22 100644 --- a/htdocs/core/modules/rapport/pdf_paiement.class.php +++ b/htdocs/core/modules/rapport/pdf_paiement.class.php @@ -260,7 +260,7 @@ class pdf_paiement /** * Show top header of page. * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param int $page Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output @@ -319,7 +319,7 @@ class pdf_paiement /** * Output body * - * @param PDF &$pdf PDF object + * @param PDF $pdf PDF object * @param string $page Page * @param array $lines Array of lines * @param Translate $outputlangs Object langs diff --git a/htdocs/core/modules/societe/mod_codeclient_elephant.php b/htdocs/core/modules/societe/mod_codeclient_elephant.php index 94dd1b814e7..88b6e65bf01 100644 --- a/htdocs/core/modules/societe/mod_codeclient_elephant.php +++ b/htdocs/core/modules/societe/mod_codeclient_elephant.php @@ -239,7 +239,7 @@ class mod_codeclient_elephant extends ModeleThirdPartyCode * Check validity of code according to its rules * * @param DoliDB $db Database handler - * @param string &$code Code to check/correct + * @param string $code Code to check/correct * @param Societe $soc Object third party * @param int $type 0 = customer/prospect , 1 = supplier * @return int 0 if OK diff --git a/htdocs/core/modules/societe/mod_codeclient_leopard.php b/htdocs/core/modules/societe/mod_codeclient_leopard.php index 313a14ad246..27155847bf0 100644 --- a/htdocs/core/modules/societe/mod_codeclient_leopard.php +++ b/htdocs/core/modules/societe/mod_codeclient_leopard.php @@ -90,7 +90,7 @@ class mod_codeclient_leopard extends ModeleThirdPartyCode * Check validity of code according to its rules * * @param DoliDB $db Database handler - * @param string &$code Code to check/correct + * @param string $code Code to check/correct * @param Societe $soc Object third party * @param int $type 0 = customer/prospect , 1 = supplier * @return int 0 if OK diff --git a/htdocs/core/modules/societe/mod_codeclient_monkey.php b/htdocs/core/modules/societe/mod_codeclient_monkey.php index f85de6b47d3..4c735930820 100644 --- a/htdocs/core/modules/societe/mod_codeclient_monkey.php +++ b/htdocs/core/modules/societe/mod_codeclient_monkey.php @@ -140,7 +140,7 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode $date = dol_now(); $yymm = strftime("%y%m",$date); - + if ($max >= (pow(10, 4) - 1)) $num=$max+1; // If counter > 9999, we do not format on 4 chars, we take number as it is else $num = sprintf("%04s",$max+1); @@ -153,7 +153,7 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode * Check validity of code according to its rules * * @param DoliDB $db Database handler - * @param string &$code Code to check/correct + * @param string $code Code to check/correct * @param Societe $soc Object third party * @param int $type 0 = customer/prospect , 1 = supplier * @return int 0 if OK diff --git a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php index 151f2d856aa..54ae66186df 100644 --- a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php +++ b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php @@ -504,7 +504,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices /** * Show total to pay * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Facture $object Object invoice * @param int $deja_regle Montant deja regle * @param int $posy Position depart @@ -699,7 +699,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices /** * Show table for lines * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param string $tab_top Top position of table * @param string $tab_height Height of table (rectangle) * @param int $nexY Y (not used) @@ -795,7 +795,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices /** * Show payments table * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object invoice * @param int $posy Position y in PDF * @param Translate $outputlangs Object langs for output @@ -879,7 +879,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices /** * Show top header of page. * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output @@ -1054,7 +1054,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices /** * Show footer of page. Need this->emetteur object * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param Object $object Object to show * @param Translate $outputlangs Object lang for output * @param int $hidefreetext 1=Hide free text diff --git a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php index 32fdc1bb960..5faed78985c 100644 --- a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php +++ b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php @@ -530,7 +530,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders /** * Show payments table * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object order * @param int $posy Position y in PDF * @param Translate $outputlangs Object langs for output @@ -545,7 +545,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders /** * Show miscellaneous information (payment mode, payment term, ...) * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $posy Y * @param Translate $outputlangs Langs object @@ -608,7 +608,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders /** * Show total to pay * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Facture $object Object invoice * @param int $deja_regle Montant deja regle * @param int $posy Position depart @@ -819,7 +819,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders /** * Show table for lines * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param string $tab_top Top position of table * @param string $tab_height Height of table (rectangle) * @param int $nexY Y (not used) @@ -914,7 +914,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders /** * Show top header of page. * - * @param PDF &$pdf Object PDF + * @param PDF $pdf Object PDF * @param Object $object Object to show * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output @@ -1106,7 +1106,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders /** * Show footer of page. Need this->emetteur object * - * @param PDF &$pdf PDF + * @param PDF $pdf PDF * @param Object $object Object to show * @param Translate $outputlangs Object lang for output * @param int $hidefreetext 1=Hide free text diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php index b0c6991dcf3..ade0014708d 100644 --- a/htdocs/expedition/card.php +++ b/htdocs/expedition/card.php @@ -88,6 +88,7 @@ $hookmanager->initHooks(array('expeditioncard')); */ $parameters=array(); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if ($action == 'add') { diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php index a300d11219d..bcc50d32aca 100644 --- a/htdocs/fichinter/card.php +++ b/htdocs/fichinter/card.php @@ -4,6 +4,7 @@ * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2011-2013 Juanjo Menent * Copyright (C) 2013 Florian Henry + * Copyright (C) 2014 Ferran Marcet * * 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 @@ -64,6 +65,7 @@ $mesg = GETPOST('msg','alpha'); $origin=GETPOST('origin','alpha'); $originid=(GETPOST('originid','int')?GETPOST('originid','int'):GETPOST('origin_id','int')); // For backward compatibility $note_public = GETPOST('note_public'); +$lineid = GETPOST('line_id','int'); //PDF $hidedetails = (GETPOST('hidedetails','int') ? GETPOST('hidedetails','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS) ? 1 : 0)); @@ -96,7 +98,11 @@ $permissionnote=$user->rights->ficheinter->creer; // Used by the include of acti * Actions */ -include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not includ_once +$parameters=array('socid'=>$socid); +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + +include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not include_once if ($action == 'confirm_validate' && $confirm == 'yes' && $user->rights->ficheinter->creer) { @@ -538,7 +544,7 @@ else if ($action == 'classifyunbilled' && $user->rights->ficheinter->creer) else if ($action == 'updateline' && $user->rights->ficheinter->creer && GETPOST('save','alpha') == $langs->trans("Save")) { $objectline = new FichinterLigne($db); - if ($objectline->fetch(GETPOST('line_id','int')) <= 0) + if ($objectline->fetch($lineid) <= 0) { dol_print_error($db); exit; @@ -594,7 +600,7 @@ else if ($action == 'updateline' && $user->rights->ficheinter->creer && GETPOST( else if ($action == 'confirm_deleteline' && $confirm == 'yes' && $user->rights->ficheinter->creer) { $objectline = new FichinterLigne($db); - if ($objectline->fetch(GETPOST('line_id','int')) <= 0) + if ($objectline->fetch($lineid) <= 0) { dol_print_error($db); exit; @@ -626,7 +632,7 @@ else if ($action == 'confirm_deleteline' && $confirm == 'yes' && $user->rights-> else if ($action == 'up' && $user->rights->ficheinter->creer) { - $object->line_up(GETPOST('line_id','int')); + $object->line_up($lineid); // Define output language $outputlangs = $langs; @@ -640,13 +646,13 @@ else if ($action == 'up' && $user->rights->ficheinter->creer) } if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) fichinter_create($db, $object, $object->modelpdf, $outputlangs); - header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id.'#'.GETPOST('line_id','int')); + header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id.'#'.$lineid); exit; } else if ($action == 'down' && $user->rights->ficheinter->creer) { - $object->line_down(GETPOST('line_id','int')); + $object->line_down($lineid); // Define output language $outputlangs = $langs; @@ -660,7 +666,7 @@ else if ($action == 'down' && $user->rights->ficheinter->creer) } if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) fichinter_create($db, $object, $object->modelpdf, $outputlangs); - header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id.'#'.GETPOST('line_id','int')); + header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id.'#'.$lineid); exit; } @@ -1157,11 +1163,12 @@ else if ($id > 0 || ! empty($ref)) dol_fiche_head($head, 'card', $langs->trans("InterventionCard"), 0, 'intervention'); + $formconfirm=''; + // Confirmation de la suppression de la fiche d'intervention if ($action == 'delete') { - print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteIntervention'), $langs->trans('ConfirmDeleteIntervention'), 'confirm_delete','',0,1); - + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteIntervention'), $langs->trans('ConfirmDeleteIntervention'), 'confirm_delete','',0,1); } // Confirmation validation @@ -1184,29 +1191,34 @@ else if ($id > 0 || ! empty($ref)) } $text=$langs->trans('ConfirmValidateIntervention',$numref); - print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ValidateIntervention'), $text, 'confirm_validate','',0,1); - + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ValidateIntervention'), $text, 'confirm_validate','',0,1); } // Confirmation de la validation de la fiche d'intervention if ($action == 'modify') { - print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ModifyIntervention'), $langs->trans('ConfirmModifyIntervention'), 'confirm_modify','',0,1); - + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ModifyIntervention'), $langs->trans('ConfirmModifyIntervention'), 'confirm_modify','',0,1); } // Confirmation de la suppression d'une ligne d'intervention if ($action == 'ask_deleteline') { - print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&line_id='.GETPOST('line_id','int'), $langs->trans('DeleteInterventionLine'), $langs->trans('ConfirmDeleteInterventionLine'), 'confirm_deleteline','',0,1); - + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&line_id='.$lineid, $langs->trans('DeleteInterventionLine'), $langs->trans('ConfirmDeleteInterventionLine'), 'confirm_deleteline','',0,1); } + if (!$formconfirm) + { + $parameters=array('lineid'=>$lineid); + $formconfirm=$hookmanager->executeHooks('formConfirm',$parameters,$object,$action); // Note that $action and $object may have been modified by hook + } + + // Print form confirm + print $formconfirm; + print '
'; print ''; if ($action == 'edit_extras') print ''; if ($action == 'contrat') print ''; - print ''; print '
'.$langs->trans("ActionOnCompany").''.($object->societe->id?$object->societe->getNomUrl(1):$langs->trans("None")); - if ($object->societe->id && $object->type_code == 'AC_TEL') + print '
'.$langs->trans("ActionOnCompany").''.($object->thirdparty->id?$object->thirdparty->getNomUrl(1):$langs->trans("None")); + if (is_object($object->thirdparty) && $object->thirdparty->id > 0 && $object->type_code == 'AC_TEL') { - if ($object->societe->fetch($object->societe->id)) + if ($object->thirdparty->fetch($object->thirdparty->id)) { - print "
".dol_print_phone($object->societe->phone); + print "
".dol_print_phone($object->thirdparty->phone); } } print '
' . $username->getNomUrl(1). ''.$thirdpartystatic->getLibStatut(3); print '
'; // Convert date into timestamp format - if (in_array($extrafields->attribute_type [$key], array('date','datetime'))) { - $value = isset($_POST ["options_" . $key]) ? dol_mktime($_POST ["options_" . $key . "hour"], $_POST ["options_" . $key . "min"], 0, $_POST ["options_" . $key . "month"], $_POST ["options_" . $key . "day"], $_POST ["options_" . $key . "year"]) : $db->jdate($object->array_options ['options_' . $key]); + if (in_array($extrafields->attribute_type [$key], array('date','datetime'))) + { + $value = isset($_POST["options_" . $key]) ? dol_mktime($_POST["options_" . $key . "hour"], $_POST["options_" . $key . "min"], 0, $_POST["options_" . $key . "month"], $_POST["options_" . $key . "day"], $_POST["options_" . $key . "year"]) : $db->jdate($object->array_options ['options_' . $key]); } - if ($action == 'edit_extras' && $user->rights->commande->creer && GETPOST('attribute') == $key) { + if ($action == 'edit_extras' && $user->rights->commande->creer && GETPOST('attribute') == $key) + { print '
'; print ''; print ''; @@ -2154,7 +2165,9 @@ if ($action == 'create' && $user->rights->commande->creer) { print ''; print '
'; - } else { + } + else + { print $extrafields->showOutputField($key, $value); if ($object->statut == 0 && $user->rights->commande->creer) print '' . img_picto('', 'edit') . ' ' . $langs->trans('Modify') . ''; diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php index d699192acbf..0010195605c 100644 --- a/htdocs/commande/list.php +++ b/htdocs/commande/list.php @@ -78,6 +78,7 @@ $hookmanager->initHooks(array('orderlist')); $parameters=array('socid'=>$socid); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hook +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); // Do we click on purge search criteria ? if (GETPOST("button_removefilter_x")) @@ -423,7 +424,7 @@ if ($resql) print ''."\n"; print '
'.img_help(1,'').' '.$langs->trans("ToBillSeveralOrderSelectCustomer", $langs->transnoentitiesnoconv("CreateInvoiceForThisCustomer")).'
'; - + $db->free($resql); } else diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index 00c927bad99..c5d341c0e27 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -111,6 +111,7 @@ $permissionnote = $user->rights->facture->creer; // Used by the include of actio $parameters = array('socid' => $socid); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); include DOL_DOCUMENT_ROOT . '/core/actions_setnotes.inc.php'; // Must be include, not includ_once diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index f5dbd8186cd..07ebfa5ad7d 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -108,6 +108,7 @@ $now=dol_now(); $parameters=array('socid'=>$socid); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); // Do we click on purge search criteria ? if (GETPOST("button_removefilter_x")) diff --git a/htdocs/compta/paiement.php b/htdocs/compta/paiement.php index cabaf87e4d0..c7af3458fcb 100644 --- a/htdocs/compta/paiement.php +++ b/htdocs/compta/paiement.php @@ -71,10 +71,13 @@ $hookmanager->initHooks(array('paiementcard')); $parameters=array('socid'=>$socid); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + /* * Actions */ + if ($action == 'add_paiement' || ($action == 'confirm_paiement' && $confirm=='yes')) { $error = 0; diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php index 6a67ce5766b..527705e4ab0 100644 --- a/htdocs/compta/prelevement/class/bonprelevement.class.php +++ b/htdocs/compta/prelevement/class/bonprelevement.class.php @@ -164,7 +164,7 @@ class BonPrelevement extends CommonObject /** * Add line to withdrawal * - * @param int &$line_id id line to add + * @param int $line_id id line to add * @param int $client_id id invoice customer * @param string $client_nom name of cliente * @param int $amount amount of invoice diff --git a/htdocs/compta/sociales/charges.php b/htdocs/compta/sociales/charges.php index 059a3ccf544..0ccd450e0cb 100644 --- a/htdocs/compta/sociales/charges.php +++ b/htdocs/compta/sociales/charges.php @@ -149,6 +149,68 @@ if ($action == 'update' && ! $_POST["cancel"] && $user->rights->tax->charges->cr } } + // Action clone object +if ($action == 'confirm_clone' && $confirm != 'yes') { $action=''; } +if ($action == 'confirm_clone' && $confirm == 'yes' && ($user->rights->tax->charges->creer)) +{ + + $db->begin(); + + $originalId = $id; + + $object = new ChargeSociales($db); + $object->fetch($id); + + if ($object->id > 0) + { + $object->paye = 0; + $object->id = $object->ref = null; + + if(GETPOST('clone_for_next_month') != '') { + + $object->date_ech = strtotime('+1month', $object->date_ech); + $object->periode = strtotime('+1month', $object->periode); + } + + if ($object->check()) + { + $id = $object->create($user); + if ($id > 0) + { + $db->commit(); + $db->close(); + + header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id); + exit; + } + else + { + $id=$originalId; + $db->rollback(); + + if (count($object->errors)) + { + setEventMessage($object->errors, 'errors'); + dol_print_error($db,$object->errors); + } + else + { + setEventMessage($langs->trans($object->error), 'errors'); + dol_print_error($db,$object->error); + } + } + } + } + else + { + $db->rollback(); + dol_print_error($db,$object->error); + } + +} + + + /* @@ -239,7 +301,18 @@ if ($id > 0) $head=tax_prepare_head($object); dol_fiche_head($head, 'card', $langs->trans("SocialContribution"),0,'bill'); - + + // Clone confirmation + if ($action === 'clone') + { + $formclone=array( + array('type' => 'checkbox', 'name' => 'clone_for_next_month','label' => $langs->trans("CloneTaxForNextMonth"), 'value' => 1), + + ); + + print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id,$langs->trans('CloneTax'),$langs->trans('ConfirmCloneTax',$object->ref),'confirm_clone',$formclone,'yes'); + } + // Confirmation de la suppression de la charge if ($action == 'paid') { @@ -419,6 +492,12 @@ if ($id > 0) { print "id&action=paid\">".$langs->trans("ClassifyPaid").""; } + + // Clone + if ($user->rights->tax->charges->creer) + { + print "id&action=clone\">".$langs->trans("ToClone").""; + } // Delete if ($user->rights->tax->charges->supprimer) diff --git a/htdocs/compta/sociales/class/chargesociales.class.php b/htdocs/compta/sociales/class/chargesociales.class.php index 09e4ebaef0c..807466ef95f 100644 --- a/htdocs/compta/sociales/class/chargesociales.class.php +++ b/htdocs/compta/sociales/class/chargesociales.class.php @@ -106,7 +106,24 @@ class ChargeSociales extends CommonObject return -1; } } + /* + * Check if a social contribution can be created into database + * + */ + function check() { + + $newamount=price2num($this->amount,'MT'); + // Validation parametres + if (! $newamount > 0 || empty($this->date_ech) || empty($this->periode)) + { + + return false; + } + + + return true; + } /** * Create a social contribution into database @@ -121,12 +138,11 @@ class ChargeSociales extends CommonObject // Nettoyage parametres $newamount=price2num($this->amount,'MT'); - // Validation parametres - if (! $newamount > 0 || empty($this->date_ech) || empty($this->periode)) - { - $this->error="ErrorBadParameter"; - return -2; - } + if(!$this->check()) { + $this->error="ErrorBadParameter"; + return -2; + } + $this->db->begin(); diff --git a/htdocs/contact/canvas/actions_contactcard_common.class.php b/htdocs/contact/canvas/actions_contactcard_common.class.php index 3cb150b8432..9e6624dda72 100644 --- a/htdocs/contact/canvas/actions_contactcard_common.class.php +++ b/htdocs/contact/canvas/actions_contactcard_common.class.php @@ -94,7 +94,7 @@ abstract class ActionsContactCardCommon /** * Load data control * - * @param string &$action Type of action + * @param string $action Type of action * @param int $id Id of object * @return void */ @@ -228,7 +228,7 @@ abstract class ActionsContactCardCommon /** * Set content of ->tpl array, to use into template * - * @param string &$action Type of action + * @param string $action Type of action * @param int $id Id * @return string HTML output */ diff --git a/htdocs/contact/canvas/default/actions_contactcard_default.class.php b/htdocs/contact/canvas/default/actions_contactcard_default.class.php index b39114cb3f5..3bfcf347c3f 100644 --- a/htdocs/contact/canvas/default/actions_contactcard_default.class.php +++ b/htdocs/contact/canvas/default/actions_contactcard_default.class.php @@ -75,7 +75,7 @@ class ActionsContactCardDefault extends ActionsContactCardCommon /** * Assign custom values for canvas * - * @param string &$action Type of action + * @param string $action Type of action * @param int $id Id * @return void */ diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index ce607091267..f4d42dbaca0 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -83,7 +83,7 @@ $hookmanager->initHooks(array('contactcard')); $parameters=array('id'=>$id, 'objcanvas'=>$objcanvas); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks -$error=$hookmanager->error; $errors=array_merge($errors, (array) $hookmanager->errors); +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if (empty($reshook)) { @@ -142,10 +142,10 @@ if (empty($reshook)) { setEventMessage($object->error,'errors'); } - else + else { header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id); - exit; + exit; } } @@ -157,11 +157,11 @@ if (empty($reshook)) { setEventMessage($object->error,'errors'); } - else + else { header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id); - exit; - } + exit; + } } // Add contact @@ -380,7 +380,7 @@ else $title = (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("Contacts") : $langs->trans("ContactsAddresses")); dol_fiche_head($head, 'card', $title, 0, 'contact'); - + dol_htmloutput_events(); } diff --git a/htdocs/core/ajax/loadinplace.php b/htdocs/core/ajax/loadinplace.php index 69a0bbc72c7..de3a4e57d19 100644 --- a/htdocs/core/ajax/loadinplace.php +++ b/htdocs/core/ajax/loadinplace.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2011-2014 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 @@ -98,7 +98,7 @@ if (! empty($field) && ! empty($element) && ! empty($table_element) && ! empty($ dol_include_once('/'.$module.'/class/actions_'.$subelement.'.class.php'); $classname = 'Actions'.ucfirst($subelement); $object = new $classname($db); - $ret = $object->$methodname(); + $ret = $object->$methodname($fk_element); if ($ret > 0) echo json_encode($object->$cachename); } } diff --git a/htdocs/core/class/canvas.class.php b/htdocs/core/class/canvas.class.php index f51056b2551..959decc581c 100644 --- a/htdocs/core/class/canvas.class.php +++ b/htdocs/core/class/canvas.class.php @@ -125,7 +125,7 @@ class Canvas /** * Shared method for canvas to assign values for templates * - * @param string &$action Action string + * @param string $action Action string * @param int $id Object id (if ref not provided) * @param string $ref Object ref (if id not provided) * @return void @@ -181,7 +181,7 @@ class Canvas /** * Shared method for canvas to execute actions * - * @param string &$action Action string + * @param string $action Action string * @param int $id Object id * @return mixed Return return code of doActions of canvas * @deprecated This function is called if you add a doActions class inside your canvas. Try to not diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index a25115be878..0cd428ebc4f 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -1040,7 +1040,7 @@ class ExtraFields * Fill array_options property of object by extrafields value (using for data sent by forms) * * @param array $extralabels $array of extrafields - * @param object &$object Object + * @param object $object Object * @param string $onlykey Only following key is filled * @return int 1 if array_options set / 0 if no value */ diff --git a/htdocs/core/class/hookmanager.class.php b/htdocs/core/class/hookmanager.class.php index 3afcd941ee9..9d8ce90e812 100644 --- a/htdocs/core/class/hookmanager.class.php +++ b/htdocs/core/class/hookmanager.class.php @@ -114,8 +114,8 @@ class HookManager * * @param string $method Name of method hooked ('doActions', 'printSearchForm', 'showInputField', ...) * @param array $parameters Array of parameters - * @param Object &$object Object to use hooks on - * @param string &$action Action code on calling page ('create', 'edit', 'view', 'add', 'update', 'delete'...) + * @param Object $object Object to use hooks on + * @param string $action Action code on calling page ('create', 'edit', 'view', 'add', 'update', 'delete'...) * @return mixed For doActions,formObjectOptions,pdf_xxx: Return 0 if we want to keep standard actions, >0 if if want to stop standard actions, <0 means KO. * For printSearchForm,printLeftBlock,printTopRightMenu,formAddObjectLine,...: Return HTML string. TODO Deprecated. Must always return an int and things to print into ->resprints. * Can also return some values into an array ->results. diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 0233706928c..8b6b656417e 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -4,7 +4,7 @@ * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2004 Eric Seigne - * Copyright (C) 2005-2013 Regis Houssin + * Copyright (C) 2005-2014 Regis Houssin * Copyright (C) 2006 Andre Cianfarani * Copyright (C) 2006 Marc Barilley/Ocebo * Copyright (C) 2007 Franky Van Liedekerke @@ -124,11 +124,11 @@ class Form * @param string $typeofdata Type of data ('string' by default, 'amount', 'email', 'numeric:99', 'text' or 'textarea:rows:cols', 'day' or 'datepicker', 'ckeditor:dolibarr_zzz:width:height:savemethod:toolbarstartexpanded:rows:cols', 'select:xxx'...) * @param string $editvalue When in edit mode, use this value as $value instead of value (for example, you can provide here a formated price instead of value). Use '' to use same than $value * @param object $extObject External object - * @param string $success Success message + * @param mixed $custommsg String or Array of custom messages : eg array('success' => 'MyMessage', 'error' => 'MyMessage') * @param string $moreparam More param to add on a href URL * @return string HTML edit field */ - function editfieldval($text, $htmlname, $value, $object, $perm, $typeofdata='string', $editvalue='', $extObject=null, $success=null, $moreparam='') + function editfieldval($text, $htmlname, $value, $object, $perm, $typeofdata='string', $editvalue='', $extObject=null, $custommsg=null, $moreparam='') { global $conf,$langs,$db; @@ -140,7 +140,7 @@ class Form // When option to edit inline is activated if (! empty($conf->global->MAIN_USE_JQUERY_JEDITABLE) && ! preg_match('/^select;|datehourpicker/',$typeofdata)) // TODO add jquery timepicker { - $ret.=$this->editInPlace($object, $value, $htmlname, $perm, $typeofdata, $editvalue, $extObject, $success); + $ret.=$this->editInPlace($object, $value, $htmlname, $perm, $typeofdata, $editvalue, $extObject, $custommsg); } else { @@ -244,10 +244,10 @@ class Form * @param string $inputType Type of input ('numeric', 'datepicker', 'textarea:rows:cols', 'ckeditor:dolibarr_zzz:width:height:?:1:rows:cols', 'select:xxx') * @param string $editvalue When in edit mode, use this value as $value instead of value * @param object $extObject External object - * @param string $success Success message + * @param mixed $custommsg String or Array of custom messages : eg array('success' => 'MyMessage', 'error' => 'MyMessage') * @return string HTML edit in place */ - private function editInPlace($object, $value, $htmlname, $condition, $inputType='textarea', $editvalue=null, $extObject=null, $success=null) + private function editInPlace($object, $value, $htmlname, $condition, $inputType='textarea', $editvalue=null, $extObject=null, $custommsg=null) { global $conf; @@ -334,7 +334,18 @@ class Form $out.= ''."\n"; if (! empty($savemethod)) $out.= ''."\n"; if (! empty($ext_element)) $out.= ''."\n"; - if (! empty($success)) $out.= ''."\n"; + if (! empty($custommsg)) + { + if (is_array($custommsg)) + { + if (!empty($custommsg['success'])) + $out.= ''."\n"; + if (!empty($custommsg['error'])) + $out.= ''."\n"; + } + else + $out.= ''."\n"; + } if ($inputType == 'textarea') { $out.= ''."\n"; $out.= ''."\n"; @@ -1318,7 +1329,9 @@ class Form { $assignedtouser=dol_json_decode($_SESSION['assignedtouser'], true); } - if (count($assignedtouser) && $action != 'view') $out.='
'; + $numassignetouser=count($assignedtouser); + + if ($numassignetouser && $action != 'view') $out.='
'; $i=0; $ownerid=0; foreach($assignedtouser as $key => $value) { @@ -1326,7 +1339,7 @@ class Form $userstatic->fetch($value['id']); $out.=$userstatic->getNomUrl(1); if ($i == 0) { $ownerid = $value['id']; $out.=' ('.$langs->trans("Owner").')'; } - if ($i > 0 && $action != 'view') $out.=' '; + if ($numassignetouser > 1 && $action != 'view') $out.=' '; //$out.=' '.($value['mandatory']?$langs->trans("Mandatory"):$langs->trans("Optional")); //$out.=' '.($value['transparency']?$langs->trans("Busy"):$langs->trans("NotBusy")); $out.='
'; @@ -1575,9 +1588,9 @@ class Form /** * constructProductListOption * - * @param resultset &$objp Resultset of fetch - * @param string &$opt Option - * @param string &$optJson Option + * @param resultset $objp Resultset of fetch + * @param string $opt Option + * @param string $optJson Option * @param int $price_level Price level * @param string $selected Preselected value * @return void @@ -2817,8 +2830,8 @@ class Form } else if ($input['type'] == 'select') { - $more.='
'; - if (! empty($input['label'])) $more.=$input['label'].''; + $more.='
'; + if (! empty($input['label'])) $more.=$input['label'].''; $more.=$this->selectarray($input['name'],$input['values'],$input['default'],1); $more.='
'; @@ -1214,18 +1226,18 @@ else if ($id > 0 || ! empty($ref)) $linkback = ''.$langs->trans("BackToList").''; // Ref - print ''; // Third party - print ""; + print ""; if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) { // Duration print ''; - print ''; + print ''; print ''; } @@ -1316,7 +1328,7 @@ else if ($id > 0 || ! empty($ref)) } // Statut - print ''; + print ''; // Other attributes (TODO Move this into an include) $parameters=array('colspan' => ' colspan="3"'); diff --git a/htdocs/fichinter/document.php b/htdocs/fichinter/document.php index 1e90f2985c7..fd039efff24 100644 --- a/htdocs/fichinter/document.php +++ b/htdocs/fichinter/document.php @@ -131,6 +131,7 @@ else print $langs->trans("ErrorUnknown"); } + llxFooter(); $db->close(); diff --git a/htdocs/fourn/card.php b/htdocs/fourn/card.php index 313f82547e7..c31dc5525f7 100644 --- a/htdocs/fourn/card.php +++ b/htdocs/fourn/card.php @@ -54,6 +54,7 @@ $object = new Fournisseur($db); $parameters=array('socid'=>$socid); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if ($action == 'setsupplieraccountancycode') { diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index 403aa46c657..2591bba4838 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -110,6 +110,7 @@ $permissionnote=$user->rights->fournisseur->commande->creer; // Used by the incl $parameters=array('socid'=>$socid); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not includ_once @@ -1188,19 +1189,20 @@ if ($action=="create") } elseif (! empty($object->id)) { - $author = new User($db); - $author->fetch($object->user_author_id); - $societe = new Fournisseur($db); $result=$societe->fetch($object->socid); if ($result < 0) dol_print_error($db); + $author = new User($db); + $author->fetch($object->user_author_id); + + $res=$object->fetch_optionals($object->id,$extralabels); + $head = ordersupplier_prepare_head($object); $title=$langs->trans("SupplierOrder"); dol_fiche_head($head, 'card', $title, 0, 'order'); - $res=$object->fetch_optionals($object->id,$extralabels); /* * Confirmation de la suppression de la commande @@ -1435,7 +1437,7 @@ elseif (! empty($object->id)) print ''; // Delivery date planed - print '
'.$langs->trans("Ref").''; + print '
'.$langs->trans("Ref").''; print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref'); print '
".$langs->trans("Company")."".$object->client->getNomUrl(1)."
".$langs->trans("Company").''.$object->client->getNomUrl(1)."
'.$langs->trans("TotalDuration").''.convertSecondToTime($object->duree, 'all', $conf->global->MAIN_DURATION_OF_WORKDAY).''.convertSecondToTime($object->duree, 'all', $conf->global->MAIN_DURATION_OF_WORKDAY).'
'.$langs->trans("Status").''.$object->getLibStatut(4).'
'.$langs->trans("Status").''.$object->getLibStatut(4).'
'; + print '
'; print ''; @@ -1456,13 +1458,13 @@ elseif (! empty($object->id)) { print $object->date_livraison ? dol_print_date($object->date_livraison,'daytext') : ' '; } - print ''; + print ''; // Project if (! empty($conf->projet->enabled)) { $langs->load('projects'); - print '
'; print $langs->trans('DateDeliveryPlanned'); print '
'; + print '
'; print ''; @@ -1482,24 +1484,19 @@ elseif (! empty($object->id)) print ''; } - // Other attributes + // Other attributes (TODO Move this into an include) $parameters=array('socid'=>$socid, 'colspan' => ' colspan="3"'); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - if ($action == 'edit_extras') - { - print ''; - print ''; - print ''; - print ''; - } - foreach($extrafields->attribute_label as $key=>$label) { - if ($action == 'edit_extras') { + if ($action == 'edit_extras') + { $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - } else { + } + else + { $value=$object->array_options["options_".$key]; } @@ -1518,15 +1515,25 @@ elseif (! empty($object->id)) $value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$db->jdate($object->array_options['options_'.$key]); } - if ($action == 'edit_extras' && $user->rights->fournisseur->commande->creer) + if ($action == 'edit_extras' && $user->rights->commande->creer && GETPOST('attribute') == $key) { - print $extrafields->showInputField($key,$value); + print ''; + print ''; + print ''; + print ''; + print ''; + + print $extrafields->showInputField($key, $value); + + print ''; + print ''; } else { - print $extrafields->showOutputField($key,$value); + print $extrafields->showOutputField($key, $value); + if ($object->statut == 0 && $user->rights->commande->creer) + print '' . img_picto('', 'edit') . ' ' . $langs->trans('Modify') . ''; } - print ''."\n"; } } diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index ff1e713384a..c9926cd59dd 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -88,6 +88,7 @@ $permissionnote=$user->rights->fournisseur->facture->creer; // Used by the inclu $parameters=array('socid'=>$socid); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not includ_once diff --git a/htdocs/fourn/facture/paiement.php b/htdocs/fourn/facture/paiement.php index adc62ee4cd8..302570330b7 100644 --- a/htdocs/fourn/facture/paiement.php +++ b/htdocs/fourn/facture/paiement.php @@ -68,10 +68,13 @@ $hookmanager->initHooks(array('paymentsupplier')); $parameters=array('socid'=>$socid); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + /* * Actions */ + if ($action == 'add_paiement' || ($action == 'confirm_paiement' && $confirm=='yes')) { $error = 0; diff --git a/htdocs/fourn/list.php b/htdocs/fourn/list.php index 571c4a9925c..e3c7effebbf 100644 --- a/htdocs/fourn/list.php +++ b/htdocs/fourn/list.php @@ -66,6 +66,7 @@ $hookmanager->initHooks(array('supplierlist')); $parameters=array(); $reshook=$hookmanager->executeHooks('doActions',$parameters); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); /* diff --git a/htdocs/holiday/define_holiday.php b/htdocs/holiday/define_holiday.php index 62e8fc698c9..217cb16bad1 100644 --- a/htdocs/holiday/define_holiday.php +++ b/htdocs/holiday/define_holiday.php @@ -185,6 +185,7 @@ print ''; dol_fiche_end(); + llxFooter(); $db->close(); diff --git a/htdocs/imports/import.php b/htdocs/imports/import.php index 0b4856fab61..125b8dc0285 100644 --- a/htdocs/imports/import.php +++ b/htdocs/imports/import.php @@ -1751,8 +1751,8 @@ function show_elem($fieldssource,$pos,$key,$var,$nostyle='') /** * Return not used field number * - * @param array &$fieldssource Array of field source - * @param array &$listofkey Array of keys + * @param array $fieldssource Array of field source + * @param array $listofkey Array of keys * @return void */ function getnewkey(&$fieldssource,&$listofkey) diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index 868acf7fff0..fbc1572a2ab 100644 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -142,7 +142,7 @@ update llx_societe set barcode = null where (rowid, barcode) in (select max_rowi drop table tmp_societe_double; -UPDATE llx_projet_task SET fk_task_parent = 0 WHERE fk_task_parent = rowid +UPDATE llx_projet_task SET fk_task_parent = 0 WHERE fk_task_parent = rowid; UPDATE llx_actioncomm set fk_user_action = fk_user_done where fk_user_done > 0 and (fk_user_action is null or fk_user_action = 0); diff --git a/htdocs/install/mysql/tables/llx_user.sql b/htdocs/install/mysql/tables/llx_user.sql index 3c084640367..28385298125 100644 --- a/htdocs/install/mysql/tables/llx_user.sql +++ b/htdocs/install/mysql/tables/llx_user.sql @@ -56,7 +56,6 @@ create table llx_user fk_socpeople integer, fk_member integer, fk_user integer, -- Hierarchic parent - thm double(24,8), note text DEFAULT NULL, datelastlogin datetime, datepreviouslogin datetime, diff --git a/htdocs/install/repair.php b/htdocs/install/repair.php index 47456c21c62..48f4b5a6aa6 100644 --- a/htdocs/install/repair.php +++ b/htdocs/install/repair.php @@ -132,7 +132,7 @@ if ($ok) } } -// Affiche version +// Show database version if ($ok) { $version=$db->getVersion(); @@ -143,12 +143,15 @@ if ($ok) //print ''; } -// Force l'affichage de la progression +// Show wait message print ''; flush(); -// Run repair SQL file +/* Start action here */ + + +// run_sql: Run repair SQL file if ($ok) { $dir = "mysql/migration/"; @@ -191,86 +194,169 @@ if ($ok) } -// Search list of fields declared and list of fields created into databases and create fields missing -$extrafields=new ExtraFields($db); -$listofmodulesextra=array('societe'=>'societe','adherent'=>'adherent','product'=>'product', - 'socpeople'=>'socpeople', 'commande'=>'commande', 'facture'=>'facture', - 'commande_fournisseur'=>'commande_fournisseur', 'actioncomm'=>'actioncomm', - 'adherent_type'=>'adherent_type','user'=>'user','projet'=>'projet', 'projet_task'=>'projet_task'); -foreach($listofmodulesextra as $tablename => $elementtype) +// sync_extrafields: Search list of fields declared and list of fields created into databases and create fields missing +if ($ok) { - // Get list of fields - $tableextra=MAIN_DB_PREFIX.$tablename.'_extrafields'; + $extrafields=new ExtraFields($db); + $listofmodulesextra=array('societe'=>'societe','adherent'=>'adherent','product'=>'product', + 'socpeople'=>'socpeople', 'commande'=>'commande', 'facture'=>'facture', + 'commande_fournisseur'=>'commande_fournisseur', 'actioncomm'=>'actioncomm', + 'adherent_type'=>'adherent_type','user'=>'user','projet'=>'projet', 'projet_task'=>'projet_task'); + foreach($listofmodulesextra as $tablename => $elementtype) + { + // Get list of fields + $tableextra=MAIN_DB_PREFIX.$tablename.'_extrafields'; - // Define $arrayoffieldsdesc - $arrayoffieldsdesc=$extrafields->fetch_name_optionals_label($elementtype); + // Define $arrayoffieldsdesc + $arrayoffieldsdesc=$extrafields->fetch_name_optionals_label($elementtype); - // Define $arrayoffieldsfound - $arrayoffieldsfound=array(); - $resql=$db->DDLDescTable($tableextra); - if ($resql) - { - print '\n"; - } + print "\n"; + } + } } -// Clean data into ecm_directories table -clean_data_ecm_directories(); + +// clean_data_ecm_dir: Clean data into ecm_directories table +if ($ok) +{ + clean_data_ecm_directories(); +} -// Check and clean linked elements -if (GETPOST('clean_linked_elements')) + +/* From here, actions need a parameter */ + + + +// clean_linked_elements: Check and clean linked elements +if ($ok && GETPOST('restore_thirdparties_logos')) +{ + //$exts=array('gif','png','jpg'); + + $ext=''; + //foreach($exts as $ext) + //{ + $sql="SELECT s.rowid, s.nom as name, s.logo FROM ".MAIN_DB_PREFIX."societe as s ORDER BY s.nom"; + $resql=$db->query($sql); + if ($resql) + { + $num=$db->num_rows($resql); + $i=0; + + while($i < $num) + { + $obj=$db->fetch_object($resql); + + /* + $name=preg_replace('/é/','',$obj->name); + $name=preg_replace('/ /','_',$name); + $name=preg_replace('/\'/','',$name); + */ + + $tmp=explode('.',$obj->logo); + $name=$tmp[0]; + if (isset($tmp[1])) $ext='.'.$tmp[1]; + + if (! empty($name)) + { + $filetotest=$dolibarr_main_data_root.'/societe/logos/'.$name.$ext; + $filetotestsmall=$dolibarr_main_data_root.'/societe/logos/thumbs/'.$name.$ext; + $exists=dol_is_file($filetotest); + print 'Check thirdparty '.$obj->rowid.' name='.$obj->name.' logo='.$obj->logo.' file '.$filetotest." exists=".$exists."
\n"; + if ($exists) + { + $filetarget=$dolibarr_main_data_root.'/societe/'.$obj->rowid.'/logos/'.$name.$ext; + $filetargetsmall=$dolibarr_main_data_root.'/societe/'.$obj->rowid.'/logos/thumbs/'.$name.'_small'.$ext; + $existt=dol_is_file($filetarget); + if (! $existt) + { + dol_mkdir($dolibarr_main_data_root.'/societe/'.$obj->rowid.'/logos'); + + print "       -> Copy file ".$filetotest." -> ".$filetarget."
\n"; + dol_copy($filetotest, $filetarget, '', 0); + } + + $existtt=dol_is_file($filetargetsmall); + if (! $existtt) + { + dol_mkdir($dolibarr_main_data_root.'/societe/'.$obj->rowid.'/logos/thumbs'); + + print "       -> Copy file ".$filetotestsmall." -> ".$filetargetsmall."
\n"; + dol_copy($filetotestsmall, $filetargetsmall, '', 0); + } + } + } + + $i++; + } + } + else + { + $ok=0; + dol_print_error($db); + } + //} +} + + +// clean_linked_elements: Check and clean linked elements +if ($ok && GETPOST('clean_linked_elements')) { // propal => order print "\n"; @@ -292,8 +378,8 @@ if (GETPOST('clean_linked_elements')) } -// Run purge of directory -if (GETPOST('purge')) +// clean_orphelin_dir: Run purge of directory +if ($ok && GETPOST('clean_orphelin_dir')) { $conf->setValues($db); diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index 5ec9bd62a54..152274fc4ec 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -187,7 +187,7 @@ AccountancyDashboard=Accountancy summary ByProductsAndServices=By products and services RefExt=External ref ToCreateAPredefinedInvoice=To create a predefined invoice, create a standard invoice then, without validating it, click onto button "Convert to predefined invoice". -LinkedOrder=linked to order +LinkedOrder=Link to order ReCalculate=Recalculate Mode1=Method 1 Mode2=Method 2 @@ -204,3 +204,6 @@ ACCOUNTING_VAT_ACCOUNT=Default accountancy code for collecting VAT ACCOUNTING_VAT_BUY_ACCOUNT=Default accountancy code for paying VAT ACCOUNTING_ACCOUNT_CUSTOMER=Accountancy code by default for customer thirdparties ACCOUNTING_ACCOUNT_SUPPLIER=Accountancy code by default for supplier thirdparties +CloneTax=Clone a social contribution +ConfirmCloneTax=Confirm the clone of a social contribution +CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/livraison/class/livraison.class.php b/htdocs/livraison/class/livraison.class.php index ad20f319ed2..ebe46c78ac3 100644 --- a/htdocs/livraison/class/livraison.class.php +++ b/htdocs/livraison/class/livraison.class.php @@ -1,6 +1,6 @@ - * Copyright (C) 2005-2010 Regis Houssin + * Copyright (C) 2005-2014 Regis Houssin * Copyright (C) 2006-2007 Laurent Destailleur * Copyright (C) 2007 Franky Van Liedekerke * Copyright (C) 2011-2012 Philippe Grand @@ -953,7 +953,7 @@ class Livraison extends CommonObject } } - $modelpath = "core/modules/livraison/pdf/"; + $modelpath = "core/modules/livraison/doc/"; return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, 0, 0, 0); } diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 18d1b7d4e4e..98e0a48aa50 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -110,7 +110,7 @@ function test_sql_and_script_inject($val, $type) /** * Security: Return true if OK, false otherwise. * - * @param string &$var Variable name + * @param string $var Variable name * @param string $type 1=GET, 0=POST, 2=PHP_SELF * @return boolean true if there is an injection */ diff --git a/htdocs/printipp/admin/printipp.php b/htdocs/printipp/admin/printipp.php index 68dee5ca22b..6aaf44f8bdd 100644 --- a/htdocs/printipp/admin/printipp.php +++ b/htdocs/printipp/admin/printipp.php @@ -209,6 +209,7 @@ if ($mode == 'test' && $user->admin) dol_fiche_end(); + llxFooter(); $db->close(); diff --git a/htdocs/product/canvas/product/actions_card_product.class.php b/htdocs/product/canvas/product/actions_card_product.class.php index ddbd3c015ff..44c28f383b5 100644 --- a/htdocs/product/canvas/product/actions_card_product.class.php +++ b/htdocs/product/canvas/product/actions_card_product.class.php @@ -67,7 +67,7 @@ class ActionsCardProduct /** * Assign custom values for canvas (for example into this->tpl to be used by templates) * - * @param string &$action Type of action + * @param string $action Type of action * @param string $id Id of object * @param string $ref Ref of object * @return void diff --git a/htdocs/product/canvas/service/actions_card_service.class.php b/htdocs/product/canvas/service/actions_card_service.class.php index cee958be50f..cbb9e10750c 100644 --- a/htdocs/product/canvas/service/actions_card_service.class.php +++ b/htdocs/product/canvas/service/actions_card_service.class.php @@ -66,7 +66,7 @@ class ActionsCardService /** * Assign custom values for canvas (for example into this->tpl to be used by templates) * - * @param string &$action Type of action + * @param string $action Type of action * @param string $id Id of object * @param string $ref Ref of object * @return void diff --git a/htdocs/product/card.php b/htdocs/product/card.php index 1ddc6dac50b..28b0db5efe9 100644 --- a/htdocs/product/card.php +++ b/htdocs/product/card.php @@ -101,7 +101,7 @@ if (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->barc $parameters=array('id'=>$id, 'ref'=>$ref, 'objcanvas'=>$objcanvas); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks -$error=$hookmanager->error; $errors=$hookmanager->errors; +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if (empty($reshook)) { diff --git a/htdocs/product/document.php b/htdocs/product/document.php index 1e8c7b7cd9a..6ca92968e8d 100644 --- a/htdocs/product/document.php +++ b/htdocs/product/document.php @@ -75,6 +75,7 @@ $modulepart='produit'; $parameters=array('id'=>$id); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); /* @@ -101,7 +102,7 @@ if ($object->id) dol_fiche_head($head, 'documents', $titre, 0, $picto); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook - + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); // Construit liste des fichiers $filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1); diff --git a/htdocs/product/fournisseurs.php b/htdocs/product/fournisseurs.php index 037bb2b1f8b..8720c9cf892 100644 --- a/htdocs/product/fournisseurs.php +++ b/htdocs/product/fournisseurs.php @@ -64,10 +64,6 @@ $hookmanager->initHooks(array('pricesuppliercard')); $product = new ProductFournisseur($db); $product->fetch($id,$ref); -$reshook=$hookmanager->executeHooks('doActions',$parameters,$product,$action); // Note that $action and $object may have been modified by some hooks -$error=$hookmanager->error; $errors=$hookmanager->errors; - - $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); @@ -80,8 +76,8 @@ if (! $sortorder) $sortorder="ASC"; */ $parameters=array('socid'=>$socid, 'id_prod'=>$id); -$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks -$error=$hookmanager->error; $errors=array_merge($errors, (array) $hookmanager->errors); +$reshook=$hookmanager->executeHooks('doActions',$parameters,$product,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if ($action == 'remove_pf') { diff --git a/htdocs/product/stats/commande.php b/htdocs/product/stats/commande.php index 82483d59805..bf96d63459e 100644 --- a/htdocs/product/stats/commande.php +++ b/htdocs/product/stats/commande.php @@ -67,10 +67,10 @@ if ($id > 0 || ! empty($ref)) { $product = new Product($db); $result = $product->fetch($id, $ref); - + $parameters=array('id'=>$id); $reshook=$hookmanager->executeHooks('doActions',$parameters,$product,$action); // Note that $action and $object may have been modified by some hooks - $error=$hookmanager->error; $errors=$hookmanager->errors; + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); llxHeader("","",$langs->trans("CardProduct".$product->type)); @@ -83,8 +83,9 @@ if ($id > 0 || ! empty($ref)) $titre=$langs->trans("CardProduct".$product->type); $picto=($product->type==1?'service':'product'); dol_fiche_head($head, 'referers', $titre, 0, $picto); - + $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$product,$action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); print '
'; print $langs->trans('Project'); print '
'.join('.',$versionarray).'
'.$langs->trans("PleaseBePatient").'
Check availability of extra field for '.$tableextra."
\n"; - $i=0; - while($obj=$db->fetch_object($resql)) - { - $fieldname=$fieldtype=''; - if (preg_match('/mysql/',$db->type)) - { - $fieldname=$obj->Field; - $fieldtype=$obj->Type; - } - else - { - $fieldname = isset($obj->Key)?$obj->Key:$obj->attname; - $fieldtype = isset($obj->Type)?$obj->Type:'varchar'; - } + // Define $arrayoffieldsfound + $arrayoffieldsfound=array(); + $resql=$db->DDLDescTable($tableextra); + if ($resql) + { + print '
Check availability of extra field for '.$tableextra."
\n"; + $i=0; + while($obj=$db->fetch_object($resql)) + { + $fieldname=$fieldtype=''; + if (preg_match('/mysql/',$db->type)) + { + $fieldname=$obj->Field; + $fieldtype=$obj->Type; + } + else + { + $fieldname = isset($obj->Key)?$obj->Key:$obj->attname; + $fieldtype = isset($obj->Type)?$obj->Type:'varchar'; + } - if (empty($fieldname)) continue; - if (in_array($fieldname,array('rowid','tms','fk_object','import_key'))) continue; - $arrayoffieldsfound[$fieldname]=array('type'=>$fieldtype); - } + if (empty($fieldname)) continue; + if (in_array($fieldname,array('rowid','tms','fk_object','import_key'))) continue; + $arrayoffieldsfound[$fieldname]=array('type'=>$fieldtype); + } - // If it does not match, we create fields - foreach($arrayoffieldsdesc as $code => $label) - { - if (! in_array($code,array_keys($arrayoffieldsfound))) - { - print 'Found field '.$code.' declared into '.MAIN_DB_PREFIX.'extrafields table but not found into desc of table '.$tableextra." -> "; - $type=$extrafields->attribute_type[$code]; $value=$extrafields->attribute_size[$code]; $attribute=''; $default=''; $extra=''; $null='null'; - $field_desc=array( - 'type'=>$type, - 'value'=>$value, - 'attribute'=>$attribute, - 'default'=>$default, - 'extra'=>$extra, - 'null'=>$null - ); - //var_dump($field_desc);exit; + // If it does not match, we create fields + foreach($arrayoffieldsdesc as $code => $label) + { + if (! in_array($code,array_keys($arrayoffieldsfound))) + { + print 'Found field '.$code.' declared into '.MAIN_DB_PREFIX.'extrafields table but not found into desc of table '.$tableextra." -> "; + $type=$extrafields->attribute_type[$code]; $value=$extrafields->attribute_size[$code]; $attribute=''; $default=''; $extra=''; $null='null'; + $field_desc=array( + 'type'=>$type, + 'value'=>$value, + 'attribute'=>$attribute, + 'default'=>$default, + 'extra'=>$extra, + 'null'=>$null + ); + //var_dump($field_desc);exit; - $result=$db->DDLAddField($tableextra,$code,$field_desc,""); - if ($result < 0) - { - print "KO ".$db->lasterror."
\n"; - } - else - { - print "OK
\n"; - } - } - } + $result=$db->DDLAddField($tableextra,$code,$field_desc,""); + if ($result < 0) + { + print "KO ".$db->lasterror."
\n"; + } + else + { + print "OK
\n"; + } + } + } - print "
 
 
".checkLinkedElements('propal', 'commande')."
'; diff --git a/htdocs/product/stats/commande_fournisseur.php b/htdocs/product/stats/commande_fournisseur.php index f9056187cec..93c880695d3 100644 --- a/htdocs/product/stats/commande_fournisseur.php +++ b/htdocs/product/stats/commande_fournisseur.php @@ -67,10 +67,10 @@ if ($id > 0 || ! empty($ref)) { $product = new Product($db); $result = $product->fetch($id, $ref); - + $parameters=array('id'=>$id); $reshook=$hookmanager->executeHooks('doActions',$parameters,$product,$action); // Note that $action and $object may have been modified by some hooks - $error=$hookmanager->error; $errors=$hookmanager->errors; + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); llxHeader("","",$langs->trans("CardProduct".$product->type)); @@ -80,8 +80,9 @@ if ($id > 0 || ! empty($ref)) $titre=$langs->trans("CardProduct".$product->type); $picto=($product->type==1?'service':'product'); dol_fiche_head($head, 'referers', $titre, 0, $picto); - + $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$product,$action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); print '
'; @@ -147,7 +148,7 @@ if ($id > 0 || ! empty($ref)) print "\n"; $commandestatic=new CommandeFournisseur($db); - + if ($num > 0) { $var=True; @@ -155,7 +156,7 @@ if ($id > 0 || ! empty($ref)) { $objp = $db->fetch_object($result); $var=!$var; - + $commandestatic->id=$objp->commandeid; $commandestatic->ref=$objp->ref; $commandestatic->statut=$objp->statut; diff --git a/htdocs/product/stats/contrat.php b/htdocs/product/stats/contrat.php index 60d3b9b50c8..6c73d0183fa 100644 --- a/htdocs/product/stats/contrat.php +++ b/htdocs/product/stats/contrat.php @@ -73,7 +73,7 @@ if ($id > 0 || ! empty($ref)) $parameters=array('id'=>$id); $reshook=$hookmanager->executeHooks('doActions',$parameters,$product,$action); // Note that $action and $object may have been modified by some hooks - $error=$hookmanager->error; $errors=$hookmanager->errors; + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); llxHeader("","",$langs->trans("CardProduct".$product->type)); @@ -85,6 +85,7 @@ if ($id > 0 || ! empty($ref)) dol_fiche_head($head, 'referers', $titre, 0, $picto); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$product,$action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); print '
'; diff --git a/htdocs/product/stats/facture.php b/htdocs/product/stats/facture.php index 376263e122d..1959d53035e 100644 --- a/htdocs/product/stats/facture.php +++ b/htdocs/product/stats/facture.php @@ -72,9 +72,10 @@ if ($id > 0 || ! empty($ref)) { $product = new Product($db); $result = $product->fetch($id, $ref); - + $parameters=array('id'=>$id); $reshook=$hookmanager->executeHooks('doActions',$parameters,$product,$action); // Note that $action and $object may have been modified by some hooks + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); llxHeader("","",$langs->trans("CardProduct".$product->type)); @@ -87,8 +88,9 @@ if ($id > 0 || ! empty($ref)) $titre=$langs->trans("CardProduct".$product->type); $picto=($product->type==1?'service':'product'); dol_fiche_head($head, 'referers', $titre, 0, $picto); - + $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$product,$action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); print '
'; diff --git a/htdocs/product/stats/facture_fournisseur.php b/htdocs/product/stats/facture_fournisseur.php index 2f1d37602ce..1b07ce3d1ba 100644 --- a/htdocs/product/stats/facture_fournisseur.php +++ b/htdocs/product/stats/facture_fournisseur.php @@ -72,10 +72,10 @@ if ($id > 0 || ! empty($ref)) { $product = new Product($db); $result = $product->fetch($id, $ref); - + $parameters=array('id'=>$id); $reshook=$hookmanager->executeHooks('doActions',$parameters,$product,$action); // Note that $action and $object may have been modified by some hooks - $error=$hookmanager->error; $errors=$hookmanager->errors; + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); llxHeader("","",$langs->trans("CardProduct".$product->type)); @@ -88,9 +88,9 @@ if ($id > 0 || ! empty($ref)) $titre=$langs->trans("CardProduct".$product->type); $picto=($product->type==1?'service':'product'); dol_fiche_head($head, 'referers', $titre, 0, $picto); - - $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$product,$action); // Note that $action and $object may have been modified by hook + $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$product,$action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); print '
'; diff --git a/htdocs/product/stats/propal.php b/htdocs/product/stats/propal.php index ad81e93e299..3368efa2b56 100644 --- a/htdocs/product/stats/propal.php +++ b/htdocs/product/stats/propal.php @@ -66,9 +66,10 @@ if ($id > 0 || ! empty($ref)) { $product = new Product($db); $result = $product->fetch($id, $ref); - + $parameters=array('id'=>$id); $reshook=$hookmanager->executeHooks('doActions',$parameters,$product,$action); // Note that $action and $object may have been modified by some hooks + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); llxHeader("","",$langs->trans("CardProduct".$product->type)); @@ -78,9 +79,9 @@ if ($id > 0 || ! empty($ref)) $titre=$langs->trans("CardProduct".$product->type); $picto=($product->type==1?'service':'product'); dol_fiche_head($head, 'referers', $titre,0,$picto); - - $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$product,$action); // Note that $action and $object may have been modified by hook + $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$product,$action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); print '
'; diff --git a/htdocs/projet/activity/list.php b/htdocs/projet/activity/list.php index c0b3743c980..9a1142fe5c0 100644 --- a/htdocs/projet/activity/list.php +++ b/htdocs/projet/activity/list.php @@ -127,6 +127,9 @@ if ($id) $tasksarray=$taskstatic->getTasksArray(0,0,($project->id?$project->id:$projectsListId),$socid,0); // We want to see all task of project i am allowed to see, not only mine. Later only mine will be editable later. $projectsrole=$taskstatic->getUserRolesForProjectsOrTasks($user,0,($project->id?$project->id:$projectsListId),0); $tasksrole=$taskstatic->getUserRolesForProjectsOrTasks(0,$user,($project->id?$project->id:$projectsListId),0); +//var_dump($tasksarray); +//var_dump($projectsrole); +//var_dump($taskrole); llxHeader("",$title,""); diff --git a/htdocs/projet/card.php b/htdocs/projet/card.php index 6be174a1dd4..273784faf92 100644 --- a/htdocs/projet/card.php +++ b/htdocs/projet/card.php @@ -74,7 +74,7 @@ $date_end=dol_mktime(0,0,0,GETPOST('projectendmonth','int'),GETPOST('projectendd $parameters=array('id'=>$socid, 'objcanvas'=>$objcanvas); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks -$error=$hookmanager->error; $errors=array_merge($errors, (array) $hookmanager->errors); +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if (empty($reshook)) { diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index 7fb6c6e373a..fb7da8636b2 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -323,8 +323,6 @@ class Project extends CommonObject $this->note_private = $obj->note_private; $this->note_public = $obj->note_public; $this->socid = $obj->fk_soc; - $this->societe=(object)array();// To avoid warning on next line - $this->societe->id = $obj->fk_soc; // TODO For backward compatibility $this->user_author_id = $obj->fk_user_creat; $this->public = $obj->public; $this->statut = $obj->fk_statut; diff --git a/htdocs/resource/card.php b/htdocs/resource/card.php index 38562557e3a..ed48f7e1b04 100755 --- a/htdocs/resource/card.php +++ b/htdocs/resource/card.php @@ -60,6 +60,7 @@ $object = new Resource($db); $hookmanager->initHooks(array('resource_card')); $parameters=array('resource_id'=>$id); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); /******************************************************************* @@ -86,7 +87,7 @@ if ($action == 'update' && ! $_POST["cancel"] && $user->rights->resource->write $object->ref = $ref; $object->description = $description; $object->fk_code_type_resource = $fk_code_type_resource; - + $result=$object->update($user); if ($result > 0) { @@ -98,9 +99,9 @@ if ($action == 'update' && ! $_POST["cancel"] && $user->rights->resource->write setEventMessage('
'.$object->error.'
'); $action='edit'; } - + } - else + else { setEventMessage($object->error,'errors'); $action='edit'; @@ -149,13 +150,13 @@ if ( $object->fetch($id) > 0 ) // Ref print ''; print ''; - + // Type print ''; print ''; - + // Description print ''; print ''; print ''; - + // Description print ''; print ''; @@ -215,8 +216,8 @@ if ( $object->fetch($id) > 0 ) $parameters = array(); $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been // modified by hook - if (empty($reshook)) - { + if (empty($reshook)) + { if ($action != "edit" ) { // Edit resource diff --git a/htdocs/resource/class/actions_resource.class.php b/htdocs/resource/class/actions_resource.class.php index afcf9eb19b8..f8f0b5412f9 100644 --- a/htdocs/resource/class/actions_resource.class.php +++ b/htdocs/resource/class/actions_resource.class.php @@ -46,8 +46,8 @@ class ActionsResource * doActions for resource module * * @param array $parameters parameters - * @param Object &$object object - * @param string &$action action + * @param Object $object object + * @param string $action action * @return void */ /* Why a hook action ? TODO Remove this class and replace a method into commonobject diff --git a/htdocs/resource/element_resource.php b/htdocs/resource/element_resource.php index c5329edd1f3..02a24735454 100644 --- a/htdocs/resource/element_resource.php +++ b/htdocs/resource/element_resource.php @@ -138,11 +138,12 @@ if ($action == 'confirm_delete_linked_resource' && $user->rights->resource->dele $parameters=array('resource_id'=>resource_id); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks - +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); $parameters=array('resource_id'=>$resource_id); $reshook=$hookmanager->executeHooks('getElementResources',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); /*************************************************** diff --git a/htdocs/resource/list.php b/htdocs/resource/list.php index 3fde7b52999..9a0fca19781 100644 --- a/htdocs/resource/list.php +++ b/htdocs/resource/list.php @@ -53,9 +53,6 @@ $object = new Resource($db); $hookmanager->initHooks(array('resource_list')); -$parameters=array(); -$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks - if (empty($sortorder)) $sortorder="DESC"; if (empty($sortfield)) $sortfield="t.rowid"; if (empty($arch)) $arch = 0; @@ -72,12 +69,20 @@ $pagenext = $page + 1; if( ! $user->rights->resource->read) accessforbidden(); -/*************************************************** - * VIEW -* -* Put here all code to build page -****************************************************/ +/* + * Action + */ + +$parameters=array(); +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + + + +/* + * View + */ $pagetitle=$langs->trans('ResourcePageIndex'); llxHeader('',$pagetitle,''); @@ -129,7 +134,7 @@ else print ''; - + print ''; diff --git a/htdocs/societe/agenda.php b/htdocs/societe/agenda.php index b25129580ff..742039176b8 100644 --- a/htdocs/societe/agenda.php +++ b/htdocs/societe/agenda.php @@ -47,8 +47,7 @@ $hookmanager->initHooks(array('agendathirdparty')); $parameters=array('id'=>$socid); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks -$error=$hookmanager->error; $errors=array_merge($errors, (array) $hookmanager->errors); - +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); diff --git a/htdocs/societe/canvas/actions_card_common.class.php b/htdocs/societe/canvas/actions_card_common.class.php index f076812d9e2..63f5214b319 100644 --- a/htdocs/societe/canvas/actions_card_common.class.php +++ b/htdocs/societe/canvas/actions_card_common.class.php @@ -89,7 +89,7 @@ abstract class ActionsCardCommon /** * Load data control * - * @param int &$action Action code + * @param int $action Action code * @return void */ function doActions(&$action) @@ -354,7 +354,7 @@ abstract class ActionsCardCommon /** * Assign custom values for canvas (for example into this->tpl to be used by templates) * - * @param string &$action Type of action + * @param string $action Type of action * @param string $id Id of object * @param string $ref Ref of object * @return void diff --git a/htdocs/societe/canvas/company/actions_card_company.class.php b/htdocs/societe/canvas/company/actions_card_company.class.php index a47b6321792..d54af2b8bba 100644 --- a/htdocs/societe/canvas/company/actions_card_company.class.php +++ b/htdocs/societe/canvas/company/actions_card_company.class.php @@ -75,7 +75,7 @@ class ActionsCardCompany extends ActionsCardCommon /** * Execute actions * - * @param string &$action Type of action + * @param string $action Type of action * @param int $id Id of object * @return int <0 if KO, >0 if OK */ @@ -91,7 +91,7 @@ class ActionsCardCompany extends ActionsCardCommon /** * Assign custom values for canvas (for example into this->tpl to be used by templates) * - * @param string &$action Type of action + * @param string $action Type of action * @param string $id Id of object * @param string $ref Ref of object * @return void diff --git a/htdocs/societe/canvas/individual/actions_card_individual.class.php b/htdocs/societe/canvas/individual/actions_card_individual.class.php index b8cb94a820b..2f00cd4bc27 100644 --- a/htdocs/societe/canvas/individual/actions_card_individual.class.php +++ b/htdocs/societe/canvas/individual/actions_card_individual.class.php @@ -75,7 +75,7 @@ class ActionsCardIndividual extends ActionsCardCommon /** * Execute actions * - * @param string &$action Action + * @param string $action Action * @param int $id Id of object (may be empty for creation) * @return int <0 if KO, >0 if OK */ @@ -91,7 +91,7 @@ class ActionsCardIndividual extends ActionsCardCommon /** * Assign custom values for canvas (for example into this->tpl to be used by templates) * - * @param string &$action Type of action + * @param string $action Type of action * @param string $id Id of object * @param string $ref Ref of object * @return void diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 071f0ff9b65..e446d5a9e76 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -135,17 +135,17 @@ class Societe extends CommonObject var $barcode_type; /** * code (loaded by fetch_barcode) - * @var + * @var string */ var $barcode_type_code; /** * label (loaded by fetch_barcode) - * @var + * @var string */ var $barcode_type_label; /** * coder (loaded by fetch_barcode) - * @var + * @var string */ var $barcode_type_coder; diff --git a/htdocs/societe/commerciaux.php b/htdocs/societe/commerciaux.php index 14eab2ee038..5436e03274b 100644 --- a/htdocs/societe/commerciaux.php +++ b/htdocs/societe/commerciaux.php @@ -57,8 +57,7 @@ if($_GET["socid"] && $_GET["commid"]) $parameters=array('id'=>$_GET["commid"]); $reshook=$hookmanager->executeHooks('doActions',$parameters,$soc,$action); // Note that $action and $object may have been modified by some hooks - $error=$hookmanager->error; $errors=array_merge($errors, (array) $hookmanager->errors); - + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if (empty($reshook)) $soc->add_commercial($user, $_GET["commid"]); @@ -84,8 +83,7 @@ if($_GET["socid"] && $_GET["delcommid"]) $parameters=array('id'=>$_GET["delcommid"]); $reshook=$hookmanager->executeHooks('doActions',$parameters,$soc,$action); // Note that $action and $object may have been modified by some hooks - $error=$hookmanager->error; $errors=array_merge($errors, (array) $hookmanager->errors); - + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if (empty($reshook)) $soc->del_commercial($user, $_GET["delcommid"]); diff --git a/htdocs/societe/info.php b/htdocs/societe/info.php index 446a4f415fb..305936e6f56 100644 --- a/htdocs/societe/info.php +++ b/htdocs/societe/info.php @@ -48,7 +48,7 @@ $hookmanager->initHooks(array('infothirdparty')); $parameters=array('id'=>$socid); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks -$error=$hookmanager->error; $errors=array_merge($errors, (array) $hookmanager->errors); +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index cf801c0b3dd..e45ce6eee7b 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -86,7 +86,7 @@ $hookmanager->initHooks(array('thirdpartycard')); $parameters=array('id'=>$socid, 'objcanvas'=>$objcanvas); $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks -$error=$hookmanager->error; $errors=array_merge($errors, (array) $hookmanager->errors); +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if (empty($reshook)) { diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 5177bb3dbed..4afd650f4ae 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -72,8 +72,10 @@ class User extends CommonObject var $datem; //! If this is defined, it is an external user - var $societe_id; - var $contact_id; + var $societe_id; // deprecated + var $contact_id; // deprecated + var $socid; + var $contactid; var $fk_member; var $fk_user; @@ -237,8 +239,10 @@ class User extends CommonObject $this->datelastlogin = $this->db->jdate($obj->datel); $this->datepreviouslogin = $this->db->jdate($obj->datep); - $this->societe_id = $obj->fk_societe; - $this->contact_id = $obj->fk_socpeople; + $this->societe_id = $obj->fk_societe; // deprecated + $this->contact_id = $obj->fk_socpeople; // deprecated + $this->socid = $obj->fk_societe; + $this->contactid = $obj->fk_socpeople; $this->fk_member = $obj->fk_member; $this->fk_user = $obj->fk_user; @@ -2114,7 +2118,7 @@ class User extends CommonObject /** * Update user using data from the LDAP * - * @param ldapuser &$ldapuser Ladp User + * @param ldapuser $ldapuser Ladp User * * @return int <0 if KO, >0 if OK */ diff --git a/htdocs/webservices/server_actioncomm.php b/htdocs/webservices/server_actioncomm.php index d5d9c45fa36..2a41a769314 100644 --- a/htdocs/webservices/server_actioncomm.php +++ b/htdocs/webservices/server_actioncomm.php @@ -433,10 +433,10 @@ function createActionComm($authentication,$actioncomm) $newobject->datep=$actioncomm['datep']; $newobject->datef=$actioncomm['datef']; $newobject->type_code=$actioncomm['type_code']; - $newobject->societe->id=$actioncomm['socid']; + $newobject->socid=$actioncomm['socid']; $newobject->fk_project=$actioncomm['projectid']; $newobject->note=$actioncomm['note']; - $newobject->contact->id=$actioncomm['contactid']; + $newobject->contactid=$actioncomm['contactid']; $newobject->usertodo->id=$actioncomm['usertodo']; $newobject->userdone->id=$actioncomm['userdone']; $newobject->label=$actioncomm['label']; @@ -517,21 +517,21 @@ function updateActionComm($authentication,$actioncomm) if (! $error) { $objectfound=false; - + $object=new ActionComm($db); $result=$object->fetch($actioncomm['id']); - + if (!empty($object->id)) { - + $objectfound=true; $object->datep=$actioncomm['datep']; $object->datef=$actioncomm['datef']; $object->type_code=$actioncomm['type_code']; - $object->societe->id=$actioncomm['socid']; + $object->socid=$actioncomm['socid']; + $object->contactid=$actioncomm['contactid']; $object->fk_project=$actioncomm['projectid']; $object->note=$actioncomm['note']; - $object->contact->id=$actioncomm['contactid']; $object->usertodo->id=$actioncomm['usertodo']; $object->userdone->id=$actioncomm['userdone']; $object->label=$actioncomm['label']; @@ -541,7 +541,7 @@ function updateActionComm($authentication,$actioncomm) $object->location=$actioncomm['location']; $object->fk_element=$actioncomm['fk_element']; $object->elementtype=$actioncomm['elementtype']; - + //Retreive all extrafield for actioncomm // fetch optionals attributes and labels $extrafields=new ExtraFields($db); @@ -551,7 +551,7 @@ function updateActionComm($authentication,$actioncomm) $key='options_'.$key; $object->array_options[$key]=$actioncomm[$key]; } - + $db->begin(); $result=$object->update($fuser); diff --git a/htdocs/webservices/server_invoice.php b/htdocs/webservices/server_invoice.php index 8412ed6ab1b..407453ba1f2 100644 --- a/htdocs/webservices/server_invoice.php +++ b/htdocs/webservices/server_invoice.php @@ -532,7 +532,7 @@ function createInvoice($authentication,$invoice) { // $key can be 'line' or '0','1',... $newline=new FactureLigne($db); - $newline->type=$line['type']; + $newline->product_type=$line['type']; $newline->desc=$line['desc']; $newline->fk_product=$line['fk_product']; $newline->tva_tx=$line['vat_rate']; diff --git a/test/phpunit/AllTests.php b/test/phpunit/AllTests.php index eb3c1a56abb..a8a554ca25d 100644 --- a/test/phpunit/AllTests.php +++ b/test/phpunit/AllTests.php @@ -126,7 +126,7 @@ class AllTests require_once dirname(__FILE__).'/ContratTest.php'; $suite->addTestSuite('ContratTest'); - require_once dirname(__FILE__).'/FichInterTest.php'; + require_once dirname(__FILE__).'/FichinterTest.php'; $suite->addTestSuite('FichinterTest'); require_once dirname(__FILE__).'/PropalTest.php'; diff --git a/test/phpunit/FactureRecTest.php b/test/phpunit/FactureRecTest.php index 8933b9a73e0..4d4783240fa 100644 --- a/test/phpunit/FactureRecTest.php +++ b/test/phpunit/FactureRecTest.php @@ -149,7 +149,7 @@ class FactureRecTest extends PHPUnit_Framework_TestCase /** * Edit an object to test updates * - * @param mixed &$localobject Object Facture + * @param mixed $localobject Object Facture * @return void */ public function changeProperties(&$localobject) diff --git a/test/phpunit/FactureTest.php b/test/phpunit/FactureTest.php index a16ddbbbf47..11795c08fe2 100644 --- a/test/phpunit/FactureTest.php +++ b/test/phpunit/FactureTest.php @@ -282,7 +282,7 @@ class FactureTest extends PHPUnit_Framework_TestCase /** * Edit an object to test updates * - * @param mixed &$localobject Object Facture + * @param mixed $localobject Object Facture * @return void */ public function changeProperties(&$localobject) diff --git a/test/phpunit/UserTest.php b/test/phpunit/UserTest.php index 5df1549ea14..e0eaa03acec 100644 --- a/test/phpunit/UserTest.php +++ b/test/phpunit/UserTest.php @@ -272,7 +272,7 @@ class UserTest extends PHPUnit_Framework_TestCase /** * Edit an object to test updates * - * @param mixed &$localobject Object Facture + * @param mixed $localobject Object Facture * @return void */ public function changeProperties(&$localobject)
'.$langs->trans("ResourceFormLabel_ref").'
'.$langs->trans("ResourceType").''; - $ret = $formresource->select_types_resource($object->fk_code_type_resource,'fk_code_type_resource','',2); + $ret = $formresource->select_types_resource($object->fk_code_type_resource,'fk_code_type_resource','',2); print '
'.$langs->trans("Description").''; @@ -194,7 +195,7 @@ if ( $object->fetch($id) > 0 ) print $object->type_label; print '
' . $langs->trans("ResourceFormLabel_description") . ''; print $resource->ref; print ''; print $resource->type_label; print '