Browse Source

update company_id fillable

pull/1/head
wahyuun 10 months ago
parent
commit
493ebb1cda
  1. 34
      app/Models/ProjectRole.php
  2. 396
      app/Models/User.php

34
app/Models/ProjectRole.php

@ -1,17 +1,17 @@
<?php <?php
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class ProjectRole extends Model class ProjectRole extends Model
{ {
protected $table = 'm_role_proyek'; protected $table = 'm_role_proyek';
const CREATED_AT = 'created_at'; const CREATED_AT = 'created_at';
const UPDATED_AT = 'updated_at'; const UPDATED_AT = 'updated_at';
protected $fillable = [ protected $fillable = [
'name', 'description', 'created_at', 'created_by', 'updated_at', 'updated_by' 'name', 'description', 'created_at', 'created_by', 'updated_at', 'company_id', 'updated_by'
]; ];
} }

396
app/Models/User.php

@ -1,198 +1,198 @@
<?php <?php
namespace App\Models; namespace App\Models;
use Tymon\JWTAuth\Contracts\JWTSubject; use Tymon\JWTAuth\Contracts\JWTSubject;
use Illuminate\Auth\Authenticatable; use Illuminate\Auth\Authenticatable;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract; use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Laravel\Lumen\Auth\Authorizable; use Laravel\Lumen\Auth\Authorizable;
use Carbon\Carbon; use Carbon\Carbon;
class User extends Model implements AuthenticatableContract, AuthorizableContract, JWTSubject class User extends Model implements AuthenticatableContract, AuthorizableContract, JWTSubject
{ {
use Authenticatable, Authorizable, HasFactory; use Authenticatable, Authorizable, HasFactory;
protected $table = 'm_users'; protected $table = 'm_users';
/** /**
* The attributes that are mass assignable. * The attributes that are mass assignable.
* *
* @var array * @var array
*/ */
protected $fillable = [ protected $fillable = [
'name', 'email', 'role_id', 'username', 'session_login', 'phone_number', 'email', 'address', 'name', 'email', 'role_id', 'username', 'session_login', 'phone_number', 'email', 'address',
'fcm_token', 'gender', 'birth_place', 'birth_date', 'blood_type', 'ktp_number', 'working_hours', 'fcm_token', 'gender', 'birth_place', 'birth_date', 'blood_type', 'ktp_number', 'working_hours',
'created_at', 'created_by', 'updated_at', 'updated_by', 'status_resource', 'discount_id' 'created_at', 'created_by', 'updated_at', 'updated_by', 'status_resource', 'discount_id','company_id'
]; ];
const CREATED_AT = 'created_at'; const CREATED_AT = 'created_at';
const UPDATED_AT = 'updated_at'; const UPDATED_AT = 'updated_at';
const DEFAULT_TZ = 'Asia/Jakarta'; const DEFAULT_TZ = 'Asia/Jakarta';
const INSIDE = "INSIDE"; const INSIDE = "INSIDE";
const OUTSIDE = "OUTSIDE"; const OUTSIDE = "OUTSIDE";
const HOLIDAY = "HOLIDAY"; const HOLIDAY = "HOLIDAY";
/** /**
* The attributes excluded from the model's JSON form. * The attributes excluded from the model's JSON form.
* *
* @var array * @var array
*/ */
protected $hidden = [ protected $hidden = [
'password', 'password',
]; ];
/** /**
* Get the identifier that will be stored in the subject claim of the JWT. * Get the identifier that will be stored in the subject claim of the JWT.
* *
* @return mixed * @return mixed
*/ */
public function getJWTIdentifier() public function getJWTIdentifier()
{ {
return $this->getKey(); return $this->getKey();
} }
/** /**
* Return a key value array, containing any custom claims to be added to the JWT. * Return a key value array, containing any custom claims to be added to the JWT.
* *
* @return array * @return array
*/ */
public function getJWTCustomClaims() public function getJWTCustomClaims()
{ {
return []; return [];
} }
/** /**
* Get working hours for given timestamp * Get working hours for given timestamp
* *
* @return array of carbon or NULL in case HOLIDAY * @return array of carbon or NULL in case HOLIDAY
*/ */
public function getWorkingTime(Carbon $ts, $f = "08:00", $t = "17:00", $tz = self::DEFAULT_TZ) public function getWorkingTime(Carbon $ts, $f = "08:00", $t = "17:00", $tz = self::DEFAULT_TZ)
{ {
$workingTime = array( $workingTime = array(
"from" => Carbon::createFromTimeString($f, $tz), "from" => Carbon::createFromTimeString($f, $tz),
"to" => Carbon::createFromTimeString($t, $tz) "to" => Carbon::createFromTimeString($t, $tz)
); );
$userShift = UserShift::where('user_id',) $userShift = UserShift::where('user_id',)
->orderByDesc('from_date') ->orderByDesc('from_date')
->first(); ->first();
$shift = null; $shift = null;
if ($userShift !== null) { if ($userShift !== null) {
$shiftId = null; $shiftId = null;
switch ($ts->shortEnglishDayOfWeek) { switch ($ts->shortEnglishDayOfWeek) {
case "Mon": case "Mon":
$shiftId = $userShift->mon_shift_id; $shiftId = $userShift->mon_shift_id;
break; break;
case "Tue": case "Tue":
$shiftId = $userShift->tue_shift_id; $shiftId = $userShift->tue_shift_id;
break; break;
case "Wed": case "Wed":
$shiftId = $userShift->wed_shift_id; $shiftId = $userShift->wed_shift_id;
break; break;
case "Thu": case "Thu":
$shiftId = $userShift->thu_shift_id; $shiftId = $userShift->thu_shift_id;
break; break;
case "Fri": case "Fri":
$shiftId = $userShift->fri_shift_id; $shiftId = $userShift->fri_shift_id;
break; break;
case "Sat": case "Sat":
$shiftId = $userShift->sat_shift_id; $shiftId = $userShift->sat_shift_id;
break; break;
case "Sun": case "Sun":
$shiftId = $userShift->sun_shift_id; $shiftId = $userShift->sun_shift_id;
break; break;
} }
if ($shiftId === null) { if ($shiftId === null) {
return null; return null;
} }
$shift = Shift::where('id', $shiftId)->first(); $shift = Shift::where('id', $shiftId)->first();
} else { } else {
$shift = Shift::where('is_non_shift', true) $shift = Shift::where('is_non_shift', true)
->orderByDesc('created_at') ->orderByDesc('created_at')
->first(); ->first();
} }
if ($shift !== null) { if ($shift !== null) {
$from = Carbon::createFromTimeString($shift->start_time, $tz) $from = Carbon::createFromTimeString($shift->start_time, $tz)
->subMinutes($shift->flex_time_minute); ->subMinutes($shift->flex_time_minute);
$to = Carbon::createFromTimeString($shift->end_time, $tz) $to = Carbon::createFromTimeString($shift->end_time, $tz)
->addMinutes($shift->flex_time_minute); ->addMinutes($shift->flex_time_minute);
/* /*
if ($to->lessThan($from)) if ($to->lessThan($from))
{ {
$to->addDay(); $to->addDay();
} }
*/ */
$workingTime['from'] = $from; $workingTime['from'] = $from;
$workingTime['to'] = $to; $workingTime['to'] = $to;
} }
return $workingTime; return $workingTime;
} }
/** /**
* Get presence status * Get presence status
*/ */
public function presenceStatus(Carbon $at = null, $tz = self::DEFAULT_TZ) public function presenceStatus(Carbon $at = null, $tz = self::DEFAULT_TZ)
{ {
$ts = $at; $ts = $at;
if ($at !== null) { if ($at !== null) {
$ts = Carbon::now($tz); $ts = Carbon::now($tz);
} }
$tsSec = $ts->secondsSinceMidnight(); $tsSec = $ts->secondsSinceMidnight();
$status = ""; $status = "";
$wt = $this->getWorkingTime($ts, $tz); $wt = $this->getWorkingTime($ts, $tz);
if ($wt === null) { if ($wt === null) {
$status = self::HOLIDAY; $status = self::HOLIDAY;
} else { } else {
$from = $wt->from; $from = $wt->from;
$to = $wt->to; $to = $wt->to;
$tsFrom = $from->secondsSinceMidnight(); $tsFrom = $from->secondsSinceMidnight();
$tsTo = $to->secondsSinceMidnight(); $tsTo = $to->secondsSinceMidnight();
if ($from->greaterThan($to)) { if ($from->greaterThan($to)) {
$tsMid = 24 * 60 * 60 - $tsFrom; $tsMid = 24 * 60 * 60 - $tsFrom;
if ($tsSec >= $tsFrom || $tsSec < $tsTo) { if ($tsSec >= $tsFrom || $tsSec < $tsTo) {
$status = self::INSIDE; $status = self::INSIDE;
} else { } else {
$status = self::OUTSIDE; $status = self::OUTSIDE;
} }
} else { } else {
if ($tsSec < $tsFrom || $tsSec > $tsTo) { if ($tsSec < $tsFrom || $tsSec > $tsTo) {
$status = self::OUTSIDE; $status = self::OUTSIDE;
} else { } else {
$status = self::INSIDE; $status = self::INSIDE;
} }
} }
} }
$clockIn = null; $clockIn = null;
$clockOut = null; $clockOut = null;
$inout = Presence::where('user_id', $this->id) $inout = Presence::where('user_id', $this->id)
->orderByDesc('clock_in') ->orderByDesc('clock_in')
->first(); ->first();
if ($inout !== null) { if ($inout !== null) {
$clockIn = Carbon::parse($inout->clock_in, $tz); $clockIn = Carbon::parse($inout->clock_in, $tz);
$clockOut = Carbon::parse($inout->clock_out, $tz); $clockOut = Carbon::parse($inout->clock_out, $tz);
} }
return array( return array(
"status" => $status, "status" => $status,
"ts" => $ts, "ts" => $ts,
"clock_in" => $clockIn, "clock_in" => $clockIn,
"clock_out" => $clockOut "clock_out" => $clockOut
); );
} }
} }

Loading…
Cancel
Save