/**
  * Build all the reports data
  *
  * @access	public
  * @since	1.4
  * @return	arr		$reports_data	All the data for customer reports
  */
 public function reports_data()
 {
     $stats = new MDJM_Stats();
     $dates = mdjm_get_report_dates();
     $stats->setup_dates($dates['range']);
     $cached_reports = false;
     if (false !== $cached_reports) {
         $reports_data = $cached_reports;
     } else {
         $reports_data = array();
         $term_args = array('parent' => 0, 'hierarchical' => 0);
         $packages = mdjm_get_packages();
         if ($packages) {
             foreach ($packages as $package) {
                 $event_count = 0;
                 $total_value = 0;
                 $event_args = array('fields' => 'ids', 'meta_query' => array('relation' => 'AND', array('key' => '_mdjm_event_package', 'value' => $package->ID, 'type' => 'NUMERIC'), array('key' => '_mdjm_event_date', 'value' => array(date('Y-m-d', $stats->start_date), date('Y-m-d', $stats->end_date)), 'type' => 'date', 'compare' => 'BETWEEN')));
                 $events = mdjm_get_events($event_args);
                 if ($events) {
                     foreach ($events as $event) {
                         $event_count++;
                         $event_date = get_post_meta($event, '_mdjm_event_date', true);
                         $total_value += mdjm_get_package_price($package->ID, $event_date);
                     }
                 } else {
                     continue;
                 }
                 $reports_data[] = array('ID' => $package->ID, 'package' => mdjm_get_package_name($package->ID), 'events' => $event_count, 'value' => mdjm_currency_filter(mdjm_format_amount($total_value)), 'value_raw' => $total_value);
             }
         }
     }
     return $reports_data;
 }
/**
 * Retrieve data for an addon.
 *
 * @since	1.4
 * @param	int|obj	$package	The addon WP_Post object, or post ID.
 * @return	arr
 */
function mdjm_get_addon_data($addon)
{
    $addon_id = is_object($addon) ? $addon->ID : $addon;
    $events = mdjm_get_addon_event_types($addon_id);
    $users = mdjm_get_employees_with_addon($addon_id);
    $packages = mdjm_get_packages_with_addons($addon_id);
    $cats = get_the_terms($addon_id, 'addon-category');
    $employees = array();
    $months = array();
    $categories = array();
    $in_packages = array();
    if (!mdjm_addon_is_restricted_by_date($addon_id)) {
        $months[] = __('Always', 'mobile-dj-manager');
    } else {
        $availability = mdjm_get_addon_months_available($addon_id);
        if (!$availability) {
            $months[] = __('Always', 'mobile-dj-manager');
        } else {
            $i = 0;
            foreach ($availability as $month) {
                $months[] = mdjm_month_num_to_name($availability[$i]);
                $i++;
            }
        }
    }
    if (in_array('all', $users)) {
        $employees[] = __('All Employees', 'mobile-dj-manager');
    } else {
        foreach ($users as $employee_id) {
            if ('all' == $employee_id) {
                continue;
            }
            $employees[] = array($employee_id => mdjm_get_employee_display_name($employee_id));
        }
    }
    if (in_array('all', $events)) {
        $event_types = sprintf(__('All %s Types', 'mobile-dj-manager'), mdjm_get_label_singular());
    } else {
        foreach ($events as $event) {
            $term = get_term($event, 'event-types');
            if (!empty($term)) {
                $event_types[] = $term->name;
            }
        }
    }
    if (mdjm_addon_has_variable_prices($addon_id)) {
        $range = mdjm_get_addon_price_range($addon_id);
        $price = mdjm_get_currency() . ' ' . mdjm_format_amount($range['low']) . ' — ' . mdjm_format_amount($range['high']);
    } else {
        $price = mdjm_get_currency() . ' ' . mdjm_format_amount(mdjm_get_addon_price($addon_id));
    }
    if ($packages) {
        foreach ($packages as $package) {
            $in_packages[] = array($package->ID => mdjm_get_package_name($package->ID));
        }
    }
    if ($cats) {
        foreach ($cats as $cat) {
            $categories[] = $cat->name;
        }
    }
    $addon_data = array('name' => mdjm_get_addon_name($addon_id), 'categories' => $categories, 'availability' => array('months' => $months, 'employees' => $employees, 'event_types' => $event_types), 'price' => $price, 'packages' => $in_packages, 'usage' => array('packages' => mdjm_count_packages_with_addon($addon_id), 'events' => mdjm_count_events_with_addon($addon_id)));
    return apply_filters('mdjm_get_addon_data', $addon_data);
}
Example #3
0
/**
 * Content tag: event_package.
 * The package attached to the event.
 *
 * @param	int		The event ID.
 * @return	str		The package name or "No Package".
 */
