*
* 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
@@ -61,6 +62,7 @@ print '| '.$langs->trans("Unique").' | ';
print ''.$langs->trans("Required").' | ';
print ''.$langs->trans("AlwaysEditable").' | ';
print ''.$form->textwithpicto($langs->trans("Visible"), $langs->trans("VisibleDesc")).' | ';
+print ''.$form->textwithpicto($langs->trans("Totalizable"), $langs->trans("TotalizableDesc")).' | ';
if ($conf->multicompany->enabled) {
print ''.$langs->trans("Entities").' | ';
}
@@ -88,6 +90,7 @@ if (is_array($extrafields->attributes[$elementtype]['type']) && count($extrafiel
print ''.yn($extrafields->attributes[$elementtype]['required'][$key])." | \n";
print ''.yn($extrafields->attributes[$elementtype]['alwayseditable'][$key])." | \n";
print ''.$extrafields->attributes[$elementtype]['list'][$key]." | \n";
+ print ''.yn($extrafields->attributes[$elementtype]['totalizable'][$key])." | \n";
if (! empty($conf->multicompany->enabled)) {
print ''.($extrafields->attributes[$elementtype]['entityid'][$key]==0?$langs->trans("All"):$extrafields->attributes[$elementtype]['entitylabel'][$key]).' | ';
}
diff --git a/htdocs/core/tpl/extrafields_list_print_fields.tpl.php b/htdocs/core/tpl/extrafields_list_print_fields.tpl.php
index e59f50501ab..b506bda0793 100644
--- a/htdocs/core/tpl/extrafields_list_print_fields.tpl.php
+++ b/htdocs/core/tpl/extrafields_list_print_fields.tpl.php
@@ -40,6 +40,14 @@ if (! empty($extrafieldsobjectkey)) // $extrafieldsobject is the $object->table_
print $extrafields->showOutputField($key, $value, '', $extrafieldsobjectkey);
print '';
if (! $i) $totalarray['nbfield']++;
+
+ if ($extrafields->attributes[$extrafieldsobjectkey]['totalizable'][$key]) {
+ if (! $i) {
+ // we keep position for the first line
+ $totalarray['totalizable'][$key]['pos'] = $totalarray['nbfield'];
+ }
+ $totalarray['totalizable'][$key]['total'] += $obj->$tmpkey;
+ }
if (! empty($val['isameasure']))
{
if (! $i) $totalarray['pos'][$totalarray['nbfield']]='ef.'.$tmpkey;
diff --git a/htdocs/install/mysql/migration/8.0.0-9.0.0.sql b/htdocs/install/mysql/migration/8.0.0-9.0.0.sql
index 87ada98390b..82d58c40192 100644
--- a/htdocs/install/mysql/migration/8.0.0-9.0.0.sql
+++ b/htdocs/install/mysql/migration/8.0.0-9.0.0.sql
@@ -30,6 +30,7 @@
ALTER TABLE llx_extrafields ADD COLUMN help text NULL;
+ALTER TABLE llx_extrafields ADD COLUMN totalizable boolean DEFAULT FALSE after list;
ALTER TABLE llx_user ADD COLUMN dateemploymentend date after dateemployment;
diff --git a/htdocs/install/mysql/tables/llx_extrafields.sql b/htdocs/install/mysql/tables/llx_extrafields.sql
index 1a85fc28a5a..9f37383957a 100644
--- a/htdocs/install/mysql/tables/llx_extrafields.sql
+++ b/htdocs/install/mysql/tables/llx_extrafields.sql
@@ -36,6 +36,7 @@ create table llx_extrafields
alwayseditable integer DEFAULT 0, -- 1 if field can be edited whatever is element status
param text, -- extra parameters to define possible values of field
list varchar(255) DEFAULT '1', -- visibility of field. 0=Never visible, 1=Visible on list and forms, 2=Visible on list only. Using a negative value means field is not shown by default on list but can be selected for viewing
+ totalizable boolean DEFAULT FALSE, -- is extrafield totalizable on list
langs varchar(64), -- example: fileofmymodule@mymodule
help text, -- to store help tooltip
fk_user_author integer, -- user making creation
diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang
index 72725d3d634..8b47c46cef9 100644
--- a/htdocs/langs/en_US/main.lang
+++ b/htdocs/langs/en_US/main.lang
@@ -733,6 +733,8 @@ Result=Result
ToTest=Test
ValidateBefore=Card must be validated before using this feature
Visibility=Visibility
+Totalizable=Totalizable
+TotalizableDesc=This field is totalizable in list
Private=Private
Hidden=Hidden
Resources=Resources