From 13fb920e692bd13136107db454070f2b58c6bf97 Mon Sep 17 00:00:00 2001 From: naomi Date: Wed, 18 May 2022 13:27:14 +0100 Subject: [PATCH] total cases field is working. --- modules/opencase_entities/src/Entity/OCActor.php | 10 ++++++---- opencase.module | 11 +++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/modules/opencase_entities/src/Entity/OCActor.php b/modules/opencase_entities/src/Entity/OCActor.php index 1c43a11..1e919d2 100644 --- a/modules/opencase_entities/src/Entity/OCActor.php +++ b/modules/opencase_entities/src/Entity/OCActor.php @@ -208,15 +208,17 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface } - public function getCountOfCaseProvisions(array $conditions = []): int { + public function getCountOfCaseProvisions(array $conditionsToApplyToCaseProvisionQuery = []): int { $query = \Drupal::entityQuery('oc_case_provision'); $query->condition('oc_provider', $this->id()); - // foreach($conditions as $condition) { - // $query->condition($condition); - // } return count($query->execute()); } + public function calculateTotalCases(): void { + $this->set('total_cases', $this->getCountOfCaseProvisions()); + $this->save(); + } + /** * {@inheritdoc} */ diff --git a/opencase.module b/opencase.module index 01483fd..0d0c4a8 100644 --- a/opencase.module +++ b/opencase.module @@ -7,6 +7,7 @@ use Drupal\Core\Render\Element; use Drupal\Core\Access\AccessResult; use Drupal\Core\Routing\RouteMatchInterface; +use Drupal\opencase_cases\Entity\OCCaseProvision; /** * Implements hook_element_info_alter(). @@ -44,6 +45,16 @@ function opencase_process_element($element) { $element['time']['#attributes']['step'] = 60; return $element; } +function opencase_oc_case_provision_insert(OCCaseProvision $case_provision): void { + $case_provision->oc_provider->entity->calculateTotalCases(); +} +function opencase_oc_case_provision_delete(OCCaseProvision $case_provision): void { + $case_provision->oc_provider->entity->calculateTotalCases(); +} +function opencase_oc_case_provision_update(OCCaseProvision $case_provision): void { + $case_provision->oc_provider->entity->calculateTotalCases(); + $case_provision->original->oc_provider->entity->calculateTotalCases(); +} /** * Implements hook_page_attachments