206 lines
7.8 KiB
JavaScript
206 lines
7.8 KiB
JavaScript
|
|
function initDt(selectDate = []){
|
|
let selectedRows = [];
|
|
datatablePekerjaan.bootstrapTable('destroy');
|
|
datatablePekerjaan.bootstrapTable({
|
|
url: "/dashboard/datatable/pekerjaan",
|
|
method:'get',
|
|
queryParams: function(params) {
|
|
params.tanggal = selectDate;
|
|
return params;
|
|
},
|
|
showColumns: true,
|
|
showColumnsToggleAll: true,
|
|
showRefresh: true,
|
|
sortable: true,
|
|
search: true,
|
|
searchOnEnterKey: false,
|
|
searchHighlight: true,
|
|
pagination: true,
|
|
serverSide:true,
|
|
pageSize: 10,
|
|
pageList: [10, 20, 30, 40, 50, 100, 200],
|
|
cookie: true,
|
|
cookieIdTable: "datatablePekerjaan",
|
|
icons: {
|
|
refresh: "fas fa-sync-alt", // atau ganti ke icon lain
|
|
columns: "fas fa-th-large"
|
|
},
|
|
|
|
columns: [
|
|
{
|
|
title: '<input type="checkbox" id="selectAll" />',
|
|
field: 'order_id',
|
|
align: 'center',
|
|
valign: 'middle',
|
|
formatter: function (value, row, index) {
|
|
return `<input type="checkbox" class="rowCheckbox" data-order_detail_id="${row.order_detail_id}" />`
|
|
}
|
|
},
|
|
{
|
|
title: "Action",
|
|
field:'order_id',
|
|
formatter: function(value, row) {
|
|
let buttons = ''
|
|
|
|
if(row?.status_order !== "Selesai"){
|
|
buttons += `
|
|
<button class="btn btn-sm btn-success me-2" onclick="approve(this)" data-id="${row.order_detail_id}" data-nama_pemesan="${row?.order?.nama_pemesan}" data-no_order="${row?.order?.no_order}" data-menu="${row?.menu?.nama_menu || row?.master_mcu?.nama_mcu}" data-jenis_customer="${row?.order?.jenis_customer}" data-type="${row?.type}">
|
|
<i class="fa fa-check me-1"></i>
|
|
</button>
|
|
`
|
|
}
|
|
|
|
buttons += `
|
|
<button class="btn btn-sm btn-primary me-2" onclick="detailOrder(${row?.order_detail_id})">
|
|
<i class="fa-solid fa-circle-info"></i>
|
|
</button>
|
|
`
|
|
|
|
|
|
return `
|
|
<div class="d-flex space-x">
|
|
${buttons}
|
|
</div>
|
|
`;
|
|
}
|
|
},
|
|
|
|
{
|
|
title: "No.Order",
|
|
field: 'order.no_order',
|
|
sortable: true,
|
|
},
|
|
{
|
|
title: "Status",
|
|
field: 'order_detail_id',
|
|
sortable: true,
|
|
formatter: function(value, row) {
|
|
const status = row?.status_order;
|
|
let badgeClass = 'bg-secondary';
|
|
if (status === "Selesai") {
|
|
badgeClass = 'bg-success text-dark';
|
|
} else{
|
|
badgeClass = 'bg-primary';
|
|
}
|
|
return `
|
|
<span class="badge ${badgeClass} px-3 py-1">${status}</span>
|
|
`;
|
|
},
|
|
},
|
|
{
|
|
title: "Menu",
|
|
field: 'order_detail_id',
|
|
formatter:function(value, row){
|
|
return row?.menu?.nama_menu || row?.master_mcu?.nama_mcu
|
|
},
|
|
sortable: true,
|
|
},
|
|
{
|
|
title: "Karbohidrat",
|
|
field: 'karbohidrat_id',
|
|
formatter: function (value, row) {
|
|
if (!row?.karbohidrat) return '';
|
|
const nama = row.karbohidrat.nama_karbohidrat || '';
|
|
const kalori = row.karbohidrat.nilai_kalori ? ` (${row.karbohidrat.nilai_kalori} kkal)` : '';
|
|
|
|
return nama + kalori;
|
|
},
|
|
sortable: true,
|
|
},
|
|
{
|
|
title:"Total Kalori",
|
|
formatter: function(value, row){
|
|
return row?.total_kalori ? row?.total_kalori + ' kal' : '-';
|
|
}
|
|
},
|
|
{
|
|
title: "Pemesan",
|
|
field:'order.nama_pemesan',
|
|
formatter: function(value, row){
|
|
return `
|
|
<ul class="list-unstyled mb-0 text-nowrap">
|
|
<li><i class="fa fa-user me-1 text-muted"></i><strong>${row?.order?.nama_pemesan ?? '-'}</strong></li>
|
|
${row?.order?.nama_institusi ? `
|
|
<li><i class="fa fa-tag me-1 text-muted"></i> ${row?.order?.nama_institusi + '(' + row?.order?.jenis_customer +')'}</li>
|
|
` : `<li><i class="fa fa-tag me-1 text-muted"></i> ${row?.order?.jenis_customer ?? '-'}</li>`}
|
|
${row?.order?.nip ? `
|
|
<li><i class="fas fa-id-card me-1 text-muted"></i> ${row?.order?.nip ?? '-'}</li>
|
|
` : ``}
|
|
${row?.order?.bagian_instalasi ? `
|
|
<li><i class="fa fa-tag me-1 text-muted"></i> ${row?.order?.bagian_instalasi ?? '-'}</li>
|
|
` : ''}
|
|
</ul>`
|
|
|
|
},
|
|
sortable: true,
|
|
},
|
|
{
|
|
title: "Tgl Antar",
|
|
field: 'tgl_antar',
|
|
|
|
},
|
|
{
|
|
title: "Waktu Pengantaran",
|
|
formatter: function(value, row){
|
|
|
|
if(row?.order?.jenis_customer === 'MCU')return row.jam_layanan.slice(0, 5);
|
|
return row?.type
|
|
},
|
|
sortable: true,
|
|
},
|
|
{
|
|
title: "Catatan",
|
|
field: 'catatan',
|
|
sortable: true,
|
|
},
|
|
|
|
],
|
|
onLoadSuccess: function (res) {
|
|
// res = data JSON dari server
|
|
if (res.dataPending && res.dataPending > 0) {
|
|
$("#data_pending").show(); // tampilkan tombol
|
|
} else {
|
|
$("#data_pending").hide(); // sembunyikan tombol
|
|
}
|
|
}
|
|
});
|
|
$(document).on('click', '#selectAll', function () {
|
|
selectedRows = [];
|
|
const isChecked = this.checked;
|
|
$('.rowCheckbox').each(function () {
|
|
this.checked = isChecked;
|
|
let order_detail_id = $(this).data('order_detail_id');
|
|
if (isChecked) {
|
|
selectedRows.push({ order_detail_id });
|
|
}
|
|
});
|
|
$('#buttonLabel').prop("disabled", !isChecked);
|
|
});
|
|
|
|
$(document).on('change', '.rowCheckbox', function () {
|
|
let order_detail_id = $(this).data('order_detail_id');
|
|
let isChecked = this.checked;
|
|
if (isChecked) {
|
|
if (!selectedRows.find(r => r.order_detail_id === order_detail_id)) {
|
|
selectedRows.push({ order_detail_id });
|
|
}
|
|
} else {
|
|
selectedRows = selectedRows.filter(r => r.order_detail_id !== order_detail_id);
|
|
}
|
|
$('#buttonLabel').prop("disabled", selectedRows.length === 0);
|
|
});
|
|
window.getSelectedRowsForLabel = () => selectedRows;
|
|
}
|
|
|
|
|
|
|
|
function labelDownload(){
|
|
const selected = (typeof getSelectedRowsForLabel === 'function') ? getSelectedRowsForLabel() : [];
|
|
const order_detail_ids = selected.map(item => item.order_detail_id);
|
|
window.open(`/dashboard/pekerjaan/label?data=${order_detail_ids}`, '_blank');
|
|
// window.open(`https://smart.rsabhk.co.id:2222/service-reporting/label-cetering/${order_detail_ids}`, '_blank');
|
|
}
|
|
|
|
|