|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Http\Controllers\API;
|
|
|
|
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
use App\Models\MaterialProject;
|
|
|
|
|
|
|
|
class MaterialProjectController extends Controller
|
|
|
|
{
|
|
|
|
public function __invoke(Request $request)
|
|
|
|
{
|
|
|
|
$projectId = $request->project_id;
|
|
|
|
$subproyekId = $request->subproyek_id;
|
|
|
|
$listMaterialId = $request->material_id;
|
|
|
|
|
|
|
|
if (!$projectId && !$subproyekId) {
|
|
|
|
return response()->json(['status' => 'failed', 'message' => 'Required proyek_id or subproyek id', 'code' => 400]);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (is_array($listMaterialId) && count($listMaterialId) > 0) {
|
|
|
|
$result = 0;
|
|
|
|
MaterialProject::where('proyek_id', $projectId)->delete();
|
|
|
|
MaterialProject::where('proyek_id', $subproyekId)->delete();
|
|
|
|
foreach ($listMaterialId as $material_id) {
|
|
|
|
$data = [
|
|
|
|
'material_resource_id' => (int)$material_id
|
|
|
|
];
|
|
|
|
|
|
|
|
if ($projectId && $projectId != "" && (int)$projectId > 0) {
|
|
|
|
$data['proyek_id'] = $projectId;
|
|
|
|
} else if ($subproyekId && $subproyekId != "" && (int)$subproyekId > 0) {
|
|
|
|
$data['subproyek_id'] = $subproyekId;
|
|
|
|
}
|
|
|
|
|
|
|
|
$insert = MaterialProject::create($data);
|
|
|
|
if ($insert) {
|
|
|
|
$result++;
|
|
|
|
} else {
|
|
|
|
$result--;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ($result > 0) {
|
|
|
|
return response()->json(['status' => 'success', 'message' => 'Material Project successfull updated', 'code' => 200]);
|
|
|
|
} else {
|
|
|
|
return response()->json(['status' => 'failed', 'message' => 'Material Project failed updated', 'code' => 400]);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
MaterialProject::where('proyek_id', $projectId)->delete();
|
|
|
|
MaterialProject::where('proyek_id', $subproyekId)->delete();
|
|
|
|
return response()->json(['status' => 'success', 'message' => 'Material Project Successfull updated', 'code' => 200]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|