diff --git a/src/DataTables/Filters/PartFilter.php b/src/DataTables/Filters/PartFilter.php index 20905c47..177b6dbd 100644 --- a/src/DataTables/Filters/PartFilter.php +++ b/src/DataTables/Filters/PartFilter.php @@ -91,7 +91,14 @@ class PartFilter implements FilterInterface public readonly ArrayCollection $parameters; public readonly IntConstraint $parametersCount; + /************************************************* + * Project tab + *************************************************/ + public readonly EntityConstraint $project; + public readonly NumberConstraint $bomQuantity; + public readonly TextConstraint $bomName; + public readonly TextConstraint $bomComment; public function __construct(NodesListBuilder $nodesListBuilder) { @@ -145,6 +152,10 @@ class PartFilter implements FilterInterface $this->parametersCount = new IntConstraint('COUNT(_parameters)'); $this->project = new EntityConstraint($nodesListBuilder, Project::class, '_projectBomEntries.project'); + $this->bomQuantity = new NumberConstraint('_projectBomEntries.quantity'); + $this->bomName = new TextConstraint('_projectBomEntries.name'); + $this->bomComment = new TextConstraint('_projectBomEntries.comment'); + } public function apply(QueryBuilder $queryBuilder): void diff --git a/src/Form/Filters/PartFilterType.php b/src/Form/Filters/PartFilterType.php index f631d718..602c5771 100644 --- a/src/Form/Filters/PartFilterType.php +++ b/src/Form/Filters/PartFilterType.php @@ -184,8 +184,8 @@ class PartFilterType extends AbstractType $builder->add('orderdetailsCount', NumberConstraintType::class, [ 'label' => 'part.filter.orderdetails_count', - 'step' => 1, - 'min' => 0, + 'step' => 1, + 'min' => 0, ]); $builder->add('obsolete', BooleanConstraintType::class, [ @@ -281,10 +281,24 @@ class PartFilterType extends AbstractType * Project tab **************************************************************************/ if ($this->security->isGranted('read', Project::class)) { - $builder->add('project', StructuralEntityConstraintType::class, [ - 'label' => 'project.label', - 'entity_class' => Project::class - ]); + $builder + ->add('project', StructuralEntityConstraintType::class, [ + 'label' => 'project.label', + 'entity_class' => Project::class + ]) + ->add('bomQuantity', NumberConstraintType::class, [ + 'label' => 'project.bom.quantity', + 'min' => 0, + 'step' => "any", + ]) + ->add('bomName', TextConstraintType::class, [ + 'label' => 'project.bom.name', + ]) + ->add('bomComment', TextConstraintType::class, [ + 'label' => 'project.bom.comment', + ]) + ; + } diff --git a/templates/parts/lists/_filter.html.twig b/templates/parts/lists/_filter.html.twig index 1881f973..c29e8ecd 100644 --- a/templates/parts/lists/_filter.html.twig +++ b/templates/parts/lists/_filter.html.twig @@ -121,6 +121,9 @@ {% if filterForm.project is defined %}
{{ form_row(filterForm.project) }} + {{ form_row(filterForm.bomQuantity) }} + {{ form_row(filterForm.bomName) }} + {{ form_row(filterForm.bomComment) }}
{% endif %}