function mdjm_content_tag_event_package($event_id = '')
{
    $return = __('No package is assigned to this event', 'mobile-dj-manager');
    if (!empty($event_id)) {
        $package_id = mdjm_get_event_package($event_id);
        $package_name = mdjm_get_package_name($package_id);
        if (!empty($package_name)) {
            $return = $package_name;
        }
    }
    return $return;
}
/**
 * Get the package information for the given event
 *
 * @param	int		$event_id	The event ID
 * @param	bool	$price		True to include the package price.
 * @return	str
 */
function get_event_package($event_id, $price = false)
{
    _deprecated_function(__FUNCTION__, '1.4', 'mdjm_get_event_package()');
    $return = __('No package is assigned to this event', 'mobile-dj-manager');
    $package_price = '';
    $event_package = mdjm_get_event_package($event_id);
    if (!empty($event_package)) {
        $return = mdjm_get_package_name($event_id);
        if (!empty($price)) {
            $return .= ' ' . mdjm_currency_filter(mdjm_format_amount(mdjm_get_package_price($event_package)));
        }
    }
    return $return;
}
/**
 * Retrieve the event data.
 *
 * @since	1.4
 * @param	int|obj		$event	An event ID, or an MDJM_Event object.
 * @return	arr			Event meta.
 */
function mdjm_get_event_data($event)
{
    if (is_numeric($event)) {
        $mdjm_event = new MDJM_Event($event);
    } else {
        $mdjm_event = $event;
    }
    $contract_status = $mdjm_event->get_contract_status();
    $source = mdjm_get_enquiry_source($mdjm_event->ID);
    $event_data = array('client' => $mdjm_event->client, 'contract' => $mdjm_event->get_contract(), 'contract_status' => $contract_status ? __('Signed', 'mobile-dj-manager') : __('Unsigned', 'mobile-dj-manager'), 'cost' => array('balance' => $mdjm_event->get_balance(), 'balance_status' => $mdjm_event->get_balance_status(), 'deposit' => $mdjm_event->deposit, 'deposit_status' => $mdjm_event->get_deposit_status(), 'remaining_deposit' => $mdjm_event->get_remaining_deposit(), 'cost' => $mdjm_event->price), 'date' => $mdjm_event->date, 'duration' => mdjm_event_duration($mdjm_event->ID), 'employees' => array('employees' => $mdjm_event->get_all_employees(), 'primary_employee' => $mdjm_event->employee_id), 'end_date' => $mdjm_event->get_meta('_mdjm_event_end_date'), 'end_time' => $mdjm_event->get_finish_time(), 'equipment' => array('package' => mdjm_get_package_name(mdjm_get_event_package($mdjm_event->ID)), 'addons' => mdjm_get_event_addons($mdjm_event->ID)), 'name' => $mdjm_event->get_name(), 'playlist' => array('playlist_enabled' => $mdjm_event->playlist_is_enabled(), 'playlist_guest_code' => $mdjm_event->get_playlist_code(), 'playlist_status' => $mdjm_event->playlist_is_open()), 'setup_date' => $mdjm_event->get_setup_date(), 'setup_time' => $mdjm_event->get_setup_time(), 'source' => !empty($source) ? $source->name : '', 'status' => $mdjm_event->get_status(), 'start_time' => $mdjm_event->get_start_time(), 'type' => $mdjm_event->get_type(), 'venue' => array('id' => $mdjm_event->get_meta('_mdjm_event_venue_id'), 'name' => mdjm_get_event_venue_meta($mdjm_event->ID, 'name'), 'address' => mdjm_get_event_venue_meta($mdjm_event->ID, 'address'), 'contact' => mdjm_get_event_venue_meta($mdjm_event->ID, 'contact'), 'details' => mdjm_get_venue_details($mdjm_event->get_venue_id()), 'email' => mdjm_get_event_venue_meta($mdjm_event->ID, 'email'), 'phone' => mdjm_get_event_venue_meta($mdjm_event->ID, 'phone'), 'notes' => mdjm_get_event_venue_meta($mdjm_event->ID, 'notes')));
    $employees = $mdjm_event->get_all_employees();
    if (!empty($employees)) {
        $event_data['employees']['employees'] = $employees;
    }
    $event_data = apply_filters('mdjm_get_event_data', $event_data, $mdjm_event->ID);
    return $event_data;
}