function buildQuickForm() { $this->addElement('select', 'membership_record', ts('Select Membership'), array('' => ts('Loading...'))); $this->addElement('select', 'contribution_recur_record', ts('Select Recur Record'), array('' => ts('Loading...'))); //$this->addElement('text', 'contact_name', 'Contact', array('size' => 50, 'maxlength' => 255)); $this->addEntityRef('contact_name', ts('Contact'), array('create' => FALSE, 'api' => array('extra' => array('email')))); $this->addElement('hidden', 'cid', 'cid'); $this->addElement('text', 'reference_number', 'Smart Debit Reference', array('size' => 50, 'maxlength' => 255)); $this->addButtons(array(array('type' => 'upload', 'name' => ts('Next')))); // Get the smart Debit mandate details require_once 'CRM/SmartdebitReconciliation/Form/SmartdebitReconciliationList.php'; $smartDebitResponse = CRM_SmartdebitReconciliation_Form_SmartdebitReconciliationList::getSmartDebitPayments(CRM_Utils_Array::value('reference_number', $_GET)); $smartDebitMandate = $smartDebitResponse[0]; // Display the smart debit payments details $el = $this->addElement('text', 'first_name', 'First Name', array('size' => 50, 'maxlength' => 255)); $el->freeze(); $el = $this->addElement('text', 'last_name', 'Last Name', array('size' => 50, 'maxlength' => 255)); $el->freeze(); $el = $this->addElement('text', 'email_address', 'Email Address', array('size' => 50, 'maxlength' => 255)); $el->freeze(); $el = $this->addElement('text', 'regular_amount', 'Amount', array('size' => 50, 'maxlength' => 255)); $el->freeze(); $el = $this->addElement('text', 'start_date', 'Start Date', array('size' => 50, 'maxlength' => 255)); $el->freeze(); $this->assign('SDMandateArray', $smartDebitMandate); $this->assign('memStatusCurrent', self::c_current_membership_status); //MV, to set the current membership as default, when ajax loading $cid = CRM_Utils_Array::value('cid', $_GET); $this->assign('cid', $cid); $this->addFormRule(array('CRM_SmartdebitReconciliation_Form_MembershipRecurDetails', 'formRule'), $this); parent::buildQuickForm(); }
function smartdebit_civicrm_pageRun(&$page) { $pageName = $page->getVar('_name'); // To avoid standalone new contribution fail if ($pageName == 'CRM_Contribute_Page_Tab' && $page->getVar('_contactId')) { $paymentProcessorType = CRM_Core_PseudoConstant::paymentProcessorType(false, null, 'name'); if (!CRM_Utils_Array::key('Smart Debit', $paymentProcessorType)) { return; } $query = "\n SELECT cr.id, cr.trxn_id FROM civicrm_contribution_recur cr\n INNER JOIN civicrm_payment_processor cpp ON cpp.id = cr.payment_processor_id\n INNER JOIN civicrm_payment_processor_type cppt ON cppt.id = cpp.payment_processor_type_id\n LEFT JOIN civicrm_option_value opva ON (cr.payment_instrument_id = opva.value)\n LEFT JOIN civicrm_option_group opgr ON (opgr.id = opva.option_group_id) \n WHERE cppt.name = %1 AND cr.contact_id = %2 AND opgr.name = %3 AND opva.label = %4"; $queryParams = array(1 => array('Smart Debit', 'String'), 2 => array($page->getVar('_contactId'), 'Int'), 3 => array('payment_instrument', 'String'), 4 => array('Direct Debit', 'String')); $dao = CRM_Core_DAO::executeQuery($query, $queryParams); $contributionRecurDetails = array(); while ($dao->fetch()) { $smartDebitResponse = CRM_SmartdebitReconciliation_Form_SmartdebitReconciliationList::getSmartDebitPayments($dao->trxn_id); foreach ($smartDebitResponse[0] as $key => $value) { $contributionRecurDetails[$dao->id][$key] = $value; } } $contributionRecurDetails = json_encode($contributionRecurDetails); $page->assign('contributionRecurDetails', $contributionRecurDetails); $page->assign('smartdebit', TRUE); } }