+ *
+ * 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
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+/**
+ * \file htdocs/admin/holiday_extrafields.php
+ * \ingroup holiday
+ * \brief Page to setup extra fields of holiday
+ */
+
+require '../main.inc.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/holiday.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
+
+if (!$user->admin)
+ accessforbidden();
+
+// Load translation files required by the page
+$langs->loadLangs(array('admin', 'errors', 'holiday', 'other'));
+
+$extrafields = new ExtraFields($db);
+$form = new Form($db);
+
+// List of supported format
+$tmptype2label=ExtraFields::$type2label;
+$type2label=array('');
+foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->transnoentitiesnoconv($val);
+
+$action=GETPOST('action', 'alpha');
+$attrname=GETPOST('attrname', 'alpha');
+$elementtype='holiday'; //Must be the $table_element of the class that manage extrafield
+
+if (!$user->admin) accessforbidden();
+
+
+/*
+ * Actions
+ */
+
+require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
+
+
+
+/*
+ * View
+ */
+
+llxHeader('', $langs->trans("HolidaySetup"));
+
+$linkback=''.$langs->trans("BackToModuleList").' ';
+print load_fiche_titre($langs->trans("HolidaySetup"), $linkback, 'title_setup');
+
+$head = holiday_admin_prepare_head();
+
+dol_fiche_head($head, 'attributes', $langs->trans("Holidays"), -1, 'holiday');
+
+require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
+
+dol_fiche_end();
+
+
+// Buttons
+if ($action != 'create' && $action != 'edit')
+{
+ print '";
+}
+
+
+/* ************************************************************************** */
+/* */
+/* Creation of an optional field */
+/* */
+/* ************************************************************************** */
+
+if ($action == 'create')
+{
+ print '
';
+ print load_fiche_titre($langs->trans('NewAttribute'));
+
+ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
+}
+
+/* ************************************************************************** */
+/* */
+/* Edition of an optional field */
+/* */
+/* ************************************************************************** */
+if ($action == 'edit' && ! empty($attrname))
+{
+ print " ";
+ print load_fiche_titre($langs->trans("FieldEdition", $attrname));
+
+ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
+}
+
+// End of page
+llxFooter();
+$db->close();
diff --git a/htdocs/cashdesk/index.php b/htdocs/cashdesk/index.php
index 8bd64c76e2b..57dc1cbb394 100644
--- a/htdocs/cashdesk/index.php
+++ b/htdocs/cashdesk/index.php
@@ -96,11 +96,11 @@ else
trans("Login"); ?>
-
+
trans("Password"); ?>
-
+
'.$langs->trans("CashDeskBankAccountForSell").'';
print '';
$defaultknown=0;
if (! empty($conf->global->CASHDESK_ID_BANKACCOUNT_CASH) && $conf->global->CASHDESK_ID_BANKACCOUNT_CASH > 0) $defaultknown=1; // If a particular stock is defined, we disable choice
-print $form->select_comptes(((GETPOST('bankid_cash') > 0)?GETPOST('bankid_cash'):$conf->global->CASHDESK_ID_BANKACCOUNT_CASH), 'CASHDESK_ID_BANKACCOUNT_CASH', 0, "courant=2", ($defaultknown?0:2));
+$form->select_comptes(((GETPOST('bankid_cash') > 0)?GETPOST('bankid_cash'):$conf->global->CASHDESK_ID_BANKACCOUNT_CASH), 'CASHDESK_ID_BANKACCOUNT_CASH', 0, "courant=2", ($defaultknown?0:2));
print ' ';
print "\n";
@@ -166,7 +166,7 @@ print ''.$langs->trans("CashDeskBankAccountForCheque").'
print '';
$defaultknown=0;
if (! empty($conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE) && $conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE > 0) $defaultknown=1; // If a particular stock is defined, we disable choice
-print $form->select_comptes(((GETPOST('bankid_cheque') > 0)?GETPOST('bankid_cheque'):$conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE), 'CASHDESK_ID_BANKACCOUNT_CHEQUE', 0, "courant=1", ($defaultknown?0:2));
+$form->select_comptes(((GETPOST('bankid_cheque') > 0)?GETPOST('bankid_cheque'):$conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE), 'CASHDESK_ID_BANKACCOUNT_CHEQUE', 0, "courant=1", ($defaultknown?0:2));
print ' ';
print "\n";
@@ -175,7 +175,7 @@ print ''.$langs->trans("CashDeskBankAccountForCB").' ';
print '';
$defaultknown=0;
if (! empty($conf->global->CASHDESK_ID_BANKACCOUNT_CB) && $conf->global->CASHDESK_ID_BANKACCOUNT_CB > 0) $defaultknown=1; // If a particular stock is defined, we disable choice
-print $form->select_comptes(((GETPOST('bankid_cb') > 0)?GETPOST('bankid_cb'):$conf->global->CASHDESK_ID_BANKACCOUNT_CB), 'CASHDESK_ID_BANKACCOUNT_CB', 0, "courant=1", ($defaultknown?0:2));
+$form->select_comptes(((GETPOST('bankid_cb') > 0)?GETPOST('bankid_cb'):$conf->global->CASHDESK_ID_BANKACCOUNT_CB), 'CASHDESK_ID_BANKACCOUNT_CB', 0, "courant=1", ($defaultknown?0:2));
print ' ';
print "\n";
@@ -191,7 +191,7 @@ print "\n";
- trans("Connection"); ?> />
+ " />
diff --git a/htdocs/compta/bank/line.php b/htdocs/compta/bank/line.php
index 2b04f83472f..3345fe6ee3e 100644
--- a/htdocs/compta/bank/line.php
+++ b/htdocs/compta/bank/line.php
@@ -323,7 +323,7 @@ if ($result)
print '';
if (! $objp->rappro && ! $bankline->getVentilExportCompta())
{
- print $form->select_comptes($acct->id, 'accountid', 0, '', 0);
+ $form->select_comptes($acct->id, 'accountid', 0, '', 0);
}
else
{
diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php
index 6d0bf2f56bc..f08202c1efd 100644
--- a/htdocs/compta/facture/card.php
+++ b/htdocs/compta/facture/card.php
@@ -4982,7 +4982,7 @@ elseif ($id > 0 || ! empty($ref))
}
// Classify paid
- if ($object->statut == 1 && $object->paye == 0 && $usercanissuepayment && (($object->type != Facture::TYPE_CREDIT_NOTE && $object->type != Facture::TYPE_DEPOSIT && $resteapayer <= 0) || ($object->type == Facture::TYPE_CREDIT_NOTE && $resteapayer >= 0))
+ if (($object->statut == 1 && $object->paye == 0 && $usercanissuepayment && (($object->type != Facture::TYPE_CREDIT_NOTE && $object->type != Facture::TYPE_DEPOSIT && $resteapayer <= 0) || ($object->type == Facture::TYPE_CREDIT_NOTE && $resteapayer >= 0)))
|| ($object->type == Facture::TYPE_DEPOSIT && $object->paye == 0 && $object->total_ttc > 0 && $resteapayer == 0 && $usercanissuepayment && empty($discount->id))
)
{
diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php
index 79745113f88..9709eed637d 100644
--- a/htdocs/contrat/list.php
+++ b/htdocs/contrat/list.php
@@ -321,7 +321,7 @@ if (! $resql)
$num = $db->num_rows($resql);
// Direct jump if only one record found
-if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall)
+if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall && ! $page)
{
$obj = $db->fetch_object($resql);
$id = $obj->rowid;
diff --git a/htdocs/core/class/events.class.php b/htdocs/core/class/events.class.php
index 57a076963fd..160e22f4c50 100644
--- a/htdocs/core/class/events.class.php
+++ b/htdocs/core/class/events.class.php
@@ -87,33 +87,9 @@ class Events // extends CommonObject
array('id'=>'USER_NEW_PASSWORD', 'test'=>1),
array('id'=>'USER_ENABLEDISABLE', 'test'=>1),
array('id'=>'USER_DELETE', 'test'=>1),
- /* array('id'=>'USER_SETINGROUP', 'test'=>1), deprecated. Replace with USER_MODIFY
- array('id'=>'USER_REMOVEFROMGROUP', 'test'=>1), deprecated. Replace with USER_MODIFY */
array('id'=>'GROUP_CREATE', 'test'=>1),
array('id'=>'GROUP_MODIFY', 'test'=>1),
array('id'=>'GROUP_DELETE', 'test'=>1),
- /* array('id'=>'ACTION_CREATE', 'test'=>$conf->societe->enabled),
- array('id'=>'COMPANY_CREATE', 'test'=>$conf->societe->enabled),
- array('id'=>'CONTRACT_VALIDATE', 'test'=>$conf->contrat->enabled),
- array('id'=>'PROPAL_VALIDATE', 'test'=>$conf->propal->enabled),
- array('id'=>'PROPAL_CLOSE_SIGNED', 'test'=>$conf->propal->enabled),
- array('id'=>'PROPAL_CLOSE_REFUSED', 'test'=>$conf->propal->enabled),
- array('id'=>'PROPAL_SENTBYMAIL', 'test'=>$conf->propal->enabled),
- array('id'=>'ORDER_VALIDATE', 'test'=>$conf->commande->enabled),
- array('id'=>'ORDER_SENTBYMAIL', 'test'=>$conf->commande->enabled),
- array('id'=>'BILL_VALIDATE', 'test'=>$conf->facture->enabled),
- array('id'=>'BILL_PAYED', 'test'=>$conf->facture->enabled),
- array('id'=>'BILL_CANCEL', 'test'=>$conf->facture->enabled),
- array('id'=>'BILL_SENTBYMAIL', 'test'=>$conf->facture->enabled),
- array('id'=>'PAYMENT_CUSTOMER_CREATE','test'=>$conf->facture->enabled),
- array('id'=>'PAYMENT_SUPPLIER_CREATE','test'=>$conf->fournisseur->enabled),
- array('id'=>'MEMBER_CREATE', 'test'=>$conf->adherent->enabled),
- array('id'=>'MEMBER_VALIDATE', 'test'=>$conf->adherent->enabled),
- array('id'=>'MEMBER_SUBSCRIPTION', 'test'=>$conf->adherent->enabled),
- array('id'=>'MEMBER_MODIFY', 'test'=>$conf->adherent->enabled),
- array('id'=>'MEMBER_RESILIATE', 'test'=>$conf->adherent->enabled),
- array('id'=>'MEMBER_DELETE', 'test'=>$conf->adherent->enabled),
- */
);
diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php
index 6ed17305096..ea5027de1ee 100644
--- a/htdocs/core/lib/date.lib.php
+++ b/htdocs/core/lib/date.lib.php
@@ -323,6 +323,7 @@ function dolSqlDateFilter($datefield, $day_date, $month_date, $year_date)
* 0 =Input date is local date using PHP server timezone
* @return int Date as a timestamp
* 19700101020000 -> 7200 with gm=1
+ * 19700101000000 -> 0 with gm=1
*
* @see dol_print_date(), dol_mktime(), dol_getdate()
*/
diff --git a/htdocs/core/lib/holiday.lib.php b/htdocs/core/lib/holiday.lib.php
index 492766192b4..960acfa3aa7 100644
--- a/htdocs/core/lib/holiday.lib.php
+++ b/htdocs/core/lib/holiday.lib.php
@@ -86,6 +86,11 @@ function holiday_admin_prepare_head()
// $this->tabs = array('entity:-tabname); to remove a tab
complete_head_from_modules($conf, $langs, null, $head, $h, 'holiday_admin');
+ $head[$h][0] = DOL_URL_ROOT.'/admin/holiday_extrafields.php';
+ $head[$h][1] = $langs->trans("ExtraFields");
+ $head[$h][2] = 'attributes';
+ $h++;
+
complete_head_from_modules($conf, $langs, null, $head, $h, 'holiday_admin', 'remove');
return $head;
diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php
index 438ff8246ea..2aaeb967675 100644
--- a/htdocs/core/menus/standard/auguria.lib.php
+++ b/htdocs/core/menus/standard/auguria.lib.php
@@ -271,14 +271,19 @@ function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$t
// Show logo company
if (empty($noout) && ! empty($conf->global->MAIN_SHOW_LOGO) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
{
- $mysoc->logo_mini=$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI;
- if (! empty($mysoc->logo_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini))
+ $mysoc->logo_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI);
+ $mysoc->logo_squarred_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI);
+ if (! empty($mysoc->logo_squarred_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini))
+ {
+ $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_squarred_mini);
+ }
+ elseif (! empty($mysoc->logo_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini))
{
$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_mini);
}
else
{
- $urllogo=DOL_URL_ROOT.'/theme/dolibarr_logo.png';
+ $urllogo=DOL_URL_ROOT.'/theme/dolibarr_logo_squarred.png';
}
$title=$langs->trans("GoIntoSetupToChangeLogo");
print "\n".''."\n";
diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php
index 2eead6da81d..d62cd1993fd 100644
--- a/htdocs/core/menus/standard/eldy.lib.php
+++ b/htdocs/core/menus/standard/eldy.lib.php
@@ -43,7 +43,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
*/
function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout = 0, $mode = '')
{
- global $user,$conf,$langs,$dolibarr_main_db_name;
+ global $user,$conf,$langs,$mysoc;
+ global $dolibarr_main_db_name;
$mainmenu=(empty($_SESSION["mainmenu"])?'':$_SESSION["mainmenu"]);
$leftmenu=(empty($_SESSION["leftmenu"])?'':$_SESSION["leftmenu"]);
@@ -477,8 +478,8 @@ function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout =
// Show logo company
if (empty($conf->global->MAIN_MENU_INVERT) && empty($noout) && ! empty($conf->global->MAIN_SHOW_LOGO) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
{
- $mysoc->logo_mini=$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI;
- $mysoc->logo_squarred_mini=$conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI;
+ $mysoc->logo_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI);
+ $mysoc->logo_squarred_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI);
if (! empty($mysoc->logo_squarred_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini))
{
$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_squarred_mini);
diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php
index 666403a7412..b51ae3d05f5 100644
--- a/htdocs/expensereport/list.php
+++ b/htdocs/expensereport/list.php
@@ -40,12 +40,13 @@ require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport_ik.class.php'
// Load translation files required by the page
$langs->loadLangs(array('companies', 'users', 'trips'));
-$action=GETPOST('action', 'aZ09');
-$massaction=GETPOST('massaction', 'alpha');
-$show_files=GETPOST('show_files', 'int');
-$confirm=GETPOST('confirm', 'alpha');
-$toselect = GETPOST('toselect', 'array');
-$contextpage=GETPOST('contextpage', 'aZ')?GETPOST('contextpage', 'aZ'):'expensereportlist';
+$action = GETPOST('action', 'aZ09');
+$massaction = GETPOST('massaction', 'alpha');
+$show_files = GETPOST('show_files', 'int');
+$confirm = GETPOST('confirm', 'alpha');
+$cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button
+$toselect = GETPOST('toselect', 'array');
+$contextpage = GETPOST('contextpage', 'aZ')?GETPOST('contextpage', 'aZ'):'expensereportlist';
$childids = $user->getAllChildIds(1);
@@ -136,17 +137,17 @@ $arrayfields=array(
'd.fk_statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000),
);
// Extra fields
-if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
+if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0)
{
- foreach($extrafields->attribute_label as $key => $val)
- {
- if (! empty($extrafields->attribute_list[$key])) $arrayfields["ef.".$key]=array('label'=>$extrafields->attribute_label[$key], 'checked'=>(($extrafields->attribute_list[$key]<0)?0:1), 'position'=>$extrafields->attribute_pos[$key], 'enabled'=>(abs($extrafields->attribute_list[$key])!=3 && $extrafields->attribute_perms[$key]));
- }
+ foreach($extrafields->attributes[$object->table_element]['label'] as $key => $val)
+ {
+ if (! empty($extrafields->attributes[$object->table_element]['list'][$key]))
+ $arrayfields["ef.".$key]=array('label'=>$extrafields->attributes[$object->table_element]['label'][$key], 'checked'=>(($extrafields->attributes[$object->table_element]['list'][$key]<0)?0:1), 'position'=>$extrafields->attributes[$object->table_element]['pos'][$key], 'enabled'=>(abs($extrafields->attributes[$object->table_element]['list'][$key])!=3 && $extrafields->attributes[$object->table_element]['perms'][$key]));
+ }
}
$canedituser=(! empty($user->admin) || $user->rights->user->user->creer);
-$object = new ExpenseReport($db);
$objectuser = new User($db);
@@ -161,10 +162,11 @@ $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_changeselectedfields.inc.php';
-
if (empty($reshook))
{
+ // Selection of new fields
+ include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
+
// Purge search criteria
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // Both test must be present to be compatible with all browsers
{
@@ -176,7 +178,6 @@ if (empty($reshook))
$search_status="";
$month_start="";
$year_start="";
- $day ="";
$month_end="";
$year_end="";
$day_end = "";
@@ -340,15 +341,15 @@ if ($resql)
$arrayofselected=is_array($toselect)?$toselect:array();
$param='';
- if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
- if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
- if ($sall) $param.="&sall=".$sall;
- if ($search_ref) $param.="&search_ref=".$search_ref;
- if ($search_user) $param.="&search_user=".$search_user;
- if ($search_amount_ht) $param.="&search_amount_ht=".$search_amount_ht;
- if ($search_amount_ttc) $param.="&search_amount_ttc=".$search_amount_ttc;
- if ($search_status >= 0) $param.="&search_status=".$search_status;
- if ($optioncss != '') $param.='&optioncss='.$optioncss;
+ if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
+ if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
+ if ($sall) $param.="&sall=".urlencode($sall);
+ if ($search_ref) $param.="&search_ref=".urlencode($search_ref);
+ if ($search_user) $param.="&search_user=".urlencode($search_user);
+ if ($search_amount_ht) $param.="&search_amount_ht=".urlencode($search_amount_ht);
+ if ($search_amount_ttc) $param.="&search_amount_ttc=".urlencode($search_amount_ttc);
+ if ($search_status >= 0) $param.="&search_status=".urlencode($search_status);
+ if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss);
// Add $param from extra fields
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
@@ -503,7 +504,7 @@ if ($resql)
$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
- if ($massactionbutton) $selectedfields.=$form->showCheckAddButtons('checkforselect', 1);
+ $selectedfields.=(count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : '');
print '';
print '
'."\n";
@@ -606,7 +607,7 @@ if ($resql)
print '';
}
// Action column
- print '';
+ print ' ';
$searchpicto=$form->showFilterButtons();
print $searchpicto;
print ' ';
@@ -757,6 +758,7 @@ if ($resql)
$parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj);
$reshook=$hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint;
+
// Date creation
if (! empty($arrayfields['d.date_create']['checked']))
{
diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php
index 204d832a94c..be441976f67 100644
--- a/htdocs/holiday/card.php
+++ b/htdocs/holiday/card.php
@@ -1311,7 +1311,7 @@ else
}
print '';
- print ''.$langs->trans('DateCreateCP').' ';
+ print ''.$langs->trans('DateCreation').' ';
print ''.dol_print_date($object->date_create, 'dayhour').' ';
print ' ';
if ($object->statut == Holiday::STATUS_APPROVED || $object->statut == Holiday::STATUS_CANCELED) {
diff --git a/htdocs/holiday/class/holiday.class.php b/htdocs/holiday/class/holiday.class.php
index d767bcdc691..7557a7941fb 100644
--- a/htdocs/holiday/class/holiday.class.php
+++ b/htdocs/holiday/class/holiday.class.php
@@ -558,6 +558,7 @@ class Holiday extends CommonObject
$sql.= " cp.fk_user,";
$sql.= " cp.fk_type,";
$sql.= " cp.date_create,";
+ $sql.= " cp.tms as date_update,";
$sql.= " cp.description,";
$sql.= " cp.date_debut,";
$sql.= " cp.date_fin,";
@@ -623,6 +624,7 @@ class Holiday extends CommonObject
$tab_result[$i]['fk_user'] = $obj->fk_user;
$tab_result[$i]['fk_type'] = $obj->fk_type;
$tab_result[$i]['date_create'] = $this->db->jdate($obj->date_create);
+ $tab_result[$i]['date_update'] = $this->db->jdate($obj->date_update);
$tab_result[$i]['description'] = $obj->description;
$tab_result[$i]['date_debut'] = $this->db->jdate($obj->date_debut);
$tab_result[$i]['date_fin'] = $this->db->jdate($obj->date_fin);
diff --git a/htdocs/holiday/document.php b/htdocs/holiday/document.php
index a594a920e74..6ade6a13e17 100644
--- a/htdocs/holiday/document.php
+++ b/htdocs/holiday/document.php
@@ -251,7 +251,7 @@ if ($object->id)
}
print '';
- print ''.$langs->trans('DateCreateCP').' ';
+ print ''.$langs->trans('DateCreation').' ';
print ''.dol_print_date($object->date_create,'dayhour').' ';
print ' ';
if ($object->statut == 3) {
diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php
index f74d731e8bd..145f2f7b48f 100644
--- a/htdocs/holiday/list.php
+++ b/htdocs/holiday/list.php
@@ -27,6 +27,7 @@
require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
require_once DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php';
@@ -40,16 +41,19 @@ $langs->loadLangs(array('users', 'holidays', 'hrm'));
// Protection if external user
if ($user->societe_id > 0) accessforbidden();
-$action = GETPOST('action', 'alpha'); // The action 'add', 'create', 'edit', 'update', 'view', ...
+$action = GETPOST('action', 'aZ09'); // The action 'add', 'create', 'edit', 'update', 'view', ...
$massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists)
$show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ?
$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation
$cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button
$toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list
-$contextpage= GETPOST('contextpage', 'aZ')?GETPOST('contextpage', 'aZ'):'myobjectlist'; // To manage different context of search
+$contextpage= GETPOST('contextpage', 'aZ')?GETPOST('contextpage', 'aZ'):'holidaylist'; // To manage different context of search
+
$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page
$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print')
+$id = GETPOST('id', 'int');
+
$childids = $user->getAllChildIds(1);
// Security check
@@ -59,8 +63,7 @@ if ($user->societe_id > 0) // Protection if external user
//$socid = $user->societe_id;
accessforbidden();
}
-$result = restrictedArea($user, 'holiday', $id, '');
-$id = GETPOST('id', 'int');
+$result = restrictedArea($user, 'holiday', '', '');
// If we are on the view of a specific user
if ($id > 0)
{
@@ -74,6 +77,9 @@ if ($id > 0)
}
}
+$diroutputmassaction=$conf->holiday->dir_output . '/temp/massgeneration/'.$user->id;
+
+
// Load variable for pagination
$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit;
$sortfield = GETPOST('sortfield', 'alpha');
@@ -83,20 +89,8 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined,
$offset = $limit * $page;
$pageprev = $page - 1;
$pagenext = $page + 1;
-
-// Initialize technical objects
-$object=new Holiday($db);
-$extrafields = new ExtraFields($db);
-$diroutputmassaction=$conf->holiday->dir_output . '/temp/massgeneration/'.$user->id;
-$hookmanager->initHooks(array('holidaylist')); // Note that conf->hooks_modules contains array
-// Fetch optionals attributes and labels
-$extralabels = $extrafields->fetch_name_optionals_label('holiday');
-$search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_');
-
-// Default sort order (if not yet defined by previous GETPOST)
-if (! $sortfield) $sortfield="cp.rowid";
-if (! $sortorder) $sortorder="DESC";
-
+if (!$sortorder) $sortorder="DESC";
+if (!$sortfield) $sortfield="cp.rowid";
$sall = trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml'));
$search_ref = GETPOST('search_ref', 'alphanohtml');
@@ -114,13 +108,47 @@ $search_valideur = GETPOST('search_valideur', 'int');
$search_statut = GETPOST('search_statut', 'int');
$search_type = GETPOST('search_type', 'int');
+// Initialize technical objects
+$object=new Holiday($db);
+$extrafields = new ExtraFields($db);
+$hookmanager->initHooks(array('holidaylist')); // Note that conf->hooks_modules contains array
+
+// Fetch optionals attributes and labels
+$extralabels = $extrafields->fetch_name_optionals_label('holiday');
+$search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_');
+
// List of fields to search into when doing a "search in all"
$fieldstosearchall = array(
'cp.description'=>'Description',
'uu.lastname'=>'EmployeeLastname',
- 'uu.firstname'=>'EmployeeFirstname'
+ 'uu.firstname'=>'EmployeeFirstname',
+ 'uu.login'=>'Login'
);
+$arrayfields=array(
+ 'cp.ref'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
+ 'cp.fk_user'=>array('label'=>$langs->trans("Employee"), 'checked'=>1, 'position'=>20),
+ 'cp.fk_validator'=>array('label'=>$langs->trans("ValidatorCP"), 'checked'=>1, 'position'=>30),
+ 'cp.fk_type'=>array('label'=>$langs->trans("Type"), 'checked'=>1, 'position'=>35),
+ 'duration'=>array('label'=>$langs->trans("NbUseDaysCPShort"), 'checked'=>1, 'position'=>38),
+ 'cp.date_debut'=>array('label'=>$langs->trans("DateStart"), 'checked'=>1, 'position'=>40),
+ 'cp.date_fin'=>array('label'=>$langs->trans("DateEnd"), 'checked'=>1, 'position'=>42),
+ 'cp.date_valid'=>array('label'=>$langs->trans("DateValidation"), 'checked'=>1, 'position'=>60),
+ 'cp.date_approve'=>array('label'=>$langs->trans("DateApprove"), 'checked'=>1, 'position'=>70),
+ 'cp.date_create'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
+ 'cp.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>501),
+ 'cp.statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000),
+);
+// Extra fields
+if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0)
+{
+ foreach($extrafields->attributes[$object->table_element]['label'] as $key => $val)
+ {
+ if (! empty($extrafields->attributes[$object->table_element]['list'][$key]))
+ $arrayfields["ef.".$key]=array('label'=>$extrafields->attributes[$object->table_element]['label'][$key], 'checked'=>(($extrafields->attributes[$object->table_element]['list'][$key]<0)?0:1), 'position'=>$extrafields->attributes[$object->table_element]['pos'][$key], 'enabled'=>(abs($extrafields->attributes[$object->table_element]['list'][$key])!=3 && $extrafields->attributes[$object->table_element]['perms'][$key]));
+ }
+}
+
/*
@@ -130,7 +158,7 @@ $fieldstosearchall = array(
if (GETPOST('cancel', 'alpha')) { $action='list'; $massaction=''; }
if (! GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; }
-$parameters=array();
+$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');
@@ -180,19 +208,20 @@ if (empty($reshook))
$form = new Form($db);
$formother = new FormOther($db);
+$formfile = new FormFile($db);
-$holiday = new Holiday($db);
$holidaystatic=new Holiday($db);
$fuser = new User($db);
// Update sold
-$result = $holiday->updateBalance();
+$result = $object->updateBalance();
$max_year = 5;
$min_year = 10;
$filter='';
-llxHeader('', $langs->trans('CPTitreMenu'));
+$title = $langs->trans('CPTitreMenu');
+llxHeader('', $title);
$order = $db->order($sortfield, $sortorder).$db->plimit($limit + 1, $offset);
@@ -231,6 +260,16 @@ if (!empty($sall))
if (empty($user->rights->holiday->read_all)) $filter.=' AND cp.fk_user IN ('.join(',', $childids).')';
+$sql='';
+// Add where from extra fields
+include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
+// Add where from hooks
+$parameters=array();
+$reshook=$hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook
+$sql.=$hookmanager->resPrint;
+
+$filter.=$sql;
+
// Récupération de l'ID de l'utilisateur
$user_id = $user->id;
@@ -246,29 +285,29 @@ if ($id > 0)
}
// Récupération des congés payés de l'utilisateur ou de tous les users de sa hierarchy
-// Load array $holiday->holiday
+// Load array $object->holiday
if (empty($user->rights->holiday->read_all) || $id > 0)
{
- if ($id > 0) $result = $holiday->fetchByUser($id, $order, $filter);
- else $result = $holiday->fetchByUser(join(',', $childids), $order, $filter);
+ if ($id > 0) $result = $object->fetchByUser($id, $order, $filter);
+ else $result = $object->fetchByUser(join(',', $childids), $order, $filter);
}
else
{
- $result = $holiday->fetchAll($order, $filter);
+ $result = $object->fetchAll($order, $filter);
}
// Si erreur SQL
if ($result == '-1')
{
print load_fiche_titre($langs->trans('CPTitreMenu'), '', 'title_hrm.png');
- dol_print_error($db, $langs->trans('Error').' '.$holiday->error);
+ dol_print_error($db, $langs->trans('Error').' '.$object->error);
exit();
}
// Show table of vacations
-$num = count($holiday->holiday);
+$num = count($object->holiday);
$arrayofselected=is_array($toselect)?$toselect:array();
@@ -280,7 +319,7 @@ if ($search_ref) $param.='&search_ref='.urlencode($search_ref);
if ($search_day_create) $param.='&search_day_create='.urlencode($search_day_create);
if ($search_month_create) $param.='&search_month_create='.urlencode($search_month_create);
if ($search_year_create) $param.='&search_year_create='.urlencode($search_year_create);
-if ($search_search_day_start) $param.='&search_day_start='.urlencode($search_day_start);
+if ($search_day_start) $param.='&search_day_start='.urlencode($search_day_start);
if ($search_month_start) $param.='&search_month_start='.urlencode($search_month_start);
if ($search_year_start) $param.='&search_year_start='.urlencode($search_year_start);
if ($search_day_end) $param.='&search_day_end='.urlencode($search_day_end);
@@ -290,19 +329,23 @@ if ($search_employee > 0) $param.='&search_employee='.urlencode($search_employee
if ($search_valideur > 0) $param.='&search_valideur='.urlencode($search_valideur);
if ($search_type > 0) $param.='&search_type='.urlencode($search_type);
if ($search_statut > 0) $param.='&search_statut='.urlencode($search_statut);
+// Add $param from extra fields
+include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
// List of mass actions available
$arrayofmassactions = array(
-//'presend'=>$langs->trans("SendByMail"),
-//'builddoc'=>$langs->trans("PDFMerge"),
+ //'generate_doc'=>$langs->trans("ReGeneratePDF"),
+ //'builddoc'=>$langs->trans("PDFMerge"),
+ //'presend'=>$langs->trans("SendByMail"),
);
-if ($user->rights->holiday->delete) $arrayofmassactions['predelete']=' '.$langs->trans("Delete");
+if ($user->rights->holiday->supprimer) $arrayofmassactions['predelete']=' '.$langs->trans("Delete");
if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
print '