function display($tpl = null) { $mainframe =& JFactory::getApplication(); JToolBarHelper::title('RSMembership!', 'rsmembership'); JSubMenuHelper::addEntry(JText::_('RSM_TRANSACTIONS'), 'index.php?option=com_rsmembership&view=transactions'); JSubMenuHelper::addEntry(JText::_('RSM_MEMBERSHIPS'), 'index.php?option=com_rsmembership&view=memberships'); JSubMenuHelper::addEntry(JText::_('RSM_CATEGORIES'), 'index.php?option=com_rsmembership&view=categories'); JSubMenuHelper::addEntry(JText::_('RSM_MEMBERSHIP_EXTRAS'), 'index.php?option=com_rsmembership&view=extras'); JSubMenuHelper::addEntry(JText::_('RSM_MEMBERSHIP_UPGRADES'), 'index.php?option=com_rsmembership&view=upgrades'); JSubMenuHelper::addEntry(JText::_('RSM_COUPONS'), 'index.php?option=com_rsmembership&view=coupons'); JSubMenuHelper::addEntry(JText::_('RSM_PAYMENT_INTEGRATIONS'), 'index.php?option=com_rsmembership&view=payments'); JSubMenuHelper::addEntry(JText::_('RSM_FILES'), 'index.php?option=com_rsmembership&view=files'); JSubMenuHelper::addEntry(JText::_('RSM_FILE_TERMS'), 'index.php?option=com_rsmembership&view=terms'); JSubMenuHelper::addEntry(JText::_('RSM_USERS'), 'index.php?option=com_rsmembership&view=users'); JSubMenuHelper::addEntry(JText::_('RSM_FIELDS'), 'index.php?option=com_rsmembership&view=fields'); JSubMenuHelper::addEntry(JText::_('RSM_REPORTS'), 'index.php?option=com_rsmembership&view=reports', true); JSubMenuHelper::addEntry(JText::_('RSM_CONFIGURATION'), 'index.php?option=com_rsmembership&view=configuration'); JSubMenuHelper::addEntry(JText::_('RSM_UPDATES'), 'index.php?option=com_rsmembership&view=updates'); $params = array(); $params['allowAllClose'] = true; $pane =& JPane::getInstance('sliders', $params); $this->assignRef('pane', $pane); $date = RSMembershipHelper::getCurrentDate(); if (RSMembershipHelper::isJ16()) { $date =& JFactory::getDate(); $date = $date->toUnix(); } $this->assignRef('from_calendar', JHTML::_('calendar', '', 'from_date', 'rsm_from_calendar')); $this->assignRef('to_calendar', JHTML::_('calendar', date('Y-m-d', $date), 'to_date', 'rsm_to_calendar')); $this->assign('user_id', $this->get('userId')); $this->assign('report', $this->get('report')); $this->assign('count_memberships', $this->get('countMemberships')); $color_pickers = !empty($this->report) && $this->report == 2 ? '4' : $this->count_memberships; $this->assign('color_pickers', $color_pickers); $lists['transaction_types'] = $this->get('transactiontypes'); $lists['memberships'] = $this->get('memberships'); $lists['memberships_transactions'] = $this->get('membershipstransactions'); $units = array(); $units[] = JHTML::_('select.option', 'day', JText::_('RSM_DAY')); $units[] = JHTML::_('select.option', 'month', JText::_('RSM_MONTH')); $units[] = JHTML::_('select.option', 'quarter', JText::_('RSM_QUARTER')); $units[] = JHTML::_('select.option', 'year', JText::_('RSM_YEAR')); $lists['unit'] = JHTML::_('select.genericlist', $units, 'unit'); $reports = array(); $reports[] = JHTML::_('select.option', 'report_1', JText::_('RSM_REPORT_1')); $reports[] = JHTML::_('select.option', 'report_2', JText::_('RSM_REPORT_2')); $lists['report'] = JHTML::_('select.genericlist', $reports, 'report', 'onchange="rsm_check_report(this.value);"'); $gateways = $this->assign('gateways', $this->get('gateways')); $viewin = array(); $viewin[] = JHTML::_('select.option', 60, JText::_('RSM_MINUTES')); $viewin[] = JHTML::_('select.option', 3600, JText::_('RSM_HOURS')); $viewin[] = JHTML::_('select.option', 86400, JText::_('RSM_DAYS')); $lists['viewin'] = JHTML::_('select.genericlist', $viewin, 'viewin', 'style="display: none;"'); $this->assignRef('lists', $lists); $this->assign('customer', $this->get('customer')); if ($this->get('ie')) { JError::raiseWarning(500, JText::_('RSM_IE_WARNING')); } parent::display($tpl); }
function display($tpl = null) { $mainframe =& JFactory::getApplication(); JToolBarHelper::title('RSMembership!', 'rsmembership'); JSubMenuHelper::addEntry(JText::_('RSM_TRANSACTIONS'), 'index.php?option=com_rsmembership&view=transactions'); JSubMenuHelper::addEntry(JText::_('RSM_MEMBERSHIPS'), 'index.php?option=com_rsmembership&view=memberships'); JSubMenuHelper::addEntry(JText::_('RSM_CATEGORIES'), 'index.php?option=com_rsmembership&view=categories'); JSubMenuHelper::addEntry(JText::_('RSM_MEMBERSHIP_EXTRAS'), 'index.php?option=com_rsmembership&view=extras'); JSubMenuHelper::addEntry(JText::_('RSM_MEMBERSHIP_UPGRADES'), 'index.php?option=com_rsmembership&view=upgrades'); JSubMenuHelper::addEntry(JText::_('RSM_COUPONS'), 'index.php?option=com_rsmembership&view=coupons', true); JSubMenuHelper::addEntry(JText::_('RSM_PAYMENT_INTEGRATIONS'), 'index.php?option=com_rsmembership&view=payments'); JSubMenuHelper::addEntry(JText::_('RSM_FILES'), 'index.php?option=com_rsmembership&view=files'); JSubMenuHelper::addEntry(JText::_('RSM_FILE_TERMS'), 'index.php?option=com_rsmembership&view=terms'); JSubMenuHelper::addEntry(JText::_('RSM_USERS'), 'index.php?option=com_rsmembership&view=users'); JSubMenuHelper::addEntry(JText::_('RSM_FIELDS'), 'index.php?option=com_rsmembership&view=fields'); JSubMenuHelper::addEntry(JText::_('RSM_REPORTS'), 'index.php?option=com_rsmembership&view=reports'); JSubMenuHelper::addEntry(JText::_('RSM_CONFIGURATION'), 'index.php?option=com_rsmembership&view=configuration'); JSubMenuHelper::addEntry(JText::_('RSM_UPDATES'), 'index.php?option=com_rsmembership&view=updates'); $task = JRequest::getVar('task', ''); if ($task == 'edit') { JToolBarHelper::title('RSMembership! <small>[' . JText::_('RSM_EDIT_TERM') . ']</small>', 'rsmembership'); JToolBarHelper::apply(); JToolBarHelper::save(); JToolBarHelper::cancel(); $this->assignRef('editor', JFactory::getEditor()); $row = $this->get('coupon'); $this->assignRef('row', $row); $calendars['date_start'] = JHTML::calendar($row->date_start > 0 ? date('Y-m-d', RSMembershipHelper::getCurrentDate($row->date_start)) : '', 'date_start', 'date_start'); $calendars['date_end'] = JHTML::calendar($row->date_end > 0 ? date('Y-m-d', RSMembershipHelper::getCurrentDate($row->date_end)) : '', 'date_end', 'date_end'); $lists['items'] = JHTML::_('select.genericlist', $this->get('memberships'), 'items[]', 'size="5" multiple="multiple"', 'id', 'name', $row->items); $lists['discount_type'] = JHTML::_('select.booleanlist', 'discount_type', 'class="inputbox"', $row->discount_type, JText::_('RSM_FIXED_VALUE'), JText::_('RSM_PERCENT'), 'discount_type'); $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $row->published); $this->assignRef('lists', $lists); $this->assignRef('calendars', $calendars); } else { JToolBarHelper::addNewX('edit'); JToolBarHelper::editListX('edit'); JToolBarHelper::spacer(); JToolBarHelper::publishList(); JToolBarHelper::unpublishList(); JToolBarHelper::spacer(); JToolBarHelper::deleteList('RSM_CONFIRM_DELETE'); $filter_state = $mainframe->getUserStateFromRequest('rsmembership.filter_state', 'filter_state'); $mainframe->setUserState('rsmembership.filter_state', $filter_state); $lists['state'] = JHTML::_('grid.state', $filter_state); $this->assignRef('lists', $lists); $this->assignRef('sortColumn', JRequest::getVar('filter_order', 'date_added')); $this->assignRef('sortOrder', JRequest::getVar('filter_order_Dir', 'DESC')); $this->assignRef('coupons', $this->get('coupons')); $this->assignRef('pagination', $this->get('pagination')); $filter_word = JRequest::getString('search', ''); $this->assignRef('filter_word', $filter_word); } parent::display($tpl); }
function getMembership() { $cid = JRequest::getInt('cid', 0); $row =& JTable::getInstance('RSMembership_Membership_Users', 'Table'); $row->load($cid); $user_id = JRequest::getInt('user_id'); if ($user_id > 0) { $row->user_id = $user_id; } $row->user = JFactory::getUser($row->user_id); if ($row->id == 0) { $now = RSMembershipHelper::getCurrentDate(); $row->membership_start = $now; $row->membership_end = $now; } if (!empty($row->extras)) { $row->extras = explode(',', $row->extras); $row->noextra = false; } else { $row->noextra = true; } return $row; }
foreach ($this->transactions as $item) { ?> <tr class="sectiontableentry<?php echo $k . $this->escape($this->params->get('pageclass_sfx')); ?> " > <td align="right"><?php echo $this->pagination->getRowOffset($i); ?> </td> <td><?php echo JText::_('RSM_TRANSACTION_' . strtoupper($item->type)); ?> </td> <td><?php echo date($this->date_format, RSMembershipHelper::getCurrentDate($item->date)); ?> </td> <td><?php echo RSMembershipHelper::getPriceFormat($item->price); ?> </td> <td><?php echo $item->gateway; ?> </td> <td><?php echo JText::_('RSM_TRANSACTION_STATUS_' . strtoupper($item->status)); ?> </td> </tr>
/** * Check a code to see if it is expired based on creation time * * @access private * @since 2.0.1 * @param $creation_time unix timestamp of code creation time * @return bool true if code has expired, false if not */ function isCodeExpired() { $session = JFactory::getSession(); $creation_time = $session->get('com_rsmembership.securimage.ctime', 0); $expired = true; if (!is_numeric($this->expiry_time) || $this->expiry_time < 1) { $expired = false; } else { if (RSMembershipHelper::getCurrentDate() - $creation_time < $this->expiry_time) { $expired = false; } } return $expired; }
function checkCoupon(&$membership, $verbose = true) { // Check if entered any coupon code $coupon_entered = $this->getCoupon(); if (!$coupon_entered) { return true; } // Check if coupon exists $this->_db->setQuery("SELECT * FROM #__rsmembership_coupons WHERE `name`='" . $this->_db->getEscaped($coupon_entered) . "' AND `published`='1'"); $coupon = $this->_db->loadObject(); if (!$coupon) { if ($verbose) { JError::raiseWarning(500, JText::_('RSM_COUPON_INVALID')); } return $this->removeCoupon(); } $now = RSMembershipHelper::getCurrentDate(); // Check if promotion hasn't started yet if ($coupon->date_start && RSMembershipHelper::getCurrentDate($coupon->date_start) > $now) { return $this->removeCoupon(); } // Check if expired if ($coupon->date_end && RSMembershipHelper::getCurrentDate($coupon->date_end) < $now) { if ($verbose) { JError::raiseWarning(500, JText::_('RSM_COUPON_CODE_EXPIRED')); } return $this->removeCoupon(); } // Check if valid for this membership $this->_db->setQuery("SELECT `membership_id` FROM #__rsmembership_coupon_items WHERE `coupon_id`='" . $coupon->id . "'"); $coupon->items = $this->_db->loadResultArray(); if (count($coupon->items) && !in_array($membership->id, $coupon->items)) { if ($verbose) { JError::raiseWarning(500, JText::_('RSM_COUPON_CODE_NOT_VALID_FOR_MEMBERSHIP')); } return $this->removeCoupon(); } // Check max uses if ($coupon->max_uses > 0) { $this->_db->setQuery("SELECT COUNT(id) FROM #__rsmembership_transactions WHERE `status`='completed' AND `coupon`='" . $this->_db->getEscaped($coupon->name) . "'"); $used = $this->_db->loadResult(); if ($used >= $coupon->max_uses) { if ($verbose) { JError::raiseWarning(500, JText::_('RSM_COUPON_MAX_USAGE')); } return $this->removeCoupon(); } } if ($coupon->discount_type == 0) { $coupon->discount_price = $membership->price * ($coupon->discount_price / 100); } $membership->price -= $coupon->discount_price; if ($membership->price < 0) { $membership->price = 0; } return true; }
?> " class="modal" rel="{handler: 'iframe', size: {x: 660, y: 475}}"><?php echo $row->name != '' ? $row->name : JText::_('RSM_NO_TITLE'); ?> </a></td> <td> <?php echo RSMembershipHelper::getPriceFormat($row->price); ?> </td> <td><?php echo date(RSMembershipHelper::getConfig('date_format'), RSMembershipHelper::getCurrentDate($row->membership_start)); ?> </td> <td><?php echo $row->membership_end > 0 ? date(RSMembershipHelper::getConfig('date_format'), RSMembershipHelper::getCurrentDate($row->membership_end)) : JText::_('RSM_UNLIMITED'); ?> </td> <td><?php echo JText::_('RSM_STATUS_' . $row->status); ?> </td> <td align="center"><?php echo JHTML::_('image', JURI::root() . 'administrator/' . $image, JText::_('RSM_STATUS')); ?> </td> <td align="center"><?php echo JHTML::_('grid.published', $row, $i); ?> </td> </tr>
function getMembership() { $app = JFactory::getApplication(); $cid = $app->input->get('cid', 0, 'int'); $row = JTable::getInstance('Membership_Subscriber', 'RSMembershipTable'); $row->load($cid); $user_id = $app->input->get('user_id', 0, 'int'); if ($user_id > 0) { $row->user_id = $user_id; } $row->user = JFactory::getUser($row->user_id); if ($row->id == 0) { $now = RSMembershipHelper::getCurrentDate(); $row->membership_start = $now; $row->membership_end = $now; } if (!empty($row->extras)) { $row->extras = explode(',', $row->extras); $row->noextra = false; } else { $row->noextra = true; } return $row; }
?> </span> <?php echo JHTML::calendar($this->row->membership_start, 'membership_start', 'membership_start', '%s', 'onchange="rsmembership_date(this.value,\'membership_start\')" style="display: none"'); ?> </td> </tr> <tr> <td width="200"><span class="hasTip" title="<?php echo JText::_('RSM_MEMBERSHIP_END_DESC'); ?> "><label for="membership_end"><?php echo JText::_('RSM_MEMBERSHIP_END'); ?> </label></span></td> <td><span id="membership_end_ajax"><?php echo date(RSMembershipHelper::getConfig('date_format'), RSMembershipHelper::getCurrentDate($this->row->membership_end)); ?> </span> <?php echo JHTML::calendar($this->row->membership_end, 'membership_end', 'membership_end', '%s', 'onchange="rsmembership_date(this.value,\'membership_end\')" style="display: none"'); ?> <input type="checkbox" name="unlimited" id="change_unlimited" value="1" onchange="rsmembership_change_unlimited(this);" <?php echo $this->row->membership_end == 0 ? 'checked="checked"' : ''; ?> /> <label for="change_unlimited"><?php echo JText::_('RSM_UNLIMITED'); ?> </label> </td> </tr> <tr> <td width="200"><span class="hasTip" title="<?php
echo date(RSMembershipHelper::getConfig('date_format'), RSMembershipHelper::getCurrentDate($row->date_added)); ?> </td> <td><a href="<?php echo JRoute::_('index.php?option=com_rsmembership&controller=coupons&task=edit&cid=' . $row->id); ?> "><?php echo $row->name != '' ? $row->name : JText::_('RSM_NO_TITLE'); ?> </a></td> <td nowrap="nowrap"><?php echo $row->date_start ? date(RSMembershipHelper::getConfig('date_format'), RSMembershipHelper::getCurrentDate($row->date_start)) : '-'; ?> </td> <td nowrap="nowrap"><?php echo $row->date_end ? date(RSMembershipHelper::getConfig('date_format'), RSMembershipHelper::getCurrentDate($row->date_end)) : '-'; ?> </td> <td><?php echo $row->discount_type ? RSMembershipHelper::getPriceFormat($row->discount_price) : $row->discount_price . '%'; ?> </td> <td align="center"><?php echo JHTML::_('grid.published', $row, $i); ?> </td> </tr> <?php $i++; $k = 1 - $k; }
function getYears() { $return = array(); $tmp = new stdClass(); $tmp->value = 0; $tmp->text = JText::_('RSM_EVERY_YEAR'); $return[] = $tmp; $max = date('Y', RSMembershipHelper::getCurrentDate()); for ($i = $max; $i <= $max + 50; $i++) { $tmp = new stdClass(); $tmp->value = $i; $tmp->text = $i; $return[] = $tmp; } return $return; }
function ajax_date() { $date = RSMembershipHelper::getCurrentDate(JRequest::getInt('date')); echo date(RSMembershipHelper::getConfig('date_format'), $date); exit; }
<td width="30%" height="40"><?php echo JText::_('RSM_MEMBERSHIP_START'); ?> :</td> <td><?php echo date($this->date_format, RSMembershipHelper::getCurrentDate($this->membership->membership_start)); ?> </td> </tr> <tr> <td width="30%" height="40"><?php echo JText::_('RSM_MEMBERSHIP_END'); ?> :</td> <td><?php echo $this->membership->membership_end > 0 ? date($this->date_format, RSMembershipHelper::getCurrentDate($this->membership->membership_end)) : JText::_('RSM_UNLIMITED'); ?> </td> </tr> <?php } if (!empty($this->membershipterms->id)) { ?> <tr> <td width="30%" height="40"><?php echo JText::_('RSM_TERM'); ?> :</td> <td><a href="<?php echo JRoute::_('index.php?option=com_rsmembership&view=terms&cid=' . $this->membershipterms->id . ':' . JFilterOutput::stringURLSafe($this->membershipterms->name)); ?>
<?php $k = 0; $i = 0; $n = count($this->row->logs); foreach ($this->row->logs as $row) { ?> <tr class="row<?php echo $k; ?> "> <td><?php echo $i + 1; ?> </td> <td><?php echo date(RSMembershipHelper::getConfig('date_format'), RSMembershipHelper::getCurrentDate($row->date)); ?> </td> <td><?php echo $row->ip; ?> </td> <td><?php echo $row->path; ?> </td> </tr> <?php $i++; $k = 1 - $k; }
function getReportData() { $return = array(); $filter = array(); $where = ""; // from, to $from_date = JRequest::getVar('from_date'); $to_date = JRequest::getVar('to_date'); $date_column = $this->getReport() == 'report_2' ? 'date' : 'membership_start'; if ($from_date || $to_date) { $start = @strtotime($from_date); $stop = @strtotime($to_date); if ($start && $stop) { $filter['date'] = " AND (`" . $date_column . "` > {$start} AND `" . $date_column . "` < {$stop})"; $where .= $filter['date']; } elseif ($start) { $filter['date'] = " AND `" . $date_column . "` > {$start}"; $where .= $filter['date']; } elseif ($stop) { $filter['date'] = " AND `" . $date_column . "` < {$stop}"; $where .= $filter['date']; } } $unit = JRequest::getVar('unit'); $format = 'Y-m-d'; if ($unit == 'day') { $format = 'Y-m-d'; } elseif ($unit == 'month') { $format = 'Y-m'; } elseif ($unit == 'year') { $format = 'Y'; } elseif ($unit == 'quarter') { $format = 'Y-m'; } $user_id = JRequest::getInt('user_id'); if (!empty($user_id)) { $filter['user_id'] = " AND user_id='" . $user_id . "'"; $where .= $filter['user_id']; } if ($this->getReport() == 'report_2') { $transaction_types = JRequest::getVar('transaction_types'); if (!empty($transaction_types)) { $filter['transaction_types'] = " AND `type` IN ('" . implode("', '", $transaction_types) . "')"; $where .= $filter['transaction_types']; } $gateways = JRequest::getVar('gateways'); if (!empty($gateways)) { $filter['gateways'] = " AND gateway IN ('" . implode("', '", $gateways) . "')"; $where .= $filter['gateways']; } $memberships = JRequest::getVar('memberships_transactions'); JArrayHelper::toInteger($memberships, array()); if (!empty($memberships) && !empty($transaction_types)) { $filter['membership_id'] = " AND ("; foreach ($memberships as $mem) { $filter['membership_id'] .= "params LIKE 'membership_id=" . $mem . "' "; $filter['membership_id'] .= " OR params LIKE '%;membership_id=" . $mem . "' "; $filter['membership_id'] .= " OR params LIKE 'membership_id=" . $mem . ";%' "; $filter['membership_id'] .= " OR params LIKE '%;membership_id=" . $mem . ";%' "; $filter['membership_id'] .= " OR params LIKE '%;membership_id=" . $mem . ";%' "; $filter['membership_id'] .= " OR params LIKE '%;from_id=" . $mem . ";%' "; $filter['membership_id'] .= " OR params LIKE '%;to_id=" . $mem . "' "; if ($mem != end($memberships)) { $filter['membership_id'] .= "OR "; } } $filter['membership_id'] .= ")"; $where .= $filter['membership_id']; } $status = JRequest::getVar('status_transactions'); if (!empty($status)) { $filter['status_transactions'] = " AND status IN ('" . strtolower(implode("' ,'", $status)) . "')"; $where .= $filter['status_transactions']; } } else { $memberships = JRequest::getVar('memberships'); JArrayHelper::toInteger($memberships, array()); if (!empty($memberships)) { $membership_column = $this->getReport() == 'report_2' ? 'params' : 'membership_id'; $filter['membership_id'] = " AND membership_id IN (" . implode(',', $memberships) . ")"; $where .= $filter['membership_id']; } $status = JRequest::getVar('status_memberships'); if (!empty($status)) { $filter['status_memberships'] = " AND status IN (" . strtolower(implode(',', $status)) . ")"; $where .= $filter['status_memberships']; } } $price_from = JRequest::getVar('price_from'); if (!empty($price_from)) { $filter['price_from'] = " AND price >= (" . $price_from . ")"; $where .= $filter['price_from']; } $price_to = JRequest::getVar('price_to'); if (!empty($price_to)) { $filter['price_to'] = " AND price <= (" . $price_to . ")"; $where .= $filter['price_to']; } // ordering $orderby = " ORDER BY `" . ($this->getReport() == 'report_2' ? 'date' : 'membership_start') . "` ASC"; switch ($this->getReport()) { // number of subscribers case 'report_1': // query $query = "SELECT membership_id, " . $date_column . " FROM #__rsmembership_membership_users WHERE 1"; $query = $query . $where . $orderby; $this->_db->setQuery($query); $subscribers = $this->_db->loadObjectList(); foreach ($memberships as $membership) { $membership = $this->getMembershipName($membership); $return['memberships'][$membership] = array(); } if (!empty($subscribers)) { foreach ($subscribers as $subscriber) { if ($unit == 'quarter') { $format = $this->getQuarter(RSMembershipHelper::getCurrentDate($subscriber->membership_start)); } $date = date($format, RSMembershipHelper::getCurrentDate($subscriber->membership_start)); $membership = $this->getMembershipName($subscriber->membership_id); @($return['units'][$date] = $date); @($return['memberships'][$membership][$date] += 1); @($return['totals'][$date] += 1); } } if (!empty($return['totals'])) { $this->min = $this->max = max($return['totals']); foreach ($return['units'] as $date) { foreach ($memberships as $membership) { $membership = $this->getMembershipName($membership); if (empty($return['memberships'][$membership][$date])) { $return['memberships'][$membership][$date] = 0; if (empty($return['totals'][$date])) { $return['totals'][$date] = 0; } } } // min if (!empty($return['totals'][$date])) { $this->min = min($this->min, $return['totals'][$date]); } } foreach ($return['memberships'] as $return_membership => $return_values) { ksort($return['memberships'][$return_membership]); } // total $this->total = array_sum($return['totals']); // avg $this->avg = floor(array_sum($return['totals']) / count($return['totals'])); } break; case 'report_2': // query $query = "SELECT id,type,params, " . $date_column . " FROM #__rsmembership_transactions WHERE 1"; $query = $query . $where . $orderby; $this->_db->setQuery($query); $transactions = $this->_db->loadObjectList(); if (!empty($transaction_types)) { foreach ($transaction_types as $type) { $return['transactions'][JText::_('RSM_TRANSACTION_' . strtoupper($type))] = array(); } } if (!empty($transactions)) { foreach ($transactions as $i => $transaction) { if ($unit == 'quarter') { $format = $this->getQuarter(RSMembershipHelper::getCurrentDate($transaction->{$date_column})); } $date = date($format, RSMembershipHelper::getCurrentDate($transaction->{$date_column})); @($return['units'][$date] = $date); @($return['transactions'][JText::_('RSM_TRANSACTION_' . strtoupper($transaction->type))][$date] += 1); @($return['totals'][$date] += 1); } } if (!empty($return['totals'])) { $this->min = $this->max = max($return['totals']); foreach ($return['units'] as $date) { foreach ($transactions as $transaction) { if (empty($return['transactions'][JText::_('RSM_TRANSACTION_' . strtoupper($transaction->type))][$date])) { $return['transactions'][JText::_('RSM_TRANSACTION_' . strtoupper($transaction->type))][$date] = 0; if (!empty($return['totals'][$date])) { $return['totals'][$date] = 0; } } } // min if (!empty($return['totals'][$date])) { $this->min = min($this->min, $return['totals'][$date]); } } foreach ($return['transactions'] as $return_transaction => $return_values) { ksort($return['transactions'][$return_transaction]); } // total $this->total = array_sum($return['totals']); // avg // $this->avg = floor($this->total/count($return['totals'])); //my avg $this->avg = ($this->min + $this->max) / 2; //die(var_dump($this->myavg)); } break; } unset($return['totals']); return $return; }
function calculateFixedDate($membership) { $date = JFactory::getDate(); $now = RSMembershipHelper::getCurrentDate(); $day = $membership->fixed_day; $month = $membership->fixed_month; $year = $membership->fixed_year; if ($day == 0 && $month == 0 && $year == 0) { // Add a day $membership_end = $date->toUnix() + 86400; } elseif ($day > 0 && $month == 0 && $year == 0) { // If we didn't pass the expiry day, expire this month, else expire next month $month = date('d', $now) < $day ? date('m', $now) : date('m', $now) + 1; $year = date('Y', $now); $membership_end = gmmktime(0, 0, 0, $month, $day, $year); } elseif ($day == 0 && $month > 0 && $year == 0) { $day = date('m', $now) == $month ? date('d', $now) + 1 : 1; $year = date('Y', $now); $membership_end = gmmktime(0, 0, 0, $month, $day, $year); } elseif ($day == 0 && $month == 0 && $year > 0) { $month = date('m', $now); $day = date('d', $now) + 1; $membership_end = gmmktime(0, 0, 0, $month, $day, $year); } elseif ($day > 0 && $month > 0 && $year == 0) { // If we didn't pass the expiry day and month, expire this year, else expire next year $year = date('d', $now) < $day && date('m', $now) == $month || date('m', $now) < $month ? date('Y', $now) : date('Y', $now) + 1; $membership_end = gmmktime(0, 0, 0, $month, $day, $year); } elseif ($day == 0 && $month > 0 && $year > 0) { $day = date('m', $now) == $month && date('Y', $now) == $year ? date('d', $now) + 1 : 1; $membership_end = gmmktime(0, 0, 0, $month, $day, $year); } elseif ($day > 0 && $month == 0 && $year > 0) { // If we didn't pass the expiry day, expire this month, else expire next month $month = date('d', $now) < $day ? date('m', $now) : date('m', $now) + 1; $membership_end = gmmktime(0, 0, 0, $month, $day, $year); } elseif ($day > 0 && $month > 0 && $year > 0) { // Expire on a fixed date $membership_end = gmmktime(0, 0, 0, $month, $day, $year); } return $membership_end; }