diff --git a/src/Form/ActivityEditForm.php b/src/Form/ActivityEditForm.php index cf5fceed..5a038fe2 100644 --- a/src/Form/ActivityEditForm.php +++ b/src/Form/ActivityEditForm.php @@ -70,8 +70,8 @@ class ActivityEditForm extends AbstractType ->add('project', ProjectType::class, [ 'label' => 'label.project', 'required' => false, - 'query_builder' => function (ProjectRepository $repo) use ($project) { - return $repo->builderForEntityType($project); + 'query_builder' => function (ProjectRepository $repo) use ($project, $customer) { + return $repo->builderForEntityType($project, $customer); }, ]) ->add('fixedRate', NumberType::class, [ diff --git a/src/Form/Toolbar/AbstractToolbarForm.php b/src/Form/Toolbar/AbstractToolbarForm.php index 16ea791b..9282dd1c 100644 --- a/src/Form/Toolbar/AbstractToolbarForm.php +++ b/src/Form/Toolbar/AbstractToolbarForm.php @@ -69,6 +69,7 @@ abstract class AbstractToolbarForm extends AbstractType $query = new CustomerQuery(); $query->setVisibility(CustomerQuery::SHOW_BOTH); // this field is the reason for the query here $query->setResultType(CustomerQuery::RESULT_TYPE_QUERYBUILDER); + $query->setOrderBy('name'); return $repo->findByQuery($query); }, @@ -162,6 +163,7 @@ abstract class AbstractToolbarForm extends AbstractType $query->setCustomer($data['customer']); $query->setResultType(ProjectQuery::RESULT_TYPE_QUERYBUILDER); $query->setVisibility(ProjectQuery::SHOW_BOTH); + $query->setOrderBy('name'); return $repo->findByQuery($query); }, @@ -176,7 +178,6 @@ abstract class AbstractToolbarForm extends AbstractType protected function addActivityChoice(FormBuilderInterface $builder) { $builder->add('activity', ActivityType::class, [ - 'group_by' => null, 'required' => false, 'query_builder' => function (ActivityRepository $repo) { $query = new ActivityQuery(); @@ -184,6 +185,7 @@ abstract class AbstractToolbarForm extends AbstractType $query->setGlobalsOnly(true); $query->setOrderGlobalsFirst(true); $query->setVisibility(ActivityQuery::SHOW_BOTH); + $query->setOrderBy('name'); return $repo->findByQuery($query); }, @@ -198,7 +200,6 @@ abstract class AbstractToolbarForm extends AbstractType } $event->getForm()->add('activity', ActivityType::class, [ - 'group_by' => null, 'required' => false, 'query_builder' => function (ActivityRepository $repo) use ($data) { $query = new ActivityQuery(); @@ -206,6 +207,7 @@ abstract class AbstractToolbarForm extends AbstractType $query->setProject($data['project']); $query->setOrderGlobalsFirst(true); $query->setVisibility(ActivityQuery::SHOW_BOTH); + $query->setOrderBy('name'); return $repo->findByQuery($query); }, diff --git a/src/Repository/ActivityRepository.php b/src/Repository/ActivityRepository.php index ecb9de02..ac92e2cd 100644 --- a/src/Repository/ActivityRepository.php +++ b/src/Repository/ActivityRepository.php @@ -142,8 +142,13 @@ class ActivityRepository extends AbstractRepository $qb->select('a', 'p', 'c') ->from(Activity::class, 'a') ->leftJoin('a.project', 'p') - ->leftJoin('p.customer', 'c') - ->orderBy('a.' . $query->getOrderBy(), $query->getOrder()); + ->leftJoin('p.customer', 'c'); + + if ($query->isOrderGlobalsFirst()) { + $qb->orderBy('a.project', 'ASC'); + } + + $qb->addOrderBy('a.' . $query->getOrderBy(), $query->getOrder()); $where = $qb->expr()->andX(); @@ -202,10 +207,6 @@ class ActivityRepository extends AbstractRepository $qb->setParameter('activity', $entity); } - if ($query->isOrderGlobalsFirst()) { - $qb->orderBy('a.project', 'ASC'); - } - if ($or->count() > 0) { $qb->andWhere($or); } diff --git a/src/Repository/CustomerRepository.php b/src/Repository/CustomerRepository.php index cb252e84..5cf969a2 100644 --- a/src/Repository/CustomerRepository.php +++ b/src/Repository/CustomerRepository.php @@ -99,6 +99,7 @@ class CustomerRepository extends AbstractRepository $query = new CustomerQuery(); $query->setHiddenEntity($entity); $query->setResultType(CustomerQuery::RESULT_TYPE_QUERYBUILDER); + $query->setOrderBy('name'); return $this->findByQuery($query); } diff --git a/src/Repository/ProjectRepository.php b/src/Repository/ProjectRepository.php index 053efe85..e77bdbd3 100644 --- a/src/Repository/ProjectRepository.php +++ b/src/Repository/ProjectRepository.php @@ -95,6 +95,7 @@ class ProjectRepository extends AbstractRepository $query->setHiddenEntity($entity); $query->setCustomer($customer); $query->setResultType(ProjectQuery::RESULT_TYPE_QUERYBUILDER); + $query->setOrderBy('name'); return $this->findByQuery($query); }