Entferne Projektbezogene Logik bzw. Verweise auf Baugruppen, da nicht benötigt. Überarbeitung Exporter: Aufnahme von Parts aus Subassemblies.

This commit is contained in:
Marcel Diegelmann 2025-09-12 16:05:42 +02:00
parent dc3279c449
commit 5e3a9ec90c
21 changed files with 193 additions and 136 deletions

View file

@ -118,7 +118,6 @@ class Assembly extends AbstractStructuralDBElement
#[Groups(['extended', 'full', 'import'])]
#[ORM\OneToMany(targetEntity: AssemblyBOMEntry::class, mappedBy: 'assembly', cascade: ['persist', 'remove'], orphanRemoval: true)]
#[UniqueObjectCollection(message: 'assembly.bom_entry.part_already_in_bom', fields: ['part'])]
#[UniqueObjectCollection(message: 'assembly.bom_entry.project_already_in_bom', fields: ['project'])]
#[UniqueObjectCollection(message: 'assembly.bom_entry.name_already_in_bom', fields: ['name'])]
protected Collection $bom_entries;
@ -137,7 +136,7 @@ class Assembly extends AbstractStructuralDBElement
* @var string|null The internal ipn number of the assembly
*/
#[Assert\Length(max: 100)]
#[Groups(['extended', 'full', 'project:read', 'project:write', 'import'])]
#[Groups(['extended', 'full', 'assembly:read', 'assembly:write', 'import'])]
#[ORM\Column(type: Types::STRING, length: 100, unique: true, nullable: true)]
#[Length(max: 100)]
protected ?string $ipn = null;

View file

@ -253,17 +253,6 @@ class AssemblyBOMEntry extends AbstractDBElement implements UniqueValidatableInt
return $this;
}
public function getProject(): ?Project
{
return $this->project;
}
public function setProject(?Project $project): AssemblyBOMEntry
{
$this->project = $project;
return $this;
}
/**
* Returns the price of this BOM entry, if existing.
* Prices are only valid on non-Part BOM entries.
@ -301,6 +290,15 @@ class AssemblyBOMEntry extends AbstractDBElement implements UniqueValidatableInt
return $this->part instanceof Part;
}
/**
* Checks whether this BOM entry is a assembly associated BOM entry or not.
* @return bool True if this BOM entry is a assembly associated BOM entry, false otherwise.
*/
public function isAssemblyBomEntry(): bool
{
return $this->referencedAssembly !== null;
}
#[Assert\Callback]
public function validate(ExecutionContextInterface $context, $payload): void
{
@ -336,7 +334,7 @@ class AssemblyBOMEntry extends AbstractDBElement implements UniqueValidatableInt
return [
'name' => $this->getName(),
'part' => $this->getPart()?->getID(),
'project' => $this->getProject()?->getID(),
'referencedAssembly' => $this->getReferencedAssembly()?->getID(),
];
}
}