Update Workflow

This commit is contained in:
daeng.deni@dharma.or.id 2023-05-26 09:31:37 +07:00
parent e06a210139
commit 39258dfecc
17 changed files with 900 additions and 275 deletions

View File

@ -4,6 +4,7 @@
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Builder as QueryBuilder;
use Illuminate\Support\Facades\Auth;
use Modules\Cetaklabel\Entities\DocumentDetail;
use Yajra\DataTables\EloquentDataTable;
use Yajra\DataTables\Html\Builder as HtmlBuilder;
@ -23,9 +24,66 @@
$query = $query->with(['document']);
return (new EloquentDataTable($query))
->filter(function ($query) {
if (request()->has('search')) {
$search = request()->get('search');
$query->where('kode', 'like', "%" . $search['value'] . "%");
if(Auth::user()->hasRole('otorisator')){
$query->orWhereRelation('document','directorat_id', Auth::user()->directorat_id);
$query->whereIn('status', [0,4,6,9]);
} else if(Auth::user()->hasRole('operator')){
$query->orWhereRelation('document','sub_directorat_id', Auth::user()->sub_directorat_id);
}
$query->where(function($query) use ($search){
$query->where('kode', 'like', "%" . $search['value'] . "%");
$query->orWhereRelation('document','kode_dus', 'like', "%" . $search['value'] . "%");
$query->orWhereRelation('document','kode_odner', 'like', "%" . $search['value'] . "%");
$query->orWhereRelation('document.directorat','kode', 'like', "%" . $search['value'] . "%");
$query->orWhereRelation('document.directorat','name', 'like', "%" . $search['value'] . "%");
$query->orWhereRelation('document.sub_directorat','kode', 'like', "%" . $search['value'] . "%");
$query->orWhereRelation('document.sub_directorat','name', 'like', "%" . $search['value'] . "%");
$query->orWhereRelation('document.job','kode', 'like', "%" . $search['value'] . "%");
$query->orWhereRelation('document.job','name', 'like', "%" . $search['value'] . "%");
$query->orWhereRelation('document.sub_job','kode', 'like', "%" . $search['value'] . "%");
$query->orWhereRelation('document.sub_job','name', 'like', "%" . $search['value'] . "%");
$query->orWhereRelation('document.sub_sub_job','kode', 'like', "%" . $search['value'] . "%");
$query->orWhereRelation('document.sub_sub_job','name', 'like', "%" . $search['value'] . "%");
$query->orWhere('tanggal_dokumen', 'like', "%" . $search['value'] . "%");
$query->orWhere('tanggal_upload', 'like', "%" . $search['value'] . "%");
$query->orWhere('nama_nasabah', 'like', "%" . $search['value'] . "%");
$query->orWhere('no_rekening', 'like', "%" . $search['value'] . "%");
$query->orWhere('no_cif', 'like', "%" . $search['value'] . "%");
$query->orWhere('group', 'like', "%" . $search['value'] . "%");
$query->orWhere('nomor_dokumen', 'like', "%" . $search['value'] . "%");
$query->orWhere('perihal', 'like', "%" . $search['value'] . "%");
$query->orWhere('kode_cabang', 'like', "%" . $search['value'] . "%");
$query->orWhere('jumlah_halaman', 'like', "%" . $search['value'] . "%");
$query->orWhere('custom_field_1', 'like', "%" . $search['value'] . "%");
$query->orWhere('custom_field_2', 'like', "%" . $search['value'] . "%");
$query->orWhere('custom_field_3', 'like', "%" . $search['value'] . "%");
$query->orWhere('custom_field_4', 'like', "%" . $search['value'] . "%");
$query->orWhere('no_urut', 'like', "%" . $search['value'] . "%");
$query->orWhere('kategori', 'like', "%" . $search['value'] . "%");
$query->orWhere('keterangan', 'like', "%" . $search['value'] . "%");
});
}
if(request()->has('tanggalawal')){
if(request()->get('tanggalawal') != null){
$query->where('tanggal_dokumen', '>=', Carbon::parse(request()->get('tanggalawal'))->format('Y-m-d'));
}
}
if(request()->has('tanggalakhir')){
if(request()->get('tanggalakhir') != null){
$query->where('tanggal_dokumen', '<=', Carbon::parse(request()->get('tanggalakhir'))->format('Y-m-d'));
}
}
})
->addColumn('kode_dus', function ($model) {
@ -57,11 +115,37 @@
->addColumn('sub_sub_job', function ($model) {
return $model->document->sub_sub_job->kode . ' - ' . $model->document->sub_sub_job->name;
})
->addColumn('tanggal_approve', function ($model) {
if($model->approved_at){
$dt = Carbon::create($model->approved_at);
return $dt->isoFormat('D MMMM Y H:mm:ss');
}
return "-";
})
->addColumn('approved_by', function ($model) {
return $model->approved->name ?? "";
})
->addColumn('status', function ($model) {
if ($model->status == 1) {
return '<span class="badge badge-light-success">Approved</span>';
} else if ($model->status == 0) {
return '<span class="badge badge-light-danger">Menunggu Approval</span>';
return '<span class="badge badge-light-warning">Menunggu Approval</span>';
} else if ($model->status == 3) {
return '<span class="badge badge-light-danger">Rejected</span>';
} else if ($model->status == 4) {
return '<span class="badge badge-light-success">Approved</span> <span class="badge badge-light-warning">Request Download</span>';
} else if ($model->status == 5) {
return '<span class="badge badge-light-success">Approved</span> <span class="badge badge-light-info">Download Approved</span>';
} else if ($model->status == 6) {
return '<span class="badge badge-light-success">Approved</span> <span class="badge badge-light-warning">Request Delete</span>';
} else if ($model->status == 7) {
return '<span class="badge badge-light-success">Approved</span> <span class="badge badge-light-danger">Request Delete</span>';
} else if ($model->status == 8) {
return '<span class="badge badge-light-success">Deleted</span>';
} else if ($model->status == 9) {
return '<span class="badge badge-light-success">Approved</span> <span class="badge badge-light-danger">Request Non-Aktif</span>';
}
})
->addIndexColumn()
@ -115,6 +199,8 @@
Column::make('nomor_dokumen'),
Column::make('tanggal_dokumen'),
Column::make('jumlah_halaman'),
Column::make('tanggal_approve'),
Column::make('approved_by'),
Column::make('directorat')->title('Direktorat')->className('none'),
Column::make('sub_directorat')->title('Sub Direktorat')->className('none'),
Column::make('job')->title('Jenis Pekerjaan')->className('none'),
@ -127,7 +213,6 @@
Column::computed('action')
->exportable(false)
->printable(false)
->width(60)
->addClass('text-center'),
];
}

