コード例 #1
0
 /**
  * Get the Export Data
  *
  * @access	public
  * @since	1.4
  * @return	arr		$data	The data for the CSV file
  */
 public function get_data()
 {
     $data = array();
     // Export all events
     $offset = 30 * ($this->step - 1);
     $args = array('post_type' => 'mdjm-event', 'posts_per_page' => 30, 'offset' => $offset, 'paged' => $this->step, 'post_status' => $this->status, 'order' => 'ASC', 'orderby' => 'ID');
     if (!empty($this->start) || !empty($this->end)) {
         $args['meta_query'] = array(array('key' => '_mdjm_event_date', 'value' => array(date('Y-m-d', strtotime($this->start)), date('Y-m-d', strtotime($this->end))), 'compare' => 'BETWEEN', 'type' => 'DATE'));
     }
     $events = get_posts($args);
     if ($events) {
         $i = 0;
         foreach ($events as $event) {
             $event_data = mdjm_get_event_data($event->ID);
             $employees = array();
             $package = '';
             $addons = array();
             if (!empty($event_data['client'])) {
                 $client = '(' . $event_data['client'] . ') ' . mdjm_get_client_display_name($event_data['client']);
             }
             if (!empty($event_data['employees']['primary_employee'])) {
                 $primary_employee = '(' . $event_data['employees']['primary_employee'] . ') ' . mdjm_get_employee_display_name($event_data['employees']['primary_employee']);
             }
             if (!empty($event_data['employees']['employees'])) {
                 foreach ($event_data['employees']['employees'] as $employee_id => $employee_data) {
                     $employees[] = '(' . $employee_id . ') ' . mdjm_get_employee_display_name($employee_id);
                 }
             }
             if (!empty($event_data['equipment']['package'])) {
                 $package = $event_data['equipment']['package'];
             }
             if (!empty($event_data['equipment']['addons'])) {
                 foreach ($event_data['equipment']['addons'] as $addon_id) {
                     $addons[] = mdjm_get_addon_name($addon_id);
                 }
             }
             $data[$i] = array('id' => $event->ID, 'event_id' => mdjm_get_event_contract_id($event->ID), 'date' => mdjm_format_short_date($event_data['date']), 'status' => $event_data['status'], 'client' => $client, 'primary_employee' => '(' . $event_data['employees']['primary_employee'] . ') ' . mdjm_get_client_display_name($event_data['employees']['primary_employee']), 'employees' => implode(',', $employees), 'package' => $package, 'addons' => implode(', ', $addons), 'cost' => mdjm_format_amount($event_data['cost']['cost']), 'deposit' => mdjm_format_amount($event_data['cost']['deposit']), 'deposit_status' => $event_data['cost']['deposit_status'], 'balance' => mdjm_format_amount($event_data['cost']['balance']), 'balance_status' => $event_data['cost']['balance_status'], 'start_time' => mdjm_format_time($event_data['start_time']), 'end_time' => mdjm_format_time($event_data['end_time']), 'end_date' => mdjm_format_short_date($event_data['end_date']), 'setup_date' => mdjm_format_short_date($event_data['setup_date']), 'setup_time' => mdjm_format_time($event_data['setup_time']), 'duration' => $event_data['duration'], 'contract' => $event_data['contract'], 'contract_status' => $event_data['contract_status'], 'playlist_enabled' => $event_data['playlist']['playlist_enabled'], 'playlist_status' => $event_data['playlist']['playlist_status'], 'source' => $event_data['source'], 'converted' => $event_data['contract_status'], 'venue' => $event_data['venue']['name'], 'address' => !empty($event_data['venue']['address']) ? implode(', ', $event_data['venue']['address']) : '');
             $i++;
         }
         $data = apply_filters('mdjm_export_get_data', $data);
         $data = apply_filters('mdjm_export_get_data_' . $this->export_type, $data);
         return $data;
     }
     return false;
 }
コード例 #2
0
/**
 * Lists an events addons.
 *
 * @since	1.4
 * @param	int			$event_id	The event ID.
 * @param	bool		$price		True to include the addon price.
 * @return	int|false	The event addons or false if no addons.
 */
