/**
  * 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;
 }
Esempio n. 2
0
/**
 * 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 
}