/** * 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 clients add_filter('mdjm_get_clients_args', array($this, 'filter_args')); $clients = mdjm_get_clients(); remove_filter('mdjm_get_clients_args', array($this, 'filter_args')); $i = 0; foreach ($clients as $client) { $events = mdjm_get_client_events($client->ID); $amount = 0; $data[$i]['id'] = $client->ID; $data[$i]['name'] = $client->display_name; $data[$i]['email'] = $client->user_email; $data[$i]['events'] = $events ? count($events) : 0; if ($events) { foreach ($events as $event) { $amount += mdjm_get_event_price($event->ID); } } $data[$i]['amount'] = mdjm_format_amount($amount); $i++; } $data = apply_filters('mdjm_export_get_data', $data); $data = apply_filters('mdjm_export_get_data_' . $this->export_type, $data); return $data; }
/** * Define the data to be displayed in each of the custom columns for the Quote post types * * @since 0.9 * @param str $column_name The name of the column to display * @param int $post_id The current post ID * @return */ function mdjm_quote_posts_custom_column($column_name, $post_id) { if ($column_name == 'quote_event' || $column_name == 'quote_value') { $parent = wp_get_post_parent_id($post_id); } switch ($column_name) { // Quote Date case 'date': echo get_the_date('d M Y H:i:s'); break; // Event // Event case 'quote_event': if (!empty($parent)) { printf('<a href="%s">%s</a><br /><em>%s</em>', admin_url('/post.php?post={$parent}&action=edit'), mdjm_get_event_contract_id($parent), mdjm_get_event_date($parent)); } else { _e('N/A', 'mobile-dj-manager'); } break; // Client // Client case 'quote_client': global $post; echo '<a href="' . admin_url('admin.php?page=mdjm-clients&action=view_client&client_id=' . $post->post_author) . '">' . get_the_author() . '</a>'; break; // Cost // Cost case 'quote_value': echo mdjm_currency_filter(mdjm_get_event_price($parent)); break; // Date Viewed // Date Viewed case 'quote_view_date': if ('mdjm-quote-viewed' == get_post_status($post_id)) { echo date('d M Y H:i:s', strtotime(get_post_meta($post_id, '_mdjm_quote_viewed_date', true))); } else { _e('N/A', 'mobile-dj-manager'); } break; // View Count // View Count case 'quote_view_count': $count = get_post_meta($post_id, '_mdjm_quote_viewed_count', true); if (empty($count)) { $count = 0; } echo $count . _n(' time', ' times', $count, 'mobile-dj-manager'); break; } // switch }
/** * Get the Export Data * * @access public * @since 1.4 * @global obj $wpdb Used to query the database using the WordPress Database API * @return arr $data The data for the CSV file */ public function get_data() { global $wpdb; $data = array(); // Export all clients $clients = mdjm_get_clients(); $i = 0; foreach ($clients as $client) { if ('emails' != $_POST['mdjm_export_option']) { $data[$i]['name'] = $client->name; } $data[$i]['email'] = $client->email; if ('full' == $_POST['mdjm_export_option']) { $amount = 0; $events = mdjm_get_client_events($client->ID); $data[$i]['events'] = $events ? count($events) : 0; if ($events) { foreach ($events as $event) { $amount += mdjm_get_event_price($event->ID); } } $data[$i]['amount'] = mdjm_format_amount($amount); } $i++; } $data = apply_filters('mdjm_export_get_data', $data); $data = apply_filters('mdjm_export_get_data_' . $this->export_type, $data); return $data; }
/** * Define the data to be displayed in each of the custom columns for the Transaction post types * * @since 0.9 * @param str $column_name The name of the column to display * @param int $post_id The current post ID * @return */ function mdjm_event_posts_custom_column($column_name, $post_id) { global $post; if (mdjm_employee_can('edit_txns') && ($column_name == 'value' || $column_name == 'balance')) { $value = mdjm_get_event_price($post_id); } switch ($column_name) { // Event Date case 'event_date': if (mdjm_employee_can('read_events')) { echo '<strong><a href="' . admin_url('post.php?post=' . $post_id . '&action=edit') . '">' . date('d M Y', strtotime(get_post_meta($post_id, '_mdjm_event_date', true))) . '</a>'; } else { echo '<strong>' . date('d M Y', strtotime(get_post_meta($post_id, '_mdjm_event_date', true))) . '</strong>'; } break; // Client // Client case 'client': $client = get_userdata(get_post_meta($post->ID, '_mdjm_event_client', true)); if (!empty($client)) { if (mdjm_employee_can('send_comms')) { printf('<a href="%s">%s</a>', add_query_arg(array('recipient' => $client->ID, 'event_id' => $post_id), admin_url('admin.php?page=mdjm-comms')), $client->display_name); } else { echo $client->display_name; } } else { _e('<span class="mdjm-form-error">Not Assigned</span>', 'mobile-dj-manager'); } break; // Employees // Employees case 'employees': global $wp_roles; $primary = get_userdata(mdjm_get_event_primary_employee($post->ID)); $employees = mdjm_get_event_employees_data($post->ID); if (!empty($primary)) { if (mdjm_employee_can('send_comms')) { printf('<a href="%s" title="%s">%s</a>', add_query_arg(array('recipient' => $primary->ID, 'event_id' => $post_id), admin_url('admin.php?page=mdjm-comms')), mdjm_get_option('artist', __('DJ', 'mobile-dj-manager')), $primary->display_name); } else { echo '<a title="' . mdjm_get_option('artist', __('DJ', 'mobile-dj-manager')) . '">' . $primary->display_name . '</a>'; } } else { _e('<span class="mdjm-form-error">Not Assigned</span>', 'mobile-dj-manager'); } if (!empty($employees)) { echo '<br />'; $i = 1; foreach ($employees as $employee) { echo '<em>'; if (mdjm_employee_can('send_comms')) { printf('<a href="%s" title="%s">%s</a>', add_query_arg(array('recipient' => $employee['id'], 'event_id' => $post_id), admin_url('admin.php?page=mdjm-comms')), translate_user_role($wp_roles->roles[$employee['role']]['name']), mdjm_get_employee_display_name($employee['id'])); } else { echo '<a title="' . translate_user_role($wp_roles->roles[$employee['role']]['name']) . '">' . mdjm_get_employee_display_name($employee['id']) . '</a>'; } echo '</em>'; if ($i != count($employees)) { echo '<br />'; } } } break; // Status // Status case 'event_status': echo get_post_status_object($post->post_status)->label; break; // Event Type // Event Type case 'event_type': $event_types = get_the_terms($post_id, 'event-types'); if (is_array($event_types)) { foreach ($event_types as $key => $event_type) { $event_types[$key] = $event_type->name; } echo implode("<br/>", $event_types); } break; // Value // Value case 'value': if (mdjm_employee_can('edit_txns')) { if (!empty($value) && $value != '0.00') { echo mdjm_currency_filter(mdjm_format_amount($value)); echo '<br />'; } else { echo '<span class="mdjm-form-error">' . mdjm_currency_filter(mdjm_format_amount('0.00')) . '</span>'; } } else { echo '—'; } break; // Balance // Balance case 'balance': if (mdjm_employee_can('edit_txns')) { echo mdjm_currency_filter(mdjm_format_amount(mdjm_get_event_balance($post_id))); echo '<br />'; $deposit_status = mdjm_get_event_deposit_status($post_id); if ('Paid' == mdjm_get_event_deposit_status($post_id)) { printf(__('<i title="%s %s paid" class="fa fa-check-square-o" aria-hidden="true">', 'mobile-dj-manager'), mdjm_currency_filter(mdjm_format_amount(mdjm_get_event_deposit($post_id))), mdjm_get_deposit_label()); } } else { echo '—'; } break; // Playlist // Playlist case 'playlist': if (mdjm_employee_can('read_events')) { $total = mdjm_count_playlist_entries($post_id); echo '<a href="' . mdjm_get_admin_page('playlists') . $post_id . '">' . $total . ' ' . _n('Song', 'Songs', $total, 'mobile-dj-manager') . '</a>' . "\r\n"; } else { echo '—'; } break; // Journal // Journal case 'journal': if (mdjm_employee_can('read_events_all')) { $total = wp_count_comments($post_id)->approved; echo '<a href="' . admin_url('/edit-comments.php?p=' . $post_id) . '">' . $total . ' ' . _n('Entry', 'Entries', $total, 'mobile-dj-manager') . '</a>' . "\r\n"; } else { echo '—'; } break; } // switch }