Update Delete Workflow

This commit is contained in:
Daeng Deni Mardaeni 2023-05-26 11:10:23 +07:00
parent 2b0ca9fc94
commit a47a3b9850
5 changed files with 156 additions and 51 deletions

View File

@ -199,8 +199,8 @@
Column::make('nomor_dokumen'),
Column::make('tanggal_dokumen'),
Column::make('jumlah_halaman'),
Column::make('tanggal_approve'),
Column::make('approved_by'),
Column::make('tanggal_approve')->className('none'),
Column::make('approved_by')->className('none'),
Column::make('directorat')->title('Direktorat')->className('none'),
Column::make('sub_directorat')->title('Sub Direktorat')->className('none'),
Column::make('job')->title('Jenis Pekerjaan')->className('none'),

View File

@ -228,14 +228,25 @@
}
// Delete Detail Document First...
$document_details = DocumentDetail::where('document_id', $request->document)->get();
if ($document_details->count() > 0) {
foreach ($document_details as $document_detail) {
$document_detail->delete();
}
$document_details = DocumentDetail::find($request->document);
if($document_details->status == 1){
$document_details->update(['status' => '6','keterangan' => $request->keterangan]);
echo json_encode(['status' => 'success', 'message' => 'Document menunggu Approval untuk di Hapus.']);
return;
}
echo json_encode(['status' => 'success', 'message' => 'Document deleted successfully.']);
if($document_details->status == 6){
$document_details->update(['status' => '7']);
echo json_encode(['status' => 'success', 'message' => 'Document menunggu Approval Tingkat 2 untuk di Hapus.']);
return;
}
if($document_details->status == 7){
$document_details->update(['status' => '8']);
$document_details->delete();
echo json_encode(['status' => 'success', 'message' => 'Document deleted successfully.']);
}
}
public function download(Request $request)
@ -306,7 +317,6 @@
activity()
->performedOn($document)
->location('id')
->causedBy(Auth::user())
->withProperties($document)
->log('Cetak Label Dus');
@ -338,7 +348,6 @@
activity()
->performedOn($document)
->location('id')
->causedBy(Auth::user())
->withProperties($document)
->log('Cetak Label Odner');

View File

@ -17,7 +17,7 @@
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'))
@elseif($model->status == 1 && Auth::user()->hasRole('operator'))
<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
@ -29,17 +29,21 @@
</a>
@endif
@if(Auth::user()->can($route[0].'.delete'))
@if(Auth::user()->can($route[0].'.read'))
@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)
@if($model->aktif == 1)
<a href="{{ route($route[0].'.aktif',$model->id) }}"
class="btn-aktif btn btn-bg-light btn-active-light-primary btn-sm me-1">
{!! getIcon("check-square", "text-success","duotune") !!} Aktif
@else
</a>
@else
<span
class="btn btn-bg-light btn-active-light-primary btn-sm me-1">
{!! getIcon("cross-square", "text-danger","duotune") !!} Tidak Aktif
@endif
</a>
@elseif( Auth::user()->hasRole('otorisator'))
</span>
@endif
@elseif(Auth::user()->hasRole('otorisator') && $model->status == 9)
<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
@ -47,14 +51,23 @@
@endif
@endif
@if(Auth::user()->can($route[0].'.delete'))
@if(Auth::user()->can($route[0].'.delete') || Auth::user()->can($route[0].'.authorize'))
{!! Form::open(['method' => 'DELETE','route' => [$route[0].'.destroy', $model->id],'class'=>'']) !!}
@if( Auth::user()->hasRole('operator'))
{{ Form::button(getIcon("trash", "text-danger","duotune")." Reqeust Delete", ['type' => 'submit', 'class' => 'delete btn btn-bg-light btn-active-light-danger btn-sm'] ) }}
@elseif(Auth::user()->hasRole('otorisator') || Auth::user()->hasRole('administrator'))
{{ Form::button(getIcon("trash", "text-danger","duotune")."Approve Delete", ['type' => 'submit', 'class' => 'delete btn btn-bg-light btn-active-light-danger btn-sm'] ) }}
{{ Form::button(getIcon("trash", "text-danger","duotune")." Reqeust Delete", ['type' => 'submit', 'class' => 'delete btn btn-bg-light btn-active-light-danger btn-sm'] ) }}
@elseif(Auth::user()->hasRole('otorisator') && $model->status == 6)
{{ Form::button(getIcon("trash", "text-danger","duotune")."Approve Delete", ['type' => 'submit', 'class' => 'approvedelete btn btn-bg-light btn-active-light-danger btn-sm'] ) }}
@elseif(Auth::user()->hasRole('administrator') && $model->status == 7)
{{ Form::button(getIcon("trash", "text-danger","duotune")."Approve Delete", ['type' => 'submit', 'class' => 'approveddelete btn btn-bg-light btn-active-light-danger btn-sm'] ) }}
@endif
{!! Form::close() !!}
@if(in_array($model->status,[6,7,9]) && Auth::user()->can($route[0].'.read'))
<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
@elseif($model->status == 0)

View File

