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 %} -
Assembly: {{ assembly.name }}
+
Assembly: {{ assembly.name }} [IPN: {{ assembly.ipn|default('-') }}, Status: {{ assembly.status|default('-') }}]
+ @@ -60,6 +63,7 @@ {% for part in assembly.parts %} + @@ -69,19 +73,21 @@ {% for other in assembly.others %} - + + - + {% endfor %} {% for referencedAssembly in assembly.referencedAssemblies %} - - - + + + + {% 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 @@
-
Referenced Assembly: {{ assembly.name }} [IPN: {% if assembly.ipn != '' %}{{ assembly.ipn }}{% else %}-{% endif %}, quantity: {{ assembly.quantity }}]
+
Referenced Assembly: {{ assembly.name }} [IPN: {{ assembly.ipn|default('-') }}, Status: {{ assembly.status|default('-') }}, quantity: {{ assembly.quantity }}]
NameManufacturer IPN Quantity Multiplier
{{ part.name }}{{ part.manufacturer }} {{ part.ipn }} {{ part.quantity }} {% if assembly.multiplier %}{{ assembly.multiplier }}{% else %}-{% endif %}
{{ other.name }}{{ other.ipn }}-{{ other.ipn|default('-') }} {{ other.quantity }} {{ other.multiplier }}{{ other.effectiveQuantity }}{{ other.effectiveQuantity|default('-') }}
{{ referencedAssembly.name }}{{ referencedAssembly.ipn }}{{ referencedAssembly.quantity }}-{{ referencedAssembly.ipn|default('-') }} {{ referencedAssembly.quantity }}{{ referencedAssembly.multiplier|default('-') }}{{ (referencedAssembly.quantity * (referencedAssembly.multiplier|default(1)))|default(referencedAssembly.quantity) }}
+ @@ -17,6 +18,7 @@ + @@ -29,9 +31,10 @@ + - + {% endfor %} @@ -40,9 +43,10 @@ + - - + + {% endfor %}
Type NameManufacturer IPN Quantity Multiplier
Part {{ part.name }}{{ part.manufacturer }} {{ part.ipn }} {{ part.quantity }} {% if assembly.multiplier %}{{ assembly.multiplier }}{% else %}-{% endif %}Other {{ other.name }} -{{ other.ipn|default('-') }} {{ other.quantity }} {{ other.multiplier }}-{{ other.effectiveQuantity|default('-') }}
Referenced assembly {{ referencedAssembly.name }} -{{ referencedAssembly.ipn|default('-') }} {{ referencedAssembly.quantity }}{{ referencedAssembly.multiplier }}{{ referencedAssembly.multiplier|default('-') }}{{ (referencedAssembly.quantity * (referencedAssembly.multiplier|default(1)))|default(referencedAssembly.quantity) }}