mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-07-02 22:44:33 +02:00
Added a part info tab to show in which projects the part is used.
This commit is contained in:
parent
d5b1c6be0a
commit
7f38095e82
4 changed files with 64 additions and 5 deletions
|
@ -33,6 +33,7 @@ use App\Entity\Parts\PartTraits\BasicPropertyTrait;
|
|||
use App\Entity\Parts\PartTraits\InstockTrait;
|
||||
use App\Entity\Parts\PartTraits\ManufacturerTrait;
|
||||
use App\Entity\Parts\PartTraits\OrderTrait;
|
||||
use App\Entity\ProjectSystem\ProjectBOMEntry;
|
||||
use DateTime;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
|
@ -65,9 +66,10 @@ class Part extends AttachmentContainingDBElement
|
|||
use ParametersTrait;
|
||||
|
||||
/**
|
||||
* TODO.
|
||||
* @var Collection<int, ProjectBOMEntry> $project_bom_entries
|
||||
* @ORM\OneToMany(targetEntity="App\Entity\ProjectSystem\ProjectBOMEntry", mappedBy="part")
|
||||
*/
|
||||
protected $devices = [];
|
||||
protected $project_bom_entries = [];
|
||||
|
||||
/** @var Collection<int, PartParameter>
|
||||
* @Assert\Valid()
|
||||
|
@ -120,6 +122,7 @@ class Part extends AttachmentContainingDBElement
|
|||
$this->partLots = new ArrayCollection();
|
||||
$this->orderdetails = new ArrayCollection();
|
||||
$this->parameters = new ArrayCollection();
|
||||
$this->project_bom_entries = new ArrayCollection();
|
||||
}
|
||||
|
||||
public function __clone()
|
||||
|
@ -149,6 +152,17 @@ class Part extends AttachmentContainingDBElement
|
|||
parent::__clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all ProjectBOMEntries that use this part.
|
||||
* @return Collection<int, ProjectBOMEntry>|ProjectBOMEntry[]
|
||||
*/
|
||||
public function getProjectBomEntries(): Collection
|
||||
{
|
||||
return $this->project_bom_entries;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get all devices which uses this part.
|
||||
*
|
||||
|
@ -156,8 +170,14 @@ class Part extends AttachmentContainingDBElement
|
|||
* (empty array if there are no ones)
|
||||
* * the array is sorted by the devices names
|
||||
*/
|
||||
public function getDevices(): array
|
||||
public function getProjects(): array
|
||||
{
|
||||
return $this->devices;
|
||||
$projects = [];
|
||||
|
||||
foreach($this->project_bom_entries as $entry) {
|
||||
$projects[] = $entry->getProject();
|
||||
}
|
||||
|
||||
return $projects;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,7 +72,7 @@ class ProjectBOMEntry extends AbstractDBElement
|
|||
|
||||
/**
|
||||
* @var Part|null The part associated with this
|
||||
* @ORM\ManyToOne(targetEntity="App\Entity\Parts\Part")
|
||||
* @ORM\ManyToOne(targetEntity="App\Entity\Parts\Part", inversedBy="project_bom_entries")
|
||||
* @ORM\JoinColumn(name="id_part", referencedColumnName="id", nullable=true)
|
||||
*/
|
||||
protected ?Part $part = null;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue