mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-12-06 17:48:25 +01:00
Add town and country as an optionnal column in Partnership list (#31057)
* add town country partnership list * Update partnership_list.php * Update partnership_list.php
This commit is contained in:
@@ -12899,7 +12899,7 @@ function getElementProperties($elementType)
|
|||||||
$classfile = 'mailing';
|
$classfile = 'mailing';
|
||||||
$classname = 'Mailing';
|
$classname = 'Mailing';
|
||||||
$subelement = '';
|
$subelement = '';
|
||||||
} elseif ($elementType == 'member') {
|
} elseif ($elementType == 'member' || $elementType == 'adherent') {
|
||||||
$classpath = 'adherents/class';
|
$classpath = 'adherents/class';
|
||||||
$module = 'adherent';
|
$module = 'adherent';
|
||||||
$subelement = 'adherent';
|
$subelement = 'adherent';
|
||||||
|
|||||||
@@ -95,10 +95,19 @@ if ($managedfor != 'member' && $sortfield == 'd.datefin') {
|
|||||||
$sortfield = '';
|
$sortfield = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add non object fields to fields for list
|
||||||
|
$non_object_fields = array(
|
||||||
|
'town' => array('type' => 'varchar(128)', 'label' => 'Town', 'enabled' => 1, 'position' => 51, 'notnull' => 0, 'visible' => 1, 'alwayseditable' => 1, 'searchall' => 1,),
|
||||||
|
'country' => array('type' => 'integer', 'label' => 'Country', 'enabled' => 1, 'position' => 51, 'notnull' => 0, 'visible' => 1, 'alwayseditable' => 1, 'css' => 'maxwidth500 widthcentpercentminusxx', 'searchall' => 1,)
|
||||||
|
);
|
||||||
|
|
||||||
|
// All fields in list
|
||||||
|
$all_fields_list = array_merge($object->fields, $non_object_fields);
|
||||||
|
|
||||||
// Default sort order (if not yet defined by previous GETPOST)
|
// Default sort order (if not yet defined by previous GETPOST)
|
||||||
if (!$sortfield) {
|
if (!$sortfield) {
|
||||||
reset($object->fields); // Reset is required to avoid key() to return null.
|
reset($all_fields_list); // Reset is required to avoid key() to return null.
|
||||||
$sortfield = "t.".key($object->fields); // Set here default search field. By default 1st field in definition.
|
$sortfield = "t.".key($all_fields_list); // Set here default search field. By default 1st field in definition.
|
||||||
}
|
}
|
||||||
if (!$sortorder) {
|
if (!$sortorder) {
|
||||||
$sortorder = "ASC";
|
$sortorder = "ASC";
|
||||||
@@ -107,7 +116,7 @@ if (!$sortorder) {
|
|||||||
// Initialize array of search criteria
|
// Initialize array of search criteria
|
||||||
$search_all = GETPOST('search_all', 'alphanohtml');
|
$search_all = GETPOST('search_all', 'alphanohtml');
|
||||||
$search = array();
|
$search = array();
|
||||||
foreach ($object->fields as $key => $val) {
|
foreach ($all_fields_list as $key => $val) {
|
||||||
if (GETPOST('search_'.$key, 'alpha') !== '') {
|
if (GETPOST('search_'.$key, 'alpha') !== '') {
|
||||||
$search[$key] = GETPOST('search_'.$key, 'alpha');
|
$search[$key] = GETPOST('search_'.$key, 'alpha');
|
||||||
}
|
}
|
||||||
@@ -124,7 +133,7 @@ if ($filter) {
|
|||||||
|
|
||||||
// List of fields to search into when doing a "search in all"
|
// List of fields to search into when doing a "search in all"
|
||||||
$fieldstosearchall = array();
|
$fieldstosearchall = array();
|
||||||
foreach ($object->fields as $key => $val) {
|
foreach ($non_object_fields as $key => $val) {
|
||||||
if (!empty($val['searchall'])) {
|
if (!empty($val['searchall'])) {
|
||||||
$fieldstosearchall['t.'.$key] = $val['label'];
|
$fieldstosearchall['t.'.$key] = $val['label'];
|
||||||
}
|
}
|
||||||
@@ -132,7 +141,7 @@ foreach ($object->fields as $key => $val) {
|
|||||||
|
|
||||||
// Definition of array of fields for columns
|
// Definition of array of fields for columns
|
||||||
$arrayfields = array();
|
$arrayfields = array();
|
||||||
foreach ($object->fields as $key => $val) {
|
foreach ($all_fields_list as $key => $val) {
|
||||||
// If $val['visible']==0, then we never show the field
|
// If $val['visible']==0, then we never show the field
|
||||||
if (!empty($val['visible'])) {
|
if (!empty($val['visible'])) {
|
||||||
$visible = (int) dol_eval((string) $val['visible'], 1);
|
$visible = (int) dol_eval((string) $val['visible'], 1);
|
||||||
@@ -150,6 +159,7 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php';
|
|||||||
|
|
||||||
$object->fields = dol_sort_array($object->fields, 'position');
|
$object->fields = dol_sort_array($object->fields, 'position');
|
||||||
$arrayfields = dol_sort_array($arrayfields, 'position');
|
$arrayfields = dol_sort_array($arrayfields, 'position');
|
||||||
|
$all_fields_list = dol_sort_array($all_fields_list, 'position');
|
||||||
|
|
||||||
$permissiontoread = $user->hasRight('partnership', 'read');
|
$permissiontoread = $user->hasRight('partnership', 'read');
|
||||||
$permissiontoadd = $user->hasRight('partnership', 'write');
|
$permissiontoadd = $user->hasRight('partnership', 'write');
|
||||||
@@ -197,7 +207,7 @@ if (empty($reshook)) {
|
|||||||
|
|
||||||
// Purge search criteria
|
// Purge search criteria
|
||||||
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers
|
||||||
foreach ($object->fields as $key => $val) {
|
foreach ($all_fields_list as $key => $val) {
|
||||||
$search[$key] = '';
|
$search[$key] = '';
|
||||||
if (preg_match('/^(date|timestamp|datetime)/', $val['type'])) {
|
if (preg_match('/^(date|timestamp|datetime)/', $val['type'])) {
|
||||||
$search[$key.'_dtstart'] = '';
|
$search[$key.'_dtstart'] = '';
|
||||||
@@ -337,6 +347,8 @@ if (isset($extrafields->attributes[$object->table_element]['label']) && is_array
|
|||||||
if ($managedfor == 'member') {
|
if ($managedfor == 'member') {
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."adherent as d on (d.rowid = t.fk_member)";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."adherent as d on (d.rowid = t.fk_member)";
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."adherent_type as dty on (dty.rowid = d.fk_adherent_type)";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."adherent_type as dty on (dty.rowid = d.fk_adherent_type)";
|
||||||
|
} else {
|
||||||
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as d on (d.rowid = t.fk_soc)";
|
||||||
}
|
}
|
||||||
// Add table from hooks
|
// Add table from hooks
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
@@ -387,6 +399,17 @@ foreach ($search as $key => $val) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($key == 'country' && $search[$key] != '') {
|
||||||
|
if ($managedfor == 'member') {
|
||||||
|
$sql .= " AND d.country = '".$db->escape($val)."'";
|
||||||
|
} else {
|
||||||
|
$sql .= " AND d.fk_pays = '".$db->escape($val)."'";
|
||||||
|
}
|
||||||
|
//$sql .= natural_search("d.fk_pays", $val);
|
||||||
|
}
|
||||||
|
if ($key == 'town' && $search[$key] != '') {
|
||||||
|
$sql .= natural_search("d.town", $val);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($managedfor == 'member') {
|
if ($managedfor == 'member') {
|
||||||
@@ -742,7 +765,7 @@ if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
|
|||||||
print $searchpicto;
|
print $searchpicto;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
foreach ($object->fields as $key => $val) {
|
foreach ($all_fields_list as $key => $val) {
|
||||||
$searchkey = empty($search[$key]) ? '' : $search[$key];
|
$searchkey = empty($search[$key]) ? '' : $search[$key];
|
||||||
$cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']);
|
$cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']);
|
||||||
if ($key == 'status') {
|
if ($key == 'status') {
|
||||||
@@ -771,6 +794,8 @@ foreach ($object->fields as $key => $val) {
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
|
||||||
$formadmin = new FormAdmin($db);
|
$formadmin = new FormAdmin($db);
|
||||||
print $formadmin->select_language($search[$key], 'search_lang', 0, null, 1, 0, 0, 'minwidth100imp maxwidth125', 2);
|
print $formadmin->select_language($search[$key], 'search_lang', 0, null, 1, 0, 0, 'minwidth100imp maxwidth125', 2);
|
||||||
|
} elseif ($key == 'country') {
|
||||||
|
print $form->select_country($search[$key], 'search_country', '', 0, 'minwidth100imp maxwidth100');
|
||||||
} else {
|
} else {
|
||||||
print '<input type="text" class="flat maxwidth75" name="search_'.$key.'" value="'.dol_escape_htmltag(isset($search[$key]) ? $search[$key] : '').'">';
|
print '<input type="text" class="flat maxwidth75" name="search_'.$key.'" value="'.dol_escape_htmltag(isset($search[$key]) ? $search[$key] : '').'">';
|
||||||
}
|
}
|
||||||
@@ -810,7 +835,7 @@ if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
|
|||||||
print getTitleFieldOfList(($mode != 'kanban' ? $selectedfields : ''), 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n";
|
print getTitleFieldOfList(($mode != 'kanban' ? $selectedfields : ''), 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n";
|
||||||
$totalarray['nbfield']++; // For the column action
|
$totalarray['nbfield']++; // For the column action
|
||||||
}
|
}
|
||||||
foreach ($object->fields as $key => $val) {
|
foreach ($all_fields_list as $key => $val) {
|
||||||
$cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']);
|
$cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']);
|
||||||
if ($key == 'status') {
|
if ($key == 'status') {
|
||||||
$cssforfield .= ($cssforfield ? ' ' : '').'center';
|
$cssforfield .= ($cssforfield ? ' ' : '').'center';
|
||||||
@@ -888,6 +913,12 @@ while ($i < $imaxinloop) {
|
|||||||
$object->thirdparty = $companyobj;
|
$object->thirdparty = $companyobj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($managedfor == 'member') {
|
||||||
|
if ($obj->fk_member > 0) {
|
||||||
|
$result = $adherent->fetch($obj->fk_member);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($mode == 'kanban') {
|
if ($mode == 'kanban') {
|
||||||
if ($i == 0) {
|
if ($i == 0) {
|
||||||
print '<tr class="trkanban"><td colspan="'.$savnbfield.'">';
|
print '<tr class="trkanban"><td colspan="'.$savnbfield.'">';
|
||||||
@@ -925,7 +956,7 @@ while ($i < $imaxinloop) {
|
|||||||
$totalarray['nbfield']++;
|
$totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach ($object->fields as $key => $val) {
|
foreach ($all_fields_list as $key => $val) {
|
||||||
$cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']);
|
$cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']);
|
||||||
if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) {
|
if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) {
|
||||||
$cssforfield .= ($cssforfield ? ' ' : '').'center';
|
$cssforfield .= ($cssforfield ? ' ' : '').'center';
|
||||||
@@ -952,6 +983,22 @@ while ($i < $imaxinloop) {
|
|||||||
print '>';
|
print '>';
|
||||||
if ($key == 'status') {
|
if ($key == 'status') {
|
||||||
print $object->getLibStatut(5);
|
print $object->getLibStatut(5);
|
||||||
|
} elseif ($key == 'country') {
|
||||||
|
if ($managedfor == 'member') {
|
||||||
|
if (!empty($adherent->country_code)) {
|
||||||
|
print $langs->trans("Country".$adherent->country_code);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!empty($object->thirdparty->country_code)) {
|
||||||
|
print $langs->trans("Country".$object->thirdparty->country_code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} elseif ($key == 'town') {
|
||||||
|
if ($managedfor == 'member') {
|
||||||
|
print $adherent->town;
|
||||||
|
} else {
|
||||||
|
print $object->thirdparty->town;
|
||||||
|
}
|
||||||
} elseif ($key == 'rowid') {
|
} elseif ($key == 'rowid') {
|
||||||
print $object->showOutputField($val, $key, $object->id, '');
|
print $object->showOutputField($val, $key, $object->id, '');
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user