diff --git a/inventory_manager.php b/inventory_manager.php
index 095ce2f..2c77b57 100644
--- a/inventory_manager.php
+++ b/inventory_manager.php
@@ -391,19 +391,24 @@
}
// read all keeper
- $sql = 'SELECT DISTINCT imd_value, CONCAT_WS(\', \', last_name.usd_value, first_name.usd_value) FROM '.TBL_INVENTORY_MANAGER_DATA.'
- INNER JOIN '.TBL_INVENTORY_MANAGER_FIELDS.'
- ON imf_id = imd_imf_id
- LEFT JOIN '. TBL_USER_DATA. ' as last_name
- ON last_name.usd_usr_id = imd_value
- AND last_name.usd_usf_id = '. $gProfileFields->getProperty('LAST_NAME', 'usf_id'). '
- LEFT JOIN '. TBL_USER_DATA. ' as first_name
- ON first_name.usd_usr_id = imd_value
- AND first_name.usd_usf_id = '. $gProfileFields->getProperty('FIRST_NAME', 'usf_id'). '
- WHERE (imf_org_id = '. $gCurrentOrgId .'
- OR imf_org_id IS NULL)
- AND imf_name_intern = \'KEEPER\'
- ORDER BY CONCAT_WS(\', \', last_name.usd_value, first_name.usd_value) ASC;';
+ $sql = 'SELECT DISTINCT imd_value,
+ CASE
+ WHEN imd_value = -1 THEN \'n/a\'
+ ELSE CONCAT_WS(\', \', last_name.usd_value, first_name.usd_value)
+ END as keeper_name
+ FROM '.TBL_INVENTORY_MANAGER_DATA.'
+ INNER JOIN '.TBL_INVENTORY_MANAGER_FIELDS.'
+ ON imf_id = imd_imf_id
+ LEFT JOIN '. TBL_USER_DATA. ' as last_name
+ ON last_name.usd_usr_id = imd_value
+ AND last_name.usd_usf_id = '. $gProfileFields->getProperty('LAST_NAME', 'usf_id'). '
+ LEFT JOIN '. TBL_USER_DATA. ' as first_name
+ ON first_name.usd_usr_id = imd_value
+ AND first_name.usd_usf_id = '. $gProfileFields->getProperty('FIRST_NAME', 'usf_id'). '
+ WHERE (imf_org_id = '. $gCurrentOrgId .'
+ OR imf_org_id IS NULL)
+ AND imf_name_intern = \'KEEPER\'
+ ORDER BY keeper_name ASC;';
$form->addSelectBoxFromSql('filter_keeper',$selectBoxKeeperLabel, $gDb, $sql, array('defaultValue' => $getFilterKeeper , 'showContextDependentFirstEntry' => true));
$form->addCheckbox('show_all', $gL10n->get('PLG_INVENTORY_MANAGER_SHOW_ALL_ITEMS'), $getShowAll, array('helpTextIdLabel' => 'PLG_INVENTORY_MANAGER_SHOW_ALL_DESC'));
@@ -457,23 +462,16 @@
break;
}
- if ($getMode == 'csv' && $columnNumber === 1) {
- $csvStr .= $valueQuotes . $gL10n->get('SYS_ABR_NO') . $valueQuotes;
- }
-
if ($getMode == 'pdf' && $columnNumber === 1) {
$arrValidColumns[] = $gL10n->get('SYS_ABR_NO');
}
- if ($getMode == 'xlsx' || $getMode == "ods" && $columnNumber === 1) {
+ if ($getMode == 'csv' || $getMode == "ods" || $getMode == 'xlsx' && $columnNumber === 1) {
$header[$gL10n->get('SYS_ABR_NO')] = 'string';
}
switch ($getMode) {
case 'csv':
- $csvStr .= $separator . $valueQuotes . $columnHeader . $valueQuotes;
- break;
-
case "ods":
case 'xlsx':
$header[$columnHeader] = 'string';
@@ -500,10 +498,7 @@
}
}
-if ($getMode == 'csv') {
- $csvStr .= "\n";
-}
-elseif ($getMode == 'html' || $getMode == 'print') {
+if ($getMode == 'html' || $getMode == 'print') {
$table->setColumnAlignByArray($columnAlign);
$table->addRowHeadingByArray($columnValues);
}
@@ -522,7 +517,6 @@
$listRowNumber = 1;
foreach ($items->items as $item) {
- $tmp_csv = '';
$items->readItemData($item['imi_id'], $gCurrentOrgId);
$columnValues = array();
$strikethrough = $item['imi_former'];
@@ -538,7 +532,6 @@
if ($columnNumber === 1) {
$columnValues[] = $listRowNumber;
- $tmp_csv .= $valueQuotes . $listRowNumber . $valueQuotes;
}
$content = $items->getValue($imfNameIntern, 'database');
@@ -546,7 +539,8 @@
if ($imfNameIntern == 'KEEPER' && strlen($content) > 0) {
$found = $user->readDataById($content);
if (!$found) {
- $content = $gL10n->get('SYS_NO_USER_FOUND');
+ $orgName = '"' . $gCurrentOrganization->getValue('org_longname'). '"';
+ $content = $gL10n->get('SYS_NOT_MEMBER_OF_ORGANIZATION',array($orgName));
}
else {
if ($getMode == 'html') {
@@ -600,18 +594,10 @@
$content = $items->getHtmlValue($imfNameIntern, $content);
}
elseif (in_array($items->getProperty($imfNameIntern, 'imf_type'), array('DROPDOWN', 'RADIO_BUTTON'))) {
- $content = ($getMode == 'csv') ?
- $items->getProperty($imfNameIntern, 'imf_value_list', 'text')[$content] :
- $items->getHtmlValue($imfNameIntern, $content);
- }
-
- if ($getMode == 'csv') {
- $tmp_csv .= $separator . $valueQuotes . $content . $valueQuotes;
- }
- else {
- $columnValues[] = ($strikethrough && $getMode != 'xlsx' && $getMode != 'ods') ? '' . $content . '' : $content;
+ $content = $items->getHtmlValue($imfNameIntern, $content);
}
+ $columnValues[] = ($strikethrough && $getMode != 'csv' && $getMode != 'ods' && $getMode != 'xlsx') ? '' . $content . '' : $content;
$columnNumber++;
}
@@ -680,9 +666,6 @@
if ($showRow) {
switch ($getMode) {
case 'csv':
- $csvStr .= $tmp_csv . "\n";
- break;
-
case 'ods':
case 'xlsx':
$rows[] = $columnValues;
@@ -709,22 +692,6 @@
}
switch ($getMode) {
- case 'csv':
- header('Content-Type: text/csv; charset=' . $charset);
- header('Content-Disposition: attachment; filename="' . $filename . '"');
-
- $spreadsheet = new Spreadsheet();
- $sheet = $spreadsheet->getActiveSheet();
- $sheet->fromArray(explode("\n", $csvStr), NULL, 'A1');
-
- $writer = new Csv($spreadsheet);
- $writer->setDelimiter($separator);
- $writer->setEnclosure($valueQuotes);
- $writer->setSheetIndex(0);
-
- $writer->save('php://output');
- break;
-
case 'pdf':
$pdf->writeHTML($table->getHtmlTable(), true, false, true);
$file = ADMIDIO_PATH . FOLDER_DATA . '/temp/' . $filename;
@@ -740,10 +707,22 @@
}
break;
+ case 'csv':
case 'ods':
case 'xlsx':
- $contentType = ($getMode == 'xlsx') ? "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" : "application/vnd.oasis.opendocument.spreadsheet";
- $writerClass = ($getMode == 'xlsx') ? Xlsx::class : Ods::class;
+ $contentType = match ($getMode) {
+ 'csv' => 'text/csv; charset=' . $charset,
+ 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
+ 'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
+ default => throw new InvalidArgumentException('Invalid mode'),
+ };
+
+ $writerClass = match ($getMode) {
+ 'csv' => Csv::class,
+ 'xlsx' => Xlsx::class,
+ 'ods' => Ods::class,
+ default => throw new InvalidArgumentException('Invalid mode'),
+ };
header('Content-disposition: attachment; filename="' . $filename . '"');
header("Content-Type: $contentType");
@@ -764,14 +743,16 @@
$sheet->fromArray(array_keys($header), NULL, 'A1');
$sheet->fromArray($rows, NULL, 'A2');
- foreach ($strikethroughs as $index => $strikethrough) {
- if ($strikethrough) {
- $sheet->getStyle('A' . ($index + 2) . ':' . $sheet->getHighestColumn() . ($index + 2))
- ->getFont()->setStrikethrough(true);
+ if (!$getMode == 'csv') {
+ foreach ($strikethroughs as $index => $strikethrough) {
+ if ($strikethrough) {
+ $sheet->getStyle('A' . ($index + 2) . ':' . $sheet->getHighestColumn() . ($index + 2))
+ ->getFont()->setStrikethrough(true);
+ }
}
- }
- formatSpreadsheet($spreadsheet, $rows, true);
+ formatSpreadsheet($spreadsheet, $rows, true);
+ }
$writer = new $writerClass($spreadsheet);
$writer->save('php://output');
diff --git a/items/items_history.php b/items/items_history.php
index 627099f..7f5bcf1 100644
--- a/items/items_history.php
+++ b/items/items_history.php
@@ -121,7 +121,8 @@
$columnValues[] = ''.$user->getValue('LAST_NAME').', '.$user->getValue('FIRST_NAME').'';
}
else {
- $columnValues[] = $gL10n->get('SYS_NO_USER_FOUND');
+ $orgName = '"' . $gCurrentOrganization->getValue('org_longname'). '"';
+ $columnValues[] = $gL10n->get('SYS_NOT_MEMBER_OF_ORGANIZATION',array($orgName));
}
}
else {
@@ -145,7 +146,8 @@
$columnValues[] = ''.$user->getValue('LAST_NAME').', '.$user->getValue('FIRST_NAME').'';
}
else {
- $columnValues[] = $gL10n->get('SYS_NO_USER_FOUND');
+ $orgName = '"' . $gCurrentOrganization->getValue('org_longname'). '"';
+ $columnValues[] = $gL10n->get('SYS_NOT_MEMBER_OF_ORGANIZATION',array($orgName));
}
}
else {
diff --git a/languages/de-DE.xml b/languages/de-DE.xml
index f8aed5e..0cfe72b 100644
--- a/languages/de-DE.xml
+++ b/languages/de-DE.xml
@@ -2,7 +2,7 @@
Zugriffsberechtigung für Plugin-Einstellungen
Hier können Sie, zusätzlich zur Rolle "Administrator", weitere Rollen für den Zugriff auf auf die Plugin-Einstellungen berechtigen.
- Editierberichtigung für den Verwalter
+ Editierberechtigung für den Verwalter
Hier können Sie die Bearbeitung von spezifischen Eigenschaftsfelden eines Gegenstandes durch den Verwalter zulassen.
editierbare Felder durch den Verwalter
Hier können Sie die spezifischen Eigenschaftsfelder festlegen, die durch den Verwalter des Gegenstandes editiert werden dürfen.
@@ -106,7 +106,7 @@
Name des Plugins
Version
Einstellungen für die Profilansicht
- In der Profilansicht eines Mitglieds können ausgegebene Gegenstände angezeigt werden. Standardmäßig wird nur der Gegenstandsname angezeigt. Hier können Sie, zusätzlich zum Gegenstandsnamen, ein weiteres Eigenschaftsfeld auswählen und anzeigen lassen.
+ In der Profilansicht eines Mitglieds können ausgegebene Gegenstände angezeigt werden. Standardmäßig wird nur der Gegenstandsname angezeigt. Hier können Sie, zusätzlich zum Gegenstandsnamen, weitere Eigenschaftsfelder auswählen und anzeigen lassen.
Damit in der Profilansicht Gegenstände angezeigt werden, müssen Sie folgende Zeile in die profile.php einfügen: "require_once(ADMIDIO_PATH . FOLDER_PLUGINS .'/InventoryManager/inventory_manager_profile_addin.php');".\n\nWeitere Informationen hierzu finden Sie in der #VAR1#.
Bei gesetzter Einstellung werden neben den aktuellen Gegenständen dieser Organisation auch ausgesonderte Gegenstände angezeigt.
Alle anzeigen
diff --git a/languages/de.xml b/languages/de.xml
index 0524493..74990b3 100644
--- a/languages/de.xml
+++ b/languages/de.xml
@@ -2,7 +2,7 @@
Zugriffsberechtigung für Plugin-Einstellungen
Hier kannst du, zusätzlich zur Rolle "Administrator", weitere Rollen für den Zugriff auf die Plugin-Einstellungen berechtigen.
- Editierberichtigung für den Verwalter
+ Editierberechtigung für den Verwalter
Hier kannst du die Bearbeitung von spezifischen Eigenschaftsfelden eines Gegenstandes durch den Verwalter zulassen.
editierbare Felder durch den Verwalter
Hier kannst du die spezifischen Eigenschaftsfelder festlegen, die durch den Verwalter des Gegenstandes editiert werden dürfen.
@@ -106,7 +106,7 @@
Name des Plugins
Version
Einstellungen für die Profilansicht
- In der Profilansicht eines Mitglieds können ausgegebene Gegenstände angezeigt werden. Standardmäßig wird nur der Gegenstandsname angezeigt. Hier kannst du, zusätzlich zum Gegenstandsnamen, ein weiteres Eigenschaftsfeld auswählen und anzeigen lassen.
+ In der Profilansicht eines Mitglieds können ausgegebene Gegenstände angezeigt werden. Standardmäßig wird nur der Gegenstandsname angezeigt. Hier kannst du, zusätzlich zum Gegenstandsnamen, weitere Eigenschaftsfelder auswählen und anzeigen lassen.
Damit in der Profilansicht Gegenstände angezeigt werden, musst du folgende Zeile in die profile.php einfügen: "require_once(ADMIDIO_PATH . FOLDER_PLUGINS .'/InventoryManager/inventory_manager_profile_addin.php');".\n\nWeitere Informationen hierzu findest du in der #VAR1#.
Bei gesetzter Einstellung werden neben den aktuellen Gegenständen dieser Organisation auch ausgesonderte Gegenstände angezeigt.
Alle anzeigen
diff --git a/languages/en.xml b/languages/en.xml
index 62428d7..c3c610a 100644
--- a/languages/en.xml
+++ b/languages/en.xml
@@ -106,7 +106,7 @@
Plug-in name
Version
Profile view settings
- Issued items can be viewed in a member's profile view. By default, only the item name is displayed. In addition to the item name, another item field can be selected and displayed here.
+ Issued items can be viewed in a member's profile view. By default, only the item name is displayed. In addition to the item name, other item fields can be selected and displayed here.
In order for items to be displayed in the profile view, the following line must be added to profile.php: "require_once(ADMIDIO_PATH . FOLDER_PLUGINS .'/InventoryManager/inventory_manager_profile_addin.php');".\n\nFurther information can be found on the #VAR1#.
If this setting is enabled, former items of this organization will also be displayed in addition to the current items.
Display all
diff --git a/languages/fr.xml b/languages/fr.xml
index c7f6d07..26ba0a5 100644
--- a/languages/fr.xml
+++ b/languages/fr.xml
@@ -106,7 +106,7 @@
Nom du plug-in
Version
Paramètres d'affichage du profil
- Les objets émises peuvent être consultées dans la vue du profil d'un membre. Par défaut, seul le nom de l'objet est affiché. Outre le nom de l'objet, un autre champ objet peut être sélectionné et affiché ici.
+ Les objets émises peuvent être consultées dans la vue du profil d'un membre. Par défaut, seul le nom de l'objet est affiché. Outre le nom de l'objet, autre champ objets peut être sélectionné et affiché ici.
Pour que les objets soient affichées dans la vue de profil, la ligne suivante doit être ajoutée à profile.php: "require_once(ADMIDIO_PATH . FOLDER_PLUGINS .'/InventoryManager/inventory_manager_profile_addin.php');".\n\nDe plus amples informations peuvent être trouvées dans le #VAR1#.
Si cette option est activée, les objets retirés de cette organisation seront également affichés en plus des objets actuels.
Afficher tout