/**
  * Fetch chargify active billing
  *
  * @param int|string $id account_id
  * @return Accounts_Model_Billing|null
  */
 public function fetchChargifyActiveBillingByUserId($id)
 {
     $this->checkAcl('read');
     $accountGateway = new Accounts_Model_AccountGateway();
     $billingId = $accountGateway->fetchBillingIdByUserId($id);
     $cache = Zend_Controller_Action_HelperBroker::getStaticHelper('Cache')->getManager()->getCache('database');
     $cacheKey = md5('billingById_' . $billingId);
     //        if ((!$billing = $cache->load($cacheKey))) {
     $table = new Accounts_Model_DbTable_Billing();
     $select = $table->select();
     $select->from($table)->where('billing_id = ?', $billingId);
     $row = $table->fetchRow($select);
     if (null === $row) {
         return null;
     } else {
         if (is_object($row)) {
             $billing = $row->toArray();
             $chargify = Zend_Controller_Action_HelperBroker::getStaticHelper('Chargify');
             $chargeData = $chargify->get_customer_subscriptions($billing['billing_chargifyid']);
             $billing['billing_ccfirstname'] = $chargeData[0]['credit_card']['first_name'];
             $billing['billing_cclastname'] = $chargeData[0]['credit_card']['last_name'];
             $billing['billing_cctype'] = $chargeData[0]['credit_card']['card_type'];
             $billing['billing_ccnum'] = $chargeData[0]['credit_card']['masked_card_number'];
             $billing['billing_expmonth'] = $chargeData[0]['credit_card']['expiration_month'];
             $billing['billing_expyear'] = $chargeData[0]['credit_card']['expiration_year'];
             //			}
             //	        $cache->save($billing, $cacheKey, array('billing'));
         }
     }
     return $billing;
 }