2023-07-21 09:37:19 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Modules\Cetaklabel\Http\Controllers;
|
|
|
|
|
|
|
|
use Illuminate\Contracts\Support\Renderable;
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
use Illuminate\Routing\Controller;
|
|
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
use Modules\Cetaklabel\DataTables\CardboardDataTable;
|
2023-08-10 11:23:28 +00:00
|
|
|
use Modules\Cetaklabel\DataTables\ReportDataTable;
|
|
|
|
use Modules\Cetaklabel\DataTables\ReportDocumentDataTable;
|
|
|
|
use Modules\Cetaklabel\DataTables\ReportOdnerDataTable;
|
|
|
|
use Modules\Cetaklabel\Entities\CardboardDetail;
|
2023-07-21 09:37:19 +00:00
|
|
|
use Modules\Cetaklabel\Entities\Directorat;
|
2023-08-10 11:23:28 +00:00
|
|
|
use Modules\Cetaklabel\Entities\Document;
|
|
|
|
use Modules\Cetaklabel\Entities\DocumentDetail;
|
|
|
|
use Modules\Cetaklabel\Entities\Report;
|
2023-07-21 09:37:19 +00:00
|
|
|
use Modules\Cetaklabel\Entities\SubDirectorat;
|
|
|
|
|
|
|
|
class ReportController extends Controller
|
|
|
|
{
|
|
|
|
public function __construct()
|
|
|
|
{
|
|
|
|
$this->middleware(function ($request, $next) {
|
|
|
|
$this->user = Auth::guard('web')->user();
|
|
|
|
return $next($request);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
public function _index(CardboardDataTable $datatable){
|
|
|
|
addVendor('chained-select');
|
|
|
|
$directorats = Directorat::all();
|
|
|
|
|
|
|
|
return $datatable->render('cetaklabel::app.cardboard.index', compact('directorats'));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Display a listing of the resource.
|
|
|
|
*
|
|
|
|
* @return Renderable
|
|
|
|
*/
|
|
|
|
public function index()
|
|
|
|
{
|
|
|
|
addVendor('chained-select');
|
|
|
|
if (Auth::user()->hasRole(['ad', 'administrator'])) {
|
|
|
|
|
|
|
|
$directorat = Directorat::all();
|
|
|
|
return view('cetaklabel::app.report.index', compact('directorat'));
|
|
|
|
} else if (Auth::user()->hasRole(['dd'])) {
|
|
|
|
$sub_directorat = SubDirectorat::all();
|
|
|
|
return view('cetaklabel::app.report.index', compact('sub_directorat'));
|
|
|
|
}
|
|
|
|
|
|
|
|
return view('cetaklabel::app.report.index');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Show the form for creating a new resource.
|
|
|
|
*
|
|
|
|
* @return Renderable
|
|
|
|
*/
|
|
|
|
public function create()
|
|
|
|
{
|
|
|
|
return view('cetaklabel::create');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Store a newly created resource in storage.
|
|
|
|
*
|
|
|
|
* @param Request $request
|
|
|
|
*
|
|
|
|
* @return Renderable
|
|
|
|
*/
|
|
|
|
public function store(Request $request)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Show the specified resource.
|
|
|
|
*
|
|
|
|
* @param int $id
|
|
|
|
*
|
|
|
|
* @return Renderable
|
|
|
|
*/
|
2023-08-10 11:23:28 +00:00
|
|
|
public function show(ReportDataTable $dataTable, ReportOdnerDataTable $dataTableOdner, ReportDocumentDataTable $dataTableDocument,$id)
|
2023-07-21 09:37:19 +00:00
|
|
|
{
|
2023-08-10 11:23:28 +00:00
|
|
|
$report = Report::find($id);
|
|
|
|
$param = json_decode($report->param);
|
|
|
|
if($param->jenis_laporan == "dus"){
|
|
|
|
return $this->showReport($dataTable);
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($param->jenis_laporan == "odner") {
|
|
|
|
return $this->showReport($dataTableOdner);
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($param->jenis_laporan == "document") {
|
|
|
|
return $this->showReport($dataTableDocument);
|
|
|
|
}
|
2023-07-21 09:37:19 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Show the form for editing the specified resource.
|
|
|
|
*
|
|
|
|
* @param int $id
|
|
|
|
*
|
|
|
|
* @return Renderable
|
|
|
|
*/
|
2023-08-10 11:23:28 +00:00
|
|
|
private function showReport($dataTable)
|
2023-07-21 09:37:19 +00:00
|
|
|
{
|
2023-08-10 11:23:28 +00:00
|
|
|
return $dataTable->render('cetaklabel::app.report.show');
|
2023-07-21 09:37:19 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Update the specified resource in storage.
|
|
|
|
*
|
|
|
|
* @param Request $request
|
|
|
|
* @param int $id
|
|
|
|
*
|
|
|
|
* @return Renderable
|
|
|
|
*/
|
|
|
|
public function update(Request $request, $id)
|
|
|
|
{
|
|
|
|
//
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Remove the specified resource from storage.
|
|
|
|
*
|
|
|
|
* @param int $id
|
|
|
|
*
|
|
|
|
* @return Renderable
|
|
|
|
*/
|
|
|
|
public function destroy($id)
|
|
|
|
{
|
|
|
|
//
|
|
|
|
}
|
2023-08-10 11:23:28 +00:00
|
|
|
|
|
|
|
public function dusList($id)
|
|
|
|
{
|
|
|
|
header("Content-Type: application/vnd.ms-excel; charset=utf-8");
|
|
|
|
header("Content-Disposition: attachment; filename=list-odner-dus.xls"); //File name extension was wrong
|
|
|
|
header("Expires: 0");
|
|
|
|
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
|
|
|
|
header("Cache-Control: private", false);
|
|
|
|
|
|
|
|
$dus = CardboardDetail::where('cardboard_id', $id)->pluck('document_id')->toArray();
|
|
|
|
$documents = Document::whereIn('id',$dus)->get();
|
|
|
|
|
|
|
|
return view('cetaklabel::app.report.dus-list', compact('documents'));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function odnerList($id)
|
|
|
|
{
|
|
|
|
header("Content-Type: application/vnd.ms-excel; charset=utf-8");
|
|
|
|
header("Content-Disposition: attachment; filename=list-document-odner.xls"); //File name extension was wrong
|
|
|
|
header("Expires: 0");
|
|
|
|
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
|
|
|
|
header("Cache-Control: private", false);
|
|
|
|
|
|
|
|
$document = Document::where('id',$id)->first();
|
|
|
|
$documents = DocumentDetail::where('document_id', $document->id)->get();
|
|
|
|
|
|
|
|
return view('cetaklabel::app.report.odner-list', compact('documents'));
|
|
|
|
}
|
|
|
|
|
2023-07-21 09:37:19 +00:00
|
|
|
}
|