From e1034806aacbe8d313c27805e831bb2e419ee4b8 Mon Sep 17 00:00:00 2001 From: barisgit Date: Fri, 20 Jun 2025 13:25:41 +0200 Subject: [PATCH 1/2] Add supplier information to KiCad part exports - Include supplier name and part numbers from order details in KiCad exports - Handle multiple suppliers with sequential numbering (Supplier 2, Supplier 3, etc.) - Include both active and obsolete order details for comprehensive supplier info - Add null checks to prevent errors when supplier or part number is missing --- src/Services/EDA/KiCadHelper.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/Services/EDA/KiCadHelper.php b/src/Services/EDA/KiCadHelper.php index d4cbab349..1be5735e5 100644 --- a/src/Services/EDA/KiCadHelper.php +++ b/src/Services/EDA/KiCadHelper.php @@ -237,6 +237,28 @@ public function getKiCADPart(Part $part): array $result["fields"]["Part-DB IPN"] = $this->createField($part->getIpn()); } + // Add supplier information from orderdetails (include obsolete orderdetails) + if ($part->getOrderdetails(false)->count() > 0) { + $supplierCounts = []; + + foreach ($part->getOrderdetails(false) as $orderdetail) { + if ($orderdetail->getSupplier() !== null && $orderdetail->getSupplierPartNr() !== '') { + $supplierName = $orderdetail->getSupplier()->getName(); + + if (!isset($supplierCounts[$supplierName])) { + $supplierCounts[$supplierName] = 0; + } + $supplierCounts[$supplierName]++; + + // Create field name with sequential number if more than one from same supplier (e.g. "Mouser", "Mouser 2", etc.) + $fieldName = $supplierCounts[$supplierName] > 1 + ? $supplierName . ' ' . $supplierCounts[$supplierName] + : $supplierName; + + $result["fields"][$fieldName] = $this->createField($orderdetail->getSupplierPartNr()); + } + } + } return $result; } From 0c7c8aaf90263709b5605802a439cfe776df5fed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sun, 6 Jul 2025 13:01:10 +0200 Subject: [PATCH 2/2] Add SPN suffix to field name --- src/Services/EDA/KiCadHelper.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Services/EDA/KiCadHelper.php b/src/Services/EDA/KiCadHelper.php index 1be5735e5..74499d3a1 100644 --- a/src/Services/EDA/KiCadHelper.php +++ b/src/Services/EDA/KiCadHelper.php @@ -244,7 +244,9 @@ public function getKiCADPart(Part $part): array foreach ($part->getOrderdetails(false) as $orderdetail) { if ($orderdetail->getSupplier() !== null && $orderdetail->getSupplierPartNr() !== '') { $supplierName = $orderdetail->getSupplier()->getName(); - + + $supplierName .= " SPN"; // Append "SPN" to the supplier name to indicate Supplier Part Number + if (!isset($supplierCounts[$supplierName])) { $supplierCounts[$supplierName] = 0; }