diff --git a/app/Models/Activity.php b/app/Models/Activity.php index cc4beb1..ff6d559 100644 --- a/app/Models/Activity.php +++ b/app/Models/Activity.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Models\AssignMaterial; +use App\Models\ActivityProgressLog; use App\Models\AssignTools; use App\Models\ReportActivityMaterial; use Illuminate\Database\Eloquent\Model; @@ -50,11 +51,17 @@ class Activity extends Model public static function boot() { parent::boot(); + static::updating(function($data) { + $data->logPersentaseProgress(); + }); + static::updated(function($data) { $data->updateBobot(); $data->updateCostPlanning(); - $data->updatePersentaseProgress(); - $data->updateCostActual(); + if($data->persentase_bobot){ + $data->updatePersentaseProgress(); + $data->updateCostActual(); + } }); static::deleted(function($data) { @@ -63,8 +70,10 @@ class Activity extends Model $data->updateBobot(true); $data->updateCostPlanning(); - $data->updatePersentaseProgress(); - $data->updateCostActual(); + if($data->persentase_bobot){ + $data->updatePersentaseProgress(); + $data->updateCostActual(); + } }); } @@ -138,6 +147,18 @@ class Activity extends Model } } + private function logPersentaseProgress() + { + ActivityProgressLog::create([ + 'version_gantt_id' => $this->version_gantt_id, + 'activity_id' => request()->id, + 'old_percentage' => $this->persentase_progress, + 'new_percentage' => request()->persentase_progress, + 'variance' => $this->persentase_progress - request()->persentase_progress, + 'created_by'=> "system" + ]); + } + public function getJobsDoneAttribute() { if(!ReportActivityMaterial::where('activity_id', $this->id)->first()) diff --git a/app/Models/ActivityProgressLog.php b/app/Models/ActivityProgressLog.php new file mode 100644 index 0000000..0746c92 --- /dev/null +++ b/app/Models/ActivityProgressLog.php @@ -0,0 +1,19 @@ +