Files
backend/app/Http/Controllers/V2/Dashboard/ContractController.php
2024-02-01 09:53:53 +00:00

68 lines
2.9 KiB
PHP

<?php
namespace App\Http\Controllers\V2\Dashboard;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ContractSubItems;
use App\Models\Contracts;
class ContractController extends Controller
{
public function getAllDataToMap(Request $request)
{
$projectType = $request->type;
$province = $request->province_id;
$axis = $request->axis;
$lastStatus = $request->last_status;
$fromDate = $request->date_from;
$toDate = $request->date_to;
$priority = $request->priority;
$followup_priority_project_id = $request->followup;
$data = ContractSubItems::select('id', 'start_lat', 'start_lng', 'project_type_id')
->when($projectType, function ($query, $projectType) {
return $query->where('project_type_id', $projectType);
})
->when($province, function ($query, $province) {
return $query->where('province_id', $province);
})
->when($axis, function ($query, $axis) {
return $query->where('axis_type_id', $axis);
})
->when($followup_priority_project_id, function ($query, $followup_priority_project_id) {
return $query->where('followup_priority_project_id', $followup_priority_project_id);
})
->when($lastStatus, function ($query, $lastStatus) {
return $query->where('last_status_id', $lastStatus);
})
->when($fromDate, function ($query) use ($fromDate, $toDate) {
return $query->whereBetween('contract_date_from_parent_contract', [$fromDate, $toDate]);
})
->when($priority, function ($query, $priority) {
return $query->where('priority_project', $priority);
})
->get();
return response()->json([
'status' => 'succeed',
'count' => count($data),
'data' => $data
], 200);
}
public function detail(ContractSubItems $contract_sub_item)
{
return response()->json($contract_sub_item, 200);
}
public function unserialize(Contracts $contract)
{
return response()->json([
'data' => $contract->documents ? unserialize($contract->documents) : [] ,
]);
}
}