Skip to content
Snippets Groups Projects
Commit cbca3c2f authored by Erik Hommel's avatar Erik Hommel
Browse files

fix #72 make financial type multi select

parent df41b0f1
Branches
Tags
No related merge requests found
......@@ -30,12 +30,12 @@ class CRM_CivirulesConditions_Contribution_FinancialType extends CRM_Civirules_C
$contribution = $triggerData->getEntityData('Contribution');
switch ($this->conditionParams['operator']) {
case 0:
if ($contribution['financial_type_id'] == $this->conditionParams['financial_type_id']) {
if (in_array($contribution['financial_type_id'], $this->conditionParams['financial_type_id'])) {
$isConditionValid = TRUE;
}
break;
case 1:
if ($contribution['financial_type_id'] != $this->conditionParams['financial_type_id']) {
if (!in_array($contribution['financial_type_id'], $this->conditionParams['financial_type_id'])) {
$isConditionValid = TRUE;
}
break;
......@@ -65,19 +65,25 @@ class CRM_CivirulesConditions_Contribution_FinancialType extends CRM_Civirules_C
* @access public
*/
public function userFriendlyConditionParams() {
$financialType = new CRM_Financial_BAO_FinancialType();
$financialType->id = $this->conditionParams['financial_type_id'];
$operator = null;
$friendlyText = "";
if ($this->conditionParams['operator'] == 0) {
$operator = 'equals';
$friendlyText = 'Financial Type is one of: ';
}
if ($this->conditionParams['operator'] == 1) {
$operator = 'is not equal to';
$friendlyText = 'Financial Type is NOT one of: ';
}
if ($financialType->find(true)) {
return 'Financial type '.$operator.' '.$financialType->name;
$finText = array();
foreach ($this->conditionParams['financial_type_id'] as $finTypeId) {
$financialType = new CRM_Financial_BAO_FinancialType();
$financialType->id = $finTypeId;
if ($financialType->find(true)) {
$finText[] = $financialType->name;
}
}
return '';
if (!empty($finText)) {
$friendlyText .= implode(", ", $finText);
}
return $friendlyText;
}
/**
......
......@@ -17,10 +17,10 @@ class CRM_CivirulesConditions_Form_Contribution_FinancialType extends CRM_Civiru
$this->add('hidden', 'rule_condition_id');
$financialTypes = CRM_Civirules_Utils::getFinancialTypes();
$financialTypes[0] = ts('- select -');
asort($financialTypes);
$this->add('select', 'financial_type_id', ts('Financial type'), $financialTypes, true);
$this->add('select', 'operator', ts('Operator'), array('equals', 'is not equal to'), true);
$this->add('select', 'financial_type_id', ts('Financial Type(s)'), $financialTypes, true,
array('id' => 'financial_type_ids', 'multiple' => 'multiple','class' => 'crm-select2'));
$this->add('select', 'operator', ts('Operator'), array('is one of', 'is NOT one of'), true);
$this->addButtons(array(
array('type' => 'next', 'name' => ts('Save'), 'isDefault' => TRUE,),
......@@ -56,7 +56,6 @@ class CRM_CivirulesConditions_Form_Contribution_FinancialType extends CRM_Civiru
$data['operator'] = $this->_submitValues['operator'];
$this->ruleCondition->condition_params = serialize($data);
$this->ruleCondition->save();
parent::postProcess();
}
}
\ No newline at end of file
......@@ -5,9 +5,13 @@
<div class="content">{$form.operator.html}</div>
<div class="clear"></div>
</div>
<div class="crm-section">
<div class="label">{$form.financial_type_id.label}</div>
<div class="content">{$form.financial_type_id.html}</div>
<div class="crm-section sector-section">
<div class="label">
<label for="financial_type-select">{ts}Financial Type(s){/ts}</label>
</div>
<div class="content crm-select-container" id="financial_type_block">
{$form.financial_type_id.html}
</div>
<div class="clear"></div>
</div>
</div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment