Skip to content
Snippets Groups Projects
Commit 3d947870 authored by jaapjansma's avatar jaapjansma
Browse files

fixed #18 period parameters for xth day of contributing

parent d3062046
Branches
Tags
No related merge requests found
......@@ -48,6 +48,16 @@ FROM civicrm_contribution WHERE contact_id = %1 AND civicrm_contribution.contrib
$params = array(
1 => array($contact_id, 'Positive'),
2 => array(CRM_Civirules_Utils::getContributionStatusIdWithName('Completed'), 'Positive'));
$periodStartDate = CRM_CivirulesConditions_Utils_Period::convertPeriodToStartDate($this->conditionParams['period']);
$periodEndDate = CRM_CivirulesConditions_Utils_Period::convertPeriodToEndDate($this->conditionParams['period']);
if ($periodStartDate) {
$query .= " AND DATE(`receive_date`) >= '".$periodStartDate->format('Y-m-d')."'";
}
if ($periodEndDate) {
$query .= " AND DATE(`receive_date`) <= '".$periodEndDate->format('Y-m-d')."'";
}
$dao = CRM_Core_DAO::executeQuery($query, $params);
if ($dao->fetch()) {
......@@ -130,6 +140,14 @@ FROM civicrm_contribution WHERE contact_id = %1 AND civicrm_contribution.contrib
$operator = 'is equal to';
break;
}
return 'Distinct number of contributing days '.$operator.' '.$this->conditionParams['no_of_days'];
$periods = CRM_CivirulesConditions_Utils_Period::Options();
if (isset($periods[$this->conditionParams['period']])) {
$period = ts('in the ').$periods[$this->conditionParams['period']];
} else {
$period = ts('all time');
}
return 'Distinct number of contributing days '.$operator.' '.$this->conditionParams['no_of_days'].' '.$period;
}
}
\ No newline at end of file
......@@ -27,6 +27,8 @@ class CRM_CivirulesConditions_Form_Contribution_DistinctContributingDay extends
$this->addRule('no_of_days','Number of Days must be a whole number','numeric');
$this->addRule('no_of_days','Number of Days must be a whole number','nopunctuation');
$this->add('select', 'period', ts('Period'), array('' => ts('All time')) + CRM_CivirulesConditions_Utils_Period::Options());
$this->addButtons(array(
array('type' => 'next', 'name' => ts('Save'), 'isDefault' => TRUE,),
array('type' => 'cancel', 'name' => ts('Cancel'))));
......@@ -47,6 +49,10 @@ class CRM_CivirulesConditions_Form_Contribution_DistinctContributingDay extends
if (!empty($data['no_of_days'])) {
$defaultValues['no_of_days'] = $data['no_of_days'];
}
if (!empty($data['period'])) {
$defaultValues['period'] = $data['period'];
}
return $defaultValues;
}
......@@ -59,6 +65,7 @@ class CRM_CivirulesConditions_Form_Contribution_DistinctContributingDay extends
public function postProcess() {
$data['operator'] = $this->_submitValues['operator'];
$data['no_of_days'] = $this->_submitValues['no_of_days'];
$data['period'] = $this->_submitValues['period'];
$this->ruleCondition->condition_params = serialize($data);
$this->ruleCondition->save();
......
<h3>{$ruleConditionHeader}</h3>
<div class="crm-block crm-form-block crm-civirule-rule_condition-block-contribution_distinctcontributingday">
<div class="crm-section">
<div class="label">{$form.period.label}</div>
<div class="content">{$form.period.html}</div>
<div class="clear"></div>
</div>
<div class="crm-section">
<div class="label">{$form.operator.label}</div>
<div class="content">{$form.operator.html}</div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment