|
Server : LiteSpeed System : Linux barito.iixcp.rumahweb.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64 User : elvh3918 ( 1528) PHP Version : 8.2.31 Disable Function : mail Directory : /home/elvh3918/public_html/pmm/storage/framework/views/ |
<?php $__env->startSection('title', $breadcrumbs[count($breadcrumbs) - 1]['name']); ?>
<?php $__env->startSection('content'); ?>
<?php echo $__env->make('components/breadcrumb', ['breadcrumbs' => $breadcrumbs], array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?>
<?php echo $__env->make('components/print-header', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?>
<?php echo $__env->make('components/qrcode-scan', ['width' => '0'], array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?>
<?php echo $__env->make('components/modal-qrcode-scan', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?>
<!-- Main content -->
<section class="content">
<div class="container-fluid">
<div class="row d-print-none">
<div class="col-md-2 mb-2">
<div class="bg-purple h-full rounded text-center d-flex flex-column justify-content-center align-items-center">
<span class="text-capitalize font-weight-bold">total visit</span>
<h2 class="text-capitalize font-weight-bold" id="lbl_total_row">0</h2>
</div>
</div>
<div class="col-md-10 mb-2">
<div class="row">
<div class="col-md-3 col-6 mb-2">
<label class="form-label fs-5" for="date_from">Date From</label>
<div class="input-group date" id="show_date_from" data-target-input="nearest">
<input type="text" class="form-control datetimepicker-input" data-target="#show_date_from" id="date_from" name="date_from" placeholder="DD-MMM-YYYY"
required/>
<div class="input-group-append" data-target="#show_date_from" data-toggle="datetimepicker">
<div class="input-group-text"><i class="fa fa-calendar"></i></div>
</div>
</div>
</div>
<div class="col-md-3 col-6 mb-2">
<label class="form-label fs-5" for="date_to">Date To</label>
<div class="input-group date" id="show_date_to" data-target-input="nearest">
<input type="text" class="form-control datetimepicker-input" data-target="#show_date_to" id="date_to" name="date_to" placeholder="DD-MMM-YYYY"
required/>
<div class="input-group-append" data-target="#show_date_to" data-toggle="datetimepicker">
<div class="input-group-text"><i class="fa fa-calendar"></i></div>
</div>
</div>
</div>
<div class="col-md-3 col-6 mb-2">
<label class="form-label fs-5" for="code">Code</label>
<div class="d-flex flex-row">
<input type="text"
class="form-control" id="code" name="code" placeholder="Scan QRCode item here"
onkeypress="pressEnter(event)"
/>
<button type="button" class="ml-2 btn btn-info" onclick='openCamera()'>
<i class="fa fa-camera"></i>
</button>
</div>
</div>
<div class="col-md-3 col-6 mb-2">
<label class="form-label" for="tenant_id">Tenant</label>
<div class="d-flex flex-row">
<select class="form-control tenant_idSelect2" name="tenant_id" id="tenant_id">
<?php if(Auth::user()->model_type == 'App\Models\Bussiness'): ?>
<option value=0>All</option>
<?php endif; ?>
<?php $__currentLoopData = $tenant; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $data): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<option value="<?php echo e($data->id); ?>"><?php echo e($data->name); ?></option>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
</select>
<button id="btnSearch" type="button" class="ml-2 btn btn-primary show" onclick='btn_search()'>
<i class="fa fa-search"></i>
</button>
</div>
</div>
</div>
</div>
</div>
<div class="card card-solid">
<div class="card-body">
<table id="example1" class="table table-sm table-bordered display nowrap">
<thead>
<tr class="bg-purple">
<th class="text-center"></th>
<th class="text-center align-middle text-capitalize">CP</th>
<th class="text-center align-middle text-capitalize">series</th>
<th class="text-center align-middle text-capitalize">date trans</th>
<th class="text-center align-middle text-capitalize">tenant</th>
<th class="text-center align-middle text-capitalize">techician</th>
<th class="text-center align-middle text-capitalize">customer</th>
<th class="text-center align-middle text-capitalize">item</th>
<th class="text-center align-middle text-capitalize">service type</th>
<th class="text-center align-middle text-capitalize">description</th>
<th class="text-center align-middle text-capitalize">note</th>
<th class="text-center align-middle text-capitalize">create by</th>
<th class="text-center align-middle text-capitalize">data</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div><!--/. container-fluid -->
</section>
<!-- /.content -->
<?php echo $__env->yieldContent('modal-qrcode'); ?>
<?php $__env->stopSection(); ?>
<?php $__env->startSection('page-style'); ?>
<link rel="stylesheet" href="<?php echo e(asset('assets/plugins/select2/css/select2.min.css')); ?>">
<link rel="stylesheet" href="<?php echo e(asset('assets/plugins/select2-bootstrap4-theme/select2-bootstrap4.min.css')); ?>">
<link rel="stylesheet" href="<?php echo e(asset('assets/plugins/datatables-bs4/css/dataTables.bootstrap4.css')); ?>">
<link rel="stylesheet" href="<?php echo e(asset('assets/plugins/datatables-buttons/css/buttons.bootstrap4.css')); ?>">
<link rel="stylesheet" href="<?php echo e(asset('assets/plugins/toastr/toastr.min.css')); ?>">
<link rel="stylesheet" href="<?php echo e(asset('assets/plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css')); ?>">
<style>
.table td, .table th {padding-top: 0; padding-bottom: 0; padding-left: 2; padding-right: 2;}
</style>
<?php $__env->stopSection(); ?>
<?php $__env->startSection('page-script'); ?>
<script src="<?php echo e(asset('assets/plugins/select2/js/select2.full.min.js')); ?>"></script>
<script src="<?php echo e(asset('assets/plugins/datatables/dataTables.js')); ?>"></script>
<script src="<?php echo e(asset('assets/plugins/datatables/dataTables.bootstrap4.js')); ?>"></script>
<script src="<?php echo e(asset('assets/plugins/datatables-buttons/js/dataTables.buttons.js')); ?>"></script>
<script src="<?php echo e(asset('assets/plugins/datatables-buttons/js/buttons.bootstrap4.js')); ?>"></script>
<script src="<?php echo e(asset('assets/plugins/datatables-buttons/js/buttons.print.min.js')); ?>"></script>
<script src="<?php echo e(asset('assets/plugins/datatables-buttons/js/jszip.min.js')); ?>"></script>
<script src="<?php echo e(asset('assets/plugins/datatables-buttons/js/buttons.html5.min.js')); ?>"></script>
<script src="<?php echo e(asset('assets/plugins/datatables-buttons/js/buttons.colVis.min.js')); ?>"></script>
<script src="<?php echo e(asset('assets/plugins/toastr/toastr.min.js')); ?>"></script>
<script src="<?php echo e(asset('assets/external/load-toastr.js')); ?>"></script>
<script src="<?php echo e(asset('assets/external/button-spin.js')); ?>"></script>
<script src="<?php echo e(asset('assets/plugins/moment/moment.min.js')); ?>"></script>
<script src="<?php echo e(asset('assets/plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js')); ?>"></script>
<script src="<?php echo e(asset('assets/external/format-number.js')); ?>"></script>
<script src="<?php echo e(asset('assets/external/format-decimal.js')); ?>"></script>
<?php echo $__env->yieldContent('page-script-print-header'); ?>
<?php echo $__env->yieldContent('page-script-qrcode'); ?>
<?php echo $__env->yieldContent('page-script-modal-qrcode'); ?>
<script>
$('.tenant_idSelect2').select2({
theme: 'bootstrap4'
});
$('#show_date_from').datetimepicker({
format: 'DD-MMM-YYYY'
});
$('#show_date_to').datetimepicker({
format: 'DD-MMM-YYYY'
});
$date_from = new Date(<?php echo json_encode($date_from); ?>);
$date_to = new Date(<?php echo json_encode($date_to); ?>);
$item_code = <?php echo json_encode($item_code); ?>;
document.getElementById('date_from').value = moment($date_from).format('DD-MMM-YYYY');
document.getElementById('date_to').value = moment($date_to).format('DD-MMM-YYYY');
document.getElementById('code').value = $item_code == 'null' ? '' : $item_code;
function openCamera() {
openModalQRCode();
}
function catch_result(decodedText = null, decodedResult = null) {
document.getElementById("code").value = decodedText;
closeModalQRCode();
btn_search();
}
function pressEnter(e) {
if (e.keyCode === 13) { // where 13 is the enter button
e.preventDefault(); //ignore submit
btn_search();
}
}
var bShow = <?php echo json_encode($show); ?>;
if (bShow) {
btn_search();
}
let table = $("#example1").DataTable({
paging: true,
lengthChange: true,
searching: true,
ordering: true,
info: true,
autoWidth: false,
responsive: true,
pageLength: 100,
scrollY: true,
scrollX: true,
order: [[2, 'asc']],
columnDefs: [
{
data: 'expland',
name: 'expland',
targets: 0,
className: 'dt-control',
orderable: false,
defaultContent: ''
},
{
data: 'series',
name: 'series',
targets: 1,
className: 'dt-body-left'
},
{
data: 'cp',
name: 'cp',
targets: 2,
className: 'dt-body-center'
},
{
data: 'date_trans',
name: 'date_trans',
targets: 3,
className: 'dt-body-center',
render: DataTable.render.datetime('DD-MMM-YYYY')
},
{
data: 'tenant',
name: 'tenant',
targets: 4,
className: 'dt-body-left'
},
{
data: 'techician',
name: 'techician',
targets: 5,
className: 'dt-body-left'
},
{
data: 'customer',
name: 'customer',
targets: 6,
className: 'dt-body-left'
},
{
data: 'item',
name: 'item',
targets: 7,
className: 'dt-body-left'
},
{
data: 'service_type',
name: 'service_type',
targets: 8,
className: 'dt-body-left'
},
{
data: 'description',
name: 'description',
targets: 9,
className: 'dt-body-left'
},
{
data: 'note',
name: 'note',
targets: 10,
className: 'dt-body-left'
},
{
data: 'create_by',
name: 'create_by',
targets: 11,
className: 'dt-body-left'
},
{
data: 'data',
name: 'data',
targets: 12,
className: 'dt-body-left',
visible: false
}
],
buttons: [
'pageLength',
{
extend: 'collection',
text: 'Control',
buttons: [
// 'copy', 'excel', 'print',
// custom export column only visible
{
extend: 'copy',
exportOptions: {
columns: ':visible'
}
},
{
extend: 'excel',
exportOptions: {
columns: ':visible'
},
},
{
extend: 'print',
exportOptions: {
columns: ':visible'
},
title: '',
message: setTitle(),
},
{
text: 'Visibility',
popoverTitle: 'Control',
extend: 'colvis',
collectionLayout: 'two-column',
postfixButtons: ['colvisRestore']
},
]
}
],
layout: {
topStart: ['buttons']
}
});
table.on('click', 'td.dt-control', function (e) {
let tr = e.target.closest('tr');
let row = table.row(tr);
if (row.child.isShown()) {
row.child.hide();
}
else {
row.child(data_detail(row.data())).show();
}
});
function data_detail(data) {
data = data.data;
var total = 0;
var html="";
html +='<div class="p-3">';
html +='<span class="mb-1 text-capitalize font-weight-bold">change part</span>';
html +='<table class="table table-sm table-bordered display nowrap">';
html +='<thead>';
html +='<tr class="bg-dark">';
html +='<th class="text-center align-middle text-capitalize">item</th>';
html +='<th class="text-center align-middle text-capitalize">qty</th>';
html +='<th class="text-center align-middle text-capitalize">note</th>';
html +='</tr>';
html +='</thead>';
html +='<tbody>';
if (data.length == 0) {
html +='<tr>';
html +='<td colspan="3" class="text-center align-middle text-capitalize">No data available in table</td>';
html +='</tr>';
} else {
for (let index = 0; index < data.length; index++) {
html +='<tr>';
var part = data[index].part ? data[index].part.name : "";
html +='<td class="align-middle text-capitalize">' + part + '</td>';
html +='<td class="align-middle text-capitalize text-right">' + formatNumber(data[index].qty, 2) + '</td>';
html +='<td class="align-middle text-capitalize">' + data[index].note + '</td>';
html +='</tr>';
total += parseFloat(data[index].qty);
}
}
html +='</tbody>';
html +='<tfooter>';
html +='<tr class="bg-secondary">';
html +='<td class="align-middle text-capitalize font-weight-bold">total</td>';
html +='<td class="align-middle text-capitalize font-weight-bold text-right">' + formatNumber(total) + '</td>';
html +='<td class="align-middle text-capitalize font-weight-bold"></td>';
html +='</tr>';
html +='</tfooter>';
html +='</table>';
html +='</div>';
return html;
}
function setButton() {
if (document.getElementById("btnSearch").classList[3] == 'show') {
document.getElementById("btnSearch").classList.remove("show");
document.getElementById("btnSearch").classList.add("load");
document.getElementById('btnSearch').innerHTML = "";
document.getElementById('btnSearch').innerHTML = '<span class="spinner-border spinner-border-sm"></span>';
} else if (document.getElementById("btnSearch").classList[3] == 'load') {
document.getElementById("btnSearch").classList.remove("load");
document.getElementById("btnSearch").classList.add("show");
document.getElementById('btnSearch').innerHTML = "";
document.getElementById('btnSearch').innerHTML = '<i class="fa fa-search"></i>';
}
}
function btn_search() {
var date_from = moment(new Date(document.getElementById('date_from').value)).format('YYYY-MM-DD');
var date_to = moment(new Date(document.getElementById('date_to').value)).format('YYYY-MM-DD');
var tenant_id = document.getElementById('tenant_id').value;
var item_code = document.getElementById('code').value;
item_code = item_code == "" ? "null" : item_code;
$.ajax({
dataType: 'json',
type: "GET",
url: '<?php echo e(env('APP_URL')); ?>' + "/api/report/maintenance/" + date_from + "/" + date_to + "/" + tenant_id + "/" + item_code,
beforeSend: function() {
setButton();
},
complete: function() {
setButton();
},
success: function(data) {
document.getElementById('lbl_total_row').innerHTML = data.length;
var table = new DataTable('#example1');
table.clear().draw();
if (data.length > 0) {
const newArray = data.map(col => {
return {
expland: '',
cp: col.series,
series: countCP(col.maintenance_detail),
date_trans: col.date_trans,
tenant: col.tenant ? col.tenant.code : '',
techician: col.technician ? col.technician.name : '',
customer: col.customer ? col.customer.name : '',
item: col.item ? col.item.name : '',
service_type: col.service_type,
description: col.description,
note: col.note,
create_by: col.user ? col.user.name : '',
data: col.maintenance_detail,
}
})
table.rows.add(newArray).draw();
}
},
error: function(xhr, status, error) {
alert(error);
setButton();
return;
}
});
}
function countCP(data) {
return data.length;
}
</script>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('layouts/app', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?><?php /**PATH /home/elvh3918/public_html/pmm/resources/views/content/report/maintenance.blade.php ENDPATH**/ ?>