public function fileUploadUpdate($uploadId, $status) { $statusObject = array("applied" => array("approve" => "approved", "reject" => "rejected"), "signed_agreement" => array("approve" => "approved_agreement", "reject" => "rejected_agreement"), "first_payment" => array("approve" => "approved_first_payment", "reject" => "rejected_first_payment"), "second_payment" => array("approve" => "approved_second_payment", "reject" => "rejected_second_payment"), "second_progress_report" => array("approve" => "approved_second_progress_report", "reject" => "rejected_second_progress_report"), "request_extend" => array("approve" => "approved_extend", "reject" => "rejected_extend"), "finalized" => array("approve" => "approved_finalized", "reject" => "rejected_finalized"), "project_finished" => array("approve" => "approved_project_finished", "reject" => "rejected_project_finished")); $upload = Upload::find($uploadId); $upload->status = $status; $upload->save(); $application = Application::find($upload->application_id); $appStatus = $application->status; $rejectList = ["rejected", "rejected_agreement", "rejected_first_payment", "rejected_second_payment", "rejected_second_progress_report", "rejected_extend", "rejected_finalized", "rejected_project_finished"]; if (in_array($appStatus, $rejectList)) { // Application status = reject force return return redirect()->route('fund_user_request', array('id' => $application->fund)); } $checkReject = Upload::where('application_id', $upload->application_id)->where('status', 'Reject')->count(); if ($checkReject != 0) { $this->applicationUpdate($upload->application_id, $statusObject[$appStatus]['reject']); } else { $allUploadFile = Upload::where('application_id', $upload->application_id)->count(); $allUploadApprove = Upload::where('application_id', $upload->application_id)->where('status', 'Approve')->count(); if ($allUploadFile == $allUploadApprove) { $this->applicationUpdate($upload->application_id, $statusObject[$appStatus]['approve']); } } return redirect()->route('fund_user_request', array('id' => $application->fund)); }