/** * 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); $employees = mdjm_get_employees(); foreach ($employees as $employee) { $event_count = 0; $employee_id = $employee->ID; $event_args = array('post_status' => apply_filters('mdjm_events_by_type_statuses', array('mdjm-contract', 'mdjm-approved', 'mdjm-completed')), 'fields' => 'ids', 'meta_query' => array('relation' => 'AND', 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'), array('relation' => 'OR', array('key' => '_mdjm_event_dj', 'value' => $employee_id, 'compare' => '=', 'type' => 'numeric'), array('key' => '_mdjm_event_employees', 'value' => sprintf(':"%s";', $employee_id), 'compare' => 'LIKE')))); $wages = 0.0; $paid = 0.0; $owed = 0.0; $events = mdjm_get_events($event_args); if ($events) { foreach ($events as $event) { $event_count++; $payment_status = mdjm_event_employees_paid($event, $employee_id); $current_wages = mdjm_get_employees_event_wage($event, $employee_id); $current_paid_wages = 0; $current_owed_wages = 0; $wages += $current_wages; $paid += $payment_status ? $current_wages : 0.0; $owed += $payment_status ? 0.0 : $current_wages; } } else { continue; } $reports_data[] = array('ID' => $employee->ID, 'employee' => $employee->display_name, 'total_events' => $event_count, 'total_wages' => mdjm_currency_filter(mdjm_format_amount($wages)), 'total_wages_raw' => $wages, 'wages_paid' => mdjm_currency_filter(mdjm_format_amount($paid)), 'wages_owed' => mdjm_currency_filter(mdjm_format_amount($owed)), 'is_child' => false); } } return $reports_data; }
/** * Output the event employee table * * @since 1.3.7 * @global obj $mdjm_event MDJM_Event class object * @global bool $mdjm_event_update True if this event is being updated, false if new. * @param int $event_id The event ID. * @return str */ function mdjm_event_metabox_employee_table($event_id) { global $mdjm_event, $mdjm_event_update; ?> <div id="mdjm-event-employee-list"> <?php mdjm_do_event_employees_list_table($event_id); ?> <?php if (mdjm_get_option('enable_employee_payments') && in_array($mdjm_event->post_status, mdjm_get_option('employee_pay_status')) && mdjm_employee_can('manage_txns') && !mdjm_event_employees_paid($event_id)) { ?> <div class="mdjm_field_wrap mdjm_form_fields"> <p><a href="<?php echo wp_nonce_url(add_query_arg(array('mdjm-action' => 'pay_event_employees', 'event_id' => $event_id), admin_url('admin.php')), 'pay_event_employees', 'mdjm_nonce'); ?> " id="pay_event_employees" class="button button-primary button-small"><?php printf(__('Pay %s Employees', 'mobile-dj-manager'), mdjm_get_label_singular()); ?> </a></p> </div> <?php } ?> </div> <?php }