View File

@ -39,14 +39,16 @@
$table->string('keterangan')->nullable();
$table->string('aktif')->default(0)->nullable();
$table->string('status')->default(0)->nullable();
$table->timestamps();
$table->softDeletes();
$table->timestamp('approved_at')->nullable();
$table->unsignedBigInteger('created_by')->nullable();
$table->unsignedBigInteger('updated_by')->nullable();
$table->unsignedBigInteger('deleted_by')->nullable();
$table->unsignedBigInteger('approved_by')->nullable();
});
}

View File

@ -46,11 +46,6 @@
return $this->belongsTo(SubSubJob::class);
}
public function special_code()
{
return $this->belongsTo(SpecialCode::class);
}
public function document_details()
{
return $this->hasMany(DocumentDetail::class);

View File

@ -2,6 +2,8 @@
namespace Modules\Cetaklabel\Entities;
use Modules\Usermanager\Entities\User;
class DocumentDetail extends BaseModel
{
protected $fillable = [
@ -27,7 +29,10 @@
'no_urut',
'kategori',
'keterangan',
'status'
'status',
'approved_by',
'approved_at',
'aktif'
];
public function document()
@ -39,4 +44,14 @@
{
return $this->belongsTo(DocumentType::class);
}
public function special_code()
{
return $this->belongsTo(SpecialCode::class);
}
public function approved(){
return $this->belongsTo(User::class, 'approved_by');
}
}

View File

@ -9,6 +9,7 @@
use Haruncpi\LaravelIdGenerator\IdGenerator;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\View;
use Modules\Cetaklabel\DataTables\DocumentDataTable;
use Modules\Cetaklabel\Entities\Directorat;
use Modules\Cetaklabel\Entities\Document;
@ -22,6 +23,13 @@
use Modules\Cetaklabel\Http\Requests\Document\StoreDocumentRequest;
use Modules\Cetaklabel\Http\Requests\Document\UpdateDocumentRequest;
use Response;
// Reference the Dompdf namespace
use Dompdf\Dompdf;
// Reference the Options namespace
use Dompdf\Options;
// Reference the Font Metrics namespace
use Dompdf\FontMetrics;
class DocumentController extends Controller
{
@ -169,49 +177,45 @@
*/
public function edit($id)
{
if (is_null($this->user) || !$this->user->can('document.update')) {
if (is_null($this->user) || !$this->user->hasRole('otorisator')){
abort(403, 'Sorry !! You are Unauthorized to update any master data !');
}
$document = Document::find($id);
$directorat = Directorat::all();
$sub_directorat = SubDirectorat::where('directorat_id', $document->directorat_id)->get();
$job = Job::where('sub_directorat_id', $document->sub_directorat_id)->get();
$sub_job = SubJob::where('job_id', $document->job_id)->get();
$sub_sub_job = SubSubJob::where('sub_job_id', $document->sub_job_id)->get();
$special_code = SpecialCode::all();
$document_type = DocumentType::all();
$document = DocumentDetail::with('document')->find($id);
return view('cetaklabel::app.document.edit', compact('document', 'directorat', 'sub_directorat', 'job', 'sub_job', 'sub_sub_job', 'special_code', 'document_type'));
if ($document->status != '0') {
abort(403, 'Sorry !! This Document has been authorized !');
}
$document = DocumentDetail::with('document')->find($id);
return view('cetaklabel::app.document.edit', compact('document'));
}
/**
* Update the specified resource in storage.
*/
public function update(UpdateDocumentRequest $request, Document $documents)
public function update(Request $request)
{
if (is_null($this->user) || !$this->user->can('document.update')) {
if (is_null($this->user) || !$this->user->hasRole('otorisator')) {
abort(403, 'Sorry !! You are Unauthorized to update any master data !');
}
// Validate the request...
$validated = $request->validated();
try {
$data = [
'status' => $request->keterangan =="" ? '1' : '3',
'keterangan' => $request->keterangan ?? null,
'approved_at' => date('Y-m-d H:i:s'),
'approved_by' => $this->user->id
];
$documents = DocumentDetail::find($request->id);
$documents->update($data);
// Update the Document...
if ($validated) {
try {
$document = Document::find($request->id);
$update = $document->update($validated);
return redirect()->route('document.index')->with('success', 'Document updated successfully.');
} catch (Exception $e) {
return redirect()->route('document.index')->with('error', 'Document updated failed.');
}
echo json_encode(['status' => 'success', 'message' => 'Document updated successfully.']);
} catch (Exception $e) {
echo json_encode(['status' => 'error', 'message' => 'Document updated failed.']);
}
return false;
}
/**
@ -236,14 +240,48 @@
public function download(Request $request)
{
if (is_null($this->user) || !$this->user->can('document.read')) {
abort(403, 'Sorry !! You are Unauthorized to download any master data !');
}
$document = DocumentDetail::find($request->id);
if($document->status == 1){
$document->update(['status' => '4']);
echo json_encode(['status' => 'success', 'message' => 'Document menunggu Approval untuk di Cetak.']);
return;
}
$filepath = public_path($document->file);
return Response::download($filepath);
if($document->status == 4){
$document->update(['status' => '5']);
echo json_encode(['status' => 'success', 'message' => 'Approval Berhasil.']);
return;
}
if($document->status == 5){
$document->update(['status' => '1']);
$document->save();
$filepath = public_path($document->file);
return Response::download($filepath);
}
}
public function aktif(Request $request)
{
$document = DocumentDetail::find($request->id);
if($document->aktif == 1 && $document->status != 9){
$document->update(['status' => '9','keterangan' => $request->keterangan]);
echo json_encode(['status' => 'success', 'message' => 'Document menunggu Approval untuk di Nonaktifkan.']);
return;
}
if($document->aktif == 1 && $document->status == 9){
$document->update(['aktif' => '0','status' => '1']);
echo json_encode(['status' => 'success', 'message' => 'Document Berhasil di Nonaktifkan.']);
return;
}
}
public function label(Request $request)
@ -266,7 +304,16 @@
$last = Carbon::create($last);
$last = $last->isoFormat('DD MMMM Y');
activity()
->performedOn($document)
->location('id')
->causedBy(Auth::user())
->withProperties($document)
->log('Cetak Label Dus');
return view('cetaklabel::app.document.label', compact('document_detail', 'start', 'last', 'document'));
}
public function odner(Request $request)
@ -289,6 +336,13 @@
$last = Carbon::create($last);
$last = $last->isoFormat('DD MMMM Y');
activity()
->performedOn($document)
->location('id')
->causedBy(Auth::user())
->withProperties($document)
->log('Cetak Label Odner');
return view('cetaklabel::app.document.odner', compact('document_detail', 'start', 'last', 'document'));
}
}

View File

@ -6,6 +6,9 @@
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Auth;
use Modules\Cetaklabel\Entities\Document;
use Modules\Cetaklabel\Entities\DocumentDetail;
class SettingsController extends Controller
{

View File

@ -106,7 +106,7 @@
if($sum_halaman_document < Setting::get('maximal_halaman_per_dus')){
if(($sum_halaman_document + $this->jumlah_halaman) >= Setting::get('maximal_halaman_per_dus')){
$sequence_odner += $this->sequence;
$sequence_odner += 1;
} else {
$sequence_odner = $this->sequence;
}
@ -115,10 +115,10 @@
$sum_halaman_document = $this->sumHalaman($prefix,$i,$sequence_dus);
if($sum_halaman_document < Setting::get('maximal_halaman_per_odner')){
if(($sum_halaman_document + $this->jumlah_halaman) >= Setting::get('maximal_halaman_per_odner')){
$sequence_odner += $i;
$sequence_odner = $i + 1;
break;
} else {
$sequence_odner = $i;
$sequence_odner = $this->sequence;
break;
}
}

View File

@ -2,30 +2,64 @@
$route = explode('.', Route::currentRouteName());
@endphp
<div class="d-flex flex-row flex-center">
<a href="{{ route($route[0].'.label',$model->id) }}" target="_blank"
class="btn btn-bg-light btn-active-light-primary btn-sm me-1">
Dus
</a>
<a href="{{ route($route[0].'.odner',$model->id) }}" target="_blank"
class="btn btn-bg-light btn-active-light-primary btn-sm me-1">
Odner
</a>
<a href="{{ route($route[0].'.download',$model->id) }}"
class="btn btn-icon btn-bg-light btn-active-light-primary btn-sm me-1">
{!! getIcon("cloud-download", "fs-1 text-info","duotune") !!}
</a>
@if(Auth::user()->can($route[0].'.update'))
<a href="{{ route($route[0].'.edit',['document' => $model->id]) }}"
class="kt_edit_form btn btn-icon btn-bg-light btn-active-light-warning btn-sm me-1">
{!! getIcon("pencil", "fs-1 text-warning","duotune") !!}
@if(in_array($model->status,[1,4,5,6,7,9]) && Auth::user()->can($route[0].'.read'))
<a href="{{ route($route[0].'.label',$model->id) }}" target="_blank"
class="btn btn-bg-light btn-active-light-primary btn-sm me-1">
{!! getIcon("printer", "text-success","duotune") !!} Label Dus
</a>
<a href="{{ route($route[0].'.odner',$model->id) }}" target="_blank"
class="btn btn-bg-light btn-active-light-primary btn-sm me-1">
{!! getIcon("printer", "text-primary","duotune") !!} Odner
</a>
@if($model->status == 4 && Auth::user()->hasRole('otorisator'))
<a href="{{ route($route[0].'.download',$model->id) }}"
class="approve-download btn btn-bg-light btn-active-light-primary btn-sm me-1">
{!! getIcon("cloud-download", "text-info","duotune") !!} Approve Download
</a>
@elseif($model->status == 1 && Auth::user()->hasRole('otorisator'))
<a href="{{ route($route[0].'.download',$model->id) }}"
class="btn-download btn btn-bg-light btn-active-light-primary btn-sm me-1">
{!! getIcon("cloud-download", "text-info","duotune") !!} Request Download
</a>
@elseif($model->status == 5 && Auth::user()->hasRole('operator'))
<a href="{{ route($route[0].'.download',$model->id) }}" target="_blank"
class="btn btn-bg-light btn-active-light-primary btn-sm me-1">
{!! getIcon("cloud-download", "text-success","duotune") !!} Download
</a>
@endif
@if(Auth::user()->can($route[0].'.delete'))
@if( Auth::user()->hasRole('operator'))
<a href="{{ route($route[0].'.aktif',$model->id) }}"
class="btn-aktif btn btn-bg-light btn-active-light-primary btn-sm me-1">
@if($model->aktif == 1)
{!! getIcon("check-square", "text-success","duotune") !!} Aktif
@else
{!! getIcon("cross-square", "text-danger","duotune") !!} Tidak Aktif
@endif
</a>
@elseif( Auth::user()->hasRole('otorisator'))
<a href="{{ route($route[0].'.aktif',$model->id) }}"
class="btn-approve-aktif btn btn-bg-light btn-active-light-primary btn-sm me-1">
{!! getIcon("check-square", "text-success","duotune") !!} Approve Non Aktif
</a>
@endif
@endif
@if(Auth::user()->can($route[0].'.delete'))
{!! Form::open(['method' => 'DELETE','route' => [$route[0].'.destroy', $model->id],'class'=>'']) !!}
{{ Form::button(getIcon("trash", "text-danger","duotune")." Delete", ['type' => 'submit', 'class' => 'delete btn btn-bg-light btn-active-light-danger btn-sm'] ) }}
{!! Form::close() !!}
@endif
@elseif($model->status == 0)
@if(Auth::user()->hasRole('otorisator'))
<a href="{{ route($route[0].'.edit',['document' => $model->id]) }}"
class="kt_edit_form btn btn-bg-light btn-active-light-warning btn-sm me-1">
{!! getIcon("eye", "text-warning","duotune") !!} View
</a>
@endif
@endif
@if(Auth::user()->can($route[0].'.delete'))
{!! Form::open(['method' => 'DELETE','route' => [$route[0].'.destroy', $model->id],'class'=>'']) !!}
{{ Form::button(getIcon("trash", "fs-1 text-danger","duotune"), ['type' => 'submit', 'class' => 'delete btn btn-icon btn-bg-light btn-active-light-danger btn-sm'] ) }}
{!! Form::close() !!}
@endif
</div>

View File

@ -1,222 +1,359 @@
@php
$route = explode('.', Route::currentRouteName());
@endphp
<!--begin:Form-->
<form class="form_{{$route[0]}}" method="POST" action="{{ route($route[0].'.update',['document' => $document->id]) }}">
@method('PUT')
@csrf
<!--begin::Input group-->
<div class="d-flex flex-column mb-8 fv-row">
<!--begin::Label-->
<label class="d-flex align-items-center fs-6 fw-semibold mb-2">
<span class="required">Kode</span>
<span class="ms-1" data-bs-toggle="tooltip" title="Specify a target name for future usage and reference"></span>
</label>
<!--end::Label-->
<input type="hidden" id="id" name="id" value="{{ $document->id }}"/>
<input type="text" id="kode" class="form-control form-control-solid" placeholder="This Kode Generate Automatically" name="kode" value="{{ $document->kode }}"/>
<div class="d-flex flex-column flex-lg-row mb-17">
<div class="flex-lg-row-fluid me-0 me-lg-20">
<iframe src="{{ asset($document->file) }}" width="100%" height="650">
This browser does not support PDFs. Please download the PDF to view it: <a href="{{ asset('folder/file_name.pdf') }}">Download PDF</a>
</iframe>
<form class="form_{{$route[0]}}" method="POST" action="{{ route($route[0].'.update',['document' => $document->id]) }}">
@method('PUT')
@csrf
<!--begin::Input group-->
<!--begin::Actions-->
<div class="text-center mt-10">
<input type="hidden" name="id" value="{{ $document->id }}">
<input type="hidden" name="keterangan" id="keterangan">
<button type="submit" name="status" value="3" class="btn-tolak btn btn-danger me-3">Tolak</button>
<button type="submit" name="status" value="1" class="btn-approve btn btn-primary">Approve</button>
</div>
<!--end::Actions-->
</form>
</div>
<!--end::Input group-->
<div class="flex-lg-row-auto w-100 w-lg-275px w-xxl-350px">
<div class="row gx-5 mb-5">
<div class="col-lg-6">
<!--begin::Input group-->
<div class="d-flex flex-column mb-8 fv-row">
<!--begin::Label-->
<label class="d-flex align-items-center fs-6 fw-semibold mb-2" for="directorat_id">
<span class="required">Directorat</span>
<span class="ms-1" data-bs-toggle="tooltip" title="Specify a target name for future usage and reference"></span>
</label>
<!--end::Label-->
<select class="form-select" name="directorat_id" id="directorat_id">
<option>Select Directorat</option>
@foreach($directorat as $item)
@if($item->id == $document->directorat_id)
<option value="{{$item->id}}" selected>{{$item->name}}</option>
@else
<option value="{{$item->id}}">{{$item->name}}</option>
@endif
@endforeach
</select>
</div>
<!--end::Input group-->
</div>
<div class="col-lg-6">
<!--begin::Input group-->
<div class="d-flex flex-column mb-8 fv-row">
<!--begin::Label-->
<label class="d-flex align-items-center fs-6 fw-semibold mb-2" for="sub_directorat_id">
<span class="required">Sub Directorat</span>
<span class="ms-1" data-bs-toggle="tooltip" title="Specify a target name for future usage and reference"></span>
</label>
<!--end::Label-->
<select class="form-select" name="sub_directorat_id" id="sub_directorat_id">
<option>Select Sub Directorat</option>
@foreach($sub_directorat as $item)
@if($item->id == $document->sub_directorat_id)
<option value="{{$item->id}}" selected>{{$item->name}}</option>
@else
<option value="{{$item->id}}">{{$item->name}}</option>
@endif
@endforeach
</select>
</div>
<!--end::Input group-->
</div>
<div class="col-lg-6">
<!--begin::Input group-->
<div class="d-flex flex-column mb-8 fv-row">
<!--begin::Label-->
<label class="d-flex align-items-center fs-6 fw-semibold mb-2" for="job_id">
<span class="required">Job</span>
<span class="ms-1" data-bs-toggle="tooltip" title="Specify a target name for future usage and reference"></span>
</label>
<!--end::Label-->
<select class="form-select" name="job_id" id="job_id">
<option>Select Job</option>
@foreach($job as $item)
@if($item->id == $document->job_id)
<option value="{{$item->id}}" selected>{{$item->name}}</option>
@else
<option value="{{$item->id}}">{{$item->name}}</option>
@endif
@endforeach
</select>
</div>
<!--end::Input group-->
</div>
<div class="col-lg-6">
<!--begin::Input group-->
<div class="d-flex flex-column mb-8 fv-row">
<!--begin::Label-->
<label class="d-flex align-items-center fs-6 fw-semibold mb-2" for="sub_job_id">
<span class="required">Sub Job</span>
<span class="ms-1" data-bs-toggle="tooltip" title="Specify a target name for future usage and reference"></span>
</label>
<!--end::Label-->
<select class="form-select" name="sub_job_id" id="sub_job_id">
<option>Select Sub Job</option>
@foreach($sub_job as $item)
@if($item->id == $document->sub_job_id)
<option value="{{$item->id}}" selected>{{$item->name}}</option>
@else
<option value="{{$item->id}}">{{$item->name}}</option>
@endif
@endforeach
</select>
</div>
<!--end::Input group-->
</div>
<!--begin::Careers about-->
<div class="card bg-light ">
<!--begin::Body-->
<div class="card-body">
<!--begin::Top-->
<div class="mb-7">
<!--begin::Title-->
<h2 class="fs-1 text-gray-800 w-bolder mb-6">
{{ $document->nomor_dokumen }}
</h2>
<!--end::Title-->
<div class="col-lg-6">
<!--begin::Input group-->
<div class="d-flex flex-column mb-8 fv-row">
<!--begin::Label-->
<label class="d-flex align-items-center fs-6 fw-semibold mb-2" for="sub_sub_job_id">
<span class="required">Sub Sub Job</span>
<span class="ms-1" data-bs-toggle="tooltip" title="Specify a target name for future usage and reference"></span>
</label>
<!--end::Label-->
<select class="form-select" name="sub_sub_job_id" id="sub_sub_job_id">
<option>Select Sub Sub Job</option>
@foreach($sub_sub_job as $item)
@if($item->id == $document->sub_sub_job_id)
<option value="{{$item->id}}" selected>{{$item->name}}</option>
@else
<option value="{{$item->id}}">{{$item->name}}</option>
<!--begin::Text-->
<p class="fw-semibold fs-6 text-gray-600">
{{ $document->perihal }}
</p>
<!--end::Text-->
</div>
<!--end::Top-->
<!--begin::Item-->
<div class="mb-8">
<!--begin::Title-->
<h4 class="text-gray-700 w-bolder mb-0">
Detail
</h4>
<!--end::Title-->
<!--begin::Section-->
<div class="my-2">
<!--begin::Row-->
<div class="d-flex align-items-center mb-3">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">{{ $document->special_code->name }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
<!--begin::Row-->
<div class="d-flex align-items-center mb-3">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">{{ $document->document_type->name }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
<!--begin::Row-->
<div class="d-flex align-items-center mb-3">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Kode : {{ $document->kode }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
@if($document->kategori=="nasabah")
@endif
@endforeach
</select>
</div>
<!--end::Input group-->
</div>
<!--begin::Row-->
<div class="d-flex align-items-center mb-3">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<div class="col-lg-6">
<!--begin::Input group-->
<div class="d-flex flex-column mb-8 fv-row">
<!--begin::Label-->
<label class="d-flex align-items-center fs-6 fw-semibold mb-2" for="special_code_id">
<span class="required">Special Code</span>
<span class="ms-1" data-bs-toggle="tooltip" title="Specify a target name for future usage and reference"></span>
</label>
<!--end::Label-->
<select class="form-select" name="special_code_id" id="special_code_id">
<option>Special Code</option>
@foreach($special_code as $item)
@if($item->id == $document->special_code_id)
<option value="{{$item->id}}" selected>{{$item->name}}</option>
@else
<option value="{{$item->id}}">{{$item->name}}</option>
@endif
@endforeach
</select>
</div>
<!--end::Input group-->
</div>
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Tanggal Dokumen : {{ $document->tanggal_dokumen }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
<!--begin::Row-->
<div class="d-flex align-items-center mb-3">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<div class="col-lg-6">
<!--begin::Input group-->
<div class="d-flex flex-column mb-8 fv-row">
<!--begin::Label-->
<label class="d-flex align-items-center fs-6 fw-semibold mb-2">
<span>No Urut</span>
<span class="ms-1" data-bs-toggle="tooltip" title="Specify a target name for future usage and reference"></span>
</label>
<!--end::Label-->
<input type="text" class="form-control form-control-solid" placeholder="This Kode Generate Automatically" name="no_urut" value="{{ $document->no_urut }}"/>
</div>
<!--end::Input group-->
</div>
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">User Upload : {{ $document->creator->name }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
<div class="col-lg-6">
<!--begin::Input group-->
<div class="d-flex flex-column mb-8 fv-row">
<!--begin::Label-->
<label class="d-flex align-items-center fs-6 fw-semibold mb-2" for="jenis_dokumen">
<span class="required">Jenis Dokumen</span>
<span class="ms-1" data-bs-toggle="tooltip" title="Specify a target name for future usage and reference"></span>
</label>
<!--end::Label-->
<select class="form-select" name="jenis_dokumen" id="jenis_dokumen">
<option value="nasabah" {{ $document->jenis_dokumen == 'nasabah' ? 'selected' : '' }} >Nasabah</option>
<option value="non nasabah" {{ $document->jenis_dokumen == 'non nasabah' ? 'selected' : '' }}>Non Nasabah</option>
</select>
<!--begin::Row-->
<div class="d-flex align-items-center mb-3">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Tanggal Upload : {{ $document->tanggal_upload }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
<!--begin::Row-->
<div class="d-flex align-items-center mb-3">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Sequence : {{ $document->document->sequence_odner }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
<!--begin::Row-->
<div class="d-flex align-items-center">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Halaman : {{ $document->jumlah_halaman }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
</div>
<!--end::Section-->
</div>
<!--end::Item-->
<!--begin::Item-->
<div class="mb-8">
<!--begin::Title-->
<h4 class="text-gray-700 w-bolder mb-0">
Keterangan
</h4>
<!--end::Title-->
<!--begin::Section-->
<div class="my-2">
<!--begin::Row-->
<div class="d-flex align-items-center mb-3">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">{{ $document->custom_field_1 }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
<!--begin::Row-->
<div class="d-flex align-items-center mb-3">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">{{ $document->custom_field_2 }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
<!--begin::Row-->
<div class="d-flex align-items-center mb-3">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">{{ $document->custom_field_3 }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
<!--begin::Row-->
<div class="d-flex align-items-center ">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">{{ $document->custom_field_4 }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
</div>
</div>
<!--begin::Item-->
<div class="mb-8">
<!--begin::Title-->
<h4 class="text-gray-700 w-bolder mb-0">
Info Direktorat
</h4>
<!--end::Title-->
<!--begin::Section-->
<div class="my-2">
<!--begin::Row-->
<div class="d-flex align-items-center mb-3">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Direktorat {{ $document->document->directorat->name }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
<!--begin::Row-->
<div class="d-flex align-items-center mb-3">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Sub Direktorat {{ $document->document->sub_directorat->name }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
<!--begin::Row-->
<div class="d-flex align-items-center mb-3">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Jenis Pekerjaan {{ $document->document->job->name }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
<!--begin::Row-->
<div class="d-flex align-items-center mb-3">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Sub Jenis Pekerjaan {{ $document->document->sub_job->name }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
<!--begin::Row-->
<div class="d-flex align-items-center ">
<!--begin::Bullet-->
<span class="bullet me-3"></span>
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Sub Sub Jenis Pekerjaan {{ $document->document->sub_sub_job->name }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
</div>
<!--end::Section-->
</div>
<!--end::Item-->
</div>
<!--end::Input group-->
<!--end::Body-->
</div>
<!--end::Careers about-->
</div>
<!--begin::Actions-->
<div class="text-center">
<button type="reset" data-bs-dismiss="modal" class="btn btn-light me-3">Cancel</button>
<button type="submit" class="btn btn-primary">Submit</button>
</div>
<!--end::Actions-->
</form>
<!--end:Form-->
</div>
@push('customscript')
<script type="text/javascript">
$(function () {
$("#sub_directorat_id").remoteChained({
parents: "#directorat_id",
url: "/sub-directorat"
});
$(".btn-tolak").on('click', function (event) {
var form = $(this).closest("form");
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
html: "Apakah Anda Akan Menolak Dokumen Ini!<br>Alasan Penolakan :",
icon: 'warning',
input: 'text',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes!',
preConfirm: (keterangan) => {
if (!keterangan) {
Swal.showValidationMessage(
`Alasan Penolakan Wajib Diisi`
)
} else {
$("#keterangan").val(keterangan)
}
}
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
type: "POST",
url: form.attr('action'),
data: form.serialize(), // serializes the form's elements.
success: function (data) {
toastr.success('Dokumen Berhasil Ditolak.', 'Success!', {timeOut: 5000});
window.location.href = "{{ route('document.index') }}"
}
});
$("#job_id").remoteChained({
parents: "#sub_directorat_id",
url: "/job"
});
}
})
})
$("#sub_job_id").remoteChained({
parents: "#job_id",
url: "/sub-job"
});
$(".btn-approve").on('click', function (event) {
var form = $(this).closest("form");
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
html: "Apakah Anda Menyetujui Dokumen Ini!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes!'
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
type: "POST",
url: form.attr('action'),
data: form.serialize(), // serializes the form's elements.
success: function (data) {
toastr.success('Dokumen Berhasil Di Approve.', 'Success!', {timeOut: 5000});
window.location.href = "{{ route('document.index') }}"
}
});
$("#sub_sub_job_id").remoteChained({
parents: "#sub_job_id",
url: "/sub-sub-job"
});
}
})
})
})
</script>
@endpush

View File

@ -328,7 +328,7 @@
title="Specify a target name for future usage and reference"></span>
</label>
<!--end::Label-->
<input type="file" class="form-control form-control-solid" name="file" required="required" accept=".zip,.pdf,image/*" />
<input type="file" class="form-control form-control-solid" name="file" required="required" accept=".pdf,image/*" />
</div>
<!--end::Input group-->
</dic>

View File

@ -4,7 +4,171 @@
{{-- Inject Scripts --}}
@section('scripts')
{{ $dataTable->scripts() }}
<script>
$(function() {
var keterangan = "";
window.LaravelDataTables = window.LaravelDataTables || {};
window.LaravelDataTables["document-table"] = $("#document-table").DataTable({
"serverSide": true,
"processing": true,
"ajax": {
"url": "{{ route('document.index') }}",
"type": "GET",
"data": function(data) {
for (var i = 0, len = data.columns.length; i < len; i++) {
if (!data.columns[i].search.value) delete data.columns[i].search;
if (data.columns[i].searchable === true) delete data.columns[i].searchable;
if (data.columns[i].orderable === true) delete data.columns[i].orderable;
if (data.columns[i].data === data.columns[i].name) delete data.columns[i].name;
}
delete data.search.regex;
data.tanggalawal = $('#tanggalawal').val();
data.tanggalakhir = $('#tanggalakhir').val();
}
},
"columns": [{
"data": "DT_RowIndex",
"name": "DT_RowIndex",
"title": "No",
"orderable": false,
"searchable": false
}, {
"data": "kode",
"name": "kode",
"title": "Kode File",
"orderable": true,
"searchable": true
}, {
"data": "kode_dus",
"name": "kode_dus",
"title": "Kode Dus",
"orderable": true,
"searchable": true
}, {
"data": "kode_odner",
"name": "kode_odner",
"title": "Kode Odner",
"orderable": true,
"searchable": true
}, {
"data": "kategori",
"name": "kategori",
"title": "Kategori",
"orderable": true,
"searchable": true
}, {
"data": "nomor_dokumen",
"name": "nomor_dokumen",
"title": "Nomor Dokumen",
"orderable": true,
"searchable": true
}, {
"data": "tanggal_dokumen",
"name": "tanggal_dokumen",
"title": "Tanggal Dokumen",
"orderable": true,
"searchable": true
}, {
"data": "jumlah_halaman",
"name": "jumlah_halaman",
"title": "Jumlah Halaman",
"orderable": true,
"searchable": true
}, {
"data": "tanggal_approve",
"name": "tanggal_approve",
"title": "Tanggal Approve",
"orderable": true,
"searchable": true
}, {
"data": "approved_by",
"name": "approved_by",
"title": "Approved By",
"orderable": true,
"searchable": true
}, {
"data": "directorat",
"name": "directorat",
"title": "Direktorat",
"orderable": true,
"searchable": true,
"className": "none"
}, {
"data": "sub_directorat",
"name": "sub_directorat",
"title": "Sub Direktorat",
"orderable": true,
"searchable": true,
"className": "none"
}, {
"data": "job",
"name": "job",
"title": "Jenis Pekerjaan",
"orderable": true,
"searchable": true,
"className": "none"
}, {
"data": "sub_job",
"name": "sub_job",
"title": "Sub Jenis Pekerjaan",
"orderable": true,
"searchable": true,
"className": "none"
}, {
"data": "sub_sub_job",
"name": "sub_sub_job",
"title": "Sub Sub Jenis Pekerjaan",
"orderable": true,
"searchable": true,
"className": "none"
}, {
"data": "tanggal_upload",
"name": "tanggal_upload",
"title": "Tanggal Upload",
"orderable": true,
"searchable": true,
"className": "none"
}, {
"data": "perihal",
"name": "perihal",
"title": "Perihal",
"orderable": true,
"searchable": true,
"className": "none"
}, {
"data": "keterangan",
"name": "keterangan",
"title": "Keterangan",
"orderable": true,
"searchable": true,
"className": "none"
}, {
"data": "status",
"name": "status",
"title": "Status",
"orderable": false,
"searchable": false
}, {
"data": "action",
"name": "action",
"title": "Action",
"orderable": false,
"searchable": false,
"className": "text-center"
}],
"stateSave": false,
"responsive": true,
"autoWidth": true,
"order": [
[1, "desc"]
],
"scrollX": true,
"drawCallback": function() {
KTMenu.createInstances();
}
});
})
</script>
@endsection
@push('customscript')
@ -17,6 +181,14 @@
LaravelDataTables["{{$route[0]}}-table"].search(this.value).draw();
});
$("#tanggalawal").on("change", function () {
LaravelDataTables["{{$route[0]}}-table"].search($("#searchbox").val()).draw();
});
$("#tanggalakhir").on("change", function () {
LaravelDataTables["{{$route[0]}}-table"].search($("#searchbox").val()).draw();
});
$(function () {
const documentTitle = '{{ ucfirst($route[0]) }} Report';
var buttons = new $.fn.dataTable.Buttons(LaravelDataTables["{{$route[0]}}-table"], {
@ -49,7 +221,6 @@
exportButtons.forEach(exportButton => {
exportButton.addEventListener('click', e => {
e.preventDefault();
console.log(e.target.getAttribute('data-kt-export'));
// Get clicked export value
const exportValue = e.target.getAttribute('data-kt-export');
const target = document.querySelector('.dt-buttons .buttons-' + exportValue);
@ -59,6 +230,120 @@
});
});
LaravelDataTables["{{$route[0]}}-table"].on('click', '.btn-download', function (event) {
var form = $(this).closest("a");
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: "Request download file?",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes'
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
type: "GET",
url: form.attr('href'),// serializes the form's elements.
success: function (data) {
toastr.success('{{ucfirst($route[0])}} menunggu approval untuk mencetak dokumen.', 'Success!', {timeOut: 5000});
LaravelDataTables["{{$route[0]}}-table"].draw();
}
});
}
})
})
LaravelDataTables["{{$route[0]}}-table"].on('click', '.btn-aktif', function (event) {
var form = $(this).closest("a");
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
html: "Apakah Anda Akan Menonaktifka Dokumen Ini!<br>Alasan Penonaktifan :",
icon: 'warning',
input: 'text',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes!',
preConfirm: (keterangan) => {
if (!keterangan) {
Swal.showValidationMessage(
`Alasan Penonaktifan Wajib Diisi`
)
} else {
this.keterangan = keterangan
}
}
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
type: "GET",
url: form.attr('href'),
data: {keterangan:this.keterangan}, // serializes the form's elements.
success: function (data) {
toastr.success('Menunggu Approval untuk menonaktifkan Dokumen.', 'Success!', {timeOut: 5000});
LaravelDataTables["{{$route[0]}}-table"].draw();
}
});
}
})
})
LaravelDataTables["{{$route[0]}}-table"].on('click', '.approve-download', function (event) {
var form = $(this).closest("a");
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: "Approve download file?",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes'
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
type: "GET",
url: form.attr('href'),// serializes the form's elements.
success: function (data) {
toastr.success('{{ucfirst($route[0])}} Approval Download Berhasil.', 'Success!', {timeOut: 5000});
LaravelDataTables["{{$route[0]}}-table"].draw();
}
});
}
})
})
LaravelDataTables["{{$route[0]}}-table"].on('click', '.btn-approve-aktif', function (event) {
var form = $(this).closest("a");
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: "Anda Akan Mengijinkan Menonaktifkan Dokumen Ini?",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes'
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
type: "GET",
url: form.attr('href'),// serializes the form's elements.
success: function (data) {
toastr.success('{{ucfirst($route[0])}} Approval Penonaktifan Dokumen Berhasil.', 'Success!', {timeOut: 5000});
LaravelDataTables["{{$route[0]}}-table"].draw();
}
});
}
})
})
LaravelDataTables["{{$route[0]}}-table"].on('click', '.delete', function (event) {
var form = $(this).closest("form");
@ -79,7 +364,7 @@
data: form.serialize(), // serializes the form's elements.
success: function (data) {
toastr.success('{{ucfirst($route[0])}} has been deleted.', 'Success!', {timeOut: 5000});
LaravelDataTables["{{$route[0]}}-table"].ajax.reload();
LaravelDataTables["{{$route[0]}}-table"].draw();
}
});

View File

@ -4,7 +4,7 @@
<!--begin::Card body-->
<div class="card-header border-0 pt-5">
<h3 class="card-title align-items-start flex-column">
Edit Document {{ $document->kode }}
View Document {{ $document->kode }}
</h3>
</div>
<div class="card-body pt-6">

View File

@ -19,6 +19,14 @@
<input type="text" id="searchbox"
class="form-control form-control-solid border border-gray-300 w-250px ps-15"
placeholder="Search Document">
<span>&nbsp;Periode :&nbsp;</span><input type="date" id="tanggalawal"
class="form-control form-control-solid border border-gray-300 w-250px ps-15 ml-10"
placeholder="Tanggal Awal">
&nbsp;s.d.&nbsp;<input type="date" id="tanggalakhir"
class="form-control form-control-solid border border-gray-300 w-250px ps-15 ml-10"
placeholder="Tanggal Awal">
</div>
<!--begin::Export buttons-->

View File

@ -49,11 +49,9 @@
right: 75px;
}
}
</style>
</head>
<body>
<table cellspacing="0" cellpadding="0" style="table-layout: fixed;">
<tbody>
<tr style="height:35mm;table-layout:fixed;">
@ -69,8 +67,8 @@
<span style="font-size:80pt;font-weight:bold">{{ $document_detail->document->directorat->kode }}.{{ $document_detail->document->sub_directorat->kode }}</span><br>
<span style="font-size:54pt;font-weight:bold">{{ $document_detail->document->job->kode }}</span><br><br>
<span style="font-size:24pt;">{{ $document_detail->document->job->name }}</span><br><br><br><br>
<span style="font-size:24pt;">{{ $document_detail->document->sequence_dus }}</span><br><br><br><br>
<span style="font-size:12pt;">PERIODE</span>
<span style="font-size:24pt;">{{ $document_detail->document->sequence_dus }}</span><br><br><br><br><br>
<span style="font-size:14pt;font-weight:bold">PERIODE</span>
</td>
</tr>
<tr style="height:20mm;table-layout:fixed;background-color: #000066;">
@ -139,5 +137,9 @@
</table>
</div>
<script>
window.print();
</script>
</body>
</html>

View File

@ -53,5 +53,9 @@
</tr>
</tbody>
</table>
<script>
window.print();
</script>
</body>
</html>

View File

@ -16,7 +16,7 @@
title="Specify a target name for future usage and reference"></span>
</label>
<!--end::Label-->
<input type="number" class="form-control form-control-solid" name="maximal_halaman_per_odner" value="{{ $setting['maximal_halaman_per_odner'] }}" min="1"
<input type="number" class="form-control form-control-solid" name="maximal_halaman_per_odner" value="{{ $setting['maximal_halaman_per_odner'] ?? 0 }}" min="1"
required="required"/>
</div>
<!--end::Input group-->
@ -32,7 +32,7 @@
title="Specify a target name for future usage and reference"></span>
</label>
<!--end::Label-->
<input type="number" class="form-control form-control-solid" name="maximal_odner_per_dus" value="{{ $setting['maximal_odner_per_dus'] }}" min="1"
<input type="number" class="form-control form-control-solid" name="maximal_odner_per_dus" value="{{ $setting['maximal_odner_per_dus'] ?? 0 }}" min="1"
required="required"/>
</div>
<!--end::Input group-->

View File

@ -35,6 +35,7 @@
Route::get('document-download/{id}', [DocumentController::class, 'download'])->name('document.download');
Route::get('document-label/{id}', [DocumentController::class, 'label'])->name('document.label');
Route::get('document-odner/{id}', [DocumentController::class, 'odner'])->name('document.odner');
Route::get('document-aktif/{id}', [DocumentController::class, 'aktif'])->name('document.aktif');
//Route::resource('document-detail', DOcumentDetailController::class);
Route::resource('settings', SettingsController::class);