diff --git a/src/Helpers/Assemblies/AssemblyPartAggregator.php b/src/Helpers/Assemblies/AssemblyPartAggregator.php
index 46495935..ecf336f4 100644
--- a/src/Helpers/Assemblies/AssemblyPartAggregator.php
+++ b/src/Helpers/Assemblies/AssemblyPartAggregator.php
@@ -237,6 +237,7 @@ class AssemblyPartAggregator
$result = [
'name' => $assembly->getName(),
'ipn' => $assembly->getIpn(),
+ 'status' => $assembly->getStatus() ?? '-',
'quantity' => $quantity,
'multiplier' => $depth === 0 ? null : $parentMultiplier,
'parts' => [],
@@ -249,6 +250,7 @@ class AssemblyPartAggregator
$result['parts'][] = [
'name' => $bomEntry->getPart()->getName(),
'ipn' => $bomEntry->getPart()->getIpn(),
+ 'manufacturer' => $bomEntry->getPart()->getManufacturer()?->getName() ?? '-',
'quantity' => $bomEntry->getQuantity(),
'effectiveQuantity' => $bomEntry->getQuantity() * $parentMultiplier,
];
@@ -262,8 +264,10 @@ class AssemblyPartAggregator
} else {
$result['others'][] = [
'name' => $bomEntry->getName(),
+ 'ipn' => '-',
'quantity' => $bomEntry->getQuantity(),
'multiplier' => $parentMultiplier,
+ 'effectiveQuantity' => $bomEntry->getQuantity() * $parentMultiplier,
];
}
}
diff --git a/src/Services/ImportExportSystem/EntityExporter.php b/src/Services/ImportExportSystem/EntityExporter.php
index 28022a49..ef7db978 100644
--- a/src/Services/ImportExportSystem/EntityExporter.php
+++ b/src/Services/ImportExportSystem/EntityExporter.php
@@ -431,19 +431,20 @@ class EntityExporter
],
Assembly::class => [
'header' => [
- 'Id', 'ParentId', 'Type', 'AssemblyIpn', 'AssemblyNameHierarchical', 'AssemblyName',
+ 'Id', 'ParentId', 'Type', 'AssemblyIpn', 'AssemblyStatus', 'AssemblyNameHierarchical', 'AssemblyName',
'AssemblyFullName',
//BOM relevant attributes
'Quantity', 'PartId', 'PartName', 'Ipn', 'Manufacturer', 'Mpn', 'Name', 'Designator',
- 'Description', 'ReferencedAssemblyId', 'ReferencedAssemblyIpn',
+ 'Description', 'ReferencedAssemblyId', 'ReferencedAssemblyIpn', 'ReferencedAssemblyStatus',
'ReferencedAssemblyFullName',
],
- 'processEntity' => fn($entity, $depth) => [
+ 'processEntity' => fn(Assembly $entity, $depth) => [
'Id' => $entity->getId(),
'ParentId' => $entity->getParent()?->getId() ?? '',
'Type' => 'assembly',
'AssemblyIpn' => $entity->getIpn(),
+ 'AssemblyStatus' => $entity->getStatus() ?? '-',
'AssemblyNameHierarchical' => str_repeat('--', $depth) . ' ' . $entity->getName(),
'AssemblyName' => $entity->getName(),
'AssemblyFullName' => $this->getFullName($entity),
@@ -460,6 +461,7 @@ class EntityExporter
'Description' => '-',
'ReferencedAssemblyId' => '-',
'ReferencedAssemblyIpn' => '-',
+ 'ReferencedAssemblyStatus' => '-',
'ReferencedAssemblyFullName' => '-',
],
'processBomEntries' => fn($entity, $depth) => $this->processBomEntriesWithAggregatedParts($entity, $depth),
@@ -581,6 +583,7 @@ class EntityExporter
'ParentId' => '',
'Type' => 'assembly_bom_entry',
'AssemblyIpn' => $assembly->getIpn(),
+ 'AssemblyStatus' => $bomEntry->getReferencedAssembly() ? $assembly->getStatus() : '-',
'AssemblyNameHierarchical' => str_repeat('--', $depth) . '> ' . $assembly->getName(),
'AssemblyName' => $assembly->getName(),
'AssemblyFullName' => $this->getFullName($assembly),
@@ -597,6 +600,7 @@ class EntityExporter
'Description' => $bomEntry->getPart()?->getDescription() ?? '-',
'ReferencedAssemblyId' => $bomEntry->getReferencedAssembly()?->getId() ?? '-',
'ReferencedAssemblyIpn' => $bomEntry->getReferencedAssembly()?->getIpn() ?? '-',
+ 'ReferencedAssemblyStatus' => $bomEntry->getReferencedAssembly()?->getStatus() ?? '-',
'ReferencedAssemblyFullName' => $this->getFullName($bomEntry->getReferencedAssembly() ?? null),
];
@@ -615,6 +619,7 @@ class EntityExporter
'ParentId' => '',
'Type' => 'subassembly_part_list',
'AssemblyIpn' => $partAssembly ? $partAssembly->getIpn() : '',
+ 'AssemblyStatus' => $partAssembly ? $partAssembly->getStatus() : '-',
'AssemblyNameHierarchical' => '',
'AssemblyName' => $partAssembly ? $partAssembly->getName() : '',
'AssemblyFullName' => $this->getFullName($partAssembly),
@@ -624,13 +629,14 @@ class EntityExporter
'PartId' => $partData['part']?->getId(),
'PartName' => $partData['part']?->getName(),
'Ipn' => $partData['part']?->getIpn(),
- 'Manufacturer' => $partData['part']?->getManufacturer()?->getName(),
+ 'Manufacturer' => $partData['part']?->getManufacturer()?->getName() ?? '-',
'Mpn' => $partData['part']?->getManufacturerProductNumber(),
'Name' => $partData['name'] ?? '',
'Designator' => $partData['designator'],
'Description' => $partData['part']?->getDescription(),
'ReferencedAssemblyId' => '-',
'ReferencedAssemblyIpn' => '-',
+ 'ReferencedAssemblyStatus' => '-',
'ReferencedAssemblyFullName' => '-',
];
}
diff --git a/templates/assemblies/export_bom_pdf.html.twig b/templates/assemblies/export_bom_pdf.html.twig
index 15bf5d88..61cc9d8e 100644
--- a/templates/assemblies/export_bom_pdf.html.twig
+++ b/templates/assemblies/export_bom_pdf.html.twig
@@ -27,6 +27,7 @@
# |
Assembly Name |
IPN |
+ Status |
Section |
@@ -36,6 +37,7 @@
{{ loop.index }} |
Assembly: {{ assembly.name }} |
{% if assembly.ipn != '' %}{{ assembly.ipn }}{% else %}-{% endif %} |
+ {{ assembly.status|default('-') }} |
{{ loop.index + 1 }} |
{% endfor %}
@@ -45,11 +47,12 @@
{% for assembly in assemblies %}
-
+
| Name |
+ Manufacturer |
IPN |
Quantity |
Multiplier |
@@ -60,6 +63,7 @@
{% for part in assembly.parts %}
| {{ part.name }} |
+ {{ part.manufacturer }} |
{{ part.ipn }} |
{{ part.quantity }} |
{% if assembly.multiplier %}{{ assembly.multiplier }}{% else %}-{% endif %} |
@@ -69,19 +73,21 @@
{% for other in assembly.others %}
| {{ other.name }} |
- {{ other.ipn }} |
+ - |
+ {{ other.ipn|default('-') }} |
{{ other.quantity }} |
{{ other.multiplier }} |
- {{ other.effectiveQuantity }} |
+ {{ other.effectiveQuantity|default('-') }} |
{% endfor %}
{% for referencedAssembly in assembly.referencedAssemblies %}
| {{ referencedAssembly.name }} |
- {{ referencedAssembly.ipn }} |
- {{ referencedAssembly.quantity }} |
- |
+ - |
+ {{ referencedAssembly.ipn|default('-') }} |
{{ referencedAssembly.quantity }} |
+ {{ referencedAssembly.multiplier|default('-') }} |
+ {{ (referencedAssembly.quantity * (referencedAssembly.multiplier|default(1)))|default(referencedAssembly.quantity) }} |
{% endfor %}
diff --git a/templates/assemblies/export_bom_referenced_assembly_pdf.html.twig b/templates/assemblies/export_bom_referenced_assembly_pdf.html.twig
index b5a1324d..b3ae29ca 100644
--- a/templates/assemblies/export_bom_referenced_assembly_pdf.html.twig
+++ b/templates/assemblies/export_bom_referenced_assembly_pdf.html.twig
@@ -1,11 +1,12 @@
-
+
| Type |
Name |
+ Manufacturer |
IPN |
Quantity |
Multiplier |
@@ -17,6 +18,7 @@
| Part |
{{ part.name }} |
+ {{ part.manufacturer }} |
{{ part.ipn }} |
{{ part.quantity }} |
{% if assembly.multiplier %}{{ assembly.multiplier }}{% else %}-{% endif %} |
@@ -29,9 +31,10 @@
Other |
{{ other.name }} |
- |
+ {{ other.ipn|default('-') }} |
{{ other.quantity }} |
{{ other.multiplier }} |
- - |
+ {{ other.effectiveQuantity|default('-') }} |
{% endfor %}
@@ -40,9 +43,10 @@
Referenced assembly |
{{ referencedAssembly.name }} |
- |
+ {{ referencedAssembly.ipn|default('-') }} |
{{ referencedAssembly.quantity }} |
- |
- {{ referencedAssembly.multiplier }} |
+ {{ referencedAssembly.multiplier|default('-') }} |
+ {{ (referencedAssembly.quantity * (referencedAssembly.multiplier|default(1)))|default(referencedAssembly.quantity) }} |
{% endfor %}