29 lines
7.0 KiB
PHP
29 lines
7.0 KiB
PHP
<?php $inventory_title='Detail Peralatan Teknisi';$inventory_subtitle='Posisi barang, pemasangan customer, hasil pelepasan, pemeriksaan, dan histori dalam satu halaman.';$perm=$equipment_permissions??array();$active_panel='technician';function tech_detail_qty($v){$n=(float)$v;return abs($n-round($n))<.0001?number_format($n,0,',','.'):number_format($n,4,',','.');}function tech_detail_filters($row){$filters=array();if($row['custodian_type']==='technician'&&$row['usage_status']==='carried')$filters[]='carried';if($row['custodian_type']==='customer'&&$row['usage_status']==='installed')$filters[]='installed';if($row['usage_status']==='removed')$filters[]='removed';if($row['condition_status']==='inspection_required')$filters[]='inspection';return implode(' ',$filters);} ?>
|
|
<?php $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')?>">
|
|
<div class="tech-shell">
|
|
<?php $this->load->view('peralatan_teknisi/_module_nav',get_defined_vars()); ?>
|
|
<section class="tech-card"><div class="tech-card-head"><div><span class="tech-step-label">Penanggung jawab operasional</span><h4 class="mb-1"><?=html_escape($technician->full_name)?></h4><p><?=html_escape(($technician->employee_code??'-').' · '.($technician->department_name??'-').' · '.($technician->position_name??'-'))?></p></div><div class="tech-doc-actions"><a class="btn btn-outline-primary" href="<?=base_url('teknisi')?>#scanner"><i class="bi bi-qr-code-scan"></i> Scan Pergerakan</a><?php if(!empty($perm['export'])):?><button type="button" id="techTechnicianInventoryPdf" class="btn btn-outline-danger tech-detail-pdf" data-base-url="<?=base_url('teknisi/technician_inventory_pdf/'.(int)$technician->id)?>" data-url="<?=base_url('teknisi/technician_inventory_pdf/'.(int)$technician->id.'?status=carried')?>"><i class="bi bi-file-pdf"></i> PDF Sedang Dibawa</button><?php endif?></div></div></section>
|
|
<section class="tech-card"><ul class="nav nav-pills gap-2 mb-3" id="techDetailTabs"><li><button class="nav-link active" data-filter="carried">Sedang Dibawa</button></li><li><button class="nav-link" data-filter="installed">Terpasang di Customer</button></li><li><button class="nav-link" data-filter="removed">Hasil Pelepasan</button></li><li><button class="nav-link" data-filter="inspection">Menunggu Pemeriksaan</button></li><li><button class="nav-link" data-filter="all">Semua Posisi</button></li></ul><div class="tech-table-wrap"><table class="table tech-table align-middle" id="techDetailTable"><thead><tr><th>Barcode / Serial</th><th>Barang</th><th>Kepemilikan</th><th>Jumlah</th><th>Customer / Posisi</th><th>Status</th><th>Kondisi</th><th>Aksi</th></tr></thead><tbody>
|
|
<?php foreach($allocations as$a):?><tr data-filters="<?=html_escape(tech_detail_filters($a))?>"><td><strong><?=html_escape($a['barcode_snapshot'])?></strong><br><small><?=html_escape($a['serial_number']?:$a['external_serial']?:'-')?></small></td><td><?=html_escape($a['display_name'])?></td><td><?=$a['ownership_type']==='company'?'Perusahaan':'Customer / Non-Persediaan'?></td><td><?=tech_detail_qty($a['qty'])?></td><td><?=html_escape($a['customer_name']?:$a['technician_name']?:$a['warehouse_name']?:'-')?></td><td><span class="tech-status"><?=html_escape($a['usage_status'])?></span></td><td><?=html_escape($a['condition_status'])?></td><td><a class="btn btn-outline-primary btn-sm" href="<?=base_url('teknisi?scan='.rawurlencode($a['barcode_snapshot']))?>#scanner"><i class="bi bi-qr-code-scan"></i> Proses</a></td></tr><?php endforeach?>
|
|
<tr id="techDetailEmpty" style="display:none"><td colspan="8" class="tech-empty">Tidak ada barang dengan status yang dipilih.</td></tr></tbody></table></div></section>
|
|
<section class="tech-card"><div class="tech-card-head"><div><h5>Riwayat Dokumen</h5><p>Histori tidak dapat dihapus atau diedit.</p></div></div><div class="tech-table-wrap"><table class="table tech-table align-middle"><thead><tr><th>Dokumen</th><th>Tanggal</th><th>Proses</th><th>Customer</th><th>Keterangan</th><th>PDF</th></tr></thead><tbody><?php foreach($documents as$d):?><tr><td><strong><?=html_escape($d['document_no'])?></strong></td><td><?=html_escape($d['document_date'])?></td><td><?=html_escape($d['document_type'])?></td><td><?=html_escape($d['customer_name']?:'-')?></td><td><?=html_escape($d['notes']?:'-')?></td><td><?php if($perm['export']):?><button type="button" class="btn btn-outline-danger btn-sm tech-detail-pdf" data-url="<?=base_url('teknisi/equipment_document_pdf/'.(int)$d['id'])?>"><i class="bi bi-file-pdf"></i></button><?php endif?></td></tr><?php endforeach?><?php if(empty($documents)):?><tr><td colspan="6" class="tech-empty">Belum ada riwayat.</td></tr><?php endif?></tbody></table></div></section>
|
|
</div>
|
|
<?php if($perm['export']):?><div class="modal fade tech-modal" id="techDetailPdfModal" data-bs-backdrop="static" 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 Dokumen Peralatan</h5><button class="btn-close" data-bs-dismiss="modal"></button></div><div class="modal-body p-0"><iframe title="PDF Dokumen Peralatan" style="width:100%;height:100%;border:0"></iframe></div></div></div></div><?php endif?>
|
|
<script>
|
|
(function(){
|
|
var labels={carried:'Sedang Dibawa',installed:'Terpasang di Customer',removed:'Hasil Pelepasan',inspection:'Menunggu Pemeriksaan',all:'Semua Posisi'};
|
|
var reportButton=document.getElementById('techTechnicianInventoryPdf');
|
|
function applyFilter(filter){
|
|
document.querySelectorAll('#techDetailTabs button').forEach(function(button){button.classList.toggle('active',button.dataset.filter===filter)});
|
|
var visible=0;document.querySelectorAll('#techDetailTable tbody tr[data-filters]').forEach(function(row){var show=filter==='all'||row.dataset.filters.split(' ').indexOf(filter)!==-1;row.style.display=show?'':'none';if(show)visible++});
|
|
var emptyRow=document.getElementById('techDetailEmpty');if(emptyRow){emptyRow.style.display=visible?'none':'';emptyRow.querySelector('td').textContent='Tidak ada barang dengan status '+labels[filter]+'.';}
|
|
if(reportButton){reportButton.dataset.url=reportButton.dataset.baseUrl+'?status='+encodeURIComponent(filter);reportButton.innerHTML='<i class="bi bi-file-pdf"></i> PDF '+labels[filter];}
|
|
}
|
|
document.querySelectorAll('#techDetailTabs button').forEach(function(button){button.addEventListener('click',function(){applyFilter(button.dataset.filter)})});
|
|
document.querySelectorAll('.tech-detail-pdf').forEach(function(button){button.addEventListener('click',function(){var el=document.getElementById('techDetailPdfModal');el.querySelector('iframe').src=button.dataset.url;bootstrap.Modal.getOrCreateInstance(el,{backdrop:'static'}).show()})});
|
|
var pdfModal=document.getElementById('techDetailPdfModal');if(pdfModal)pdfModal.addEventListener('hidden.bs.modal',function(){pdfModal.querySelector('iframe').src='about:blank'});
|
|
applyFilter('carried');
|
|
})();
|
|
</script>
|