Browse Source

update type data and boot function

pull/1/head
wahyuun 10 months ago
parent
commit
074bf105a1
  1. 31
      app/Models/UserToActivity.php

31
app/Models/UserToActivity.php

@ -4,6 +4,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use App\Models\Activity; use App\Models\Activity;
use Illuminate\Support\Facades\DB;
class UserToActivity extends Model class UserToActivity extends Model
{ {
@ -29,35 +30,37 @@ class UserToActivity extends Model
public static function boot() { public static function boot() {
parent::boot(); parent::boot();
DB::transaction(function(){
static::created(function($data) { static::created(function($data) {
$activity = Activity::find($data->activity_id); $activity = Activity::find($data->activity_id);
$getWorkingHours = UserToProyek::where('user_id', $data->user_id)->where('proyek_id', $activity->proyek_id)->first(); $getWorkingHours = UserToProyek::where([['user_id', $data->user_id],['proyek_id', $activity->proyek_id]])->first();
$salary = 0;
$salary = ($getWorkingHours->standart_rate * $activity->duration) * ($getWorkingHours->max_used / 100); if($getWorkingHours->uom_standart_rate == "Hour") {
$salary = (doubleval($getWorkingHours->standart_rate) * 8) * (int)$activity->duration * ($getWorkingHours->max_used / 100);
if($getWorkingHours->uom_standart_rate == "Hour") } else {
$salary = ($getWorkingHours->standart_rate * 8) * $activity->duration * ($getWorkingHours->max_used / 100); $salary = (doubleval($getWorkingHours->standart_rate) * (int)$activity->duration) * ($getWorkingHours->max_used / 100);
}
$activity->rencana_biaya += $salary; $activity->rencana_biaya += doubleval($salary);
$activity->save(); $activity->save();
}); });
static::deleted(function($data) { static::deleted(function($data) {
$activity = Activity::find($data->activity_id); $activity = Activity::find($data->activity_id);
$getWorkingHours = UserToProyek::where([['user_id', $data->user_id],['proyek_id', $activity->proyek_id]])->first();
$getWorkingHours = UserToProyek::where('user_id', $data->user_id)->where('proyek_id', $activity->proyek_id)->first(); $salary = 0;
$salary = ($getWorkingHours->standart_rate * $activity->duration) * ($getWorkingHours->max_used / 100);
if($getWorkingHours->uom_standart_rate == "Hour"){ if($getWorkingHours->uom_standart_rate == "Hour"){
$salary = ($getWorkingHours->standart_rate * 8) * $activity->duration * ($getWorkingHours->max_used / 100); $salary = (doubleval($getWorkingHours->standart_rate) * 8) * (int)$activity->duration * ($getWorkingHours->max_used / 100);
} else {
$salary = (doubleval($getWorkingHours->standart_rate) * (int)$activity->duration) * ($getWorkingHours->max_used / 100);
} }
$activity->rencana_biaya -= doubleval($salary);
$activity->rencana_biaya -= $salary;
if ($activity->rencana_biaya < 0) { if ($activity->rencana_biaya < 0) {
$activity->rencana_biaya = 0; $activity->rencana_biaya = 0;
} }
$activity->save(); $activity->save();
}); });
}, 5);
} }
} }

Loading…
Cancel
Save