wahyu
1 year ago
15 changed files with 1504 additions and 909 deletions
@ -1,171 +1,177 @@
|
||||
<?php |
||||
|
||||
namespace App\Http\Controllers; |
||||
|
||||
use Illuminate\Http\Request; |
||||
use App\Models\Broadcast; |
||||
use App\Models\User; |
||||
use App\Services\FCMService; |
||||
|
||||
class BroadcastController extends Controller |
||||
{ |
||||
public function add(Request $request) |
||||
{ |
||||
|
||||
$data = $request->all(); |
||||
$data['status_send'] = true; |
||||
$data['created_by'] = $this->currentName; |
||||
if (isset($data['send_to_id'])) { |
||||
$idArray = $data['send_to_id']; |
||||
if (is_array($data['send_to_id'])) { |
||||
$data['send_to_id'] = implode(", ", $idArray); |
||||
} |
||||
} |
||||
// dd($data); |
||||
$result = Broadcast::create($data); |
||||
if($result){ |
||||
$this->sendNotification($data); |
||||
return response()->json(['status'=>'success','message'=>'add broadcast successfully!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'add broadcast failed!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function edit($id){ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
$result = Broadcast::find($id); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get data broadcast, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function update(Request $request, $id) |
||||
{ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
} |
||||
|
||||
$data = Broadcast::find($id); |
||||
|
||||
if($data){ |
||||
$result = $data->update($request->all()); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data broadcast not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'data broadcast successfully updated!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data broadcast failed updated!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function delete($id) |
||||
{ |
||||
$data = Broadcast::find($id); |
||||
|
||||
if($data){ |
||||
$delete = $data->delete(); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data broadcast not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($delete){ |
||||
return response()->json(['status'=>'success','message'=>'data broadcast successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data broadcast failed deleted!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function search(Request $request) |
||||
{ |
||||
$payload = $request->all(); |
||||
$dataBuilder = $this->setUpPayload($payload, 'm_broadcast'); |
||||
$builder = $dataBuilder['builder']; |
||||
$countBuilder = $dataBuilder['count']; |
||||
$dataGet = $builder->get(); |
||||
$totalRecord = $countBuilder->count(); |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200); |
||||
} |
||||
|
||||
public function list() |
||||
{ |
||||
$data = Broadcast::all(); |
||||
$countData = $data->count(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get list broadcast, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function sendNotification($data) |
||||
{ |
||||
// send_to_type (all, roles, user) |
||||
if (isset($data['send_to_type'])) { |
||||
switch ($data['send_to_type']) { |
||||
case 'all': |
||||
$users = User::whereNotNull('fcm_token')->get(); |
||||
if (isset($users)) { |
||||
foreach ($users as $user) { |
||||
FCMService::send( |
||||
$user->fcm_token, |
||||
[ |
||||
'title' => $data['title_notif'], |
||||
'body' => $data['message_notif'], |
||||
] |
||||
); |
||||
} |
||||
} |
||||
break; |
||||
|
||||
case 'roles': |
||||
$users = User::where("role_id", $data['send_to_id'])->whereNotNull('fcm_token')->get(); |
||||
if (isset($users)) { |
||||
foreach ($users as $user) { |
||||
FCMService::send( |
||||
$user->fcm_token, |
||||
[ |
||||
'title' => $data['title_notif'], |
||||
'body' => $data['message_notif'], |
||||
] |
||||
); |
||||
} |
||||
} |
||||
break; |
||||
|
||||
case 'users': |
||||
$idArray = explode(", ", $data['send_to_id']); |
||||
foreach ($idArray as $key => $value) { |
||||
$user = User::where("id", $value)->whereNotNull('fcm_token')->first(); |
||||
if (isset($user)) { |
||||
FCMService::send( |
||||
$user->fcm_token, |
||||
[ |
||||
'title' => $data['title_notif'], |
||||
'body' => $data['message_notif'], |
||||
] |
||||
); |
||||
} |
||||
} |
||||
break; |
||||
|
||||
default: |
||||
# code... |
||||
break; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
<?php |
||||
|
||||
namespace App\Http\Controllers; |
||||
|
||||
use Illuminate\Http\Request; |
||||
use App\Models\Broadcast; |
||||
use App\Models\User; |
||||
use App\Services\FCMService; |
||||
|
||||
class BroadcastController extends Controller |
||||
{ |
||||
public function add(Request $request) |
||||
{ |
||||
|
||||
$data = $request->all(); |
||||
$data['created_by'] = $this->currentName; |
||||
if (isset($data['send_to_id'])) { |
||||
$idArray = $data['send_to_id']; |
||||
if (is_array($data['send_to_id'])) { |
||||
$data['send_to_id'] = implode(", ", $idArray); |
||||
} |
||||
} |
||||
$result = Broadcast::create($data); |
||||
if($result){ |
||||
$data['status_send'] !== "registered" ? $this->sendNotification($data) : ''; |
||||
return response()->json(['status'=>'success','message'=>'add broadcast successfully!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'add broadcast failed!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function edit($id){ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
$result = Broadcast::find($id); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get data broadcast, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function update(Request $request, $id) |
||||
{ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
} |
||||
|
||||
$data = Broadcast::find($id); |
||||
|
||||
$status_send = $request->status_send; |
||||
|
||||
if($status_send === 'resend' || $status_send === 'send' && !empty($data)) |
||||
{ |
||||
$data['status_send'] = $status_send; |
||||
$this->sendNotification($data); |
||||
} |
||||
|
||||
if($data){ |
||||
$result = $data->update($request->all()); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data broadcast not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'data broadcast successfully updated!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data broadcast failed updated!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function delete($id) |
||||
{ |
||||
$data = Broadcast::find($id); |
||||
|
||||
if($data){ |
||||
$delete = $data->delete(); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data broadcast not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($delete){ |
||||
return response()->json(['status'=>'success','message'=>'data broadcast successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data broadcast failed deleted!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function search(Request $request) |
||||
{ |
||||
$payload = $request->all(); |
||||
$dataBuilder = $this->setUpPayload($payload, 'm_broadcast'); |
||||
$builder = $dataBuilder['builder']; |
||||
$countBuilder = $dataBuilder['count']; |
||||
$dataGet = $builder->get(); |
||||
$totalRecord = $countBuilder->count(); |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200); |
||||
} |
||||
|
||||
public function list() |
||||
{ |
||||
$data = Broadcast::all(); |
||||
$countData = $data->count(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get list broadcast, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function sendNotification($data) |
||||
{ |
||||
// send_to_type (all, roles, user) |
||||
if (isset($data['send_to_type'])) { |
||||
switch ($data['send_to_type']) { |
||||
case 'all': |
||||
$users = User::whereNotNull('fcm_token')->get(); |
||||
if (isset($users)) { |
||||
foreach ($users as $user) { |
||||
FCMService::send( |
||||
$user->fcm_token, |
||||
[ |
||||
'title' => $data['title_notif'], |
||||
'body' => $data['message_notif'], |
||||
] |
||||
); |
||||
} |
||||
} |
||||
break; |
||||
|
||||
case 'roles': |
||||
$users = User::where("role_id", $data['send_to_id'])->whereNotNull('fcm_token')->get(); |
||||
if (isset($users)) { |
||||
foreach ($users as $user) { |
||||
FCMService::send( |
||||
$user->fcm_token, |
||||
[ |
||||
'title' => $data['title_notif'], |
||||
'body' => $data['message_notif'], |
||||
] |
||||
); |
||||
} |
||||
} |
||||
break; |
||||
|
||||
case 'users': |
||||
$idArray = explode(", ", $data['send_to_id']); |
||||
foreach ($idArray as $key => $value) { |
||||
$user = User::where("id", $value)->whereNotNull('fcm_token')->first(); |
||||
if (isset($user)) { |
||||
FCMService::send( |
||||
$user->fcm_token, |
||||
[ |
||||
'title' => $data['title_notif'], |
||||
'body' => $data['message_notif'], |
||||
] |
||||
); |
||||
} |
||||
} |
||||
break; |
||||
|
||||
default: |
||||
# code... |
||||
break; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
@ -1,193 +1,199 @@
|
||||
<?php |
||||
|
||||
namespace App\Http\Controllers; |
||||
|
||||
use Illuminate\Http\Request; |
||||
use App\Models\HumanResource; |
||||
use App\Models\UserToActivity; |
||||
use App\Models\UserToProyek; |
||||
use Illuminate\Support\Facades\Artisan; |
||||
|
||||
class HumanResourceController extends Controller |
||||
{ |
||||
public function add(Request $request){ |
||||
$this->validate($request, [ |
||||
'role_id' => 'required', |
||||
'name' => 'required', |
||||
'ktp_number' => 'required', |
||||
'employee_type' => 'required' |
||||
]); |
||||
|
||||
$data = $request->all(); |
||||
|
||||
if(isset($request->password) && $request->password!=""){ |
||||
$data['password'] = md5($request->password); |
||||
} |
||||
|
||||
$result = HumanResource::create($data); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'Human Resource Pool successfull created','code'=>200]); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'Human Resource Pool failed created','code'=>400]); |
||||
} |
||||
} |
||||
|
||||
public function edit($id){ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
$result = HumanResource::find($id); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get data human resource, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function update(Request $request, $id){ |
||||
|
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
} |
||||
|
||||
$humanresource = HumanResource::find($id); |
||||
|
||||
$data = $request->all(); |
||||
|
||||
if(isset($request->password) && $request->password!="" ){ |
||||
$data['password'] = md5($request->password); |
||||
} |
||||
|
||||
if(isset($data['username']) && HumanResource::where('username', $data['username'])->where('id', '<>', $id)->exists()){ |
||||
return response()->json(['status'=>'failed','message'=>'Username already exists!','code'=>400], 400); |
||||
} |
||||
|
||||
if($humanresource){ |
||||
$result = $humanresource->update($data); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data Human Resource Pool not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'Human Resource Pool successfully updated!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'Human Resource Pool failed updated!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function delete($id) |
||||
{ |
||||
$data = HumanResource::find($id); |
||||
|
||||
if($data){ |
||||
$delete = $data->delete(); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data Human Resource Pool not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($delete){ |
||||
return response()->json(['status'=>'success','message'=>'Human Resource Pool successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'Human Resource Pool failed deleted!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function search(Request $request) |
||||
{ |
||||
$payload = $request->all(); |
||||
$dataBuilder = $this->setUpPayload($payload, 'm_users'); |
||||
$builder = $dataBuilder['builder']; |
||||
$countBuilder = $dataBuilder['count']; |
||||
$dataGet = $builder->get(); |
||||
$totalRecord = $countBuilder->count(); |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200); |
||||
} |
||||
|
||||
public function list() |
||||
{ |
||||
$data = HumanResource::select('id', 'name')->get(); |
||||
$countData = $data->count(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get list human resource, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function select(Request $request){ |
||||
|
||||
$search = $request->query('search'); |
||||
|
||||
$idActivity = (int)$request->query('idact'); |
||||
$idProyek = (int)$request->query('idProyek'); |
||||
|
||||
$forbidden = []; |
||||
|
||||
if($idActivity && $idActivity > 0){ |
||||
$dataF = UserToActivity::select("user_id")->where("activity_id", $idActivity)->get(); |
||||
foreach($dataF as $val){ |
||||
$forbidden[] = $val->user_id; |
||||
} |
||||
} |
||||
|
||||
if ($search && !empty($search)) { |
||||
$data = UserToProyek::select("m_users.id as id", "m_users.name as name", "assign_hr_to_proyek.project_role as proyek_role") |
||||
->join('m_users', 'm_users.id', '=', 'assign_hr_to_proyek.user_id') |
||||
->where("assign_hr_to_proyek.proyek_id", $idProyek) |
||||
->where(function ($query) { |
||||
$query->where("assign_hr_to_proyek.is_customer", "!=", true) |
||||
->orWhereNull("assign_hr_to_proyek.is_customer"); |
||||
}) |
||||
->where("m_users.name", 'like', '%' . $search . '%') |
||||
->whereNotIn("m_users.id", $forbidden)->get(); |
||||
} else { |
||||
$data = UserToProyek::select("m_users.id as id", "m_users.name as name", "assign_hr_to_proyek.project_role as proyek_role") |
||||
->where("assign_hr_to_proyek.proyek_id", $idProyek) |
||||
->where(function ($query) { |
||||
$query->where("assign_hr_to_proyek.is_customer", "!=", true) |
||||
->orWhereNull("assign_hr_to_proyek.is_customer"); |
||||
}) |
||||
->join('m_users', 'm_users.id', '=', 'assign_hr_to_proyek.user_id') |
||||
->whereNotIn("m_users.id", $forbidden) |
||||
->get(); |
||||
} |
||||
|
||||
return response()->json($data); |
||||
} |
||||
|
||||
public function checkOldPassword(Request $request, $id) |
||||
{ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
$data = $request->all(); |
||||
|
||||
if(isset($request->old_password) && $request->old_password!="" ){ |
||||
$result = HumanResource::find($id); |
||||
$data['old_password'] = md5($request->old_password); |
||||
if($data['old_password'] !== $result->password) { |
||||
return response()->json(['status'=>'failed','message'=>"old password seems doesn't match in records. please try again.",'code'=>400], 400); |
||||
} |
||||
elseif($data['old_password'] === $result->password) { |
||||
return response()->json(['status'=>'success','message'=>"old password match",'data'=>$result,'code'=>200], 200); |
||||
} |
||||
} |
||||
else { |
||||
return response()->json(['status'=>'failed','message'=>'old_password is required!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function sync(){ |
||||
Artisan::call('sync:integration-human-resources'); |
||||
} |
||||
} |
||||
<?php |
||||
|
||||
namespace App\Http\Controllers; |
||||
|
||||
use Illuminate\Http\Request; |
||||
use App\Models\HumanResource; |
||||
use App\Models\UserToActivity; |
||||
use App\Models\UserToProyek; |
||||
use Illuminate\Support\Facades\Artisan; |
||||
|
||||
class HumanResourceController extends Controller |
||||
{ |
||||
public function add(Request $request) |
||||
{ |
||||
$this->validate($request, [ |
||||
'role_id' => 'required', |
||||
'name' => 'required', |
||||
'ktp_number' => 'required|numeric|unique:m_users,ktp_number', |
||||
'employee_type' => 'required' |
||||
]); |
||||
|
||||
$data = $request->all(); |
||||
|
||||
if (isset($request->password) && $request->password != "") { |
||||
$data['password'] = md5($request->password); |
||||
} |
||||
|
||||
$result = HumanResource::create($data); |
||||
|
||||
if ($result) { |
||||
return response()->json(['status' => 'success', 'message' => 'Human Resource Pool successfull created', 'code' => 200]); |
||||
} else { |
||||
return response()->json(['status' => 'failed', 'message' => 'Human Resource Pool failed created', 'code' => 400]); |
||||
} |
||||
} |
||||
|
||||
public function edit($id) |
||||
{ |
||||
if (!$id || (int) $id < 0 || $id == "") { |
||||
return response()->json(['status' => 'failed', 'message' => 'id is required!', 'code' => 400], 400); |
||||
die(); |
||||
} |
||||
|
||||
$result = HumanResource::find($id); |
||||
|
||||
if ($result) { |
||||
return response()->json(['status' => 'success', 'code' => 200, 'data' => $result], 200); |
||||
} else { |
||||
return response()->json(['status' => 'failed', 'message' => 'failed get data human resource, please try again later!', 'code' => 400], 400); |
||||
} |
||||
} |
||||
|
||||
public function update(Request $request, $id) |
||||
{ |
||||
|
||||
if (!$id || (int) $id < 0 || $id == "") { |
||||
return response()->json(['status' => 'failed', 'message' => 'id is required!', 'code' => 400], 400); |
||||
} |
||||
$humanresource = HumanResource::find($id); |
||||
|
||||
$request->ktp_number !== $humanresource['ktp_number'] ? $this->validate($request,['ktp_number'=>'unique:m_users,ktp_number|numeric']) : ''; |
||||
$request->email !== $humanresource['email'] ? $this->validate($request,['email'=>'unique:m_users,email|email']) : ''; |
||||
$request->password ? $this->validate($request,['password'=>'required|min:8']) : ''; |
||||
|
||||
$data = $request->all(); |
||||
|
||||
if (isset($request->password) && $request->password != "") { |
||||
$data['password'] = md5($request->password); |
||||
} |
||||
|
||||
if (isset($data['username']) && HumanResource::where('username', $data['username'])->where('id', '<>', $id)->exists()) { |
||||
return response()->json(['status' => 'failed', 'message' => 'Username already exists!', 'code' => 400], 400); |
||||
} |
||||
|
||||
if ($humanresource) { |
||||
$result = $humanresource->update($data); |
||||
} else { |
||||
return response()->json(['status' => 'failed', 'message' => 'data Human Resource Pool not found!', 'code' => 400], 400); |
||||
die(); |
||||
} |
||||
|
||||
if ($result) { |
||||
return response()->json(['status' => 'success', 'message' => 'Human Resource Pool successfully updated!', 'code' => 200], 200); |
||||
} else { |
||||
return response()->json(['status' => 'failed', 'message' => 'Human Resource Pool failed updated!', 'code' => 400], 400); |
||||
} |
||||
} |
||||
|
||||
public function delete($id) |
||||
{ |
||||
$data = HumanResource::find($id); |
||||
|
||||
if ($data) { |
||||
$delete = $data->delete(); |
||||
} else { |
||||
return response()->json(['status' => 'failed', 'message' => 'data Human Resource Pool not found!', 'code' => 400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if ($delete) { |
||||
return response()->json(['status' => 'success', 'message' => 'Human Resource Pool successfully deleted!', 'code' => 200], 200); |
||||
} else { |
||||
return response()->json(['status' => 'failed', 'message' => 'Human Resource Pool failed deleted!', 'code' => 400], 400); |
||||
} |
||||
} |
||||
|
||||
public function search(Request $request) |
||||
{ |
||||
$payload = $request->all(); |
||||
$dataBuilder = $this->setUpPayload($payload, 'm_users'); |
||||
$builder = $dataBuilder['builder']; |
||||
$countBuilder = $dataBuilder['count']; |
||||
$dataGet = $builder->get(); |
||||
$totalRecord = $countBuilder->count(); |
||||
return response()->json(['status' => 'success', 'code' => 200, 'data' => $dataGet, 'totalRecord' => $totalRecord], 200); |
||||
} |
||||
|
||||
public function list() |
||||
{ |
||||
$data = HumanResource::select('id', 'name', 'role_id')->get(); |
||||
$countData = $data->count(); |
||||
|
||||
if ($data) { |
||||
return response()->json(['status' => 'success', 'code' => 200, 'data' => $data, 'totalRecord' => $countData], 200); |
||||
} else { |
||||
return response()->json(['status' => 'failed', 'message' => 'failed get list human resource, please try again later!', 'code' => 400], 400); |
||||
} |
||||
} |
||||
|
||||
public function select(Request $request) |
||||
{ |
||||
|
||||
$search = $request->query('search'); |
||||
|
||||
$idActivity = (int)$request->query('idact'); |
||||
$idProyek = (int)$request->query('idProyek'); |
||||
|
||||
$forbidden = []; |
||||
|
||||
if ($idActivity && $idActivity > 0) { |
||||
$dataF = UserToActivity::select("user_id")->where("activity_id", $idActivity)->get(); |
||||
foreach ($dataF as $val) { |
||||
$forbidden[] = $val->user_id; |
||||
} |
||||
} |
||||
|
||||
if ($search && !empty($search)) { |
||||
$data = UserToProyek::select("m_users.id as id", "m_users.name as name", "assign_hr_to_proyek.project_role as proyek_role") |
||||
->join('m_users', 'm_users.id', '=', 'assign_hr_to_proyek.user_id') |
||||
->where("assign_hr_to_proyek.proyek_id", $idProyek) |
||||
->where(function ($query) { |
||||
$query->where("assign_hr_to_proyek.is_customer", "!=", true) |
||||
->orWhereNull("assign_hr_to_proyek.is_customer"); |
||||
}) |
||||
->where("m_users.name", 'like', '%' . $search . '%') |
||||
->whereNotIn("m_users.id", $forbidden)->get(); |
||||
} else { |
||||
$data = UserToProyek::select("m_users.id as id", "m_users.name as name", "assign_hr_to_proyek.project_role as proyek_role") |
||||
->where("assign_hr_to_proyek.proyek_id", $idProyek) |
||||
->where(function ($query) { |
||||
$query->where("assign_hr_to_proyek.is_customer", "!=", true) |
||||
->orWhereNull("assign_hr_to_proyek.is_customer"); |
||||
}) |
||||
->join('m_users', 'm_users.id', '=', 'assign_hr_to_proyek.user_id') |
||||
->whereNotIn("m_users.id", $forbidden) |
||||
->get(); |
||||
} |
||||
|
||||
return response()->json($data); |
||||
} |
||||
|
||||
public function checkOldPassword(Request $request, $id) |
||||
{ |
||||
if (!$id || (int) $id < 0 || $id == "") { |
||||
return response()->json(['status' => 'failed', 'message' => 'id is required!', 'code' => 400], 400); |
||||
die(); |
||||
} |
||||
|
||||
$data = $request->all(); |
||||
|
||||
if (isset($request->old_password) && $request->old_password != "") { |
||||
$result = HumanResource::find($id); |
||||
$data['old_password'] = md5($request->old_password); |
||||
if ($data['old_password'] !== $result->password) { |
||||
return response()->json(['status' => 'failed', 'message' => "old password seems doesn't match in records. please try again.", 'code' => 400], 400); |
||||
} elseif ($data['old_password'] === $result->password) { |
||||
return response()->json(['status' => 'success', 'message' => "old password match", 'data' => $result, 'code' => 200], 200); |
||||
} |
||||
} else { |
||||
return response()->json(['status' => 'failed', 'message' => 'old_password is required!', 'code' => 400], 400); |
||||
} |
||||
} |
||||
|
||||
public function sync() |
||||
{ |
||||
Artisan::call('sync:integration-human-resources'); |
||||
} |
||||
} |
||||
|
@ -1,151 +1,159 @@
|
||||
<?php |
||||
|
||||
namespace App\Http\Controllers; |
||||
|
||||
use Illuminate\Http\Request; |
||||
use App\Models\Menu; |
||||
use App\Models\RoleMenu; |
||||
|
||||
class MenuController extends Controller |
||||
{ |
||||
public function add(Request $request) |
||||
{ |
||||
$this->validate($request, [ |
||||
'icon' => 'required', |
||||
'name' => 'required', |
||||
'url' => 'required', |
||||
'sequence' => 'required', |
||||
]); |
||||
|
||||
$data = $request->all(); |
||||
|
||||
$data['created_by'] = $this->currentName; |
||||
|
||||
$result = Menu::create($data); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'add data menu successfully!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'add data menu failed!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function edit($id){ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
$result = Menu::find($id); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get data menu, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function update(Request $request, $id) |
||||
{ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
} |
||||
|
||||
$data = Menu::find($id); |
||||
|
||||
if($data){ |
||||
$result = $data->update($request->all()); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data menu not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'data menu successfully updated!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data menu failed updated!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function delete($id) |
||||
{ |
||||
$data = Menu::find($id); |
||||
|
||||
if($data){ |
||||
$delete = $data->delete(); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data menu not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($delete){ |
||||
return response()->json(['status'=>'success','message'=>'data menu successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data menu failed deleted!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function search(Request $request) |
||||
{ |
||||
$payload = $request->all(); |
||||
$dataBuilder = $this->setUpPayload($payload, 'm_menu'); |
||||
$builder = $dataBuilder['builder']; |
||||
$countBuilder = $dataBuilder['count']; |
||||
$dataGet = $builder->get(); |
||||
$totalRecord = $countBuilder->count(); |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200); |
||||
} |
||||
|
||||
public function listMenu($id) |
||||
{ |
||||
$dataParent = RoleMenu::select("m_menu.*") |
||||
->join('m_menu', 'm_menu.id', '=', 't_roles_menu.menu_id') |
||||
->join('m_roles', 'm_roles.id', '=', 't_roles_menu.role_id') |
||||
->whereNull('m_menu.parent_id') |
||||
->where('m_roles.id', $id) |
||||
->orderBy('m_menu.sequence', 'ASC') |
||||
->get(); |
||||
|
||||
$finalData = []; |
||||
foreach($dataParent as $data){ |
||||
$data->children = $this->getChildrenMenu($data->id, $id); |
||||
$finalData[] = $data; |
||||
} |
||||
|
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$finalData], 200); |
||||
} |
||||
|
||||
protected function getChildrenMenu($id, $role_id) |
||||
{ |
||||
$dataChildren = RoleMenu::select("m_menu.*") |
||||
->join('m_menu', 'm_menu.id', '=', 't_roles_menu.menu_id') |
||||
->join('m_roles', 'm_roles.id', '=', 't_roles_menu.role_id') |
||||
->where('m_roles.id', $role_id) |
||||
->where('m_menu.parent_id', $id) |
||||
->orderBy('m_menu.sequence', 'ASC') |
||||
->get(); |
||||
$children = []; |
||||
if($dataChildren){ |
||||
foreach($dataChildren as $data) |
||||
{ |
||||
$data->children = $this->getChildrenMenu($data->id, $role_id); |
||||
$children[] = $data; |
||||
} |
||||
} |
||||
return $children; |
||||
} |
||||
|
||||
public function list() |
||||
{ |
||||
$data = Menu::all(); |
||||
$countData = $data->count(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get list menu, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
} |
||||
<?php |
||||
|
||||
namespace App\Http\Controllers; |
||||
|
||||
use Illuminate\Http\Request; |
||||
use App\Models\Menu; |
||||
use App\Models\RoleMenu; |
||||
|
||||
class MenuController extends Controller |
||||
{ |
||||
public function add(Request $request) |
||||
{ |
||||
$this->validate($request, [ |
||||
'icon' => 'required', |
||||
'name' => 'string|required|unique:m_menu,name', |
||||
'url' => 'required|unique:m_menu,url', |
||||
'sequence' => 'required|integer', |
||||
]); |
||||
|
||||
$data = $request->all(); |
||||
|
||||
$data['created_by'] = $this->currentName; |
||||
|
||||
$result = Menu::create($data); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'add data menu successfully!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'add data menu failed!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function edit($id){ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
$result = Menu::find($id); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get data menu, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function update(Request $request, $id) |
||||
{ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
} |
||||
$this->validate($request, [ |
||||
'icon' => 'required', |
||||
'name' => 'string|required', |
||||
'url' => 'required', |
||||
'sequence' => 'required|integer', |
||||
]); |
||||
$data = Menu::find($id); |
||||
|
||||
$request->name !== $data['name'] ? $this->validate($request,['name'=>'unique:m_menu,name']) : ''; |
||||
$request->url !== $data['url'] ? $this->validate($request,['url'=>'unique:m_menu,url']) : ''; |
||||
|
||||
if($data){ |
||||
$result = $data->update($request->all()); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data menu not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'data menu successfully updated!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data menu failed updated!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function delete($id) |
||||
{ |
||||
$data = Menu::find($id); |
||||
|
||||
if($data){ |
||||
$delete = $data->delete(); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data menu not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($delete){ |
||||
return response()->json(['status'=>'success','message'=>'data menu successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data menu failed deleted!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function search(Request $request) |
||||
{ |
||||
$payload = $request->all(); |
||||
$dataBuilder = $this->setUpPayload($payload, 'm_menu'); |
||||
$builder = $dataBuilder['builder']; |
||||
$countBuilder = $dataBuilder['count']; |
||||
$dataGet = $builder->get(); |
||||
$totalRecord = $countBuilder->count(); |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200); |
||||
} |
||||
|
||||
public function listMenu($id) |
||||
{ |
||||
$dataParent = RoleMenu::select("m_menu.*") |
||||
->join('m_menu', 'm_menu.id', '=', 't_roles_menu.menu_id') |
||||
->join('m_roles', 'm_roles.id', '=', 't_roles_menu.role_id') |
||||
->whereNull('m_menu.parent_id') |
||||
->where('m_roles.id', $id) |
||||
->orderBy('m_menu.sequence', 'ASC') |
||||
->get(); |
||||
|
||||
$finalData = []; |
||||
foreach($dataParent as $data){ |
||||
$data->children = $this->getChildrenMenu($data->id, $id); |
||||
$finalData[] = $data; |
||||
} |
||||
|
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$finalData], 200); |
||||
} |
||||
|
||||
protected function getChildrenMenu($id, $role_id) |
||||
{ |
||||
$dataChildren = RoleMenu::select("m_menu.*") |
||||
->join('m_menu', 'm_menu.id', '=', 't_roles_menu.menu_id') |
||||
->join('m_roles', 'm_roles.id', '=', 't_roles_menu.role_id') |
||||
->where('m_roles.id', $role_id) |
||||
->where('m_menu.parent_id', $id) |
||||
->orderBy('m_menu.sequence', 'ASC') |
||||
->get(); |
||||
$children = []; |
||||
if($dataChildren){ |
||||
foreach($dataChildren as $data) |
||||
{ |
||||
$data->children = $this->getChildrenMenu($data->id, $role_id); |
||||
$children[] = $data; |
||||
} |
||||
} |
||||
return $children; |
||||
} |
||||
|
||||
public function list() |
||||
{ |
||||
$data = Menu::all(); |
||||
$countData = $data->count(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get list menu, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
} |
||||
|
@ -0,0 +1,136 @@
|
||||
<?php |
||||
|
||||
namespace App\Http\Controllers; |
||||
|
||||
use Illuminate\Http\Request; |
||||
use App\Models\ProjectChecklists; |
||||
|
||||
class ProjectChecklistsController extends Controller |
||||
{ |
||||
public function add(Request $request) |
||||
{ |
||||
if ($request->status_exist==="") { |
||||
$request->merge(['status_exist' => true]); |
||||
} |
||||
|
||||
$this->validate($request, [ |
||||
'proyek_id' => 'required', |
||||
'item' => 'required|string', |
||||
'status_exist' => 'boolean' |
||||
]); |
||||
|
||||
$data = $request->all(); |
||||
|
||||
$data['created_by'] = $this->currentName; |
||||
|
||||
$result = ProjectChecklists::create($data); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'add data project participants successfully!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'add data project participants failed!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function edit($id){ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
$result = ProjectChecklists::find($id); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get data project participants, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function update(Request $request, $id) |
||||
{ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
} |
||||
|
||||
$data = ProjectChecklists::find($id); |
||||
|
||||
if($data){ |
||||
$result = $data->update($request->all()); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data project participants not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'data project participants successfully updated!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data project participants failed updated!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function delete($id) |
||||
{ |
||||
$data = ProjectChecklists::find($id); |
||||
|
||||
if($data){ |
||||
$delete = $data->delete(); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data project participants not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($delete){ |
||||
return response()->json(['status'=>'success','message'=>'data project participants successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data project participants failed deleted!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function deleteByProyek($id) |
||||
{ |
||||
$data = ProjectChecklists::where('proyek_id', $id)->delete(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','message'=>'data project participants successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'success','message'=>'data project participants failed deleted, because data not found!','code'=>200], 200); |
||||
} |
||||
} |
||||
|
||||
public function customWhere($where, $val) |
||||
{ |
||||
$data = ProjectChecklists::where($where, $val)->orderBy('id', 'asc')->get(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','data'=> $data,'code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'success','message'=>'data project participants not found!','code'=>400], 40); |
||||
} |
||||
} |
||||
|
||||
public function search(Request $request) |
||||
{ |
||||
$payload = $request->all(); |
||||
$dataBuilder = $this->setUpPayload($payload, 'project_charter_checklist'); |
||||
$builder = $dataBuilder['builder']; |
||||
$countBuilder = $dataBuilder['count']; |
||||
$dataGet = $builder->get(); |
||||
$totalRecord = $countBuilder->count(); |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200); |
||||
} |
||||
|
||||
public function list() |
||||
{ |
||||
$data = ProjectChecklists::all(); |
||||
$countData = $data->count(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get list project participants, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,136 @@
|
||||
<?php |
||||
|
||||
namespace App\Http\Controllers; |
||||
|
||||
use Illuminate\Http\Request; |
||||
use App\Models\ProjectIssues; |
||||
|
||||
class ProjectIssuesController extends Controller |
||||
{ |
||||
public function add(Request $request) |
||||
{ |
||||
if ($request->level_issue === "") { |
||||
$request->merge(['level_issue' => 0]); |
||||
} |
||||
|
||||
$this->validate($request, [ |
||||
'proyek_id' => 'required', |
||||
'description' => 'required|string', |
||||
'level_issue' => 'required|integer' |
||||
]); |
||||
|
||||
$data = $request->all(); |
||||
|
||||
$data['created_by'] = $this->currentName; |
||||
|
||||
$result = ProjectIssues::create($data); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'add data project participants successfully!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'add data project participants failed!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function edit($id){ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
$result = ProjectIssues::find($id); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get data project participants, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function update(Request $request, $id) |
||||
{ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
} |
||||
|
||||
$data = ProjectIssues::find($id); |
||||
|
||||
if($data){ |
||||
$result = $data->update($request->all()); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data project participants not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'data project participants successfully updated!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data project participants failed updated!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function delete($id) |
||||
{ |
||||
$data = ProjectIssues::find($id); |
||||
|
||||
if($data){ |
||||
$delete = $data->delete(); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data project participants not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($delete){ |
||||
return response()->json(['status'=>'success','message'=>'data project participants successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data project participants failed deleted!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function deleteByProyek($id) |
||||
{ |
||||
$data = ProjectIssues::where('proyek_id', $id)->delete(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','message'=>'data project participants successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'success','message'=>'data project participants failed deleted, because data not found!','code'=>200], 200); |
||||
} |
||||
} |
||||
|
||||
public function customWhere($where, $val) |
||||
{ |
||||
$data = ProjectIssues::where($where, $val)->orderBy('id', 'asc')->get(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','data'=> $data,'code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'success','message'=>'data project participants not found!','code'=>400], 40); |
||||
} |
||||
} |
||||
|
||||
public function search(Request $request) |
||||
{ |
||||
$payload = $request->all(); |
||||
$dataBuilder = $this->setUpPayload($payload, 'project_charter_issue'); |
||||
$builder = $dataBuilder['builder']; |
||||
$countBuilder = $dataBuilder['count']; |
||||
$dataGet = $builder->get(); |
||||
$totalRecord = $countBuilder->count(); |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200); |
||||
} |
||||
|
||||
public function list() |
||||
{ |
||||
$data = ProjectIssues::all(); |
||||
$countData = $data->count(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get list project participants, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,137 @@
|
||||
<?php |
||||
|
||||
namespace App\Http\Controllers; |
||||
|
||||
use Illuminate\Http\Request; |
||||
use App\Models\ProjectRisks; |
||||
|
||||
class ProjectRisksController extends Controller |
||||
{ |
||||
public function add(Request $request) |
||||
{ |
||||
if ($request->level_risk === "") { |
||||
$request->merge(['level_risk' => 0]); |
||||
} |
||||
|
||||
$this->validate($request, [ |
||||
'proyek_id' => 'required', |
||||
'level_risk' => 'required|integer', |
||||
'description' => 'required|string', |
||||
'preventive_risk' => 'required|string' |
||||
]); |
||||
|
||||
$data = $request->all(); |
||||
|
||||
$data['created_by'] = $this->currentName; |
||||
|
||||
$result = ProjectRisks::create($data); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'add data project participants successfully!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'add data project participants failed!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function edit($id){ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
$result = ProjectRisks::find($id); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get data project participants, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function update(Request $request, $id) |
||||
{ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
} |
||||
|
||||
$data = ProjectRisks::find($id); |
||||
|
||||
if($data){ |
||||
$result = $data->update($request->all()); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data project participants not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'data project participants successfully updated!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data project participants failed updated!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function delete($id) |
||||
{ |
||||
$data = ProjectRisks::find($id); |
||||
|
||||
if($data){ |
||||
$delete = $data->delete(); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data project participants not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($delete){ |
||||
return response()->json(['status'=>'success','message'=>'data project participants successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data project participants failed deleted!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function deleteByProyek($id) |
||||
{ |
||||
$data = ProjectRisks::where('proyek_id', $id)->delete(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','message'=>'data project participants successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'success','message'=>'data project participants failed deleted, because data not found!','code'=>200], 200); |
||||
} |
||||
} |
||||
|
||||
public function customWhere($where, $val) |
||||
{ |
||||
$data = ProjectRisks::where($where, $val)->orderBy('id', 'asc')->get(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','data'=> $data,'code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'success','message'=>'data project participants not found!','code'=>400], 40); |
||||
} |
||||
} |
||||
|
||||
public function search(Request $request) |
||||
{ |
||||
$payload = $request->all(); |
||||
$dataBuilder = $this->setUpPayload($payload, 'project_charter_risk'); |
||||
$builder = $dataBuilder['builder']; |
||||
$countBuilder = $dataBuilder['count']; |
||||
$dataGet = $builder->get(); |
||||
$totalRecord = $countBuilder->count(); |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200); |
||||
} |
||||
|
||||
public function list() |
||||
{ |
||||
$data = ProjectRisks::all(); |
||||
$countData = $data->count(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get list project participants, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
} |
@ -1,101 +1,106 @@
|
||||
<?php |
||||
|
||||
namespace App\Http\Controllers; |
||||
|
||||
use Illuminate\Http\Request; |
||||
use App\Models\Role; |
||||
|
||||
class RoleController extends Controller |
||||
{ |
||||
|
||||
public function add(Request $request) |
||||
{ |
||||
$this->validate($request, [ |
||||
'name' => 'required', |
||||
'description' => 'required' |
||||
]); |
||||
|
||||
$data = $request->all(); |
||||
|
||||
$data['created_by'] = $this->currentName; |
||||
|
||||
$result = Role::create($data); |
||||
|
||||
if(!$result) |
||||
return response()->json(['status'=>'failed','message'=>'Failed to add data!','code'=>500], 500); |
||||
|
||||
return response()->json(['status'=>'success','message'=>'Data added!','code'=>200], 200); |
||||
} |
||||
|
||||
public function edit( $id){ |
||||
if(empty($id) || !is_int((int)$id)) |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
|
||||
$result = Role::find($id); |
||||
|
||||
if(!$result) |
||||
return response()->json(['status'=>'failed','message'=>'Data not found!','code'=>404], 404); |
||||
|
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200); |
||||
} |
||||
|
||||
public function update(Request $request, $id) |
||||
{ |
||||
if(empty($id) || !is_int((int)$id)) |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
|
||||
$data = Role::find($id); |
||||
|
||||
if(!$data) |
||||
return response()->json(['status'=>'failed','message'=>'Data not found!','code'=>404], 404); |
||||
|
||||
$result = $data->update($request->all()); |
||||
|
||||
if(!$result) |
||||
return response()->json(['status'=>'failed','message'=>'Failed to update the data!','code'=>500], 500); |
||||
|
||||
return response()->json(['status'=>'success','message'=>'Data updated!','code'=>200], 200); |
||||
} |
||||
|
||||
public function delete($id) |
||||
{ |
||||
if(empty($id) || !is_int((int)$id)) |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
|
||||
$data = Role::find($id); |
||||
|
||||
if(!$data) |
||||
return response()->json(['status'=>'failed','message'=>'Data not found!','code'=>404], 404); |
||||
|
||||
$delete = $data->delete(); |
||||
|
||||
if(!$delete) |
||||
return response()->json(['status'=>'failed','message'=>'Failed to delete!','code'=>500], 500); |
||||
|
||||
return response()->json(['status'=>'success','message'=>'Data deleted!','code'=>200], 200); |
||||
} |
||||
|
||||
public function search(Request $request) |
||||
{ |
||||
$payload = $request->all(); |
||||
|
||||
$dataBuilder = $this->setUpPayload($payload, 'm_roles'); |
||||
$builder = $dataBuilder['builder']; |
||||
$countBuilder = $dataBuilder['count']; |
||||
$dataGet = $builder->get(); |
||||
$totalRecord = $countBuilder->count(); |
||||
|
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200); |
||||
} |
||||
|
||||
public function list() |
||||
{ |
||||
$data = Role::all(); |
||||
$countData = $data->count(); |
||||
|
||||
if(!$data) |
||||
return response()->json(['status'=>'failed','message'=>'failed get list role, please try again later!','code'=>400], 400); |
||||
|
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200); |
||||
} |
||||
} |
||||
<?php |
||||
|
||||
namespace App\Http\Controllers; |
||||
|
||||
use Illuminate\Http\Request; |
||||
use App\Models\Role; |
||||
|
||||
class RoleController extends Controller |
||||
{ |
||||
|
||||
public function add(Request $request) |
||||
{ |
||||
$this->validate($request, [ |
||||
'name' => 'string|required|unique:m_roles,name', |
||||
'description' => 'required' |
||||
]); |
||||
|
||||
$data = $request->all(); |
||||
|
||||
$data['created_by'] = $this->currentName; |
||||
|
||||
$result = Role::create($data); |
||||
|
||||
if(!$result) |
||||
return response()->json(['status'=>'failed','message'=>'Failed to add data!','code'=>500], 500); |
||||
|
||||
return response()->json(['status'=>'success','message'=>'Data added!','code'=>200], 200); |
||||
} |
||||
|
||||
public function edit( $id){ |
||||
if(empty($id) || !is_int((int)$id)) |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
|
||||
$result = Role::find($id); |
||||
|
||||
if(!$result) |
||||
return response()->json(['status'=>'failed','message'=>'Data not found!','code'=>404], 404); |
||||
|
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200); |
||||
} |
||||
|
||||
public function update(Request $request, $id) |
||||
{ |
||||
if(empty($id) || !is_int((int)$id)) |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
|
||||
$this->validate($request, [ |
||||
'name' => 'string|required', |
||||
'description' => 'required' |
||||
]); |
||||
$data = Role::find($id); |
||||
$request->name !== $data['name'] ? $this->validate($request,['name'=>'unique:m_roles,name']) : ''; |
||||
|
||||
if(!$data) |
||||
return response()->json(['status'=>'failed','message'=>'Data not found!','code'=>404], 404); |
||||
|
||||
$result = $data->update($request->all()); |
||||
|
||||
if(!$result) |
||||
return response()->json(['status'=>'failed','message'=>'Failed to update the data!','code'=>500], 500); |
||||
|
||||
return response()->json(['status'=>'success','message'=>'Data updated!','code'=>200], 200); |
||||
} |
||||
|
||||
public function delete($id) |
||||
{ |
||||
if(empty($id) || !is_int((int)$id)) |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
|
||||
$data = Role::find($id); |
||||
|
||||
if(!$data) |
||||
return response()->json(['status'=>'failed','message'=>'Data not found!','code'=>404], 404); |
||||
|
||||
$delete = $data->delete(); |
||||
|
||||
if(!$delete) |
||||
return response()->json(['status'=>'failed','message'=>'Failed to delete!','code'=>500], 500); |
||||
|
||||
return response()->json(['status'=>'success','message'=>'Data deleted!','code'=>200], 200); |
||||
} |
||||
|
||||
public function search(Request $request) |
||||
{ |
||||
$payload = $request->all(); |
||||
|
||||
$dataBuilder = $this->setUpPayload($payload, 'm_roles'); |
||||
$builder = $dataBuilder['builder']; |
||||
$countBuilder = $dataBuilder['count']; |
||||
$dataGet = $builder->get(); |
||||
$totalRecord = $countBuilder->count(); |
||||
|
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200); |
||||
} |
||||
|
||||
public function list() |
||||
{ |
||||
$data = Role::all(); |
||||
$countData = $data->count(); |
||||
|
||||
if(!$data) |
||||
return response()->json(['status'=>'failed','message'=>'failed get list role, please try again later!','code'=>400], 400); |
||||
|
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200); |
||||
} |
||||
} |
||||
|
@ -1,214 +1,253 @@
|
||||
<?php |
||||
|
||||
namespace App\Http\Controllers; |
||||
|
||||
use Illuminate\Http\Request; |
||||
use App\Models\UserToProyek; |
||||
use App\Models\UserToActivity; |
||||
use App\Models\ReportActivity; |
||||
use App\Models\Image; |
||||
|
||||
class UserToProyekController extends Controller |
||||
{ |
||||
public function add(Request $request) |
||||
{ |
||||
$this->validate($request, [ |
||||
'user_id' => 'required', |
||||
'proyek_id' => 'required' |
||||
]); |
||||
|
||||
$data = $request->all(); |
||||
|
||||
$data['created_by'] = $this->currentName; |
||||
|
||||
$result = UserToProyek::create($data); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'assign hr to proyek successfully!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'assign hr to proyek failed!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function edit($id){ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
$result = UserToProyek::find($id); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get data assign hr to proyek, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function update(Request $request, $id) |
||||
{ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
} |
||||
|
||||
$data = UserToProyek::find($id); |
||||
|
||||
if($data){ |
||||
$result = $data->update($request->all()); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data assign hr to proyek not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'data assign hr to proyek successfully updated!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data assign hr to proyek failed updated!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function delete($id) |
||||
{ |
||||
$data = UserToProyek::find($id); |
||||
if($data){ |
||||
$userId = $data->user_id; |
||||
$proyekId = $data->proyek_id; |
||||
$delete = $data->delete(); |
||||
if($delete){ |
||||
$this->deleteRelative($proyekId, $userId); |
||||
} |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data assign hr to proyek not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($delete){ |
||||
return response()->json(['status'=>'success','message'=>'data assign hr to proyek successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data assign hr to proyek failed deleted!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
private function deleteRelative($proyekId, $userId) |
||||
{ |
||||
$uta = UserToActivity::where("proyek_id", $proyekId)->where("user_id", $userId)->get(); |
||||
foreach ($uta as $value) { |
||||
$dataRa = ReportActivity::where("activity_id", $value->activity_id)->where("user_id", $value->user_id)->get(); |
||||
foreach ($dataRa as $ra) { |
||||
$images = Image::where("ref_id", $ra->id)->where("category", "report_activity")->get(); |
||||
foreach ($images as $image) { |
||||
if(file_exists($this->pathImage.$image->image)){ |
||||
unlink($this->pathImage.$image->image); |
||||
} |
||||
} |
||||
Image::where("ref_id", $ra->id)->where("category", "report_activity")->delete(); |
||||
} |
||||
ReportActivity::where("activity_id", $value->activity_id)->where("user_id", $value->user_id)->delete(); |
||||
} |
||||
UserToActivity::where("proyek_id", $proyekId)->where("user_id", $userId)->delete(); |
||||
} |
||||
|
||||
public function search(Request $request) |
||||
{ |
||||
$payload = $request->all(); |
||||
$dataBuilder = $this->setUpPayload($payload, 'assign_hr_to_proyek'); |
||||
$builder = $dataBuilder['builder']; |
||||
$countBuilder = $dataBuilder['count']; |
||||
$dataGet = $builder->get(); |
||||
$totalRecord = $countBuilder->count(); |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200); |
||||
} |
||||
|
||||
public function list() |
||||
{ |
||||
$data = UserToProyek::all(); |
||||
$countData = $data->count(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get list assign hr to proyek, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function select(Request $request){ |
||||
|
||||
$search = $request->query('search'); |
||||
|
||||
$idProyek = (int)$request->query('idProyek'); |
||||
$idActivity = (int)$request->query('idact'); |
||||
|
||||
$include = []; |
||||
|
||||
if($idActivity && $idActivity > 0){ |
||||
$dataF = UserToActivity::select("user_id")->where("activity_id", $idActivity)->get(); |
||||
foreach($dataF as $val){ |
||||
$include[] = $val->user_id; |
||||
} |
||||
} |
||||
|
||||
if($search && !empty($search)){ |
||||
$data = UserToProyek::select("m_users.id as id", "m_users.name as name")->join('m_users', 'm_users.id', '=', 'assign_hr_to_proyek.user_id') |
||||
->where("assign_hr_to_proyek.proyek_id", $idProyek)->where("m_users.name", 'like', '%'.$search.'%')->whereIn("m_users.id", $include)->get(); |
||||
}else{ |
||||
$data = UserToProyek::select("m_users.id as id", "m_users.name as name")->where("assign_hr_to_proyek.proyek_id", $idProyek)->join('m_users', 'm_users.id', '=', 'assign_hr_to_proyek.user_id')->whereIn("m_users.id", $include)->get(); |
||||
} |
||||
|
||||
if($data instanceof \Illuminate\Database\Eloquent\Collection){ |
||||
$pm = array( |
||||
"id"=>$this->currentId, |
||||
"name"=> "Project Manager" |
||||
); |
||||
$data->push($pm); |
||||
} |
||||
|
||||
return response()->json($data); |
||||
} |
||||
|
||||
private function curlReq($url, $token){ |
||||
$ch = curl_init(); |
||||
$headers = [ |
||||
'Authorization: '.$token |
||||
]; |
||||
curl_setopt($ch, CURLOPT_URL, $url); |
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); |
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); |
||||
|
||||
$response = curl_exec($ch); |
||||
if ($response === false) |
||||
$response = curl_error($ch); |
||||
curl_close($ch); |
||||
|
||||
return json_decode($response); |
||||
} |
||||
|
||||
public function getEmployeeIntegration(Request $request) { |
||||
$search = urlencode($request->name); |
||||
if(empty($search)) |
||||
return response()->json(['status'=>'error', 'message'=>'Empty query string!'], 400); |
||||
$url = str_replace("SEARCH", $search, config('api.adw').'/employees?emp_name=SEARCH'); |
||||
$token = config('api.adw_token'); |
||||
$firstResponse = $this->curlReq($url, $token); |
||||
|
||||
if($firstResponse->total == 0) |
||||
return response()->json(['status'=>'error', 'message' => 'Data not found!', 'code'=>404], 404); |
||||
|
||||
$data = $firstResponse->data; |
||||
return response()->json([$data]); |
||||
$currentPage = 1; |
||||
|
||||
if($firstResponse->last_page > 0) { |
||||
do { |
||||
$currentPage++; |
||||
$response = $this->curlReq($url.'&page='.$currentPage, $token); |
||||
foreach($response->data as $d){ |
||||
array_push($data, $d); |
||||
} |
||||
} while ($currentPage < $firstResponse->last_page); |
||||
} |
||||
|
||||
return response()->json(['status'=>'success', 'data'=> $data, 'total' => count($data), 'code'=>200], 200); |
||||
} |
||||
} |
||||
<?php |
||||
|
||||
namespace App\Http\Controllers; |
||||
|
||||
use Illuminate\Http\Request; |
||||
use App\Models\UserToProyek; |
||||
use App\Models\UserToActivity; |
||||
use App\Models\ReportActivity; |
||||
use App\Models\Image; |
||||
|
||||
class UserToProyekController extends Controller |
||||
{ |
||||
public function add(Request $request) |
||||
{ |
||||
$this->validate($request, [ |
||||
'user_id' => 'required', |
||||
'proyek_id' => 'required' |
||||
]); |
||||
|
||||
$data = $request->all(); |
||||
|
||||
$data['created_by'] = $this->currentName; |
||||
|
||||
$result = UserToProyek::create($data); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'assign hr to proyek successfully!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'assign hr to proyek failed!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function addMultiple(Request $request){ |
||||
$user_IDs = $request->user_id; |
||||
|
||||
$data = UserToProyek::where("proyek_id", $request->proyek_id); |
||||
|
||||
if($data){ |
||||
$data->delete(); |
||||
} |
||||
|
||||
if(is_array($user_IDs) && count($user_IDs) > 0){ |
||||
$countRes = 0; |
||||
foreach($user_IDs as $item){ |
||||
|
||||
$dataInsert = array( |
||||
"user_id" => $item, |
||||
"proyek_id" => $request->proyek_id, |
||||
"created_by" => $this->currentName, |
||||
'is_customer'=>true |
||||
); |
||||
|
||||
$result = UserToProyek::create($dataInsert); |
||||
|
||||
if($result){ |
||||
$countRes++; |
||||
}else{ |
||||
$countRes--; |
||||
} |
||||
} |
||||
if($countRes > 0){ |
||||
return response()->json(['status'=>'success' ,'message'=>'Project customer successfull created','code'=>200]); |
||||
}else{ |
||||
return response()->json(['status'=>'success' ,'message'=>'Project customer failed created','code'=>400]); |
||||
} |
||||
}else{ |
||||
return response()->json(['status'=>'success' ,'message'=>'Project customer successfull created','code'=>200]); |
||||
} |
||||
|
||||
} |
||||
|
||||
public function edit($id){ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
$result = UserToProyek::find($id); |
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$result], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get data assign hr to proyek, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function update(Request $request, $id) |
||||
{ |
||||
if(!$id || (int) $id < 0 || $id==""){ |
||||
return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); |
||||
} |
||||
|
||||
$data = UserToProyek::find($id); |
||||
|
||||
if($data){ |
||||
$result = $data->update($request->all()); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data assign hr to proyek not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($result){ |
||||
return response()->json(['status'=>'success','message'=>'data assign hr to proyek successfully updated!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data assign hr to proyek failed updated!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function delete($id) |
||||
{ |
||||
$data = UserToProyek::find($id); |
||||
if($data){ |
||||
$userId = $data->user_id; |
||||
$proyekId = $data->proyek_id; |
||||
$delete = $data->delete(); |
||||
if($delete){ |
||||
$this->deleteRelative($proyekId, $userId); |
||||
} |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data assign hr to proyek not found!','code'=>400], 400); |
||||
die(); |
||||
} |
||||
|
||||
|
||||
if($delete){ |
||||
return response()->json(['status'=>'success','message'=>'data assign hr to proyek successfully deleted!','code'=>200], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'data assign hr to proyek failed deleted!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
private function deleteRelative($proyekId, $userId) |
||||
{ |
||||
$uta = UserToActivity::where("proyek_id", $proyekId)->where("user_id", $userId)->get(); |
||||
foreach ($uta as $value) { |
||||
$dataRa = ReportActivity::where("activity_id", $value->activity_id)->where("user_id", $value->user_id)->get(); |
||||
foreach ($dataRa as $ra) { |
||||
$images = Image::where("ref_id", $ra->id)->where("category", "report_activity")->get(); |
||||
foreach ($images as $image) { |
||||
if(file_exists($this->pathImage.$image->image)){ |
||||
unlink($this->pathImage.$image->image); |
||||
} |
||||
} |
||||
Image::where("ref_id", $ra->id)->where("category", "report_activity")->delete(); |
||||
} |
||||
ReportActivity::where("activity_id", $value->activity_id)->where("user_id", $value->user_id)->delete(); |
||||
} |
||||
UserToActivity::where("proyek_id", $proyekId)->where("user_id", $userId)->delete(); |
||||
} |
||||
|
||||
public function search(Request $request) |
||||
{ |
||||
$payload = $request->all(); |
||||
$dataBuilder = $this->setUpPayload($payload, 'assign_hr_to_proyek'); |
||||
$builder = $dataBuilder['builder']; |
||||
$countBuilder = $dataBuilder['count']; |
||||
$dataGet = $builder->get(); |
||||
$totalRecord = $countBuilder->count(); |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$dataGet, 'totalRecord'=>$totalRecord], 200); |
||||
} |
||||
|
||||
public function list() |
||||
{ |
||||
$data = UserToProyek::all(); |
||||
$countData = $data->count(); |
||||
|
||||
if($data){ |
||||
return response()->json(['status'=>'success','code'=>200,'data'=>$data, 'totalRecord'=>$countData], 200); |
||||
}else{ |
||||
return response()->json(['status'=>'failed','message'=>'failed get list assign hr to proyek, please try again later!','code'=>400], 400); |
||||
} |
||||
} |
||||
|
||||
public function select(Request $request){ |
||||
|
||||
$search = $request->query('search'); |
||||
|
||||
$idProyek = (int)$request->query('idProyek'); |
||||
$idActivity = (int)$request->query('idact'); |
||||
|
||||
$include = []; |
||||
|
||||
if($idActivity && $idActivity > 0){ |
||||
$dataF = UserToActivity::select("user_id")->where("activity_id", $idActivity)->get(); |
||||
foreach($dataF as $val){ |
||||
$include[] = $val->user_id; |
||||
} |
||||
} |
||||
|
||||
if($search && !empty($search)){ |
||||
$data = UserToProyek::select("m_users.id as id", "m_users.name as name")->join('m_users', 'm_users.id', '=', 'assign_hr_to_proyek.user_id') |
||||
->where("assign_hr_to_proyek.proyek_id", $idProyek)->where("m_users.name", 'like', '%'.$search.'%')->whereIn("m_users.id", $include)->get(); |
||||
}else{ |
||||
$data = UserToProyek::select("m_users.id as id", "m_users.name as name")->where("assign_hr_to_proyek.proyek_id", $idProyek)->join('m_users', 'm_users.id', '=', 'assign_hr_to_proyek.user_id')->whereIn("m_users.id", $include)->get(); |
||||
} |
||||
|
||||
if($data instanceof \Illuminate\Database\Eloquent\Collection){ |
||||
$pm = array( |
||||
"id"=>$this->currentId, |
||||
"name"=> "Project Manager" |
||||
); |
||||
$data->push($pm); |
||||
} |
||||
|
||||
return response()->json($data); |
||||
} |
||||
|
||||
private function curlReq($url, $token){ |
||||
$ch = curl_init(); |
||||
$headers = [ |
||||
'Authorization: '.$token |
||||
]; |
||||
curl_setopt($ch, CURLOPT_URL, $url); |
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); |
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); |
||||
|
||||
$response = curl_exec($ch); |
||||
if ($response === false) |
||||
$response = curl_error($ch); |
||||
curl_close($ch); |
||||
|
||||
return json_decode($response); |
||||
} |
||||
|
||||
public function getEmployeeIntegration(Request $request) { |
||||
$search = urlencode($request->name); |
||||
if(empty($search)) |
||||
return response()->json(['status'=>'error', 'message'=>'Empty query string!'], 400); |
||||
$url = str_replace("SEARCH", $search, config('api.adw').'/employees?emp_name=SEARCH'); |
||||
$token = config('api.adw_token'); |
||||
$firstResponse = $this->curlReq($url, $token); |
||||
|
||||
if($firstResponse->total == 0) |
||||
return response()->json(['status'=>'error', 'message' => 'Data not found!', 'code'=>404], 404); |
||||
|
||||
$data = $firstResponse->data; |
||||
return response()->json([$data]); |
||||
$currentPage = 1; |
||||
|
||||
if($firstResponse->last_page > 0) { |
||||
do { |
||||
$currentPage++; |
||||
$response = $this->curlReq($url.'&page='.$currentPage, $token); |
||||
foreach($response->data as $d){ |
||||
array_push($data, $d); |
||||
} |
||||
} while ($currentPage < $firstResponse->last_page); |
||||
} |
||||
|
||||
return response()->json(['status'=>'success', 'data'=> $data, 'total' => count($data), 'code'=>200], 200); |
||||
} |
||||
} |
||||
|
@ -1,54 +1,54 @@
|
||||
<?php |
||||
|
||||
namespace App\Models; |
||||
|
||||
use Illuminate\Database\Eloquent\Model; |
||||
|
||||
class Project extends Model |
||||
{ |
||||
protected $table = 'm_proyek'; |
||||
|
||||
const CREATED_AT = 'created_at'; |
||||
const UPDATED_AT = 'updated_at'; |
||||
|
||||
protected $fillable = [ |
||||
'kode_sortname', |
||||
'jumlah_stakeholder', |
||||
'nama', |
||||
'mulai_proyek', |
||||
'akhir_proyek', |
||||
'area_kerja', |
||||
'lokasi_kantor', |
||||
'rencana_biaya', |
||||
'biaya_actual', |
||||
'company', |
||||
'pm_id', |
||||
'type_proyek_id', |
||||
'divisi_id', |
||||
'persentase_progress', |
||||
'keterangan', |
||||
'durasi_proyek', |
||||
'progress_by_worklog', |
||||
'status', |
||||
'currency_simbol', |
||||
'currency_code', |
||||
'currency_name', |
||||
'project_objectives', |
||||
'considered_success_when', |
||||
'potential_risk', |
||||
'testing_environment', |
||||
'currency_code', |
||||
'currency_symbol', |
||||
'currency_name', |
||||
'budget_health', |
||||
'phase_id', |
||||
'calculation_status', |
||||
'scurve', |
||||
'created_at', |
||||
'created_by', |
||||
'updated_at', |
||||
'updated_by' |
||||
]; |
||||
|
||||
|
||||
} |
||||
<?php |
||||
|
||||
namespace App\Models; |
||||
|
||||
use Illuminate\Database\Eloquent\Model; |
||||
|
||||
class Project extends Model |
||||
{ |
||||
protected $table = 'm_proyek'; |
||||
|
||||
const CREATED_AT = 'created_at'; |
||||
const UPDATED_AT = 'updated_at'; |
||||
|
||||
protected $fillable = [ |
||||
'kode_sortname', |
||||
'jumlah_stakeholder', |
||||
'nama', |
||||
'mulai_proyek', |
||||
'akhir_proyek', |
||||
'area_kerja', |
||||
'lokasi_kantor', |
||||
'rencana_biaya', |
||||
'biaya_actual', |
||||
'company', |
||||
'pm_id', |
||||
'type_proyek_id', |
||||
'divisi_id', |
||||
'persentase_progress', |
||||
'keterangan', |
||||
'durasi_proyek', |
||||
'progress_by_worklog', |
||||
'status', |
||||
'currency_symbol', |
||||
'currency_code', |
||||
'currency_name', |
||||
'project_objectives', |
||||
'considered_success_when', |
||||
'potential_risk', |
||||
'testing_environment', |
||||
'budget_health', |
||||
'phase_id', |
||||
'late_consequence', |
||||
'assumtion', |
||||
'calculation_status', |
||||
'structur_organization', |
||||
'scurve', |
||||
'created_at', |
||||
'created_by', |
||||
'updated_at', |
||||
'updated_by' |
||||
]; |
||||
|
||||
|
||||
} |
||||
|
@ -0,0 +1,23 @@
|
||||
<?php |
||||
|
||||
namespace App\Models; |
||||
|
||||
use Illuminate\Database\Eloquent\Model; |
||||
|
||||
class ProjectChecklists extends Model |
||||
{ |
||||
protected $table = 'project_charter_checklist'; |
||||
|
||||
const CREATED_AT = 'created_at'; |
||||
const UPDATED_AT = 'updated_at'; |
||||
|
||||
protected $fillable = [ |
||||
'proyek_id', |
||||
'item', |
||||
'status_exist', |
||||
'created_at', |
||||
'created_by', |
||||
'updated_at', |
||||
'updated_by' |
||||
]; |
||||
} |
@ -0,0 +1,23 @@
|
||||
<?php |
||||
|
||||
namespace App\Models; |
||||
|
||||
use Illuminate\Database\Eloquent\Model; |
||||
|
||||
class ProjectIssues extends Model |
||||
{ |
||||
protected $table = 'project_charter_issue'; |
||||
|
||||
const CREATED_AT = 'created_at'; |
||||
const UPDATED_AT = 'updated_at'; |
||||
|
||||
protected $fillable = [ |
||||
'proyek_id', |
||||
'description', |
||||
'level_issue', |
||||
'created_at', |
||||
'created_by', |
||||
'updated_at', |
||||
'updated_by' |
||||
]; |
||||
} |
@ -0,0 +1,24 @@
|
||||
<?php |
||||
|
||||
namespace App\Models; |
||||
|
||||
use Illuminate\Database\Eloquent\Model; |
||||
|
||||
class ProjectRisks extends Model |
||||
{ |
||||
protected $table = 'project_charter_risk'; |
||||
|
||||
const CREATED_AT = 'created_at'; |
||||
const UPDATED_AT = 'updated_at'; |
||||
|
||||
protected $fillable = [ |
||||
'proyek_id', |
||||
'description', |
||||
'level_risk', |
||||
'preventive_risk', |
||||
'created_at', |
||||
'created_by', |
||||
'updated_at', |
||||
'updated_by' |
||||
]; |
||||
} |
Loading…
Reference in new issue