/** * 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); }
/** * 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; }