|
|
|
@ -1,22 +1,23 @@
|
|
|
|
|
<?php |
|
|
|
|
namespace App\Http\Controllers; |
|
|
|
|
|
|
|
|
|
use App\Helpers\MasterFunctionsHelper; |
|
|
|
|
use App\Models\Activity; |
|
|
|
|
use App\Models\AssignMaterial; |
|
|
|
|
use App\Models\CommentActivity; |
|
|
|
|
use DateTime; |
|
|
|
|
use App\Models\Link; |
|
|
|
|
use App\Models\User; |
|
|
|
|
use App\Models\Project; |
|
|
|
|
use App\Models\TemplateGantt; |
|
|
|
|
use App\Models\Activity; |
|
|
|
|
use App\Models\TmpImport; |
|
|
|
|
use App\Models\VersionGantt; |
|
|
|
|
use App\Models\UserToActivity; |
|
|
|
|
use App\Models\UserToProyek; |
|
|
|
|
use App\Models\User; |
|
|
|
|
use App\Models\VersionGantt; |
|
|
|
|
use Illuminate\Http\Request; |
|
|
|
|
use App\Models\TemplateGantt; |
|
|
|
|
use App\Models\AssignMaterial; |
|
|
|
|
use App\Models\UserToActivity; |
|
|
|
|
use App\Models\ActivityDokumen; |
|
|
|
|
use App\Models\CommentActivity; |
|
|
|
|
use Illuminate\Support\Facades\DB; |
|
|
|
|
use Illuminate\Support\Facades\Log; |
|
|
|
|
use DateTime; |
|
|
|
|
use App\Helpers\MasterFunctionsHelper; |
|
|
|
|
|
|
|
|
|
class ActivityController extends Controller |
|
|
|
|
{ |
|
|
|
@ -500,13 +501,26 @@ class ActivityController extends Controller
|
|
|
|
|
{ |
|
|
|
|
if (!$data = Activity::find($id)) |
|
|
|
|
return response()->json(['status' => 'failed', 'action' => 'error', 'message' => 'Data not found!', 'code' => 404], 404); |
|
|
|
|
|
|
|
|
|
$this->deleteRelative($id); |
|
|
|
|
if (!$data->delete()) |
|
|
|
|
return response()->json(['status' => 'failed', 'action' => 'error', 'message' => 'data activity failed deleted!', 'code' => 500], 500); |
|
|
|
|
|
|
|
|
|
return response()->json(['status' => 'success', "action" => "deleted", 'message' => 'data activity successfully deleted!', 'code' => 200], 200); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private function deleteRelative($activity_id) |
|
|
|
|
{ |
|
|
|
|
UserToActivity::where('activity_id', $activity_id)->delete(); |
|
|
|
|
AssignMaterial::where('activity_id', $activity_id)->delete(); |
|
|
|
|
$dataAd = ActivityDokumen::where("activity_id", $activity_id)->get(); |
|
|
|
|
foreach ($dataAd as $ad) { |
|
|
|
|
if(file_exists($this->pathActivityDocument.$ad->file)){ |
|
|
|
|
unlink($this->pathActivityDocument.$ad->file); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
ActivityDokumen::where("activity_id", $activity_id)->delete(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function getUpdate($id) |
|
|
|
|
{ |
|
|
|
|
if (!$data = Activity::find($id)) |
|
|
|
@ -544,23 +558,39 @@ class ActivityController extends Controller
|
|
|
|
|
{ |
|
|
|
|
$dataBuilder = $this->setUpPayload($request->all(), 'm_activity'); |
|
|
|
|
$builder = $dataBuilder['builder']; |
|
|
|
|
$dataGet = $builder->select( 'selfTable.name', 'persentase_progress', 'selfTable.start_date', 'selfTable.end_date', 'duration', 'assign_hr_to_activity.id', |
|
|
|
|
'm_version_gantt.name_version', 'm_users.name as user_name', |
|
|
|
|
DB::raw('SUM(report_activity_material.qty) as qty'), 'assign_material_to_activity.qty_planning', |
|
|
|
|
'assign_material_to_activity.id as join_third_id') |
|
|
|
|
$dataGet = $builder->select( |
|
|
|
|
'selfTable.name', |
|
|
|
|
'persentase_progress', |
|
|
|
|
'selfTable.start_date', |
|
|
|
|
'selfTable.end_date', |
|
|
|
|
'selfTable.planned_start', |
|
|
|
|
'selfTable.planned_end', |
|
|
|
|
'selfTable.actual_start', |
|
|
|
|
'selfTable.actual_end', |
|
|
|
|
'duration', |
|
|
|
|
'm_version_gantt.name_version', |
|
|
|
|
DB::raw('user_names.user_name as user_name'), |
|
|
|
|
DB::raw('SUM(report_activity_material.qty) as qty'), |
|
|
|
|
'assign_material_to_activity.qty_planning', |
|
|
|
|
'assign_material_to_activity.id as join_third_id' |
|
|
|
|
) |
|
|
|
|
->join('m_version_gantt', 'm_version_gantt.id', '=', 'selfTable.version_gantt_id') |
|
|
|
|
->leftJoin('assign_hr_to_activity', 'assign_hr_to_activity.activity_id', '=', 'selfTable.id') |
|
|
|
|
->leftJoin('m_users', 'assign_hr_to_activity.user_id', '=', 'm_users.id') |
|
|
|
|
->leftJoin('report_activity_material', 'report_activity_material.activity_id', '=', 'selfTable.id') |
|
|
|
|
->join('assign_material_to_activity', 'assign_material_to_activity.activity_id', '=', 'selfTable.id') |
|
|
|
|
->groupBy("selfTable.id") |
|
|
|
|
->groupBy("selfTable.name") |
|
|
|
|
->groupBy("selfTable.persentase_progress") |
|
|
|
|
->groupBy("m_version_gantt.name_version") |
|
|
|
|
->groupBy("m_users.name") |
|
|
|
|
->groupBy("assign_material_to_activity.qty_planning") |
|
|
|
|
->groupBy("assign_material_to_activity.id") |
|
|
|
|
->groupBy("assign_hr_to_activity.id") |
|
|
|
|
->leftJoin(DB::raw('(SELECT activity_id, STRING_AGG(m_users.name, \',\') as user_name |
|
|
|
|
FROM assign_hr_to_activity |
|
|
|
|
LEFT JOIN m_users ON assign_hr_to_activity.user_id = m_users.id |
|
|
|
|
GROUP BY activity_id) as user_names'), function ($join) { |
|
|
|
|
$join->on('user_names.activity_id', '=', 'selfTable.id'); |
|
|
|
|
}) |
|
|
|
|
->groupBy('selfTable.id') |
|
|
|
|
->groupBy('selfTable.name') |
|
|
|
|
->groupBy('selfTable.persentase_progress') |
|
|
|
|
->groupBy('m_version_gantt.name_version') |
|
|
|
|
->groupBy('assign_material_to_activity.qty_planning') |
|
|
|
|
->groupBy('assign_material_to_activity.id') |
|
|
|
|
->groupBy('user_names.user_name') |
|
|
|
|
->get(); |
|
|
|
|
return response()->json(['status' => 'success', 'code' => 200, 'data' => $dataGet ], 200); |
|
|
|
|
} |
|
|
|
|