@ -4,20 +4,24 @@
<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>
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]) }}">
<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-->
@if($document->status==0)
<!--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-->
@endif
</form>
</div>
<div class="flex-lg-row-auto w-100 w-lg-275px w-xxl-350px">
@ -30,7 +34,7 @@
<div class="mb-7">
<!--begin::Title-->
<h2 class="fs-1 text-gray-800 w-bolder mb-6">
{{ $document->nomor_dokumen }}
{{ $document->nomor_dokumen }}
</h2>
<!--end::Title-->
@ -96,7 +100,8 @@
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Tanggal Dokumen : {{ $document->tanggal_dokumen }}</div>
<div class="text-gray-600 fw-semibold fs-6">Tanggal Dokumen
: {{ $document->tanggal_dokumen }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
@ -107,7 +112,8 @@
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">User Upload : {{ $document->creator->name }}</div>
<div class="text-gray-600 fw-semibold fs-6">User Upload
: {{ $document->creator->name }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
@ -119,7 +125,8 @@
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Tanggal Upload : {{ $document->tanggal_upload }}</div>
<div class="text-gray-600 fw-semibold fs-6">Tanggal Upload
: {{ $document->tanggal_upload }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
@ -131,7 +138,8 @@
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Sequence : {{ $document->document->sequence_odner }}</div>
<div class="text-gray-600 fw-semibold fs-6">Sequence
: {{ $document->document->sequence_odner }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
@ -228,7 +236,8 @@
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Direktorat {{ $document->document->directorat->name }}</div>
<div class="text-gray-600 fw-semibold fs-6">
Direktorat {{ $document->document->directorat->name }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
@ -239,7 +248,8 @@
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Sub Direktorat {{ $document->document->sub_directorat->name }}</div>
<div class="text-gray-600 fw-semibold fs-6">Sub
Direktorat {{ $document->document->sub_directorat->name }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
@ -250,7 +260,8 @@
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Jenis Pekerjaan {{ $document->document->job->name }}</div>
<div class="text-gray-600 fw-semibold fs-6">Jenis
Pekerjaan {{ $document->document->job->name }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
@ -261,7 +272,8 @@
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Sub Jenis Pekerjaan {{ $document->document->sub_job->name }}</div>
<div class="text-gray-600 fw-semibold fs-6">Sub Jenis
Pekerjaan {{ $document->document->sub_job->name }}</div>
<!--end::Label-->
</div>
<!--end::Row-->
@ -273,7 +285,8 @@
<!--end::Bullet-->
<!--begin::Label-->
<div class="text-gray-600 fw-semibold fs-6">Sub Sub Jenis Pekerjaan {{ $document->document->sub_sub_job->name }}</div>
<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-->

View File

@ -37,7 +37,8 @@
"name": "kode",
"title": "Kode File",
"orderable": true,
"searchable": true
"searchable": true,
"className": "none"
}, {
"data": "kode_dus",
"name": "kode_dus",
@ -79,13 +80,15 @@
"name": "tanggal_approve",
"title": "Tanggal Approve",
"orderable": true,
"searchable": true
"searchable": true,
"className": "none"
}, {
"data": "approved_by",
"name": "approved_by",
"title": "Approved By",
"orderable": true,
"searchable": true
"searchable": true,
"className": "none"
}, {
"data": "directorat",
"name": "directorat",
@ -154,7 +157,7 @@
"title": "Action",
"orderable": false,
"searchable": false,
"className": "text-center"
"className": "text-right"
}],
"stateSave": false,
"responsive": true,
@ -261,7 +264,7 @@
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
html: "Apakah Anda Akan Menonaktifka Dokumen Ini!<br>Alasan Penonaktifan :",
html: "Apakah Anda Akan Menonaktifkan Dokumen Ini!<br>Alasan Penonaktifan :",
icon: 'warning',
input: 'text',
showCancelButton: true,
@ -348,14 +351,25 @@
LaravelDataTables["{{$route[0]}}-table"].on('click', '.delete', function (event) {
var form = $(this).closest("form");
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: "You won't be able to revert this!",
html: "Apakah Anda Akan Menghapus Dokumen Ini!<br>Alasan Penghapusan :",
icon: 'warning',
input: 'text',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
confirmButtonText: 'Yes!',
preConfirm: (keterangan) => {
if (!keterangan) {
Swal.showValidationMessage(
`Alasan Penghapusan Wajib Diisi`
)
} else {
this.keterangan = keterangan
}
}
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
@ -363,7 +377,63 @@
url: form.attr('action'),
data: form.serialize(), // serializes the form's elements.
success: function (data) {
toastr.success('{{ucfirst($route[0])}} has been deleted.', 'Success!', {timeOut: 5000});
toastr.success('{{ucfirst($route[0])}} Menunggu Approval untuk menghapus Dokumen.', 'Success!', {timeOut: 5000});
LaravelDataTables["{{$route[0]}}-table"].draw();
}
});
}
})
})
LaravelDataTables["{{$route[0]}}-table"].on('click', '.approvedelete', function (event) {
var form = $(this).closest("form");
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
html: "Apakah Anda Akan Mengijinkan Menghapus 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('{{ucfirst($route[0])}} Menunggu Approval Tingkat 2 untuk menghapus Dokumen.', 'Success!', {timeOut: 5000});
LaravelDataTables["{{$route[0]}}-table"].draw();
}
});
}
})
})
LaravelDataTables["{{$route[0]}}-table"].on('click', '.approveddelete', function (event) {
var form = $(this).closest("form");
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
html: "Apakah Anda Akan Menghapus 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('{{ucfirst($route[0])}} Sukses menghapus Dokumen.', 'Success!', {timeOut: 5000});
LaravelDataTables["{{$route[0]}}-table"].draw();
}
});