%PDF- %PDF-
Direktori : /var/www/html/hrsys/api/app/Models/ |
Current File : /var/www/html/hrsys/api/app/Models/BaseModel.php |
<?php namespace App\Models; use Carbon\Carbon; use Carbon\CarbonPeriod; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\File as LaravelFile; /** * @property integer id * @property mixed created_at * @property mixed updated_at */ class BaseModel extends Model { protected $perPage = 10; public static function generateRandomToken($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $charactersLength = strlen($characters); $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, $charactersLength - 1)]; } return $randomString; } /** * @return User */ public static function getLoggedInUser() { return $user = auth() ->guard('api') ->user(); } public static function getLastMonthGroups($prop = 'created_at') { $date = Carbon::now() ->subMonth() ->startOfDay(); $groups = self::query() ->where($prop, '>=', $date) ->groupBy('date') ->orderBy('date', 'ASC') ->get(array( DB::raw("Date($prop) as date"), DB::raw('COUNT(*) as "count"'), )); $range = CarbonPeriod::create($date, Carbon::now()); $data = collect(); $total = 0; foreach ($range as $date) { $d = $groups->filter(function ($g) use ($date) { return $g['date'] === $date->format('Y-m-d'); }); $count = $d->first()['count']; if (!$count) { $count = 0; } $total += $count; $data->push([ 'date' => $date->format('Y-m-d'), 'count' => $count, ]); } return [ 'groups' => $data->toArray(), 'total' => $total, ]; } public static function diffInHours($end, $start) { return round((Carbon::parse($end) ->diffInMinutes(Carbon::parse($start)) / 60), 2); } public static function getEndOfMonth($month = null, $year = null) { if (!$month) { $month = Carbon::now()->month; } if (!$year) { $year = Carbon::now()->year; } return Carbon::now() ->setYear($year) ->startOfYear() ->addMonths($month) ->subMonth() ->endOfMonth(); } public static function getStartOfMonth($month = null, $year = null) { if (!$month) { $month = Carbon::now()->month; } if (!$year) { $year = Carbon::now()->year; } return Carbon::now() ->setYear($year) ->startOfYear() ->addMonths($month) ->subMonth(); } public static function createPaths() { if (!LaravelFile::exists(storage_path('app/flow/chunks'))) { LaravelFile::makeDirectory(storage_path('app/flow/chunks'), $mode = 0777, true, true); } if (!LaravelFile::exists(storage_path('app/flow/uploads'))) { LaravelFile::makeDirectory(storage_path('app/flow/uploads'), $mode = 0777, true, true); } } public function formatDate($date, $format = 'Y-m-d') { if (!$date) { return null; } return Carbon::parse($date)->toISOString(); } }