You are on page 1of 16

Source code

1. Index.php

<?php
error_reporting(0);

include ('koneksi/conn.php');

session_start();
if (!isset($_SESSION['user'])) {
header('Location: auth/login.php');
}
$timeout = 60; // Set timeout satuan menit
$logout_redirect_url = "auth/login.php"; // Set logout URL

$timeout = $timeout * 60; // Ubah menit ke detik


if (isset($_SESSION['start_time'])) {
$elapsed_time = time() - $_SESSION['start_time'];
if ($elapsed_time >= $timeout) {
session_destroy();
echo "<script> alert('Session Anda Telah Habis, Silahkan Login kembali!');
window.location = '$logout_redirect_url'</script>";
}
}
$_SESSION['start_time'] = time();

include 'helpers/Format.php';

$fm=new Format();

header("Cache-Control: no-cache, must-revalidate");


header("Pragma: no-cache");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: max-age=2592000");

$q_keluar = $conn->query("SELECT
SUM(a.jumlah) as jumlah_pengeluaran
from pembayaran a
INNER JOIN kategori_bayar b
ON (a.id_kategori=b.id_kategori)");
$row_keluar = $q_keluar->fetch_assoc();
$pengeluaran = $row_keluar['jumlah_pengeluaran'];

$q_masuk = $conn->query("SELECT SUM(jumlah) as dana_masuk


FROM kas_masuk");
$row_masuk=$q_masuk->fetch_assoc();
$pemasukan = $row_masuk['dana_masuk'];
$saldo = $pemasukan - $pengeluaran;
?>
2. Conn.php
<?php
error_reporting(0);
$conn = new mysqli("localhost","root","","sc_kas");
date_default_timezone_set("Asia/Jakarta");
define(base_url, (isset($_SERVER['HTTPS']) ? "https://" : "http://").
$_SERVER['HTTP_HOST'].str_replace(basename($_SERVER['SCRIPT_NAME']),"",
$_SERVER['SCRIPT_NAME']));
?>

3. Login.php

<?php
require_once('../koneksi/conn.php');
error_reporting(0);
session_start();
if(isset($_SESSION['user'])) {
header('location: ../index.php');
}

include '../helpers/Format.php';
$fm=new Format();

header("Cache-Control: no-cache, must-revalidate");


header("Pragma: no-cache");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: max-age=2592000");
$errors = array();
if(isset($_POST['login-submit'])) {
$username = $fm->validation($_POST['username']);
$password = $fm->validation($_POST['password']);
$user = $conn->real_escape_string($username);
$pass = $conn->real_escape_string($password);

if(empty($user) || empty($pass)) {
if($user == "") {
$errors[] = "Username Wajib di isi";
}
if($pass == "") {
$errors[] = "Password Wajib di isi";
}
}else {
$sql1 = $conn->query("SELECT username FROM tbl_user WHERE username =
'$user'");
if ($sql1->num_rows > 0) {
$sql = $conn->query("SELECT password FROM tbl_user WHERE username =
'$user'");
$data = $sql->fetch_assoc();
$hash = $data['password'];
$pass1 = password_verify($pass,$hash);
if($pass1){
$sesi = $conn->query("SELECT * FROM tbl_user WHERE username='$user'");
$value = $sesi->fetch_assoc();
// set session
$_SESSION['user'] = $value['name'];
$_SESSION['id'] = $value['id'];
header('location: ../index.php');

}else{
$errors[] = "Password Salah !";
}
}else{
$errors[] = "Username tidak ditemukan !";
}

}
} //tutup post

?>

4. Logout.php

<?php
session_start();
session_unset();
session_destroy();

header('location:login.php');
?>

5. Kas_masuk.php

<?php
require_once '../koneksi/conn.php';
$query = $conn->query("SELECT * FROM kas_masuk ORDER BY tanggal DESC");
?>
<div class="container-fluid">
<div class="row bg-title">
<div class="col-lg-3 col-md-4 col-sm-4 col-xs-12">
<h4 class="page-title">Dana Masuk</h4> </div>
<div class="col-lg-9 col-sm-8 col-md-8 col-xs-12">
<ol class="breadcrumb">
<li><a href="#">Dana Masuk</a></li>
</ol>
</div>
<!-- /.col-lg-12 -->
</div>
<div class="row">
<div class="col-sm-12">
<div class="white-box">
<div class="row">
<div class="col-sm-6">
<h3 class="box-title">Data Dana Masuk</h3>
</div>
<div class="col-sm-6">
<button class="btn btn-success btn-sm pull-right"
onclick="tambah()">Tambah</button>
<button class="btn btn-warning btn-sm pull-right" onclick="laporan()"
style="margin-right: 5px;">Laporan Dana Masuk</button>
</div>
</div>

<div class="table-responsive">
<table class="table" id="dataku">
<thead>

6. Kategori_pengeluaran

<?php
require_once '../koneksi/conn.php';
$query = $conn->query("SELECT * FROM kategori_bayar");
?>
<div class="container-fluid">
<div class="row bg-title">
<div class="col-lg-3 col-md-4 col-sm-4 col-xs-12">
<h4 class="page-title">Kategori Pengeluaran</h4> </div>
<div class="col-lg-9 col-sm-8 col-md-8 col-xs-12">
<ol class="breadcrumb">
<li><a href="#">Kategori Pengeluaran</a></li>
</ol>
</div>
<!-- /.col-lg-12 -->
</div>
<div class="row">
<div class="col-sm-12">
<div class="white-box">
<div class="row">
<div class="col-sm-6">
<h3 class="box-title">Data Kategori Pengeluaran</h3>
</div>
<div class="col-sm-6">
<button class="btn btn-success btn-sm pull-right"
onclick="tambah()">Tambah</button>
</div>
</div>

<div class="table-responsive">
<table class="table" id="dataku">
<thead>
7. Laporan_kas_masuk.php

<div class="container-fluid">
<div class="row bg-title">
<div class="col-lg-3 col-md-4 col-sm-4 col-xs-12">
<h4 class="page-title">Laporan Dana Masuk</h4> </div>
<div class="col-lg-9 col-sm-8 col-md-8 col-xs-12">
<ol class="breadcrumb">
<li><a href="#">Laporan Dana Masuk</a></li>
</ol>
</div>
<!-- /.col-lg-12 -->
</div>
<div class="row">
<div class="col-sm-12">
<div class="white-box">
<div class="row">
<div class="col-sm-4">
<input type="text" name="tanggal_awal" data-date-format="yyyy-mm-dd"
readonly id="tanggal_awal" placeholder="Tanggal Awal" class="form-control form-control-
line tgl">
</div>
<div class="col-sm-4">
<input type="text" placeholder="Tanggal Akhir" data-date-format="yyyy-mm-
dd" readonly name="tanggal akhir" id="tanggal_akhir" class="form-control form-control-line
tgl">
</div>
<div class="col-sm-4">
<button type="button" class="btn btn-warning pull-right"
onclick="back()">Kembali</button>
<button type="button" class="btn btn-primary pull-right"
onclick="lihat_laporan()" style="margin-right: 5px;">Lihat</button>

</div>
</div>
<br>

<div class="table-responsive">
<div id="isi_tabel">
<table class="table">
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>Jumlah</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
</div>
<!-- /.row -->
</div>
<script>
$('.tgl').datepicker();
function back() {
$('#kontenku').load('page/kas_masuk.php');
}
function lihat_laporan() {

let tgl_awal = $('#tanggal_awal').val();


let tgl_akhir = $('#tanggal_akhir').val();
if (tgl_awal=='' || tgl_akhir=='' ) {
alert('harap isi tanggal terlebih dulu');
}else{
$('#isi_tabel').load('server_side/kas_masuk/laporan_masuk.php?
tgl_awal='+tgl_awal+'&tgl_akhir='+tgl_akhir);
}

}
</script>

8. Laporan_pengeluaran.php

<div class="container-fluid">
<div class="row bg-title">
<div class="col-lg-3 col-md-4 col-sm-4 col-xs-12">
<h4 class="page-title">Laporan Pengeluaran</h4> </div>
<div class="col-lg-9 col-sm-8 col-md-8 col-xs-12">
<ol class="breadcrumb">
<li><a href="#">Laporan Pengeluaran</a></li>
</ol>
</div>
<!-- /.col-lg-12 -->
</div>
<div class="row">
<div class="col-sm-12">
<div class="white-box">
<div class="row">
<div class="col-sm-4">
<input type="text" name="tanggal_awal" data-date-format="yyyy-mm-dd"
id="tanggal_awal" readonly placeholder="Tanggal Awal" class="form-control form-control-
line tgl">
</div>
<div class="col-sm-4">
<input type="text" placeholder="Tanggal Akhir" data-date-format="yyyy-mm-
dd" readonly name="tanggal akhir" id="tanggal_akhir" class="form-control form-control-line
tgl">
</div>
<div class="col-sm-4">
<button type="button" class="btn btn-warning pull-right"
onclick="back()">Kembali</button>
<button type="button" class="btn btn-primary pull-right"
onclick="lihat_laporan()" style="margin-right: 5px;">Lihat</button>

</div>
</div>
<br>

<div class="table-responsive">
<div id="isi_tabel">
<table class="table">
<thead>
<tr>
<th>No</th>
<th>Pembayaran</th>
<th>Kategori</th>
<th>Jumlah</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
</div>
<!-- /.row -->
</div>
<script>
$('.tgl').datepicker();
function back() {
$('#kontenku').load('page/pengeluaran.php');
}
function lihat_laporan() {

let tgl_awal = $('#tanggal_awal').val();


let tgl_akhir = $('#tanggal_akhir').val();
if (tgl_awal=='' || tgl_akhir=='' ) {
alert('harap isi tanggal terlebih dulu');
}else{
$('#isi_tabel').load('server_side/pengeluaran/laporan_keluar.php?
tgl_awal='+tgl_awal+'&tgl_akhir='+tgl_akhir);
}

}
</script>

9. Pengeluaran.php

<?php
require_once '../koneksi/conn.php';
$query = $conn->query("SELECT nama_kategori,id_bayar,nama_bayar,jumlah,tanggal FROM
pembayaran a INNER JOIN kategori_bayar b
ON (a.id_kategori=b.id_kategori) ORDER BY tanggal DESC");
$query_kategori = $conn->query("SELECT * FROM kategori_bayar");
?>
<div class="container-fluid">
<div class="row bg-title">
<div class="col-lg-3 col-md-4 col-sm-4 col-xs-12">
<h4 class="page-title">Biaya Pengeluaran</h4> </div>
<div class="col-lg-9 col-sm-8 col-md-8 col-xs-12">
<ol class="breadcrumb">
<li><a href="#">Biaya Pengeluaran</a></li>
</ol>
</div>
<!-- /.col-lg-12 -->
</div>
<div class="row">
<div class="col-sm-12">
<div class="white-box">
<div class="row">
<div class="col-sm-6">
<h3 class="box-title">Data Pengeluaran</h3>
</div>
<div class="col-sm-6">
<button class="btn btn-success btn-sm pull-right"
onclick="tambah()">Tambah</button>
<button class="btn btn-warning btn-sm pull-right" onclick="laporan()"
style="margin-right: 5px;">Laporan Pengeluaran</button>
</div>
</div>

10. Edit_kas_masuk.php

<?php
require_once '../../koneksi/conn.php';
$id = $conn->real_escape_string($_POST['id']);
$nama = $conn->real_escape_string($_POST['nama']);
$jumlah = $conn->real_escape_string($_POST['jumlah']);

$data = array();
$data['error_string'] = array();
$data['inputerror'] = array();
$data['status'] = TRUE;

if($nama == ''){
$data['inputerror'][] = 'nama';
$data['error_string'][] = 'Nama wajib di isi';
$data['status'] = FALSE;
}

if($jumlah == ''){
$data['inputerror'][] = 'jumlah';
$data['error_string'][] = 'Jumlah wajib diisi';
$data['status'] = FALSE;
}

if($data['status'] === FALSE){


echo json_encode($data);
exit();
}

$sql=$conn->query("UPDATE kas_masuk SET nama='$nama', jumlah='$jumlah' WHERE


id='$id' ");
if ($sql) {
echo json_encode(array("status" => TRUE));
}
?>

11. Get_data_masuk.php

<?php
require_once '../../koneksi/conn.php';
$id=$_GET['id'];
$query = $conn->query("SELECT * FROM kas_masuk WHERE id = '$id'");
$result = array();
$fetchData = $query->fetch_assoc();
$result = $fetchData;
echo json_encode($result);
?>

12. Hapus_kas_masuk.php

hapus<?php
require_once '../../koneksi/conn.php';
$id = $conn->real_escape_string($_GET['id']);

$sql=$conn->query("DELETE FROM kas_masuk WHERE id='$id' ");


if ($sql) {
echo json_encode(array("status" => TRUE));
}
?>

13. Laporan_masuk.php

<?php
require_once '../../koneksi/conn.php';
$tgl_awal=$_GET['tgl_awal'];
$tgl_akhir=$_GET['tgl_akhir'];
$query = $conn->query("SELECT * FROM kas_masuk WHERE DATE_FORMAT(tanggal, '%Y-
%m-%d') >= '$tgl_awal'
AND DATE_FORMAT(tanggal, '%Y-%m-%d') <= '$tgl_akhir' ");
?>
<div id="tes">
<h2>Laporan Dana Masuk Tanggal <?= $tgl_awal. ' s/d '.$tgl_akhir ?> </h2>
<table class="table" id="printed">
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>Jumlah</th>
</tr>
</thead>
<tbody>
<?php
$no=1;
while ($row = $query->fetch_assoc()) { ?>
<tr>
<td><?=$no++; ?></td>
<td><?=$row['nama'] ?></td>
<td><?= "Rp. ".number_format($row['jumlah']); ?></td>
</tr>

<?php
$total=$total+$row['jumlah'];
}

?>

</tbody>
<tr>
<th></th>
<th>Total Dana Masuk</th>
<td><b><?= "Rp. ".number_format($total); ?></b></td>
</tr>
</table>

</div>
<div class="row">
<div class="col-sm-12">
<button type="button" class="btn btn-success" onclick="print()">Print PDF</button>
</div>
</div>

<script>
function print() {
var pdf = new jsPDF('p', 'pt', 'letter');
source = $('#tes')[0];
specialElementHandlers = {
'#bypassme': function (element, renderer) {
return true
}
};
margins = {
top: 40,
bottom: 40,
left: 80,
width: 700
};
// all coords and widths are in jsPDF instance's declared units
// 'inches' in this case
pdf.fromHTML(
source, // HTML string or DOM elem ref.
margins.left, // x coord
margins.top, { // y coord
'width': margins.width, // max width of content on PDF
'elementHandlers': specialElementHandlers
},

function (dispose) {
pdf.save('Test.pdf');
}, margins);
}
</script>

14. Tambah_kas_masuk.php

<?php
require_once '../../koneksi/conn.php';

$nama = $conn->real_escape_string($_POST['nama']);
$jumlah = $conn->real_escape_string($_POST['jumlah']);

$data = array();
$data['error_string'] = array();
$data['inputerror'] = array();
$data['status'] = TRUE;

if($nama == ''){
$data['inputerror'][] = 'nama';
$data['error_string'][] = 'Nama wajib di isi';
$data['status'] = FALSE;
}

if($jumlah == ''){
$data['inputerror'][] = 'jumlah';
$data['error_string'][] = 'Jumlah wajib diisi';
$data['status'] = FALSE;
}

if($data['status'] === FALSE){


echo json_encode($data);
exit();
}

$sql=$conn->query("INSERT INTO kas_masuk VALUES ('','$nama','$jumlah',NULL) ");


if ($sql) {
echo json_encode(array("status" => TRUE));
}
?>

15. Edit_pengeluaran.php

<?php
require_once '../../koneksi/conn.php';
$id_bayar = $conn->real_escape_string($_POST['id_bayar']);
$id_kategori = $conn->real_escape_string($_POST['id_kategori']);
$nama_bayar = $conn->real_escape_string($_POST['nama_bayar']);
$jumlah = $conn->real_escape_string($_POST['jumlah']);

$data = array();
$data['error_string'] = array();
$data['inputerror'] = array();
$data['status'] = TRUE;

if($id_kategori == ''){
$data['inputerror'][] = 'id_kategori';
$data['error_string'][] = 'Kategori silahkan dipilih dulu';
$data['status'] = FALSE;
}

if($nama_bayar == ''){
$data['inputerror'][] = 'nama_bayar';
$data['error_string'][] = 'Nama Pembayaran di isi';
$data['status'] = FALSE;
}

if($jumlah == ''){
$data['inputerror'][] = 'jumlah';
$data['error_string'][] = 'Jumlah wajib diisi';
$data['status'] = FALSE;
}

if($data['status'] === FALSE){


echo json_encode($data);
exit();
}

$sql=$conn->query("UPDATE pembayaran SET id_kategori='$id_kategori',


nama_bayar='$nama_bayar', jumlah='$jumlah' WHERE id_bayar='$id_bayar' ");
if ($sql) {
echo json_encode(array("status" => TRUE));
}
?>

16. Get_data_pengeluaran.php

<?php
require_once '../../koneksi/conn.php';
$id_bayar=$_GET['id_bayar'];
$query = $conn->query("SELECT * FROM pembayaran WHERE id_bayar = '$id_bayar'");
$result = array();
$fetchData = $query->fetch_assoc();
$result = $fetchData;
echo json_encode($result);
?>

17. Hapus_pengeluaran.php

<?php
require_once '../../koneksi/conn.php';
$id_bayar = $conn->real_escape_string($_GET['id_bayar']);

$sql=$conn->query("DELETE FROM pembayaran WHERE id_bayar='$id_bayar' ");


if ($sql) {
echo json_encode(array("status" => TRUE));
}
?>

18. Laporan_keluar.php

<?php
require_once '../../koneksi/conn.php';
$tgl_awal=$_GET['tgl_awal'];
$tgl_akhir=$_GET['tgl_akhir'];
$query = $conn->query("
SELECT
a.nama_bayar,
b.nama_kategori,
SUM(a.jumlah) as jumlah
from pembayaran a
INNER JOIN kategori_bayar b
ON (a.id_kategori=b.id_kategori)
WHERE DATE_FORMAT(tanggal, '%Y-%m-
%d') >= '$tgl_awal'
AND DATE_FORMAT(tanggal, '%Y-%m-%d')
<= '$tgl_akhir'
GROUP BY b.nama_kategori asc,
a.nama_bayar asc
");
?>
<div id="tes">
<h2>Laporan Dana Pengeluaran Tanggal <?= $tgl_awal. ' s/d '.$tgl_akhir ?> </h2>
<table class="table" id="printed">
<thead>
<tr>
<th>No</th>
<th>Pembayaran</th>
<th>Kategori</th>
<th>Jumlah</th>
</tr>
</thead>
<tbody>
<?php
$no=1;
while ($row = $query->fetch_assoc()) { ?>
<tr>
<td><?=$no++; ?></td>
<td><?=$row['nama_bayar'] ?></td>
<td><?=$row['nama_kategori'] ?></td>
<td><?= "Rp. ".number_format($row['jumlah']); ?></td>
</tr>

<?php
$total=$total+$row['jumlah'];
}

?>

</tbody>
<tr>
<th></th>
<th>Total Pengeluaran</th>
<th></th>
<td><b><?= "Rp. ".number_format($total); ?></b></td>
</tr>
</table>

</div>
<div class="row">
<div class="col-sm-12">
<button type="button" class="btn btn-success" onclick="print()">Print PDF</button>
</div>
</div>

<script>
function print() {
var pdf = new jsPDF('p', 'pt', 'letter');
source = $('#tes')[0];
specialElementHandlers = {
'#bypassme': function (element, renderer) {
return true
}
};
margins = {
top: 40,
bottom: 40,
left: 80,
width: 700
};
pdf.fromHTML(
source, // HTML string or DOM elem ref.
margins.left, // x coord
margins.top, { // y coord
'width': margins.width, // max width of content on PDF
'elementHandlers': specialElementHandlers
},

function (dispose) {
pdf.save('Laporan-pengeluaran.pdf');
}, margins);
}
</script>

19. Tambah_pengeluaran.php

<?php
require_once '../../koneksi/conn.php';
$id_kategori = $conn->real_escape_string($_POST['id_kategori']);
$nama_bayar = $conn->real_escape_string($_POST['nama_bayar']);
$jumlah = $conn->real_escape_string($_POST['jumlah']);

$data = array();
$data['error_string'] = array();
$data['inputerror'] = array();
$data['status'] = TRUE;

if($id_kategori == ''){
$data['inputerror'][] = 'id_kategori';
$data['error_string'][] = 'Kategori silahkan dipilih dulu';
$data['status'] = FALSE;
}

if($nama_bayar == ''){
$data['inputerror'][] = 'nama_bayar';
$data['error_string'][] = 'Nama Pembayaran di isi';
$data['status'] = FALSE;
}

if($jumlah == ''){
$data['inputerror'][] = 'jumlah';
$data['error_string'][] = 'Jumlah wajib diisi';
$data['status'] = FALSE;
}

if($data['status'] === FALSE){


echo json_encode($data);
exit();
}

$sql=$conn->query("INSERT INTO pembayaran VALUES


('','$id_kategori','$nama_bayar','$jumlah',NULL) ");
if ($sql) {
echo json_encode(array("status" => TRUE));
}
?>

You might also like