<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use App\Models\Activity; use App\Models\AssignMaterial; class ReportActivityMaterial extends Model { protected $table = 'report_activity_material'; const CREATED_AT = 'created_at'; const UPDATED_AT = 'updated_at'; protected $fillable = [ 'activity_id', 'user_id', 'qty', 'lat', 'lon','assign_material_id', 'report_date', 'description', 'created_at', 'created_by', 'updated_at', 'updated_by' ]; public static function boot() { parent::boot(); static::created(function($data) { $activity = Activity::find($data->activity_id); $assignedMaterial = AssignMaterial::find($data->assign_material_id); $activity->biaya_actual += floatval($assignedMaterial->budget) * floatval($data->qty); $activity->save(); }); static::deleted(function($data) { $activity = Activity::find($data->activity_id); $assignedMaterial = AssignMaterial::find($data->assign_material_id); $activity->biaya_actual -= floatval($assignedMaterial->budget) * floatval($data->qty); $activity->save(); }); } }