Add KiCad API v2, orderdetail export control, EDA status indicator, BOM improvements

- Add KiCad API v2 endpoints (/kicad-api/v2) with volatile field support
  for stock and storage location (shown but not saved to schematic)
- Add kicad_export flag to Orderdetail entity for per-supplier SPN control
  (backward compatible: if no flag set, all SPNs exported as before)
- Add EDA completeness indicator column in parts datatable (bolt icon)
- Add ?minimal=true query param for faster category parts loading
- Improve category descriptions (use comment instead of URL when available)
- Improve BOM importer multi-footprint support: merge entries by Part-DB
  part ID when linked, tracking footprint variants in comments
- Fix KiCost manf/manf# fields always present (not conditional on orderdetails)
- Fix duplicate getEdaInfo() call in shouldPartBeVisible
- Consolidate supplier SPN and KiCost field generation into single loop
This commit is contained in:
Sebastian Almberg 2026-02-11 00:29:34 +01:00
parent 59e36fb824
commit 9831db30c8
11 changed files with 359 additions and 45 deletions

View file

@ -122,6 +122,13 @@ class Orderdetail extends AbstractDBElement implements TimeStampableInterface, N
#[ORM\Column(type: Types::BOOLEAN)]
protected bool $obsolete = false;
/**
* @var bool Whether this orderdetail's supplier part number should be exported as a KiCad field
*/
#[Groups(['full', 'import', 'orderdetail:read', 'orderdetail:write'])]
#[ORM\Column(type: Types::BOOLEAN)]
protected bool $kicad_export = false;
/**
* @var string The URL to the product on the supplier's website
*/
@ -418,6 +425,21 @@ class Orderdetail extends AbstractDBElement implements TimeStampableInterface, N
return $this;
}
public function isKicadExport(): bool
{
return $this->kicad_export;
}
/**
* @return $this
*/
public function setKicadExport(bool $kicad_export): self
{
$this->kicad_export = $kicad_export;
return $this;
}
public function getName(): string
{
return $this->getSupplierPartNr();