36 lines
7.7 KiB
PHP
36 lines
7.7 KiB
PHP
<?php
|
|
$inventory_title='Log Peralatan Teknisi';
|
|
$inventory_subtitle='Telusuri barang yang dibawa, dipasang pada customer, atau dikembalikan oleh teknisi.';
|
|
$perm=$equipment_permissions??array();
|
|
$active_panel='history';
|
|
$this->load->view('inventory_professional/_module_nav',get_defined_vars());
|
|
?>
|
|
<link rel="stylesheet" href="<?=base_url('assets/css/technician-equipment.css')?>?v=<?=filemtime(FCPATH.'assets/css/technician-equipment.css')?>">
|
|
<?php $this->load->view('peralatan_teknisi/_module_nav',get_defined_vars()); ?>
|
|
<section class="inventory-card">
|
|
<div class="inventory-card-head"><div><h5>Filter Riwayat Peralatan</h5><p>Tanggal mencakup tanggal dibawa, dipasang, atau dikembalikan.</p></div><a href="<?=base_url('teknisi')?>" class="btn btn-outline-secondary"><i class="bi bi-arrow-left me-1"></i>Kembali</a></div>
|
|
<form id="technicianLogFilter" class="row g-3 align-items-end p-3 border-bottom" data-ajax="true">
|
|
<div class="col-sm-6 col-xl-2"><label class="form-label">Dari Tanggal</label><input type="date" class="form-control" name="date_from"></div>
|
|
<div class="col-sm-6 col-xl-2"><label class="form-label">Sampai Tanggal</label><input type="date" class="form-control" name="date_to"></div>
|
|
<div class="col-md-6 col-xl-2"><label class="form-label">Customer</label><select class="form-select select-search" name="customer_id"><option value="">Semua customer</option><?php foreach($customers as$customer):?><option value="<?=$customer->id?>"><?=html_escape($customer->nama)?></option><?php endforeach?></select></div>
|
|
<div class="col-md-6 col-xl-2"><label class="form-label">Karyawan / Teknisi</label><select class="form-select select-search" name="user_id"><option value="">Semua teknisi</option><?php foreach($teknisi_list as$employee):?><option value="<?=$employee->id?>"><?=html_escape($employee->employee_code.' - '.$employee->full_name)?></option><?php endforeach?></select></div>
|
|
<div class="col-md-4 col-xl-2"><label class="form-label">Status</label><select class="form-select" name="status"><option value="">Semua</option><option value="carried">Dibawa</option><option value="installed">Dipasang</option><option value="removed">Dilepas</option><option value="returned">Dikembalikan</option></select></div>
|
|
<div class="col-md-4 col-xl-2"><label class="form-label">Kondisi</label><select class="form-select" name="condition"><option value="">Semua</option><option value="good">Baik</option><option value="inspection_required">Perlu Diperiksa</option><option value="repair_required">Perlu Perbaikan</option><option value="under_repair">Dalam Perbaikan</option><option value="damaged">Rusak</option><option value="lost">Hilang</option><option value="scrapped">Dihapuskan</option></select></div>
|
|
<div class="col-md-4 col-xl-2"><label class="form-label">Kepemilikan</label><select class="form-select" name="ownership"><option value="">Semua</option><option value="company">Perusahaan</option><option value="customer">Customer</option><option value="transferred_non_inventory">Non-Persediaan Diserahkan</option><option value="unknown">Belum Diketahui</option></select></div>
|
|
<div class="col-md-8 col-xl-4"><label class="form-label">Barang / Barcode / Serial</label><input class="form-control" name="query" placeholder="Cari identitas barang"></div>
|
|
<div class="col-md-4 col-xl-2 d-flex gap-2"><button type="submit" class="btn btn-primary flex-grow-1"><i class="bi bi-funnel me-1"></i>Tampilkan</button><?php if($can_export):?><button type="button" id="technicianLogPdf" class="btn btn-outline-danger" title="Export PDF"><i class="bi bi-file-earmark-pdf"></i></button><?php endif?></div>
|
|
</form>
|
|
<div class="table-responsive"><table class="table align-middle mb-0 w-100" id="tblLogBarang"><thead><tr><th>No</th><th>Dokumen</th><th>Teknisi</th><th>Barang</th><th>Barcode / SN</th><th>Pemilik</th><th>Qty</th><th>Customer</th><th>Posisi</th><th>Status</th><th>Kondisi</th><th>Keterangan</th><th>Aksi</th></tr></thead><tbody></tbody></table></div>
|
|
</section>
|
|
<div class="modal fade" id="technicianLogDetailModal" data-bs-backdrop="static" tabindex="-1"><div class="modal-dialog modal-xl modal-dialog-centered modal-dialog-scrollable"><div class="modal-content"><div class="modal-header"><h5 class="modal-title">Detail Dokumen Peralatan</h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div><div class="modal-body"></div><div class="modal-footer"><button class="btn btn-light" data-bs-dismiss="modal">Tutup</button></div></div></div></div>
|
|
<?php if($can_export):?><div class="modal fade" id="technicianLogPdfModal" tabindex="-1"><div class="modal-dialog modal-xl modal-dialog-centered"><div class="modal-content" style="height:min(90vh,900px)"><div class="modal-header"><h5 class="modal-title">PDF Log Peralatan Teknisi</h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div><div class="modal-body p-0"><iframe title="PDF Log Peralatan Teknisi" style="width:100%;height:100%;border:0"></iframe></div></div></div></div><?php endif?>
|
|
<script>
|
|
$(function(){
|
|
const form=$('#technicianLogFilter'),table=$('#tblLogBarang').DataTable({processing:true,serverSide:false,ajax:{url:'<?=base_url('teknisi/get_log_data')?>',data:function(request){form.serializeArray().forEach(field=>request[field.name]=field.value)},dataSrc:'data',error:function(xhr){if(window.Swal)Swal.fire({toast:true,position:'top-end',icon:'error',title:(xhr.responseJSON&&xhr.responseJSON.message)||'Riwayat gagal dimuat.',showConfirmButton:false,timer:4000})}},columns:Array.from({length:13},(_,index)=>({data:index})),order:[[1,'desc']],pageLength:25,responsive:true,language:{search:'Cari:',lengthMenu:'Tampilkan _MENU_ data',info:'Menampilkan _START_ - _END_ dari _TOTAL_ data',zeroRecords:'Tidak ada riwayat sesuai filter',paginate:{next:'»',previous:'«'}}});
|
|
form.on('submit',function(event){event.preventDefault();table.ajax.reload()});
|
|
$('#technicianLogPdf').on('click',function(){const modal=document.getElementById('technicianLogPdfModal'),query=form.serialize();modal.querySelector('iframe').src='<?=base_url('teknisi/log_pdf')?>?'+query;bootstrap.Modal.getOrCreateInstance(modal).show()});
|
|
$('#technicianLogPdfModal').on('hidden.bs.modal',function(){$(this).find('iframe').attr('src','about:blank')});
|
|
$(document).on('click','.tech-log-detail',function(){const id=this.dataset.id,$modal=$('#technicianLogDetailModal'),esc=v=>$('<div>').text(v==null?'':v).html();$modal.find('.modal-body').html('<div class="text-center p-5"><span class="spinner-border text-primary"></span></div>');bootstrap.Modal.getOrCreateInstance($modal[0],{backdrop:'static'}).show();$.getJSON('<?=base_url('teknisi/equipment_document/')?>'+id).done(function(r){const d=r.result,lines=(d.lines||[]).map(l=>'<tr><td>'+esc(l.display_name)+'</td><td>'+esc(l.barcode_snapshot)+'</td><td>'+Number(l.qty).toLocaleString('id-ID',{maximumFractionDigits:4})+'</td><td>'+esc(l.from_custodian_type)+' → '+esc(l.to_custodian_type)+'</td><td>'+esc(l.from_condition_status)+' → '+esc(l.to_condition_status)+'</td></tr>').join('');$modal.find('.modal-body').html('<div class="row g-3 mb-3"><div class="col-md-4"><small>Nomor Dokumen</small><div class="fw-bold">'+esc(d.document_no)+'</div></div><div class="col-md-4"><small>Teknisi / Customer</small><div>'+esc(d.technician_name||'-')+' / '+esc(d.customer_name||'-')+'</div></div><div class="col-md-4"><small>Tanggal / Proses</small><div>'+esc(d.document_date)+' / '+esc(d.document_type)+'</div></div></div><div class="table-responsive"><table class="table"><thead><tr><th>Barang</th><th>Barcode</th><th>Qty</th><th>Posisi</th><th>Kondisi</th></tr></thead><tbody>'+lines+'</tbody></table></div><p><strong>Keterangan:</strong> '+esc(d.notes||'-')+'</p>')}).fail(function(){$modal.find('.modal-body').html('<div class="alert alert-danger">Detail gagal dimuat.</div>')})});
|
|
});
|
|
</script>
|