mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-01-13 05:39:33 +00:00
BOMImporter und AssemblyBomEntriesDataTable: Mountnames hinzugefügt
Die Verarbeitung der Designators im BOMImporter wurde ergänzt, um Mountnames zu setzen. Zudem wurden neue Spalten wie Kategorie, Footprint, Hersteller und Mountnames in der AssemblyBomEntriesDataTable hinzugefügt. Dies verbessert die Darstellung und Handhabung von Bauteildaten in der Stücklisten-Ansicht.
This commit is contained in:
parent
0c297244fa
commit
03d8166f2b
2 changed files with 58 additions and 0 deletions
|
|
@ -22,6 +22,7 @@ declare(strict_types=1);
|
||||||
*/
|
*/
|
||||||
namespace App\DataTables;
|
namespace App\DataTables;
|
||||||
|
|
||||||
|
use App\DataTables\Column\EntityColumn;
|
||||||
use App\DataTables\Column\LocaleDateTimeColumn;
|
use App\DataTables\Column\LocaleDateTimeColumn;
|
||||||
use App\DataTables\Column\MarkdownColumn;
|
use App\DataTables\Column\MarkdownColumn;
|
||||||
use App\DataTables\Helpers\AssemblyDataTableHelper;
|
use App\DataTables\Helpers\AssemblyDataTableHelper;
|
||||||
|
|
@ -146,6 +147,54 @@ class AssemblyBomEntriesDataTable implements DataTableTypeInterface
|
||||||
return $context->getComment();
|
return $context->getComment();
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
|
->add('category', EntityColumn::class, [
|
||||||
|
'label' => $this->translator->trans('part.table.category'),
|
||||||
|
'property' => 'part.category',
|
||||||
|
'orderField' => 'NATSORT(category.name)',
|
||||||
|
])
|
||||||
|
->add('footprint', EntityColumn::class, [
|
||||||
|
'property' => 'part.footprint',
|
||||||
|
'label' => $this->translator->trans('part.table.footprint'),
|
||||||
|
'orderField' => 'NATSORT(footprint.name)',
|
||||||
|
])
|
||||||
|
->add('manufacturer', EntityColumn::class, [
|
||||||
|
'property' => 'part.manufacturer',
|
||||||
|
'label' => $this->translator->trans('part.table.manufacturer'),
|
||||||
|
'orderField' => 'NATSORT(manufacturer.name)',
|
||||||
|
])
|
||||||
|
->add('mountnames', TextColumn::class, [
|
||||||
|
'label' => 'assembly.bom.mountnames',
|
||||||
|
'render' => function ($value, AssemblyBOMEntry $context) {
|
||||||
|
$html = '';
|
||||||
|
|
||||||
|
foreach (explode(',', $context->getMountnames()) as $mountname) {
|
||||||
|
$html .= sprintf('<span class="badge badge-secondary bg-secondary">%s</span> ', htmlspecialchars($mountname));
|
||||||
|
}
|
||||||
|
return $html;
|
||||||
|
},
|
||||||
|
])
|
||||||
|
->add('instockAmount', TextColumn::class, [
|
||||||
|
'label' => 'assembly.bom.instockAmount',
|
||||||
|
'visible' => false,
|
||||||
|
'render' => function ($value, AssemblyBOMEntry $context) {
|
||||||
|
if ($context->getPart() !== null) {
|
||||||
|
return $this->partDataTableHelper->renderAmount($context->getPart());
|
||||||
|
}
|
||||||
|
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
])
|
||||||
|
->add('storageLocations', TextColumn::class, [
|
||||||
|
'label' => 'part.table.storeLocations',
|
||||||
|
'visible' => false,
|
||||||
|
'render' => function ($value, AssemblyBOMEntry $context) {
|
||||||
|
if ($context->getPart() !== null) {
|
||||||
|
return $this->partDataTableHelper->renderStorageLocations($context->getPart());
|
||||||
|
}
|
||||||
|
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
])
|
||||||
->add('addedDate', LocaleDateTimeColumn::class, [
|
->add('addedDate', LocaleDateTimeColumn::class, [
|
||||||
'label' => $this->translator->trans('part.table.addedDate'),
|
'label' => $this->translator->trans('part.table.addedDate'),
|
||||||
])
|
])
|
||||||
|
|
|
||||||
|
|
@ -563,6 +563,11 @@ class BOMImporter
|
||||||
$this->processPart($importObject, $entry, $result, $key, self::IMPORT_TYPE_CSV);
|
$this->processPart($importObject, $entry, $result, $key, self::IMPORT_TYPE_CSV);
|
||||||
} else {
|
} else {
|
||||||
$bomEntry = $this->getOrCreateBomEntry($importObject, $entry['name'] ?? null);
|
$bomEntry = $this->getOrCreateBomEntry($importObject, $entry['name'] ?? null);
|
||||||
|
|
||||||
|
if (isset($entry['designator'])) {
|
||||||
|
$bomEntry->setMountnames(trim($entry['designator']) === '' ? '' : trim($entry['designator']));
|
||||||
|
}
|
||||||
|
|
||||||
$bomEntry->setQuantity((float) $entry['quantity'] ?? 0);
|
$bomEntry->setQuantity((float) $entry['quantity'] ?? 0);
|
||||||
|
|
||||||
$result->addBomEntry($bomEntry);
|
$result->addBomEntry($bomEntry);
|
||||||
|
|
@ -851,6 +856,10 @@ class BOMImporter
|
||||||
$bomEntry->setName(null);
|
$bomEntry->setName(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isset($entry['designator'])) {
|
||||||
|
$bomEntry->setMountnames(trim($entry['designator']) === '' ? '' : trim($entry['designator']));
|
||||||
|
}
|
||||||
|
|
||||||
$bomEntry->setPart($part);
|
$bomEntry->setPart($part);
|
||||||
|
|
||||||
$result->addBomEntry($bomEntry);
|
$result->addBomEntry($bomEntry);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue