diff --git a/src/DataTables/Filters/PartFilter.php b/src/DataTables/Filters/PartFilter.php index 77b11ab8..d4a441eb 100644 --- a/src/DataTables/Filters/PartFilter.php +++ b/src/DataTables/Filters/PartFilter.php @@ -9,6 +9,7 @@ use App\DataTables\Filters\Constraints\IntConstraint; use App\DataTables\Filters\Constraints\NumberConstraint; use App\DataTables\Filters\Constraints\Part\TagsConstraint; use App\DataTables\Filters\Constraints\TextConstraint; +use App\Entity\Attachments\AttachmentType; use App\Entity\Parts\Category; use App\Entity\Parts\Footprint; use App\Entity\Parts\Manufacturer; @@ -17,6 +18,7 @@ use App\Entity\Parts\Storelocation; use App\Entity\Parts\Supplier; use App\Services\Trees\NodesListBuilder; use Doctrine\ORM\QueryBuilder; +use Svg\Tag\Text; class PartFilter implements FilterInterface { @@ -98,6 +100,12 @@ class PartFilter implements FilterInterface /** @var IntConstraint */ protected $attachmentsCount; + /** @var EntityConstraint */ + protected $attachmentType; + + /** @var TextConstraint */ + protected $attachmentName; + public function __construct(NodesListBuilder $nodesListBuilder) { $this->name = new TextConstraint('part.name'); @@ -129,6 +137,9 @@ class PartFilter implements FilterInterface $this->storelocation = new EntityConstraint($nodesListBuilder, Storelocation::class, 'partLots.storage_location'); $this->attachmentsCount = new IntConstraint('COUNT(attachments)'); + $this->attachmentType = new EntityConstraint($nodesListBuilder, AttachmentType::class, 'attachments.attachment_type'); + $this->attachmentName = new TextConstraint('attachments.name'); + $this->orderdetailsCount = new IntConstraint('COUNT(orderdetails)'); } @@ -323,6 +334,22 @@ class PartFilter implements FilterInterface return $this->lotExpirationDate; } + /** + * @return EntityConstraint + */ + public function getAttachmentType(): EntityConstraint + { + return $this->attachmentType; + } + + /** + * @return TextConstraint + */ + public function getAttachmentName(): TextConstraint + { + return $this->attachmentName; + } + } diff --git a/src/Form/Filters/PartFilterType.php b/src/Form/Filters/PartFilterType.php index cf0f6bca..548b0467 100644 --- a/src/Form/Filters/PartFilterType.php +++ b/src/Form/Filters/PartFilterType.php @@ -3,6 +3,7 @@ namespace App\Form\Filters; use App\DataTables\Filters\PartFilter; +use App\Entity\Attachments\AttachmentType; use App\Entity\Parts\Category; use App\Entity\Parts\Footprint; use App\Entity\Parts\Manufacturer; @@ -179,6 +180,15 @@ class PartFilterType extends AbstractType 'min' => 0, ]); + $builder->add('attachmentType', StructuralEntityConstraintType::class, [ + 'label' => 'attachment.attachment_type', + 'entity_class' => AttachmentType::class + ]); + + $builder->add('attachmentName', TextConstraintType::class, [ + 'label' => 'part.filter.attachmentName', + ]); + $builder->add('submit', SubmitType::class, [ 'label' => 'Update', ]); diff --git a/templates/Parts/lists/_filter.html.twig b/templates/Parts/lists/_filter.html.twig index f68f2223..3db3a241 100644 --- a/templates/Parts/lists/_filter.html.twig +++ b/templates/Parts/lists/_filter.html.twig @@ -61,6 +61,8 @@