Ejemplo n.º 1
0
/**
 * Delete a policy
 *
 * @since 0.1
 *
 * @param  integer  policy_id
 *
 * @return boolean
 */
function erp_hr_leave_policy_delete($policy_id)
{
    if (is_array($policy_id)) {
        foreach ($policy_id as $key => $id) {
            do_action('erp_hr_leave_policy_delete', $id);
        }
        return \WeDevs\ERP\HRM\Models\Leave_Policies::destroy($policy_id);
    }
    do_action('erp_hr_leave_policy_delete', $policy_id);
    return \WeDevs\ERP\HRM\Models\Leave_Policies::find($policy_id)->delete();
}
Ejemplo n.º 2
0
 /**
  * Add log when udpate policy
  *
  * @since 0.1
  *
  * @param  integer $policy_id
  * @param  array $fields
  *
  * @return void
  */
 public function update_policy($policy_id, $fields)
 {
     if (!$policy_id) {
         return;
     }
     $old_policy = \WeDevs\ERP\HRM\Models\Leave_Policies::find($policy_id)->toArray();
     unset($old_policy['created_at'], $old_policy['updated_at'], $fields['instant_apply']);
     $old_policy['effective_date'] = erp_format_date($old_policy['effective_date'], 'Y-m-d');
     $fields['effective_date'] = erp_format_date($fields['effective_date'], 'Y-m-d');
     if (isset($fields['activate']) && $fields['activate'] == 1) {
         unset($fields['execute_day'], $old_policy['execute_day']);
     }
     $changes = $this->get_array_diff($fields, $old_policy, true);
     if (empty($changes['old_val']) && empty($changes['new_val'])) {
         $message = false;
     } else {
         array_walk($changes, function (&$key) {
             if (isset($key['color'])) {
                 $key['calender_color'] = sprintf('<div style="width:60px; height:20px; background-color:%s"></div>', $key['color']);
                 unset($key['color']);
             }
             if (isset($key['department'])) {
                 if ($key['department'] == '-1') {
                     $key['department'] = __('All Department', 'wp-erp');
                 } else {
                     $department = new \WeDevs\ERP\HRM\Department(intval($key['department']));
                     $key['department'] = $department->title;
                 }
             }
             if (isset($key['designation'])) {
                 if ($key['designation'] == '-1') {
                     $key['designation'] = __('All Designation', 'wp-erp');
                 } else {
                     $designation = new \WeDevs\ERP\HRM\Designation(intval($key['designation']));
                     $key['designation'] = $designation->title;
                 }
             }
             if (isset($key['location'])) {
                 if ($key['location'] == '-1') {
                     $key['location'] = __('All Location', 'wp-erp');
                 } else {
                     $location = erp_company_get_location_dropdown_raw();
                     $key['location'] = $location[$key['location']];
                 }
             }
             if (isset($key['gender'])) {
                 $gender = erp_hr_get_genders(__('All', 'wp-erp'));
                 $key['gender'] = $gender[$key['gender']];
             }
             if (isset($key['marital'])) {
                 $marital = erp_hr_get_marital_statuses(__('All', 'wp-erp'));
                 $key['marital'] = $marital[$key['marital']];
             }
             if (isset($key['activate'])) {
                 $activate = array('1' => __('Immediately', 'wp-erp'), '2' => __('After X Days', 'wp-erp'), '3' => __('Manually', 'wp-erp'));
                 if ($key['activate'] == 2) {
                     $key['activation'] = str_replace('X', $key['execute_day'], $activate[$key['activate']]);
                 } else {
                     $key['activation'] = $activate[$key['activate']];
                 }
                 unset($key['activate']);
                 unset($key['execute_day']);
             }
             if (isset($key['effective_date'])) {
                 $key['policy_effective_date'] = erp_format_date($key['effective_date']);
                 unset($key['effective_date']);
             }
         });
         $message = sprintf('<strong>%s</strong> policy has been edited', $old_policy['name']);
     }
     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'])) : '']);
     }
 }