function buildQuickForm() { $contact_id = 0; $bank_accounts = array(); if (isset($_REQUEST['cid'])) { $contact_id = (int) $_REQUEST['cid']; $bank_account = new CRM_Banking_BAO_BankAccount(); $bank_account->contact_id = $contact_id; $bank_account->find(); while ($bank_account->fetch()) { $bank_account_data = $bank_account->toArray(); $bank_account_data['references'] = $bank_account->getReferences(); $bank_account_data['data_parsed'] = json_decode($bank_account->data_parsed, true); $bank_accounts[$bank_account->id] = $bank_account_data; } } $this->assign('bank_accounts', $bank_accounts); $this->assign('bank_accounts_json', json_encode($bank_accounts)); $this->assign('contact_id', $contact_id); // load all account types $option_group = civicrm_api3('OptionGroup', 'getsingle', array('name' => 'civicrm_banking.reference_types')); $reference_types = civicrm_api3('OptionValue', 'get', array('option_group_id' => $option_group['id'], 'is_reserved' => 0)); $this->assign('reference_types_json', json_encode($reference_types['values'])); $reference_type_list = array(); $this->assign('reference_types', $reference_types['values']); foreach ($reference_types['values'] as $reference_type_id => $reference_type) { $reference_type_list[$reference_type_id] = "{$reference_type['label']} ({$reference_type['name']})"; } // load countries $country_id2iso = CRM_Core_PseudoConstant::countryIsoCode(); $country_iso2id = array_flip($country_id2iso); $country_id2name = CRM_Core_PseudoConstant::country(); $countries = array('' => ts("Unknown")); foreach ($country_iso2id as $iso => $id) { if (!empty($country_id2name[$id])) { $countries[$iso] = $country_id2name[$id]; } } // load settings $this->assign('reference_normalisation', (int) CRM_Core_BAO_Setting::getItem('CiviBanking', 'reference_normalisation')); $this->assign('reference_validation', (int) CRM_Core_BAO_Setting::getItem('CiviBanking', 'reference_validation')); // ACCOUNT REFRENCE ITEMS $this->add('hidden', 'contact_id', $contact_id, true); $this->add('hidden', 'reference_id'); $reference_type = $this->add('select', 'reference_type', ts("Bank Account Type"), $reference_type_list, true); // set last value $reference_type->setSelected(CRM_Core_BAO_Setting::getItem('CiviBanking', 'account.default_reference_id')); $reference_type = $this->add('text', 'reference', ts("Bank Account Number"), array('size' => 40), true); // BANK ITEMS $this->add('hidden', 'ba_id'); $this->addElement('text', 'bic', ts("BIC"), array('size' => 40), false); $this->addElement('text', 'bank_name', ts("Bank Name"), array('size' => 40), false); $country = $this->add('select', 'country', ts("Country"), $countries, false); // set last value $country->setSelected(CRM_Core_BAO_Setting::getItem('CiviBanking', 'account.default_country')); $this->addButtons(array(array('type' => 'submit', 'name' => ts('Save'), 'isDefault' => TRUE), array('type' => 'cancel', 'name' => ts('Cancel'), 'isDefault' => FALSE))); parent::buildQuickForm(); }
function run() { if (isset($_REQUEST['cid'])) { $contact_id = (int) $_REQUEST['cid']; $bank_accounts = array(); $bank_account = new CRM_Banking_BAO_BankAccount(); $bank_account->contact_id = $contact_id; $bank_account->find(); while ($bank_account->fetch()) { $bank_account_data = $bank_account->toArray(); $bank_account_data['references'] = $bank_account->getReferences(); $bank_account_data['data_parsed'] = json_decode($bank_account->data_parsed, true); $bank_accounts[$bank_account->id] = $bank_account_data; } $this->assign('results', $bank_accounts); $this->assign('contact_id', $contact_id); // look up IBAN reference type FIXME: remove when we have proper account editor $result = civicrm_api('OptionValue', 'getsingle', array('version' => 3, 'name' => 'IBAN', 'value' => 'IBAN')); $this->assign('iban_type_id', $result['id']); } parent::run(); }