function mdjm_list_event_addons($event_id, $price = false)
{
    $output = __('No addons are assigned to this event', 'mobile-dj-manager');
    if (!mdjm_packages_enabled()) {
        return $output;
    }
    $mdjm_event = new MDJM_Event($event_id);
    $event_addons = $mdjm_event->get_addons();
    $event_date = $mdjm_event->date;
    if ($event_addons) {
        $addons = array();
        foreach ($event_addons as $addon_id) {
            $addon_price = '';
            if ($price) {
                $addon_price = ' ' . mdjm_currency_filter(mdjm_format_amount(mdjm_get_addon_price($addon_id, $event_date)));
            }
            $addons[] = mdjm_get_addon_name($addon_id) . '' . $addon_price;
        }
        $output = implode('<br />', $addons);
    }
    return apply_filters('mdjm_list_event_addons', $output);
}
コード例 #3
0
ファイル: equipment.php プロジェクト: mdjm/mobile-dj-manager
/**
 * Define the data to be displayed in each of the custom columns for the Package post types
 *
 * @since	1.4
 * @param	str		$column_name	The name of the column to display
 * @param	int		$post_id		The current post ID
 * @return
 */
function mdjm_package_posts_custom_column($column_name, $post_id)
{
    global $post;
    switch ($column_name) {
        // Items
        case 'items':
            $items = mdjm_get_package_addons($post_id);
            if ($items) {
                $i = 0;
                foreach ($items as $item) {
                    echo '<a href="' . admin_url("post.php?post={$item}&action=edit") . '">' . mdjm_get_addon_name($item) . '</a>';
                    $i++;
                    if ($i < count($items)) {
                        echo '<br />';
                    }
                }
            }
            break;
            // Category
        // Category
        case 'package_category':
            echo get_the_term_list($post_id, 'package-category', '', ', ', '');
            break;
            // Availability
        // Availability
        case 'availability':
            $output = array();
            if (!mdjm_package_is_restricted_by_date($post_id)) {
                $output[] = __('Always', 'mobile-dj-manager');
            } else {
                $availability = mdjm_get_package_months_available($post_id);
                if (!$availability) {
                    $output[] = __('Always', 'mobile-dj-manager');
                } else {
                    $i = 0;
                    foreach ($availability as $month) {
                        $output[] = mdjm_month_num_to_name($availability[$i]);
                        $i++;
                    }
                }
            }
            echo implode(', ', $output);
            break;
            // Event Types
        // Event Types
        case 'event_types':
            $output = array();
            $event_label = mdjm_get_label_singular();
            $event_types = mdjm_get_package_event_types($post_id);
            if (in_array('all', $event_types)) {
                $output[] = sprintf(__('All %s Types', 'mobile-dj-manager'), $event_label);
            } else {
                foreach ($event_types as $event_type) {
                    $term = get_term($event_type, 'event-types');
                    if (!empty($term)) {
                        $output[] = $term->name;
                    }
                }
            }
            echo implode(', ', $output);
            break;
            // Employees
        // Employees
        case 'employees':
            $employees = mdjm_get_employees_with_package($post_id);
            $output = array();
            if (in_array('all', $employees)) {
                $output[] .= __('All Employees', 'mobile-dj-manager');
            } else {
                foreach ($employees as $employee) {
                    if ('all' == $employee) {
                        continue;
                    }
                    $output[] = '<a href="' . get_edit_user_link($employee) . '">' . mdjm_get_employee_display_name($employee) . '</a>';
                }
            }
            echo implode('<br />', $output);
            break;
            // Price
        // Price
        case 'price':
            if (mdjm_package_has_variable_prices($post_id)) {
                $range = mdjm_get_package_price_range($post_id);
                echo mdjm_currency_filter(mdjm_format_amount($range['low']));
                echo ' &mdash; ';
                echo mdjm_currency_filter(mdjm_format_amount($range['high']));
            } else {
                echo mdjm_currency_filter(mdjm_format_amount(mdjm_get_package_price($post_id)));
            }
            break;
        case 'usage':
            $count = mdjm_count_events_with_package($post_id);
            echo $count . ' ' . _n(mdjm_get_label_singular(), mdjm_get_label_plural(), $count, 'mobile-dj-manager');
            break;
    }
    // switch
}
コード例 #4
0
 /**
  * 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);
         $addons = mdjm_get_addons();
         if ($addons) {
             foreach ($addons as $addon) {
                 $event_count = 0;
                 $total_value = 0;
                 $event_args = array('fields' => 'ids', 'meta_query' => array('relation' => 'AND', array('key' => '_mdjm_event_addons', 'value' => sprintf(':"%s";', $addon->ID), 'compare' => 'LIKE'), 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_addon_price($addon->ID, $event_date);
                     }
                 } else {
                     continue;
                 }
                 $reports_data[] = array('ID' => $addon->ID, 'addon' => mdjm_get_addon_name($addon->ID), 'events' => $event_count, 'value' => mdjm_currency_filter(mdjm_format_amount($total_value)), 'value_raw' => $total_value);
             }
         }
     }
     return $reports_data;
 }