localize library cdn, remove approve button from transaction page, fix all fitur running datatable as well, fixing sortable datatable using new cdn, fix modal approve, add note to receiver mutations

This commit is contained in:
2025-06-16 15:01:08 +07:00
parent 9cfb566aee
commit 567e4aa5fc
45 changed files with 16202 additions and 365 deletions

View File

@@ -1800,6 +1800,18 @@ use Illuminate\Support\Facades\Auth;
</div>
</div>
${mutation.shipping_notes ? `
<div class="row mb-3">
<div class="col-md-12">
<strong>Catatan dari Pengirim:</strong><br>
<div class="alert alert-info mb-0">
<i class="fa fa-info-circle mr-2"></i>
${mutation.shipping_notes}
</div>
</div>
</div>
` : ''}
<hr>
<h6 class="mb-3">Detail Produk & Penerimaan:</h6>
@@ -1945,8 +1957,8 @@ use Illuminate\Support\Facades\Auth;
<div class="d-flex align-items-center">
<i class="fa fa-check-circle mr-2"></i>
<div>
<strong>Status:</strong> Mutasi telah diterima dan siap untuk disetujui.
<br><small>Stock akan dipindahkan setelah Anda menyetujui mutasi ini.</small>
<strong>Status:</strong> Mutasi telah diterima dan menunggu persetujuan admin.
<br><small>Stock akan dipindahkan setelah admin menyetujui mutasi ini.</small>
</div>
</div>
</div>
@@ -2063,135 +2075,8 @@ use Illuminate\Support\Facades\Auth;
// Handle approve button click
$(document).on('click', '.btn-approve-mutation', function() {
var mutationId = $(this).data('id');
Swal.fire({
title: 'Konfirmasi Persetujuan Mutasi',
html: `
<div class="text-left">
<p class="mb-3">Dengan menyetujui mutasi ini:</p>
<ul class="text-muted mb-3" style="font-size: 14px;">
<li>Stock akan dipindahkan secara otomatis dari dealer asal ke dealer tujuan</li>
<li>Proses mutasi akan selesai dan tidak dapat dibatalkan</li>
<li>Perubahan stock akan tercatat dalam log sistem</li>
</ul>
<div class="form-group text-left">
<label for="approval-notes" class="font-weight-bold">Catatan Persetujuan:</label>
<textarea id="approval-notes" class="form-control" rows="3" placeholder="Masukkan catatan persetujuan (opsional)..."></textarea>
</div>
</div>
`,
icon: 'question',
showCancelButton: true,
confirmButtonColor: '#28a745',
cancelButtonColor: '#6c757d',
confirmButtonText: 'Ya, Setujui Mutasi',
cancelButtonText: 'Batal',
width: '500px',
preConfirm: () => {
return document.getElementById('approval-notes').value;
}
}).then((result) => {
if (result.isConfirmed) {
// Create form and submit
var form = $('<form>').attr({
method: 'POST',
action: '{{ route("mutations.approve", ":id") }}'.replace(':id', mutationId)
});
form.append($('<input>').attr({
type: 'hidden',
name: '_token',
value: $('meta[name="csrf-token"]').attr('content')
}));
form.append($('<input>').attr({
type: 'hidden',
name: 'from_transaction_page',
value: '1'
}));
if (result.value) {
form.append($('<input>').attr({
type: 'hidden',
name: 'approval_notes',
value: result.value
}));
}
$('body').append(form);
form.submit();
}
});
});
// Handle reject button click
$(document).on('click', '.btn-reject-mutation', function() {
var mutationId = $(this).data('id');
Swal.fire({
title: 'Konfirmasi Penolakan Mutasi',
html: `
<div class="text-left">
<div class="alert alert-warning mb-3">
<i class="fa fa-exclamation-triangle mr-2"></i>
<strong>Perhatian:</strong> Mutasi yang ditolak tidak dapat diubah lagi dan proses akan dihentikan.
</div>
<div class="form-group text-left">
<label for="rejection-reason" class="font-weight-bold">Alasan Penolakan: <span class="text-danger">*</span></label>
<textarea id="rejection-reason" class="form-control" rows="3" placeholder="Jelaskan alasan penolakan mutasi ini..." required></textarea>
<small class="text-muted">Alasan penolakan wajib diisi untuk dokumentasi.</small>
</div>
</div>
`,
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#dc3545',
cancelButtonColor: '#6c757d',
confirmButtonText: 'Ya, Tolak Mutasi',
cancelButtonText: 'Batal',
width: '500px',
preConfirm: () => {
const reason = document.getElementById('rejection-reason').value;
if (!reason || reason.trim() === '') {
Swal.showValidationMessage('Alasan penolakan harus diisi!');
return false;
}
return reason;
}
}).then((result) => {
if (result.isConfirmed && result.value) {
// Create form and submit
var form = $('<form>').attr({
method: 'POST',
action: '{{ route("mutations.reject", ":id") }}'.replace(':id', mutationId)
});
form.append($('<input>').attr({
type: 'hidden',
name: '_token',
value: $('meta[name="csrf-token"]').attr('content')
}));
form.append($('<input>').attr({
type: 'hidden',
name: 'from_transaction_page',
value: '1'
}));
form.append($('<input>').attr({
type: 'hidden',
name: 'rejection_reason',
value: result.value
}));
$('body').append(form);
form.submit();
}
});
});
// Note: Approve and reject buttons removed from transaction page
// These actions are now only available to admin users in the admin panel
// Save active tab to localStorage
$('.nav-link').on('click', function() {