mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-05-20 02:11:31 +00:00
Status- und Herstellerinformationen in Readable Assembly-Exports hinzufügen.
This commit is contained in:
parent
a126a8f7b6
commit
66c905738d
4 changed files with 34 additions and 14 deletions
|
|
@ -237,6 +237,7 @@ class AssemblyPartAggregator
|
||||||
$result = [
|
$result = [
|
||||||
'name' => $assembly->getName(),
|
'name' => $assembly->getName(),
|
||||||
'ipn' => $assembly->getIpn(),
|
'ipn' => $assembly->getIpn(),
|
||||||
|
'status' => $assembly->getStatus() ?? '-',
|
||||||
'quantity' => $quantity,
|
'quantity' => $quantity,
|
||||||
'multiplier' => $depth === 0 ? null : $parentMultiplier,
|
'multiplier' => $depth === 0 ? null : $parentMultiplier,
|
||||||
'parts' => [],
|
'parts' => [],
|
||||||
|
|
@ -249,6 +250,7 @@ class AssemblyPartAggregator
|
||||||
$result['parts'][] = [
|
$result['parts'][] = [
|
||||||
'name' => $bomEntry->getPart()->getName(),
|
'name' => $bomEntry->getPart()->getName(),
|
||||||
'ipn' => $bomEntry->getPart()->getIpn(),
|
'ipn' => $bomEntry->getPart()->getIpn(),
|
||||||
|
'manufacturer' => $bomEntry->getPart()->getManufacturer()?->getName() ?? '-',
|
||||||
'quantity' => $bomEntry->getQuantity(),
|
'quantity' => $bomEntry->getQuantity(),
|
||||||
'effectiveQuantity' => $bomEntry->getQuantity() * $parentMultiplier,
|
'effectiveQuantity' => $bomEntry->getQuantity() * $parentMultiplier,
|
||||||
];
|
];
|
||||||
|
|
@ -262,8 +264,10 @@ class AssemblyPartAggregator
|
||||||
} else {
|
} else {
|
||||||
$result['others'][] = [
|
$result['others'][] = [
|
||||||
'name' => $bomEntry->getName(),
|
'name' => $bomEntry->getName(),
|
||||||
|
'ipn' => '-',
|
||||||
'quantity' => $bomEntry->getQuantity(),
|
'quantity' => $bomEntry->getQuantity(),
|
||||||
'multiplier' => $parentMultiplier,
|
'multiplier' => $parentMultiplier,
|
||||||
|
'effectiveQuantity' => $bomEntry->getQuantity() * $parentMultiplier,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -431,19 +431,20 @@ class EntityExporter
|
||||||
],
|
],
|
||||||
Assembly::class => [
|
Assembly::class => [
|
||||||
'header' => [
|
'header' => [
|
||||||
'Id', 'ParentId', 'Type', 'AssemblyIpn', 'AssemblyNameHierarchical', 'AssemblyName',
|
'Id', 'ParentId', 'Type', 'AssemblyIpn', 'AssemblyStatus', 'AssemblyNameHierarchical', 'AssemblyName',
|
||||||
'AssemblyFullName',
|
'AssemblyFullName',
|
||||||
|
|
||||||
//BOM relevant attributes
|
//BOM relevant attributes
|
||||||
'Quantity', 'PartId', 'PartName', 'Ipn', 'Manufacturer', 'Mpn', 'Name', 'Designator',
|
'Quantity', 'PartId', 'PartName', 'Ipn', 'Manufacturer', 'Mpn', 'Name', 'Designator',
|
||||||
'Description', 'ReferencedAssemblyId', 'ReferencedAssemblyIpn',
|
'Description', 'ReferencedAssemblyId', 'ReferencedAssemblyIpn', 'ReferencedAssemblyStatus',
|
||||||
'ReferencedAssemblyFullName',
|
'ReferencedAssemblyFullName',
|
||||||
],
|
],
|
||||||
'processEntity' => fn($entity, $depth) => [
|
'processEntity' => fn(Assembly $entity, $depth) => [
|
||||||
'Id' => $entity->getId(),
|
'Id' => $entity->getId(),
|
||||||
'ParentId' => $entity->getParent()?->getId() ?? '',
|
'ParentId' => $entity->getParent()?->getId() ?? '',
|
||||||
'Type' => 'assembly',
|
'Type' => 'assembly',
|
||||||
'AssemblyIpn' => $entity->getIpn(),
|
'AssemblyIpn' => $entity->getIpn(),
|
||||||
|
'AssemblyStatus' => $entity->getStatus() ?? '-',
|
||||||
'AssemblyNameHierarchical' => str_repeat('--', $depth) . ' ' . $entity->getName(),
|
'AssemblyNameHierarchical' => str_repeat('--', $depth) . ' ' . $entity->getName(),
|
||||||
'AssemblyName' => $entity->getName(),
|
'AssemblyName' => $entity->getName(),
|
||||||
'AssemblyFullName' => $this->getFullName($entity),
|
'AssemblyFullName' => $this->getFullName($entity),
|
||||||
|
|
@ -460,6 +461,7 @@ class EntityExporter
|
||||||
'Description' => '-',
|
'Description' => '-',
|
||||||
'ReferencedAssemblyId' => '-',
|
'ReferencedAssemblyId' => '-',
|
||||||
'ReferencedAssemblyIpn' => '-',
|
'ReferencedAssemblyIpn' => '-',
|
||||||
|
'ReferencedAssemblyStatus' => '-',
|
||||||
'ReferencedAssemblyFullName' => '-',
|
'ReferencedAssemblyFullName' => '-',
|
||||||
],
|
],
|
||||||
'processBomEntries' => fn($entity, $depth) => $this->processBomEntriesWithAggregatedParts($entity, $depth),
|
'processBomEntries' => fn($entity, $depth) => $this->processBomEntriesWithAggregatedParts($entity, $depth),
|
||||||
|
|
@ -581,6 +583,7 @@ class EntityExporter
|
||||||
'ParentId' => '',
|
'ParentId' => '',
|
||||||
'Type' => 'assembly_bom_entry',
|
'Type' => 'assembly_bom_entry',
|
||||||
'AssemblyIpn' => $assembly->getIpn(),
|
'AssemblyIpn' => $assembly->getIpn(),
|
||||||
|
'AssemblyStatus' => $bomEntry->getReferencedAssembly() ? $assembly->getStatus() : '-',
|
||||||
'AssemblyNameHierarchical' => str_repeat('--', $depth) . '> ' . $assembly->getName(),
|
'AssemblyNameHierarchical' => str_repeat('--', $depth) . '> ' . $assembly->getName(),
|
||||||
'AssemblyName' => $assembly->getName(),
|
'AssemblyName' => $assembly->getName(),
|
||||||
'AssemblyFullName' => $this->getFullName($assembly),
|
'AssemblyFullName' => $this->getFullName($assembly),
|
||||||
|
|
@ -597,6 +600,7 @@ class EntityExporter
|
||||||
'Description' => $bomEntry->getPart()?->getDescription() ?? '-',
|
'Description' => $bomEntry->getPart()?->getDescription() ?? '-',
|
||||||
'ReferencedAssemblyId' => $bomEntry->getReferencedAssembly()?->getId() ?? '-',
|
'ReferencedAssemblyId' => $bomEntry->getReferencedAssembly()?->getId() ?? '-',
|
||||||
'ReferencedAssemblyIpn' => $bomEntry->getReferencedAssembly()?->getIpn() ?? '-',
|
'ReferencedAssemblyIpn' => $bomEntry->getReferencedAssembly()?->getIpn() ?? '-',
|
||||||
|
'ReferencedAssemblyStatus' => $bomEntry->getReferencedAssembly()?->getStatus() ?? '-',
|
||||||
'ReferencedAssemblyFullName' => $this->getFullName($bomEntry->getReferencedAssembly() ?? null),
|
'ReferencedAssemblyFullName' => $this->getFullName($bomEntry->getReferencedAssembly() ?? null),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -615,6 +619,7 @@ class EntityExporter
|
||||||
'ParentId' => '',
|
'ParentId' => '',
|
||||||
'Type' => 'subassembly_part_list',
|
'Type' => 'subassembly_part_list',
|
||||||
'AssemblyIpn' => $partAssembly ? $partAssembly->getIpn() : '',
|
'AssemblyIpn' => $partAssembly ? $partAssembly->getIpn() : '',
|
||||||
|
'AssemblyStatus' => $partAssembly ? $partAssembly->getStatus() : '-',
|
||||||
'AssemblyNameHierarchical' => '',
|
'AssemblyNameHierarchical' => '',
|
||||||
'AssemblyName' => $partAssembly ? $partAssembly->getName() : '',
|
'AssemblyName' => $partAssembly ? $partAssembly->getName() : '',
|
||||||
'AssemblyFullName' => $this->getFullName($partAssembly),
|
'AssemblyFullName' => $this->getFullName($partAssembly),
|
||||||
|
|
@ -624,13 +629,14 @@ class EntityExporter
|
||||||
'PartId' => $partData['part']?->getId(),
|
'PartId' => $partData['part']?->getId(),
|
||||||
'PartName' => $partData['part']?->getName(),
|
'PartName' => $partData['part']?->getName(),
|
||||||
'Ipn' => $partData['part']?->getIpn(),
|
'Ipn' => $partData['part']?->getIpn(),
|
||||||
'Manufacturer' => $partData['part']?->getManufacturer()?->getName(),
|
'Manufacturer' => $partData['part']?->getManufacturer()?->getName() ?? '-',
|
||||||
'Mpn' => $partData['part']?->getManufacturerProductNumber(),
|
'Mpn' => $partData['part']?->getManufacturerProductNumber(),
|
||||||
'Name' => $partData['name'] ?? '',
|
'Name' => $partData['name'] ?? '',
|
||||||
'Designator' => $partData['designator'],
|
'Designator' => $partData['designator'],
|
||||||
'Description' => $partData['part']?->getDescription(),
|
'Description' => $partData['part']?->getDescription(),
|
||||||
'ReferencedAssemblyId' => '-',
|
'ReferencedAssemblyId' => '-',
|
||||||
'ReferencedAssemblyIpn' => '-',
|
'ReferencedAssemblyIpn' => '-',
|
||||||
|
'ReferencedAssemblyStatus' => '-',
|
||||||
'ReferencedAssemblyFullName' => '-',
|
'ReferencedAssemblyFullName' => '-',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th>Assembly Name</th>
|
<th>Assembly Name</th>
|
||||||
<th>IPN</th>
|
<th>IPN</th>
|
||||||
|
<th>Status</th>
|
||||||
<th>Section</th>
|
<th>Section</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
@ -36,6 +37,7 @@
|
||||||
<td>{{ loop.index }}</td>
|
<td>{{ loop.index }}</td>
|
||||||
<td>Assembly: {{ assembly.name }}</td>
|
<td>Assembly: {{ assembly.name }}</td>
|
||||||
<td>{% if assembly.ipn != '' %}{{ assembly.ipn }}{% else %}-{% endif %}</td>
|
<td>{% if assembly.ipn != '' %}{{ assembly.ipn }}{% else %}-{% endif %}</td>
|
||||||
|
<td>{{ assembly.status|default('-') }}</td>
|
||||||
<td>{{ loop.index + 1 }}</td>
|
<td>{{ loop.index + 1 }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
@ -45,11 +47,12 @@
|
||||||
|
|
||||||
<!-- Assembly Details -->
|
<!-- Assembly Details -->
|
||||||
{% for assembly in assemblies %}
|
{% for assembly in assemblies %}
|
||||||
<div class="assembly-header">Assembly: {{ assembly.name }}</div>
|
<div class="assembly-header">Assembly: {{ assembly.name }} [IPN: {{ assembly.ipn|default('-') }}, Status: {{ assembly.status|default('-') }}]</div>
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Name</th>
|
<th>Name</th>
|
||||||
|
<th>Manufacturer</th>
|
||||||
<th>IPN</th>
|
<th>IPN</th>
|
||||||
<th>Quantity</th>
|
<th>Quantity</th>
|
||||||
<th>Multiplier</th>
|
<th>Multiplier</th>
|
||||||
|
|
@ -60,6 +63,7 @@
|
||||||
{% for part in assembly.parts %}
|
{% for part in assembly.parts %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ part.name }}</td>
|
<td>{{ part.name }}</td>
|
||||||
|
<td>{{ part.manufacturer }}</td>
|
||||||
<td>{{ part.ipn }}</td>
|
<td>{{ part.ipn }}</td>
|
||||||
<td>{{ part.quantity }}</td>
|
<td>{{ part.quantity }}</td>
|
||||||
<td>{% if assembly.multiplier %}{{ assembly.multiplier }}{% else %}-{% endif %}</td>
|
<td>{% if assembly.multiplier %}{{ assembly.multiplier }}{% else %}-{% endif %}</td>
|
||||||
|
|
@ -69,19 +73,21 @@
|
||||||
{% for other in assembly.others %}
|
{% for other in assembly.others %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ other.name }}</td>
|
<td>{{ other.name }}</td>
|
||||||
<td>{{ other.ipn }}</td>
|
<td>-</td>
|
||||||
|
<td>{{ other.ipn|default('-') }}</td>
|
||||||
<td>{{ other.quantity }}</td>
|
<td>{{ other.quantity }}</td>
|
||||||
<td>{{ other.multiplier }}</td>
|
<td>{{ other.multiplier }}</td>
|
||||||
<td>{{ other.effectiveQuantity }}</td>
|
<td>{{ other.effectiveQuantity|default('-') }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% for referencedAssembly in assembly.referencedAssemblies %}
|
{% for referencedAssembly in assembly.referencedAssemblies %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ referencedAssembly.name }}</td>
|
<td>{{ referencedAssembly.name }}</td>
|
||||||
<td>{{ referencedAssembly.ipn }}</td>
|
<td>-</td>
|
||||||
<td>{{ referencedAssembly.quantity }}</td>
|
<td>{{ referencedAssembly.ipn|default('-') }}</td>
|
||||||
<td></td>
|
|
||||||
<td>{{ referencedAssembly.quantity }}</td>
|
<td>{{ referencedAssembly.quantity }}</td>
|
||||||
|
<td>{{ referencedAssembly.multiplier|default('-') }}</td>
|
||||||
|
<td>{{ (referencedAssembly.quantity * (referencedAssembly.multiplier|default(1)))|default(referencedAssembly.quantity) }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,12 @@
|
||||||
<div class="referenced-assembly-table">
|
<div class="referenced-assembly-table">
|
||||||
<div class="assembly-header">Referenced Assembly: {{ assembly.name }} [IPN: {% if assembly.ipn != '' %}{{ assembly.ipn }}{% else %}-{% endif %}, quantity: {{ assembly.quantity }}]</div>
|
<div class="assembly-header">Referenced Assembly: {{ assembly.name }} [IPN: {{ assembly.ipn|default('-') }}, Status: {{ assembly.status|default('-') }}, quantity: {{ assembly.quantity }}]</div>
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Type</th>
|
<th>Type</th>
|
||||||
<th>Name</th>
|
<th>Name</th>
|
||||||
|
<th>Manufacturer</th>
|
||||||
<th>IPN</th>
|
<th>IPN</th>
|
||||||
<th>Quantity</th>
|
<th>Quantity</th>
|
||||||
<th>Multiplier</th>
|
<th>Multiplier</th>
|
||||||
|
|
@ -17,6 +18,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>Part</td>
|
<td>Part</td>
|
||||||
<td>{{ part.name }}</td>
|
<td>{{ part.name }}</td>
|
||||||
|
<td>{{ part.manufacturer }}</td>
|
||||||
<td>{{ part.ipn }}</td>
|
<td>{{ part.ipn }}</td>
|
||||||
<td>{{ part.quantity }}</td>
|
<td>{{ part.quantity }}</td>
|
||||||
<td>{% if assembly.multiplier %}{{ assembly.multiplier }}{% else %}-{% endif %}</td>
|
<td>{% if assembly.multiplier %}{{ assembly.multiplier }}{% else %}-{% endif %}</td>
|
||||||
|
|
@ -29,9 +31,10 @@
|
||||||
<td>Other</td>
|
<td>Other</td>
|
||||||
<td>{{ other.name }}</td>
|
<td>{{ other.name }}</td>
|
||||||
<td>-</td>
|
<td>-</td>
|
||||||
|
<td>{{ other.ipn|default('-') }}</td>
|
||||||
<td>{{ other.quantity }}</td>
|
<td>{{ other.quantity }}</td>
|
||||||
<td>{{ other.multiplier }}</td>
|
<td>{{ other.multiplier }}</td>
|
||||||
<td>-</td>
|
<td>{{ other.effectiveQuantity|default('-') }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
|
@ -40,9 +43,10 @@
|
||||||
<td>Referenced assembly</td>
|
<td>Referenced assembly</td>
|
||||||
<td>{{ referencedAssembly.name }}</td>
|
<td>{{ referencedAssembly.name }}</td>
|
||||||
<td>-</td>
|
<td>-</td>
|
||||||
|
<td>{{ referencedAssembly.ipn|default('-') }}</td>
|
||||||
<td>{{ referencedAssembly.quantity }}</td>
|
<td>{{ referencedAssembly.quantity }}</td>
|
||||||
<td></td>
|
<td>{{ referencedAssembly.multiplier|default('-') }}</td>
|
||||||
<td>{{ referencedAssembly.multiplier }}</td>
|
<td>{{ (referencedAssembly.quantity * (referencedAssembly.multiplier|default(1)))|default(referencedAssembly.quantity) }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue