Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- use Illuminate\Support\Facades\Auth;
- use Validator;
- use File;
- use Hash;
- use DB;
- use App\User;
- use App\TaskType;
- use App\Task;
- use App\Document;
- use App\ClientAdditions;
- use App\WorkerAdditions;
- class ApiController extends Controller
- {
- //
- public function doLogin(Request $request) {
- $validator = Validator::make($request->all(), [
- 'email' => 'required|email',
- 'password' => 'required'
- ]);
- if ($validator->fails()) {
- # code...
- return response(['status' => false, 'message' => 'Email atau Password Salah'], 401);
- } else {
- $ifEmailisExists = User::where('email', $request->email)->get();
- if (count($ifEmailisExists) <= 0) {
- # code...
- return response(['status' => false, 'message' => 'Email Tidak Terdaftar'], 401);
- } else {
- if ( !Auth::attempt(['email' => $request->email, 'password' => $request->password]) ) {
- # code...
- return response(['status' => false, 'message' => 'Email atau Password Salah'], 401);
- } else {
- $user = Auth::user();
- $token = $user->createToken('RO TOKEN')->accessToken;
- return response(['status' => true, 'message' => 'Login Berhasil', 'data' => $token], 200);
- }
- }
- }
- }
- public function getUserData() {
- $user = Auth::user();
- return response(['status' => true, 'message' => 'User Ditemukan', 'data' => $user], 200);
- }
- public function doChangePassword(Request $request) {
- $valid = Validator::make($request->all(), [
- 'old_password' => 'required',
- 'new_password' => 'required',
- 'confirm_password' => 'required_with:new_password|same:new_password'
- ]);
- if ($valid->fails()) {
- # code...
- return response(['status' => false, 'message' => 'Form Tidak Lengkap'], 401);
- } else {
- if (Hash::check($request->old_password, Auth::user()->password)) {
- # code...
- $update = User::where('id', Auth::user()->id)->update([
- 'password' => bcrypt($request->confirm_password)
- ]);
- if ($update) {
- # code...
- return response(['status' => true, 'message' => 'Password Berhasil Diubah'], 200);
- } else {
- return response(['status' => false, 'message' => 'Gagal Ubah Password'], 401);
- }
- } else {
- return response(['status' => false, 'message' => 'Password Lama Salah'], 401);
- }
- }
- }
- public function doUpdateProfile(Request $request) {
- $valid = Validator::make($request->all(), [
- 'name' => 'required',
- 'nik' => 'required',
- 'email' => 'required',
- 'birthdate' => 'required',
- 'phone' => 'required',
- 'image' => 'image:mimes:jpg,jpeg,png'
- ]);
- if ($valid->fails()) {
- # code...
- return response(['status' => false, 'message' => 'Form Tidak Lengkap'], 401);
- } else {
- if ($request->hasFile('image')) {
- # code...
- $user = User::where('id', Auth::user()->id)->update([
- 'name' => $request->name,
- 'nik' => $request->nik,
- 'email' => $request->email,
- 'birthdate' => $request->birthdate,
- 'phone' => $request->phone,
- 'image' => $this->savePhoto($request->file('image'))
- ]);
- if ($user) {
- # code...
- return response(['status' => true, 'message' => 'Profile Berhasil Diupdate'], 200);
- } else {
- return response(['status' => false, 'message' => 'Gagal Update Profile'], 401);
- }
- } else {
- $cek = User::where('id', Auth::user()->id)->first();
- $user = User::where('id', Auth::user()->id)->update([
- 'name' => $request->name,
- 'nik' => $request->nik,
- 'email' => $request->email,
- 'birthdate' => $request->birthdate,
- 'phone' => $request->phone,
- 'image' => $cek['image']
- ]);
- if ($user) {
- # code...
- return response(['status' => true, 'message' => 'Profile Berhasil Diupdate'], 200);
- } else {
- return response(['status' => false, 'message' => 'Gagal Update Profile'], 401);
- }
- }
- }
- }
- public function getTaskList() {
- $task = Task::select('task_ro.*', 'b.title', 'c.name', 'c.address1', 'c.state', 'c.postal_code', 'c.work_phone', 'c.website')
- ->join('task_types as b', 'b.id', 'task_ro.task_type_id')
- ->join('clients as c', 'c.id', 'task_ro.client_id')
- ->join('invoices as d', 'd.id', 'task_ro.invoice_id')
- ->where('task_ro.task_type_id', 3)
- ->where('task_ro.is_deleted', 'N')
- ->where('task_ro.user_id', Auth::user()->id)->get();
- if (count($task) <= 0) {
- # code...
- return response(['status' => false, 'message' => 'Task Kosong', 'data' => []], 401);
- } else {
- return response(['status' => true, 'message' => 'Task Ditemukan', 'data' => $task], 200);
- }
- }
- public function getTaskListExceptMonitoring() {
- $task = Task::select('task_ro.*', 'b.title', 'c.uker_name', 'c.uker_address', 'c.uker_phone')
- ->join('task_types as b', 'b.id', 'task_ro.task_type_id')
- ->join('uker as c', 'c.id', 'task_ro.client_id')
- ->where('task_ro.task_type_id', '!=' ,3)
- ->where('task_ro.is_deleted', 'N')
- ->where('task_ro.user_id', Auth::user()->id)->get();
- if (count($task) <= 0) {
- # code...
- return response(['status' => false, 'message' => 'Task Kosong', 'data' => []], 401);
- } else {
- return response(['status' => true, 'message' => 'Task Ditemukan', 'data' => $task], 200);
- }
- }
- public function getFilterTaskByDate(Request $request) {
- $valid = Validator::make($request->all(), [
- 'date' => 'required'
- ]);
- if ($valid->fails()) {
- # code...
- return response(['status' => false, 'message' => 'Tanggal Masih Kosong'], 401);
- } else {
- $task = Task::where('user_id', Auth::user()->id)->whereDate('for_date', $request->date)->groupBy('for_date')->get();
- if (count($task) <= 0) {
- # code...
- return response(['status' => false, 'message' => 'Task Kosong', 'data' => []], 401);
- } else {
- return response(['status' => true, 'message' => 'Task Ditemukan', 'data' => $task], 200);
- }
- }
- }
- public function getTaskDetail(Request $request) {
- $valid = Validator::make($request->all(), [
- 'id' => 'required'
- ]);
- if ($valid->fails()) {
- # code...
- return response(['status' => false, 'message' => 'Task Belum Dipilih'], 401);
- } else {
- $task = Task::where('id', $request->id)->first();
- if (!$task) {
- # code...
- return response(['status' => false, 'message' => 'Task Kosong', 'data' => []], 401);
- } else {
- return response(['status' => true, 'message' => 'Task Ditemukan', 'data' => $task], 200);
- }
- }
- }
- public function acceptTask(Request $request) {
- $valid = Validator::make($request->all(), [
- 'task_id' => 'required',
- 'notes' => 'required',
- 'penerima' => 'required',
- 'jabatan' => 'required',
- 'signature' => 'image|mimes:jpg,jpeg,png',
- 'document' => 'image|mimes:jpg,jpeg,png',
- 'geo_lat' => 'required',
- 'geo_long' => 'required'
- ]);
- if ($valid->fails()) {
- # code...
- return response(['status' => false, 'message' => 'Data Tidak Lengkap'], 401);
- } else {
- if ($request->hasFile('signature')) {
- # code...
- $cek = Task::where('id', $request->task_id)->first();
- $create = Task::where('id', $request->task_id)->update([
- 'catatan' => $request->notes,
- 'penerima' => $request->penerima,
- 'jabatan' => $request->jabatan,
- 'signature' => $this->saveSignature($request->file('signature')),
- 'status' => 'Y',
- 'geo_lat' => $request->geo_lat,
- 'geo_long' => $request->geo_long
- ]);
- if ($cek->task_type_id == 3) {
- DB::table('clients')->where('id', $cek->client_id)->limit(1)->update([
- 'geo_lat' => $request->geo_lat,
- 'geo_long' => $request->geo_long
- ]);
- } else {
- DB::table('uker')->where('id', $cek->client_id)->limit(1)->update([
- 'geo_lat' => $request->geo_lat,
- 'geo_long' => $request->geo_long
- ]);
- }
- for ($i=1; $i <= $request->total_img; $i++) {
- # code...
- $fileId = 'document'.$i;
- Document::create([
- 'task_ro_id' => $request->task_id,
- 'name' => $this->saveDocument($request->file($fileId))
- ]);
- }
- if ($create) {
- # code...
- return response(['status' => true, 'message' => 'Acc Tugas Berhasil'], 200);
- } else {
- return response(['status' => false, 'message' => 'Gagal Acc Tugas'], 401);
- }
- } else {
- return response(['status' => false, 'message' => 'Tanda Tangan Kosong'], 401);
- }
- }
- }
- public function doAddTask(Request $request) {
- $valid = Validator::make($request->all(), [
- 'task_type_id' => 'required',
- 'penerima' => 'required',
- 'notes' => 'required',
- 'jabatan' => 'required',
- 'signature' => 'image|mimes:jpg,jpeg,png',
- 'document' => 'image|mimes:jpg,jpeg,png'
- ]);
- if ($valid->fails()) {
- # code...
- return response(['status' => false, 'message' => 'Data Tidak Valid'], 401);
- } else {
- if ($request->hasFile('signature')) {
- # code...
- if (isset($request->invoice)) {
- $inv = DB::table('invoices')->select('invoice_number')->where('id', $request->invoice)->first();
- $create = Task::create([
- 'task_type_id' => $request->task_type_id,
- 'user_id' => Auth::user()->id,
- 'client_id' => ($request->task_type_id == 3) ? $request->client : $request->uker,
- 'catatan' => $request->notes,
- 'signature' => Self::saveSignature($request->file('signature')),
- 'penerima' => $request->penerima,
- 'jabatan' => $request->jabatan,
- 'invoice_id' => ($request->task_type_id == 3) ? $inv->invoice_number : null,
- 'status' => 'Y',
- 'for_date' => date('Y-m-d'),
- 'geo_lat' => $request->geo_lat,
- 'geo_long' => $request->geo_long
- ]);
- if ($create->task_type_id == 3) {
- DB::table('clients')->where('id', $create->client_id)->limit(1)->update([
- 'geo_lat' => $request->geo_lat,
- 'geo_long' => $request->geo_long
- ]);
- } else {
- DB::table('uker')->where('id', $create->client_id)->limit(1)->update([
- 'geo_lat' => $request->geo_lat,
- 'geo_long' => $request->geo_long
- ]);
- }
- for ($i=1; $i <= $request->total_img; $i++) {
- # code...
- $fileId = 'document'.$i;
- Document::create([
- 'task_ro_id' => $create->id,
- 'name' => $this->saveDocument($request->file($fileId))
- ]);
- }
- if ($create) {
- # code...
- return response(['status' => true, 'message' => 'Tugas Berhasil Ditambahkan'], 200);
- } else {
- return response(['status' => false, 'message' => 'Gagal Menambahkan Tugas'], 401);
- }
- } else {
- $create = Task::create([
- 'task_type_id' => $request->task_type_id,
- 'user_id' => Auth::user()->id,
- 'client_id' => $request->client,
- 'catatan' => $request->notes,
- 'signature' => Self::saveSignature($request->file('signature')),
- 'penerima' => $request->penerima,
- 'jabatan' => $request->jabatan,
- 'invoice_id' => null,
- 'status' => 'Y',
- 'for_date' => date('Y-m-d'),
- 'geo_lat' => $request->geo_lat,
- 'geo_long' => $request->geo_long
- ]);
- if ($create->task_type_id == 3) {
- DB::table('clients')->where('id', $create->client_id)->limit(1)->update([
- 'geo_lat' => $request->geo_lat,
- 'geo_long' => $request->geo_long
- ]);
- } else {
- DB::table('uker')->where('id', $create->client_id)->limit(1)->update([
- 'geo_lat' => $request->geo_lat,
- 'geo_long' => $request->geo_long
- ]);
- }
- for ($i=1; $i <= $request->total_img; $i++) {
- # code...
- $fileId = 'document'.$i;
- Document::create([
- 'task_ro_id' => $create->id,
- 'name' => $this->saveDocument($request->file($fileId))
- ]);
- }
- if ($create) {
- # code...
- return response(['status' => true, 'message' => 'Tugas Berhasil Ditambahkan'], 200);
- } else {
- return response(['status' => false, 'message' => 'Gagal Menambahkan Tugas'], 401);
- }
- }
- } else {
- return response(['status' => false, 'message' => 'Anda Belum Tanda Tangan'], 401);
- }
- }
- }
- public function getListPgsAvail()
- {
- $data = DB::table('pgs')->where('status', 'Y')->get();
- $avail = DB::table('pgs')->where('status', 'Y')->count();
- $unavail = DB::table('pgs')->where('status', 'N')->count();
- if (count($data) <= 0) {
- # code...
- return response(['status' => false, 'message' => 'Data Tidak Ada', 'avail' => $avail, 'unavail' => $unavail, 'data' => []], 401);
- } else {
- return response(['status' => true, 'message' => 'Data Ditemukan', 'avail' => $avail, 'unavail' => $unavail, 'data' => $data], 200);
- }
- }
- public function getListKanca(Request $request)
- {
- $data = DB::table('clients')->where('custom_value1', $request->id)->get();
- if (count($data) <= 0) {
- # code...
- return response(['status' => false, 'message' => 'Tidak Ada Data', 'data' => []], 401);
- } else {
- return response(['status' => true, 'message' => 'Data Ditemukan', 'data' => $data], 200);
- }
- }
- public function getListTask()
- {
- $data = DB::table('task_types')->where('is_deleted', 'N')->get();
- if (count($data) <= 0) {
- # code...
- return response(['status' => false, 'message' => 'Tidak Ada Data', 'data' => []], 401);
- } else {
- return response(['status' => true, 'message' => 'Data Ditemukan', 'data' => $data], 200);
- }
- }
- public function getInvoiceByClient(Request $request)
- {
- $valid = Validator::make($request->all(), [
- 'client_id' => 'required'
- ]);
- if ($valid->fails()) {
- # code...
- return response(['status' => false, 'message' => 'Client Belum Dipilih'], 401);
- } else {
- $data = DB::table('invoices')->where('client_id', $request->client_id)->where('is_deleted', 0)->get();
- if (count($data) <= 0) {
- # code...
- return response(['status' => false, 'message' => 'Tidak Ada Data', 'data' => []], 401);
- } else {
- return response(['status' => true, 'message' => 'Data Ditemukan', 'data' => $data], 200);
- }
- }
- }
- public function postPgs(Request $request)
- {
- $valid = Validator::make($request->all(), [
- 'pgs_id' => 'required',
- 'client_id' => 'required',
- 'start_date' => 'required',
- 'end_date' => 'required'
- ]);
- if ($valid->fails()) {
- # code...
- return response(['status' => false, 'message' => 'Data Tidak Valid'], 401);
- } else {
- $client = DB::table('clients')->where('id', $request->client_id)->first();
- if (empty($client)) {
- # code...
- return response(['status' => false, 'message' => 'Client Tidak Ditemukan'], 401);
- } else {
- $insert = DB::table('pgs_switch')->insert([
- 'ro_id' => Auth::user()->id,
- 'pgs_id' => $request->pgs_id,
- 'company_name' => $client->name,
- 'start_date' => $request->start_date,
- 'end_date' => $request->end_date,
- 'status' => 'N'
- ]);
- DB::table('pgs')->where('id', $request->pgs_id)->update([
- 'status' => 'N'
- ]);
- if ($insert) {
- # code...
- return response(['status' => true, 'message' => 'PGS Berhasil Diproses'], 200);
- } else {
- return response(['status' => false, 'message' => 'Gagal Memproses PGS'], 401);
- }
- }
- }
- }
- public function listApprovalPgs()
- {
- $data = DB::table('pgs_switch')->select('pgs_switch.*', 'a.pgs_name')->join('pgs as a', 'a.id', 'pgs_switch.pgs_id')->where('pgs_switch.ro_id', Auth::user()->id)->get();
- if (count($data) <= 0) {
- # code...
- return response(['status' => false, 'message' => 'Data Kosong', 'data' => []], 401);
- } else {
- return response(['status' => true, 'message' => 'Data Ditemukan', 'data' => $data], 200);
- }
- }
- public function getDashboardList()
- {
- $taskDone = Task::where('user_id', Auth::user()->id)->where('status', 'Y')->whereMonth('for_date', date('m'))->count();
- $taskUnfinished = Task::where('user_id', Auth::user()->id)->where('status', 'N')->whereMonth('for_date', date('m'))->count();
- $invDone = Task::where('task_type_id', 3)->where('user_id', Auth::user()->id)->where('status', 'Y')->whereMonth('for_date', date('m'))->count();
- $invUnfinished = Task::where('task_type_id', 3)->where('user_id', Auth::user()->id)->where('status', 'N')->whereMonth('for_date', date('m'))->count();
- $invTotalDone = DB::table('task_ro as a')->select('b.amount')->join('invoices as b', 'b.id', 'a.invoice_id')->where('a.task_type_id', 3)
- ->where('a.user_id', Auth::user()->id)->where('a.status', 'Y')->whereMonth('a.for_date', date('m'))->sum('b.amount');
- $invTotalUnfinished = DB::table('task_ro as a')->select('b.amount')->join('invoices as b', 'b.id', 'a.invoice_id')->where('a.task_type_id', 3)
- ->where('a.user_id', Auth::user()->id)->where('a.status', 'N')->whereMonth('a.for_date', date('m'))->sum('b.amount');
- $clientAdditionsDone = ClientAdditions::select('realized')->where('ro_id', Auth::user()->id)->first();
- $clientDone = ($clientAdditionsDone['realized'] == null) ? 0 : $clientAdditionsDone['realized'];
- $clientAdditionsUnfinished = ClientAdditions::select('unrealized')->where('ro_id', Auth::user()->id)->first();
- $clientFail = ($clientAdditionsUnfinished['unrealized'] == null) ? 0 : $clientAdditionsUnfinished['unrealized'];
- $workerAdditionsDone = WorkerAdditions::select('realized')->where('ro_id', Auth::user()->id)->first();
- $workerDone = ($workerAdditionsDone['realized'] == null) ? 0 : $workerAdditionsDone['realized'];
- $workerAdditionsUnfinished = WorkerAdditions::select('unrealized')->where('ro_id', Auth::user()->id)->first();
- $workerFail = ($workerAdditionsUnfinished['unrealized'] == null) ? 0 : $workerAdditionsUnfinished['unrealized'];
- return response(['status' => true,
- 'message' => 'Found Data',
- 'taskDone' => $taskDone,
- 'taskUnfinished' => $taskUnfinished,
- 'invDone' => $invDone,
- 'invUnfinished' => $invUnfinished,
- 'invTotalDone' => $invTotalDone,
- 'invTotalUnfinished' => $invTotalUnfinished,
- 'clientAdditionsDone' => $clientDone,
- 'clientAdditionsFail' => $clientFail,
- 'workerDone' => $workerDone,
- 'workerFail' => $workerFail], 200);
- }
- protected function getReport(Request $request)
- {
- $validator = Validator::make($request->all(), [
- 'fromDate' => 'required',
- 'toDate' => 'required'
- ]);
- if($validator->fails()) {
- # code...
- return response(['status' => false, 'message' => 'Format request tidak lengkap.'], 401);
- } else {
- $task = Task::select('task_ro.*', 'b.title')
- ->join('task_types as b', 'b.id', 'task_ro.task_type_id')
- ->where('task_ro.is_deleted', 'N')
- ->where('task_ro.user_id', Auth::user()->id)
- ->whereBetween('task_ro.for_date', [$request->fromDate, $request->toDate])->get();
- if(count($task) <= "0") {
- return response(['status' => false, 'message' => 'Data tidak ditemukan', 'data' => []], 401);
- } else {
- return response(['status' => true, 'message' => 'Data Ditemukan', 'data' => $task], 200);
- }
- }
- }
- public function getListNotifications()
- {
- $dataNotifTugas = DB::table('notifications')->where('ro_id', Auth::user()->id)->where('type', 'T')->where('is_read', 'N')->count();
- $dataNotifBerita = DB::table('notifications')->where('ro_id', Auth::user()->id)->where('type', 'B')->where('is_read', 'N')->count();
- return response(['status' => true, 'message' => 'List Notifikasi', 'listTugas' => $dataNotifTugas, 'listBerita' => $dataNotifBerita], 200);
- }
- public function getListNews()
- {
- $data = DB::table('news')->get();
- if (count($data) <= 0) {
- # code...
- return response(['status' => false, 'message' => 'Data Kosong', 'data' => []], 401);
- } else {
- return response(['status' => true, 'message' => 'Data Ditemukan', 'data' => $data], 200);
- }
- }
- public function readNotifications()
- {
- $update = DB::table('notifications')->where('ro_id', Auth::user()->id)->update([
- 'is_read' => 'Y'
- ]);
- return response(['status' => true, 'message' => 'Updated'], 200);
- }
- public function getDocument(Request $request)
- {
- $data = DB::table('document_ro')->where('task_ro_id', $request->task_ro_id)->get();
- if (count($data) <= 0) {
- return response(['status' => false, 'message' => 'Data Kosong', 'data' => []], 401);
- } else {
- return response(['status' => true, 'message' => 'Data Ditemukan', 'data' => $data], 200);
- }
- }
- public function getListWilayah()
- {
- $data = DB::table('cities')->select('city_id', 'city_name')->get();
- return response(['status' => true, 'message' => 'Found', 'data' => $data], 200);
- }
- public function getListUker(Request $request)
- {
- $valid = Validator::make($request->all(), [
- 'id' => 'required'
- ]);
- if ($valid->fails()) {
- # code...
- return response(['status' => 'false', 'message' => 'RO Belum Dipilih', 'data' => []], 401);
- } else {
- $data = DB::table('ro_placement as a')->select('b.id', 'b.uker_name')->join('uker as b', 'b.id', 'a.uker_id')->where('a.ro_id', $request->id)->groupBy('a.uker_id')->get();
- return response(['status' => true, 'message' => 'Found', 'data' => $data], 200);
- }
- }
- public function getListClient(Request $request)
- {
- $data = DB::table('ro_placement as a')->select('b.id', 'b.client_name')->join('client_ro as b', 'b.id', 'a.client_ro_id')->where('a.city_id', $request->id)->groupBy('a.client_ro_id')->get();
- return response(['status' => true, 'message' => 'Found', 'data' => $data], 200);
- }
- protected function savePhoto($photo)
- {
- $destinationPath = 'images';
- $subdestinationPath = 'user';
- $extension = $photo->getClientOriginalExtension();
- $fileName = rand(11111,99999).'.'.$extension;
- $photo->move($destinationPath. '/' . $subdestinationPath , $fileName);
- $create['image'] = $destinationPath. '/' . $subdestinationPath . '/' . $fileName;
- return $create['image'];
- }
- protected function saveDocument($photo)
- {
- $destinationPath = 'images';
- $subdestinationPath = 'document';
- $extension = $photo->getClientOriginalExtension();
- $fileName = rand(11111,99999).'.'.$extension;
- $photo->move($destinationPath. '/' . $subdestinationPath , $fileName);
- $create['document'] = $destinationPath. '/' . $subdestinationPath . '/' . $fileName;
- return $create['document'];
- }
- protected function saveSignature($photo)
- {
- $destinationPath = 'images';
- $subdestinationPath = 'signature';
- $extension = $photo->getClientOriginalExtension();
- $fileName = rand(11111,99999).'.'.$extension;
- $photo->move($destinationPath. '/' . $subdestinationPath , $fileName);
- $create['signature'] = $destinationPath. '/' . $subdestinationPath . '/' . $fileName;
- return $create['signature'];
- }
- protected function deletePhoto($photo)
- {
- File::delete($photo);
- return $photo;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment