crm-bij1rules/CRM/Bij1rules/Actions/Contact/GenereerLidnummer.php

60 lines
1.8 KiB
PHP
Executable File

<?php
use CRM_Bij1rules_ExtensionUtil as E;
/**
* Specifieke action voor BIJ1 om een lidnummer voor een nieuw lid te genereren
*
* @author Erik Hommel (CiviCooP) <erik.hommel@civicoop.org>
* @license http://www.gnu.org/licenses/agpl-3.0.html
*/
class CRM_Bij1rules_Actions_Contact_GenereerLidnummer extends CRM_Civirules_Action {
/**
* Method to perform the actual action
*
* @param CRM_Civirules_TriggerData_TriggerData $triggerData
* @throws
*/
public function processAction(CRM_Civirules_TriggerData_TriggerData $triggerData) {
$contactId = (int) $triggerData->getContactId();
if ($contactId) {
$lid = new CRM_Bij1algemeen_Lid();
// genereer lidnummer, alleen als contact nog geen lidnummer heeft
if (!$lid->heeftLidNummer($contactId)) {
$maxLid = $lid->haalLaatsteLidNummer();
$maxLid++;
$lid->bewaar($contactId, $maxLid);
$lid->bewaarLaatsteLidnummer($maxLid);
}
}
}
/**
* Returns a redirect url to extra data input from the user after adding a action
* Return false if you do not need extra data input
*
* @param int $ruleActionId
* @return bool|string
* @access public
*/
public function getExtraDataInputUrl($ruleActionId) {
return FALSE;
}
/**
* This function validates whether this action works with the selected trigger.
*
* This function could be overriden in child classes to provide additional validation
* whether an action is possible in the current setup.
*
* @param CRM_Civirules_Trigger $trigger
* @param CRM_Civirules_BAO_Rule $rule
* @return bool
*/
public function doesWorkWithTrigger(CRM_Civirules_Trigger $trigger, CRM_Civirules_BAO_Rule $rule) {
return $trigger->doesProvideEntities(['Contact']);
}
}