From 8c9a8c1cb370b3d760b09d65597e1452284a3d10 Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Fri, 5 Aug 2022 15:01:07 +0200 Subject: [PATCH] Add bundles' wires' part number info to BOM --- src/wireviz/wv_dataclasses.py | 18 ++++++++++++++++-- src/wireviz/wv_harness.py | 1 + 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/wireviz/wv_dataclasses.py b/src/wireviz/wv_dataclasses.py index 864ed00..ab13d4b 100644 --- a/src/wireviz/wv_dataclasses.py +++ b/src/wireviz/wv_dataclasses.py @@ -631,6 +631,20 @@ class Cable(TopLevelGraphicalComponent): ) return desc + def _get_wire_partnumber(self, idx) -> PartNumberInfo: + # TODO: possibly make more robust/elegant + if self.category == "bundle": + if isinstance(self.partnumbers.pn, List): + return PartNumberInfo( + self.partnumbers.pn[idx], + self.partnumbers.manufacturer[idx], + self.partnumbers.mpn[idx], + self.partnumbers.supplier[idx], + self.partnumbers.spn[idx], + ) + else: + return None + def __post_init__(self) -> None: super().fill_partnumbers() @@ -708,8 +722,8 @@ class Cable(TopLevelGraphicalComponent): gauge=self.gauge, length=self.length, sum_amounts_in_bom=self.sum_amounts_in_bom, - ignore_in_bom=self.ignore_in_bom - # TODO partnumbers + ignore_in_bom=self.ignore_in_bom, + partnumbers=self._get_wire_partnumber(wire_index), ) if self.shield: diff --git a/src/wireviz/wv_harness.py b/src/wireviz/wv_harness.py index b41cfc1..5879717 100644 --- a/src/wireviz/wv_harness.py +++ b/src/wireviz/wv_harness.py @@ -105,6 +105,7 @@ class Harness: ] + all_subitems ) + # add items to BOM for item in all_toplevel_items: self._add_to_internal_bom(item) # nested subitems are also handled