Skip to content
Snippets Groups Projects

fix: I-7819 add missing share_value and issue_premium twig filters

Compare and
2 files
+ 101
23
Preferences
File browser
Compare changes
@@ -216,21 +216,49 @@ class ShareholderRegisterFormatterService implements ShareholderRegisterFormatte
}
/**
* Get share types with quantities for share_ids.
* Get share quantity grouped by a share field for share_ids.
*/
public function shareIdsToShareTypes(array $share_ids) {
public function shareIdsFieldCountQuery(array $share_ids, string $field) {
if (!count($share_ids)) {
return [];
}
$query = \Drupal::database()->select('share', 'share')
->fields('share', ['share_type_id'])
->fields('share', [$field])
->condition('id', $share_ids, 'IN')
->groupBy("share_type_id");
->groupBy($field);
$query->addExpression('count(id)', 'share_count');
$result = $query->execute();
return $result->fetchAllAssoc('share_type_id');
return $result->fetchAllAssoc($field);
}
/**
* Get share types with quantities for share_ids.
*/
public function shareIdsToShareTypes(array $share_ids) {
return $this->shareIdsFieldCountQuery($share_ids, 'share_type_id');
}
/**
* Get share issues with quantities for share_ids.
*/
public function shareIdsToShareIssues(array $share_ids) {
return $this->shareIdsFieldCountQuery($share_ids, 'share_issue_id');
}
/**
* Get share issues with quantities for share_value.
*/
public function shareIdsToShareValues(array $share_ids) {
return $this->shareIdsFieldCountQuery($share_ids, 'share_value');
}
/**
* Get share issues with quantities for issue_premium.
*/
public function shareIdsToShareIssuePremiums(array $share_ids) {
return $this->shareIdsFieldCountQuery($share_ids, 'issue_premium');
}
/**
@@ -249,24 +277,6 @@ class ShareholderRegisterFormatterService implements ShareholderRegisterFormatte
return $share_type_ids;
}
/**
* Get share issues with quantities for share_ids.
*/
public function shareIdsToShareIssues(array $share_ids) {
if (!count($share_ids)) {
return [];
}
$query = \Drupal::database()->select('share', 'share')
->fields('share', ['share_issue_id'])
->condition('id', $share_ids, 'IN')
->groupBy("share_issue_id");
$query->addExpression('count(id)', 'share_count');
$result = $query->execute();
return $result->fetchAllAssoc('share_issue_id');
}
/**
* Get share issues with quantities for draft issue transactions.
*/