partial update create mutations workflow
This commit is contained in:
@@ -1,29 +1,28 @@
|
||||
<div class="btn-group btn-group-sm" role="group">
|
||||
<!-- View Button -->
|
||||
<a href="{{ route('mutations.show', $row->id) }}"
|
||||
class="btn btn-sm btn-clean btn-icon btn-icon-md"
|
||||
title="Lihat Detail">
|
||||
<i class="la la-eye"></i>
|
||||
class="btn btn-sm btn-outline-info me-1">
|
||||
Detail
|
||||
</a>
|
||||
|
||||
@if($row->status->value === 'sent')
|
||||
<!-- Receive Button (untuk dealer tujuan) -->
|
||||
@if(auth()->user()->dealer_id == $row->to_dealer_id)
|
||||
<button type="button"
|
||||
class="btn btn-sm btn-clean btn-icon btn-icon-md btn-receive"
|
||||
class="btn btn-sm btn-outline-primary btn-receive me-1"
|
||||
data-id="{{ $row->id }}"
|
||||
title="Terima Mutasi">
|
||||
<i class="la la-download text-primary"></i>
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#receiveModal{{ $row->id }}">
|
||||
Terima
|
||||
</button>
|
||||
@endif
|
||||
|
||||
<!-- Cancel Button (untuk pengirim) -->
|
||||
@if(auth()->user()->dealer_id == $row->from_dealer_id || auth()->user()->hasRole('admin'))
|
||||
<button type="button"
|
||||
class="btn btn-sm btn-clean btn-icon btn-icon-md btn-cancel"
|
||||
data-id="{{ $row->id }}"
|
||||
title="Batalkan Mutasi">
|
||||
<i class="la la-ban text-warning"></i>
|
||||
class="btn btn-sm btn-outline-warning btn-cancel me-1"
|
||||
data-id="{{ $row->id }}">
|
||||
Batal
|
||||
</button>
|
||||
@endif
|
||||
@endif
|
||||
@@ -32,20 +31,22 @@
|
||||
<!-- Approve Button (untuk pengirim atau admin) -->
|
||||
@if(auth()->user()->dealer_id == $row->from_dealer_id || auth()->user()->hasRole('admin'))
|
||||
<button type="button"
|
||||
class="btn btn-sm btn-clean btn-icon btn-icon-md btn-approve"
|
||||
class="btn btn-sm btn-outline-success btn-approve me-1"
|
||||
data-id="{{ $row->id }}"
|
||||
title="Setujui Mutasi">
|
||||
<i class="la la-check text-success"></i>
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#approveModal{{ $row->id }}">
|
||||
Setujui
|
||||
</button>
|
||||
@endif
|
||||
|
||||
<!-- Reject Button (untuk pengirim atau admin) -->
|
||||
@if(auth()->user()->dealer_id == $row->from_dealer_id || auth()->user()->hasRole('admin'))
|
||||
<button type="button"
|
||||
class="btn btn-sm btn-clean btn-icon btn-icon-md btn-reject"
|
||||
class="btn btn-sm btn-outline-danger btn-reject me-1"
|
||||
data-id="{{ $row->id }}"
|
||||
title="Tolak Mutasi">
|
||||
<i class="la la-times text-danger"></i>
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#rejectModal{{ $row->id }}">
|
||||
Tolak
|
||||
</button>
|
||||
@endif
|
||||
@endif
|
||||
@@ -54,20 +55,20 @@
|
||||
<!-- Complete/Receive Button -->
|
||||
@can('complete-mutation')
|
||||
<button type="button"
|
||||
class="btn btn-sm btn-clean btn-icon btn-icon-md btn-complete"
|
||||
class="btn btn-sm btn-outline-primary btn-complete me-1"
|
||||
data-id="{{ $row->id }}"
|
||||
title="Terima & Selesaikan Mutasi">
|
||||
<i class="la la-check-circle text-primary"></i>
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#completeModal{{ $row->id }}">
|
||||
Selesaikan
|
||||
</button>
|
||||
@endcan
|
||||
|
||||
<!-- Cancel Button -->
|
||||
@can('edit-mutation')
|
||||
<button type="button"
|
||||
class="btn btn-sm btn-clean btn-icon btn-icon-md btn-cancel"
|
||||
data-id="{{ $row->id }}"
|
||||
title="Batalkan Mutasi">
|
||||
<i class="la la-ban text-warning"></i>
|
||||
class="btn btn-sm btn-outline-warning btn-cancel me-1"
|
||||
data-id="{{ $row->id }}">
|
||||
Batal
|
||||
</button>
|
||||
@endcan
|
||||
@endif
|
||||
@@ -75,53 +76,71 @@
|
||||
@if(in_array($row->status->value, ['pending', 'approved']) && auth()->user()->id === $row->requested_by)
|
||||
<!-- Edit Button (only for creator and if still pending/approved) -->
|
||||
<a href="{{ route('mutations.edit', $row->id) }}"
|
||||
class="btn btn-sm btn-clean btn-icon btn-icon-md"
|
||||
title="Edit Mutasi">
|
||||
<i class="la la-edit text-info"></i>
|
||||
</a>
|
||||
@endif
|
||||
|
||||
@if($row->status->value === 'completed')
|
||||
<!-- Print Button -->
|
||||
<a href="{{ route('mutations.print', $row->id) }}"
|
||||
class="btn btn-sm btn-clean btn-icon btn-icon-md"
|
||||
target="_blank"
|
||||
title="Cetak Laporan">
|
||||
<i class="la la-print text-info"></i>
|
||||
class="btn btn-sm btn-outline-secondary me-1">
|
||||
Edit
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<!-- Modal untuk Approve -->
|
||||
<div class="modal fade" id="approveModal{{ $row->id }}" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal fade" id="approveModal{{ $row->id }}" tabindex="-1" aria-labelledby="approveModalLabel{{ $row->id }}" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Setujui Mutasi</h5>
|
||||
<button type="button" class="close" data-dismiss="modal">
|
||||
<span>×</span>
|
||||
</button>
|
||||
<h5 class="modal-title" id="approveModalLabel{{ $row->id }}">Setujui Mutasi</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<form action="{{ route('mutations.approve', $row->id) }}" method="POST" class="approve-form">
|
||||
@csrf
|
||||
<div class="modal-body">
|
||||
<div class="alert alert-info">
|
||||
<strong>Konfirmasi!</strong> Anda akan menyetujui mutasi yang telah diterima oleh <strong>{{ $row->toDealer->name }}</strong>.
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Catatan Persetujuan</label>
|
||||
<textarea name="notes" class="form-control" rows="3" placeholder="Opsional: tambahkan catatan..."></textarea>
|
||||
</div>
|
||||
|
||||
<!-- Detail produk akan dimuat via AJAX -->
|
||||
<div id="mutation-details{{ $row->id }}">
|
||||
<div class="text-center">
|
||||
<div class="spinner-border" role="status">
|
||||
<span class="sr-only">Loading...</span>
|
||||
</div>
|
||||
<p>Memuat detail produk...</p>
|
||||
</div>
|
||||
<h6>Detail Produk yang Diterima:</h6>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Produk</th>
|
||||
<th width="20%" class="text-center">Qty Diminta</th>
|
||||
<th width="20%" class="text-center">Qty Diterima</th>
|
||||
<th width="30%">Catatan</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($row->mutationDetails as $detail)
|
||||
<tr>
|
||||
<td>{{ $detail->product->name }}</td>
|
||||
<td class="text-center">{{ number_format($detail->quantity_requested, 2) }}</td>
|
||||
<td class="text-center">
|
||||
<span class="font-weight-bold {{ $detail->quantity_approved < $detail->quantity_requested ? 'text-warning' : 'text-success' }}">
|
||||
{{ number_format($detail->quantity_approved, 2) }}
|
||||
</span>
|
||||
@if($detail->quantity_approved < $detail->quantity_requested)
|
||||
<small class="text-muted d-block">
|
||||
(Kurang {{ number_format($detail->quantity_requested - $detail->quantity_approved, 2) }})
|
||||
</small>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
<small class="text-muted">{{ $detail->notes ?: '-' }}</small>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<p class="text-muted">Setelah disetujui, stock akan siap untuk dipindahkan.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<button type="submit" class="btn btn-success">Setujui Mutasi</button>
|
||||
</div>
|
||||
</form>
|
||||
@@ -130,14 +149,12 @@
|
||||
</div>
|
||||
|
||||
<!-- Modal untuk Reject -->
|
||||
<div class="modal fade" id="rejectModal{{ $row->id }}" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal fade" id="rejectModal{{ $row->id }}" tabindex="-1" aria-labelledby="rejectModalLabel{{ $row->id }}" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Tolak Mutasi</h5>
|
||||
<button type="button" class="close" data-dismiss="modal">
|
||||
<span>×</span>
|
||||
</button>
|
||||
<h5 class="modal-title" id="rejectModalLabel{{ $row->id }}">Tolak Mutasi</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<form action="{{ route('mutations.reject', $row->id) }}" method="POST">
|
||||
@csrf
|
||||
@@ -151,7 +168,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<button type="submit" class="btn btn-danger">Tolak Mutasi</button>
|
||||
</div>
|
||||
</form>
|
||||
@@ -160,14 +177,12 @@
|
||||
</div>
|
||||
|
||||
<!-- Modal untuk Receive -->
|
||||
<div class="modal fade" id="receiveModal{{ $row->id }}" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal fade" id="receiveModal{{ $row->id }}" tabindex="-1" aria-labelledby="receiveModalLabel{{ $row->id }}" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Terima Mutasi</h5>
|
||||
<button type="button" class="close" data-dismiss="modal">
|
||||
<span>×</span>
|
||||
</button>
|
||||
<h5 class="modal-title" id="receiveModalLabel{{ $row->id }}">Terima Mutasi</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<form action="{{ route('mutations.receive', $row->id) }}" method="POST">
|
||||
@csrf
|
||||
@@ -175,11 +190,55 @@
|
||||
<div class="alert alert-info">
|
||||
<strong>Konfirmasi!</strong> Anda akan menerima mutasi dari <strong>{{ $row->fromDealer->name }}</strong>.
|
||||
</div>
|
||||
<p>Setelah menerima, mutasi akan menunggu persetujuan dari pengirim sebelum stock dipindahkan.</p>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Catatan Penerimaan</label>
|
||||
<textarea name="notes" class="form-control" rows="3" placeholder="Catatan kondisi barang saat diterima (opsional)"></textarea>
|
||||
</div>
|
||||
|
||||
<h6>Detail Produk yang Diterima:</h6>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Produk</th>
|
||||
<th width="15%" class="text-center">Qty Diminta</th>
|
||||
<th width="15%" class="text-center">Qty Diterima</th>
|
||||
<th width="35%">Catatan Produk</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($row->mutationDetails as $index => $detail)
|
||||
<tr>
|
||||
<td>{{ $detail->product->name }}</td>
|
||||
<td class="text-center">{{ number_format($detail->quantity_requested, 2) }}</td>
|
||||
<td class="text-center">
|
||||
<input type="number"
|
||||
name="products[{{ $detail->id }}][quantity_approved]"
|
||||
class="form-control form-control-sm text-center"
|
||||
value="{{ $detail->quantity_requested }}"
|
||||
min="0"
|
||||
max="{{ $detail->quantity_requested }}"
|
||||
step="0.01"
|
||||
required>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text"
|
||||
name="products[{{ $detail->id }}][notes]"
|
||||
class="form-control form-control-sm"
|
||||
placeholder="Catatan kondisi produk saat diterima">
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<p class="text-muted">Setelah menerima, mutasi akan menunggu persetujuan dari pengirim sebelum stock dipindahkan.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
|
||||
<button type="submit" class="btn btn-primary">Ya, Terima</button>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<button type="submit" class="btn btn-primary">Ya, Terima Mutasi</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@@ -187,14 +246,12 @@
|
||||
</div>
|
||||
|
||||
<!-- Modal untuk Complete -->
|
||||
<div class="modal fade" id="completeModal{{ $row->id }}" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal fade" id="completeModal{{ $row->id }}" tabindex="-1" aria-labelledby="completeModalLabel{{ $row->id }}" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Selesaikan Mutasi</h5>
|
||||
<button type="button" class="close" data-dismiss="modal">
|
||||
<span>×</span>
|
||||
</button>
|
||||
<h5 class="modal-title" id="completeModalLabel{{ $row->id }}">Selesaikan Mutasi</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<form action="{{ route('mutations.complete', $row->id) }}" method="POST">
|
||||
@csrf
|
||||
@@ -205,7 +262,7 @@
|
||||
<p>Apakah Anda yakin ingin menyelesaikan mutasi ini? Tindakan ini tidak dapat dibatalkan.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<button type="submit" class="btn btn-primary">Ya, Selesaikan</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
Reference in New Issue
Block a user