From 01eff5e8733674899e7aa091c6d0b47ce6afb5b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sat, 7 Sep 2019 13:12:24 +0200 Subject: [PATCH] Show manufacturer, partUnit and footprint in parts table. --- src/DataTables/PartsDataTable.php | 35 ++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/src/DataTables/PartsDataTable.php b/src/DataTables/PartsDataTable.php index c2167153..9a7ecda8 100644 --- a/src/DataTables/PartsDataTable.php +++ b/src/DataTables/PartsDataTable.php @@ -58,6 +58,20 @@ class PartsDataTable implements DataTableTypeInterface $this->translator = $translator; } + protected function getQuery(QueryBuilder $builder) + { + $builder->select('p') + ->addSelect('category') + ->addSelect('footprint') + ->addSelect('manufacturer') + ->addSelect('partUnit') + ->from(Part::class, 'p') + ->leftJoin('p.category', 'category') + ->leftJoin('p.footprint', 'footprint') + ->leftJoin('p.manufacturer', 'manufacturer') + ->leftJoin('p.partUnit', 'partUnit'); + } + protected function buildCriteria(QueryBuilder $builder, array $options) { if (isset($options['category'])) { @@ -104,6 +118,14 @@ class PartsDataTable implements DataTableTypeInterface 'field' => 'category.name', 'label' => $this->translator->trans('part.table.category') ]) + ->add('footprint', TextColumn::class, [ + 'field' => 'footprint.name', + 'label' => $this->translator->trans('part.table.footprint') + ]) + ->add('manufacturer', TextColumn::class, [ + 'field' => 'manufacturer.name', + 'label' => $this->translator->trans('part.table.manufacturer') + ]) //->add('footprint', TextColumn::class, ['field' => 'footprint.name']) //->add('manufacturer', TextColumn::class, ['field' => 'manufacturer.name' ]) //->add('amountSum', TextColumn::class, ['label' => 'instock.label_short']) @@ -112,10 +134,14 @@ class PartsDataTable implements DataTableTypeInterface 'propertyPath' => 'amountSum' ]) ->add('minamount', TextColumn::class, [ - 'label' => $this->translator->trans('part.table.minamount') + 'label' => $this->translator->trans('part.table.minamount'), + 'visible' => false + ]) + ->add('partUnit', TextColumn::class, [ + 'field' => 'partUnit.name', + 'label' => $this->translator->trans('part.table.partUnit'), + 'visible' => false ]) - //->add('storelocation', TextColumn::class, ['field' => 'storelocation.name', 'label' => 'storelocation.label']) - ->add('addedDate', LocaleDateTimeColumn::class, [ 'label' => $this->translator->trans('part.table.addedDate'), 'visible' => false @@ -166,6 +192,9 @@ class PartsDataTable implements DataTableTypeInterface ->addOrderBy('name') ->createAdapter(ORMAdapter::class, [ + 'query' => function(QueryBuilder $builder) { + $this->getQuery($builder); + }, 'entity' => Part::class, 'criteria' => [ function (QueryBuilder $builder) use ($options) {