Skip to content

Instantly share code, notes, and snippets.

@inuvalogic
Last active September 3, 2020 12:31
Show Gist options
  • Save inuvalogic/79d671f3e9fd48dabd66a43f6df05eef to your computer and use it in GitHub Desktop.
Save inuvalogic/79d671f3e9fd48dabd66a43f6df05eef to your computer and use it in GitHub Desktop.
<?php
// anggap ini data bulan lalu hasil select dari database ya
// (nanti bikin sendiri utk ngambil datanya)
$data_kas_bulan_lalu = [
[
'tgl_transaksi' => '2020-08-30',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-1',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-30',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-1',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-30',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-1',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-30',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-1',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-30',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-1',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-30',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-1',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-30',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-1',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-30',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-1',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-30',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-1',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-30',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-1',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-30',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-1',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-30',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-1',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-30',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-1',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-30',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-1',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-30',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-1',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-31',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-2',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-08-31',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-3',
'debit' => '',
'kredit' => '1000000',
],
];
// anggap ini data bulan ini dari database ya
// (nanti bikin sendiri utk ngambil datanya)
$data_kas_bulan_ini = [
[
'tgl_transaksi' => '2020-09-01',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-4',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-09-01',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-5',
'debit' => '120000',
'kredit' => '',
],
[
'tgl_transaksi' => '2020-09-01',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-6',
'debit' => '',
'kredit' => '1000000',
],
[
'tgl_transaksi' => '2020-09-01',
'resort' => '1A',
'no_anggota' => 'CB200830001',
'no_transaksi' => 'CB200830001-7',
'debit' => '120000',
'kredit' => '',
],
];
?>
<!-- ini bootstrap ga usah dimasukan, cuman buat contoh biar tabelnya ada garis2na nyak -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha512-MoRNloxbStBcD8z3M/2BmnT+rg4IsMxPkXaGh2zD6LGNNFE80W3onsAhRcMAMrSoyWL9xD7Ert0men7vR8LUZg==" crossorigin="anonymous" />
<div class="container mt-5">
<!-- dari sini yang harus diperhatikan -->
<?php
// bikin fungsi ngitung saldo awal
function hitung_saldo($data_kas)
{
$saldo = 0;
foreach ($data_kas as $row){
if ($row['debit']!=''){
$saldo = $saldo + $row['debit'];
}
if ($row['kredit']!=''){
$saldo = $saldo - $row['kredit'];
}
}
return $saldo;
}
// di api nanti bikin filter utk harian dan mingguan (ini contoh utk bulanan aja)
$saldo_awal = hitung_saldo($data_kas_bulan_lalu);
?>
<table class="table table-bordered table-hover">
<thead>
<tr>
<th rowspan="2">Tanggal</th>
<th colspan="2">Keterangan</th>
<th rowspan="2">No Transaksi</th>
<th rowspan="2">Debet Masuk</th>
<th rowspan="2">Kredit Keluar</th>
<th rowspan="2">Saldo</th>
</tr>
<tr>
<th>Resort</th>
<th>No Anggota</th>
</tr>
<tr>
<td colspan="6">Saldo Awal</td>
<td id="saldoawal"><?= number_format($saldo_awal,0,'','.') ?></td>
</tr>
</thead>
<tbody>
<?php
// ini nanti dibikin di API bikin utk output data json ke datatable nya
// ga kaya gini langsung dimasukin ke <td>
$saldo = $saldo_awal;
foreach ($data_kas_bulan_ini as $row)
{
if ($row['debit']!=''){
$saldo = $saldo + $row['debit'];
}
if ($row['kredit']!=''){
$saldo = $saldo - $row['kredit'];
}
?>
<tr>
<td><?= $row['tgl_transaksi'] ?></td>
<td><?= $row['resort'] ?></td>
<td><?= $row['no_anggota'] ?></td>
<td><?= $row['no_transaksi'] ?></td>
<td><?= ($row['debit']!='' ? number_format($row['debit'],0,'','.') : "") ?></td>
<td><?= ($row['kredit']!='' ? number_format($row['kredit'],0,'','.') : "") ?></td>
<td><?= number_format($saldo,0,'','.') ?></td>
</tr>
<?php
}
?>
</tbody>
<tfoot>
<tr>
<th>Tanggal</th>
<th>Resort</th>
<th>No Anggota</th>
<th>No Transaksi</th>
<th>Debet Masuk</th>
<th>Kredit Keluar</th>
<th>Saldo</th>
</tr>
</tfoot>
</table>
<!-- sampai sini aja -->
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment