act == 'report') {
if ($request->from) {
$task = Task::findOrFail($request->from);
} else {
$task = null;
}
return view('staff.task-create_report', compact('task'));
} else {
$task_to = User::where('id', '<>', Auth::user()->id)->get();
return view('staff.task-create', compact('task_to'));
}
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$t = Task::create([
'task_from' => Auth::user()->id,
'task_to' => $request->task_to,
'date' => $request->date,
'deadline' => $request->deadline,
'tugas' => $request->tugas,
'status' => $request->status,
]);
if ($request->file_task) {
ini_set('upload_max_size', '1024M');
ini_set('post_max_size', '1024M');
set_time_limit(0);
$file = $request->file_task;
$file->move(public_path('uploads/'), $file->getClientOriginalName());
$t->file_task = 'uploads/'.$file->getClientOriginalName();
$t->save();
}
return redirect()->route('task.show', $t->id)->with('msg', 'task berhasil dibuat');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show(Request $request, $id)
{
if (\Request::ajax()) {
if (isset($_GET['act'])) {
if ($_GET['act'] == 'taskfromdata') {
$columns = array(
0 => 'id',
);
$totalData = Task::where('task_to', Auth::user()->id)->count();
$totalFiltered = $totalData;
$limit = $request->input('length');
$start = $request->input('start');
$order = $columns[$request->input('order.0.column')];
$dir = $request->input('order.0.dir');
if (empty($request->input('search.value'))) {
$tasks = Task::where('task_to', Auth::user()->id)
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();
} else {
$search = $request->input('search.value');
$tasks = Task::whereHas('taskFrom', function ($q) use ($search) {
$q->where('users.fullname', 'LIKE', "%{$search}%");
})
->where('task_to', Auth::user()->id)
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();
$totalFiltered = Task::whereHas('taskFrom', function ($q) use ($search) {
$q->where('users.fullname', 'LIKE', "%{$search}%");
})
->where('task_to', Auth::user()->id)
->count();
}
$data = array();
if (!empty($tasks)) {
foreach ($tasks as $row) {
$nestedData['task_from'] = $row->taskFrom->fullname;
$nestedData['date'] = $row->date;
$nestedData['deadline'] = $row->deadline;
$nestedData['status'] = $row->status_report;
$nestedData['priorities'] = $row->status;
$nestedData['opsi'] = "
";
$nestedData['opsi'] .= "
detail
";
$data[] = $nestedData;
}
}
$json_data = array(
"draw" => intval($request->input('draw')),
"recordsTotal" => intval($totalData),
"recordsFiltered" => intval($totalFiltered),
"data" => $data,
);
echo json_encode($json_data);
} elseif ($_GET['act'] == 'taskfordata') {
$columns = array(
0 => 'id',
);
$totalData = Task::where('task_from', Auth::user()->id)->count();
$totalFiltered = $totalData;
$limit = $request->input('length');
$start = $request->input('start');
$order = $columns[$request->input('order.0.column')];
$dir = $request->input('order.0.dir');
if (empty($request->input('search.value'))) {
$tasks = Task::where('task_from', Auth::user()->id)
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();
} else {
$search = $request->input('search.value');
$tasks = Task::whereHas('taskTo', function ($q) use ($search) {
$q->where('users.fullname', 'LIKE', "%{$search}%");
})
->where('task_from', Auth::user()->id)
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();
$totalFiltered = Task::whereHas('taskTo', function ($q) use ($search) {
$q->where('users.fullname', 'LIKE', "%{$search}%");
})
->where('task_to', Auth::user()->id)
->count();
}
$data = array();
if (!empty($tasks)) {
foreach ($tasks as $row) {
$nestedData['task_for'] = $row->taskTo->fullname;
$nestedData['date'] = $row->date;
$nestedData['deadline'] = $row->deadline;
$nestedData['status'] = $row->status_report;
$nestedData['priorities'] = $row->status;
$nestedData['opsi'] = "";
$nestedData['opsi'] .= "
detail
";
$data[] = $nestedData;
}
}
$json_data = array(
"draw" => intval($request->input('draw')),
"recordsTotal" => intval($totalData),
"recordsFiltered" => intval($totalFiltered),
"data" => $data,
);
echo json_encode($json_data);
} elseif ($_GET['act'] == 'taskfromreportdata') {
$columns = array(
0 => 'id',
);
$totalData = Task::where('task_to', Auth::user()->id)->count();
$totalFiltered = $totalData;
$limit = $request->input('length');
$start = $request->input('start');
$order = $columns[$request->input('order.0.column')];
$dir = $request->input('order.0.dir');
if (empty($request->input('search.value'))) {
$tasks = Task::where('task_to', Auth::user()->id)
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();
} else {
$search = $request->input('search.value');
$tasks = Task::whereHas('taskFrom', function ($q) use ($search) {
$q->where('users.fullname', 'LIKE', "%{$search}%");
})
->where('task_to', Auth::user()->id)
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();
$totalFiltered = Task::whereHas('taskFrom', function ($q) use ($search) {
$q->where('users.fullname', 'LIKE', "%{$search}%");
})
->where('task_to', Auth::user()->id)
->count();
}
$data = array();
if (!empty($tasks)) {
foreach ($tasks as $row) {
$nestedData['task_from'] = $row->taskFrom->fullname;
$nestedData['date'] = $row->date;
$nestedData['deadline'] = $row->deadline;
$nestedData['status'] = $row->status;
$nestedData['status_report'] = $row->status_report;
$nestedData['opsi'] = "";
if ($row->status_report == 'on progress') {
$nestedData['opsi'] .= "
create report
";
}
$nestedData['opsi'] .= "
detail
";
$data[] = $nestedData;
}
}
$json_data = array(
"draw" => intval($request->input('draw')),
"recordsTotal" => intval($totalData),
"recordsFiltered" => intval($totalFiltered),
"data" => $data,
);
echo json_encode($json_data);
} elseif ($_GET['act'] == 'taskforreportdata') {
$columns = array(
0 => 'id',
);
$totalData = Task::where('task_from', Auth::user()->id)->count();
$totalFiltered = $totalData;
$limit = $request->input('length');
$start = $request->input('start');
$order = $columns[$request->input('order.0.column')];
$dir = $request->input('order.0.dir');
if (empty($request->input('search.value'))) {
$tasks = Task::where('task_from', Auth::user()->id)
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();
} else {
$search = $request->input('search.value');
$tasks = Task::whereHas('taskTo', function ($q) use ($search) {
$q->where('users.fullname', 'LIKE', "%{$search}%");
})
->where('task_from', Auth::user()->id)
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();
$totalFiltered = Task::whereHas('taskTo', function ($q) use ($search) {
$q->where('users.fullname', 'LIKE', "%{$search}%");
})
->where('task_from', Auth::user()->id)
->count();
}
$data = array();
if (!empty($tasks)) {
foreach ($tasks as $row) {
$nestedData['task_for'] = $row->taskTo->fullname;
$nestedData['date'] = $row->date;
$nestedData['deadline'] = $row->deadline;
$nestedData['priorities'] = $row->status;
$nestedData['status_report'] = $row->status_report;
$nestedData['opsi'] = "";
$nestedData['opsi'] .= "
detail
";
$data[] = $nestedData;
}
}
$json_data = array(
"draw" => intval($request->input('draw')),
"recordsTotal" => intval($totalData),
"recordsFiltered" => intval($totalFiltered),
"data" => $data,
);
echo json_encode($json_data);
} elseif ($_GET['act'] == 'prmelebihianggaran') {
$columns = array(
0 => 'id',
1 => 'id',
2 => 'status',
3 => 'tanggal',
);
$totalData = PurchaseOrder::where('status', 'minta approve')->count();
$totalFiltered = $totalData;
$limit = $request->input('length');
$start = $request->input('start');
$order = $columns[$request->input('order.0.column')];
$dir = $request->input('order.0.dir');
if (empty($request->input('search.value'))) {
$prS = PurchaseOrder::where('status', 'minta approve')
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();
} else {
$search = $request->input('search.value');
$prS = PurchaseOrder::where('status', 'minta approve')
->whereHas('project', function ($q) use ($search) {
$q->where('projects.name', 'LIKE', "%{$search}%");
})->orWhereHas('mandor', function ($q) use ($search) {
$q->where('mandors.name', 'LIKE', "%{$search}%");
})->where('status', 'minta approve')
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();
$totalFiltered = PurchaseOrder::where('status', 'minta approve')
->whereHas('project', function ($q) use ($search) {
$q->where('projects.name', 'LIKE', "%{$search}%");
})->orWhereHas('mandor', function ($q) use ($search) {
$q->where('mandors.name', 'LIKE', "%{$search}%");
})->where('status', 'minta approve')
->count();
}
$data = array();
if (!empty($prS)) {
foreach ($prS as $row) {
$nestedData['project'] = $row->purchaseRequest->project->name;
$nestedData['no_po'] = $row->po_number;
$nestedData['status'] = $row->status;
$nestedData['tanggal'] = $row->tanggal;
$nestedData['tanggal_pengiriman'] = $row->tanggal_pengiriman;
$nestedData['mandor'] = $row->purchaseRequest->mandor->name;
$nestedData['opsi'] = "
";
$data[] = $nestedData;
}
}
$json_data = array(
"draw" => intval($request->input('draw')),
"recordsTotal" => intval($totalData),
"recordsFiltered" => intval($totalFiltered),
"data" => $data,
);
echo json_encode($json_data);
} elseif ($_GET['act'] == 'ahs_nonapprove') {
$columns = array(
0 => 'id',
);
$totalData = Ahs::where('status', 'non approve')->count() + AhsVendor::where('status', 'non approve')->count();
$totalFiltered = $totalData;
$limit = $request->input('length');
$start = $request->input('start');
$order = $columns[$request->input('order.0.column')];
$dir = $request->input('order.0.dir');
if (empty($request->input('search.value'))) {
$ahsS = Ahs::where('status', 'non approve')
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();
$ahsVendors = AhsVendor::where('status', 'non approve')
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();
} else {
$search = $request->input('search.value');
$ahsS = Ahs::where('status', 'non approve')
->where('nama_pekerjaan', 'like', $search.'%')
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();
$ahsVendors = AhsVendor::where('status', 'non approve')
->whereHas('vendor', function ($q) use ($search) {
$q->where('nama_pekerjaan', 'like', $search.'%');
})
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();
$totalFiltered = Ahs::where('status', 'non approve')
->where('nama_pekerjaan', 'like', $search.'%')
->count()
+
AhsVendor::where('status', 'non approve')
->whereHas('vendor', function ($q) use ($search) {
$q->where('nama_pekerjaan', 'like', $search.'%');
})->count()
;
}
$data = array();
if (!empty($ahsS) or !empty($ahsVendors)) {
foreach ($ahsS as $row) {
$routeDetail = route('ahs.show', $row->id);
$routeEdit = route('ahs.edit', $row->id).'?redirect_url='.route('task.index');
$nestedData['id'] = $row->id;
$nestedData['nama_pekerjaan'] = $row->nama_pekerjaan;
$nestedData['dimensi_spesifikasi'] = $row->dimensi_spesifikasi;
$nestedData['satuan'] = $row->satuan;
$nestedData['harga_modal'] = 'Rp'.number_format(\App\Http\Controllers\AhsController::cekTotalAhs($row->id), 0, "", ".");
$nestedData['persen_profit'] = $row->percent_profit;
$nestedData['harga_jual'] = 'Rp'.number_format(\App\Http\Controllers\AhsController::cekTotalAhs($row->id) * ($row->percent_profit/100), 0, "", ".");
$nestedData['opsi'] = "
";
$nestedData['opsi'] .= "
edit
";
$nestedData['opsi'] .= "
detail
";
$nestedData['opsi'] .= "
";
$data[] = $nestedData;
}
foreach ($ahsVendors as $row) {
$nestedData['id'] = $row->id;
$nestedData['nama_pekerjaan'] = $row->vendor->nama_pekerjaan;
$nestedData['dimensi_spesifikasi'] = $row->vendor->dimensi_spesifikasi;
$nestedData['satuan'] = $row->vendor->satuan;
$nestedData['harga_modal'] = 'Rp'.number_format($row->vendor->harga_modal, 0, "", ".");
$nestedData['persen_profit'] = $row->percent_profit;
$nestedData['harga_jual'] = 'Rp'.number_format($row->vendor->harga_modal*($row->percent_profit/100), 0, "", ".");
$nestedData['opsi'] = "
";
$data[] = $nestedData;
}
}
usort($data, function ($a, $b) {
return strcmp($b['id'], $a['id']);
});
$json_data = array(
"draw" => intval($request->input('draw')),
"recordsTotal" => intval($totalData),
"recordsFiltered" => intval($totalFiltered),
"data" => $data,
);
echo json_encode($json_data);
}
}
} else {
$task = Task::findOrFail($id);
return view('staff.task-detail', compact('task'));
}
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
if ($request->act == 'create-report') {
$t = Task::findOrFail($id);
$t->report = $request->report;
if ($request->file_report) {
$file = $request->file_report;
$file->move(public_path('uploads/'), $file->getClientOriginalName());
$t->file_report = 'uploads/'.$file->getClientOriginalName();
}
$t->status_report = 'done';
$t->save();
return redirect(route('task.index').'?act=report')->with('msg', 'report task berhasil dibuat');
}
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}