コード例 #1
0
ファイル: class-hr-log.php プロジェクト: ediamin/wp-erp
 /**
  * Add log when edit holiday
  *
  * @since 0.1
  *
  * @param  integer $holiday_id
  * @param  array $fields
  *
  * @return void
  */
 public function update_holiday($holiday_id, $fields)
 {
     if (!$holiday_id) {
         return;
     }
     $old_holiday = \WeDevs\ERP\HRM\Models\Leave_Holiday::find($holiday_id)->toArray();
     unset($old_holiday['created_at'], $old_holiday['updated_at']);
     $old_holiday['start'] = erp_format_date($old_holiday['start'], 'Y-m-d');
     $old_holiday['end'] = erp_format_date($old_holiday['end'], 'Y-m-d');
     $fields['start'] = erp_format_date($fields['start'], 'Y-m-d');
     $fields['end'] = erp_format_date($fields['end'], 'Y-m-d');
     $changes = $this->get_array_diff($fields, $old_holiday, true);
     if (empty($changes['old_val']) && empty($changes['new_val'])) {
         $message = false;
     } else {
         array_walk($changes, function (&$key) {
             if (isset($key['start'])) {
                 $key['start_date'] = erp_format_date($key['start']);
                 unset($key['start']);
             }
             if (isset($key['end'])) {
                 $key['end_date'] = erp_format_date($key['end']);
                 unset($key['end']);
             }
         });
         $message = sprintf('<strong>%s</strong> holiday has been edited', $old_holiday['title']);
     }
     if ($message) {
         erp_log()->add(['sub_component' => 'leave', 'message' => $message, 'created_by' => get_current_user_id(), 'changetype' => 'edit', 'old_value' => $changes['old_val'] ? base64_encode(maybe_serialize($changes['old_val'])) : '', 'new_value' => $changes['new_val'] ? base64_encode(maybe_serialize($changes['new_val'])) : '']);
     }
 }
コード例 #2
0
ファイル: functions-leave.php プロジェクト: ediamin/wp-erp
/**
 * Remove holidays
 *
 * @since 0.1
 *
 * @return \stdClass
 */
function erp_hr_delete_holidays($holidays_id)
{
    if (is_array($holidays_id)) {
        foreach ($holidays_id as $key => $holiday_id) {
            do_action('erp_hr_leave_holiday_delete', $holiday_id);
        }
        \WeDevs\ERP\HRM\Models\Leave_Holiday::destroy($holidays_id);
    } else {
        do_action('erp_hr_leave_holiday_delete', $holidays_id);
        return \WeDevs\ERP\HRM\Models\Leave_Holiday::find($holidays_id)->delete();
    }
}
コード例 #3
0
/**
 * ERP dashboard leave calendar widget
 *
 * @since 0.1
 *
 * @return void
 */
function erp_hr_dashboard_widget_leave_calendar()
{
    $user_id = get_current_user_id();
    $leave_requests = erp_hr_get_calendar_leave_events(false, $user_id);
    $holidays = erp_array_to_object(\WeDevs\ERP\HRM\Models\Leave_Holiday::all()->toArray());
    $events = [];
    $holiday_events = [];
    $event_data = [];
    foreach ($leave_requests as $key => $leave_request) {
        $events[] = array('id' => $leave_request->id, 'title' => $leave_request->display_name, 'start' => $leave_request->start_date, 'end' => $leave_request->end_date, 'url' => erp_hr_url_single_employee($leave_request->user_id), 'color' => $leave_request->color, 'img' => get_avatar($leave_request->user_id, 16));
    }
    foreach ($holidays as $key => $holiday) {
        $holiday_events[] = ['id' => $holiday->id, 'title' => $holiday->title, 'start' => $holiday->start, 'end' => $holiday->end, 'color' => '#FF5354', 'img' => '', 'holiday' => true];
    }
    $event_data = array_merge($events, $holiday_events);
    ?>
    <style>
        .fc-time {
            display:none;
        }
        .erp-leave-avatar img {
            border-radius: 50%;
            margin: 3px 7px 0 0;

        }
        .erp-calendar-filter {
            margin: 15px 0px;
        }
        .fc-title {
            position: relative;
            top: -4px;
        }
    </style>

    <?php 
    if (erp_hr_get_assign_policy_from_entitlement($user_id)) {
        ?>
        <div class="erp-hr-new-leave-request-wrap">
            <a href="#" class="button button-primary" id="erp-hr-new-leave-req"><?php 
        _e('Take a Leave', 'wp-erp');
        ?>
</a>
        </div>
    <?php 
    }
    ?>

    <div id="erp-hr-calendar"></div>

    <script>
    ;jQuery(document).ready(function($) {

        $('#erp-hr-calendar').fullCalendar({
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },
            editable: false,
            eventLimit: true, // allow "more" link when too many events
            events: <?php 
    echo json_encode($event_data);
    ?>
,
            eventRender: function(event, element, calEvent) {
                if ( event.holiday ) {
                    element.find('.fc-content').find('.fc-title').css({ 'top':'0px', 'left' : '3px', 'fontSize' : '13px', 'padding':'2px' });
                };
                if( event.img != 'undefined' ) {
                    element.find('.fc-content').find('.fc-title').before( $("<span class=\"fc-event-icons erp-leave-avatar\">"+event.img+"</span>") );
                }
            },
        });
    });

</script>
    <?php 
}