Files
accounting_dev/application/views/buku_besar/layout.php
T
2026-06-13 16:03:15 +07:00

156 lines
4.1 KiB
PHP

<div class="container mt-4">
<div class="card modern-card shadow-sm border-0 rounded-4">
<div class="card-body p-4">
<div class="d-flex justify-content-between mb-3">
<h5>Buku Besar</h5>
</div>
<div class="row mb-3">
<div class="col-md-4">
<label>Akun</label>
<select id="account_id" class="form-control select-search"></select>
</div>
<div class="col-md-2">
<label>Dari</label>
<input type="date" id="start_date" class="form-control">
</div>
<div class="col-md-2">
<label>Sampai</label>
<input type="date" id="end_date" class="form-control">
</div>
<div class="col-md-4 d-flex align-items-end gap-2">
<button class="btn btn-primary w-100" id="btnFilter">Filter</button>
<button type="button" class="btn btn-danger w-100" id="generate_pdf">
Generate PDF</button>
</div>
</div>
<div class="table-responsive">
<table id="tableLedger" class="table modern-table align-middle w-100">
<thead>
<tr>
<th>Tanggal</th>
<th>No Ref</th>
<th>Keterangan</th>
<th>Debit</th>
<th>Kredit</th>
<th>Saldo</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div>
</div>
<script>
$(function(){
// LOAD ACCOUNTS
$.get("<?= base_url('bukubesar/get_accounts'); ?>", function(res){
let opt = '';
res.forEach(a=>{
opt += `<option value="${a.id}">${a.kode_akun} - ${a.nama_akun}</option>`;
});
$('#account_id').html(opt);
},'json');
function loadData(){
let account_id = $('#account_id').val();
let start = $('#start_date').val();
let end = $('#end_date').val();
$.get("<?= base_url('bukubesar/get_data'); ?>", {
account_id: account_id,
start_date: start,
end_date: end
}, function(res){
let html = '';
res.forEach(r=>{
html += `
<tr>
<td>${r.tanggal}</td>
<td>${r.no_ref}</td>
<td>${r.keterangan}</td>
<td class="text-success">${parseFloat(r.debit).toLocaleString()}</td>
<td class="text-danger">${parseFloat(r.kredit).toLocaleString()}</td>
<td class="fw-bold">${parseFloat(r.saldo).toLocaleString()}</td>
</tr>
`;
});
$('#tableLedger tbody').html(html);
},'json');
}
// FILTER
$('#btnFilter').click(function(){
loadData();
});
// Prevent double submit
$(document).on('submit', 'form', function(e){
e.preventDefault();
});
// GENERATE PDF
$('#generate_pdf').on('click', function () {
const now = new Date();
const today = now.getFullYear() + '-'
+ String(now.getMonth() + 1).padStart(2, '0') + '-'
+ String(now.getDate()).padStart(2, '0');
const account_id = $('#account_id').val();
const start_date = $('#start_date').val() || '0000-00-00';
const end_date = $('#end_date').val() || today;
let btn = $(this);
btn.prop('disabled', true).html('Generate PDF...');
$.ajax({
url: "<?= base_url('Generatebuku/generatepdf'); ?>"
+ '/' + account_id
+ '/' + start_date
+ '/' + end_date,
type: "GET",
xhrFields: {
responseType: 'blob' // penting untuk PDF
},
success: function (response) {
let blob = new Blob([response], { type: 'application/pdf' });
let url = window.URL.createObjectURL(blob);
// buka di tab baru
window.open(url, '_blank');
},
error: function () {
Swal.fire('Error', 'Gagal generate PDF', 'error');
},
complete: function(){
btn.prop('disabled', false).html('Generate PDF');
}
});
});
});
</script>