Selasa, 17 Oktober 2023

PHP Array Simpan Data Pada Array Untuk Load Data Laporan Cepat

<?php
//INISIALISASI
$id_perkiraan_array = [];
$kode_perkiraan_array = [];
//INSERT
array_push($id_perkiraan_array, $id_perkiraan);
array_push($kode_perkiraan_array, $kode_perkiraan);
//MENCARI ID_PERKIRAAN DARI ARRAY ID BERDASARKAN PARAMETER KODE_PERKIRAAN
if (array_search('KODE PERKIRAAN YG DI DICARI', $kode_perkiraan_array) !== false) {
$id_perkiraan_PATOKAN = $id_perkiraan_array[array_search('KODE PERKIRAAN YG DI DICARI', $kode_perkiraan_array)];
} else {
$id_perkiraan_PATOKAN = null;
}
try {
$db->beginTransaction();
$id_barang_PATOKAN_ARRAY = [];
$nama_barang_PATOKAN_ARRAY = [];
$stmt = $db->prepare("SELECT * FROM barang");
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
$total_rows = count($rows); //BANYAK DATA YANG BERHASIL DI SELECT
//$total_rows = $stmt->rowCount(); //BANYAK DATA YANG BERHASIL DI SIMPAN/UPDATE/DELETE
for ($i = 0; $i < $total_rows; $i++) {
$id_barang = $rows[$i]["id_barang"];
$nama_barang = $rows[$i]["nama_barang"];
array_push($id_barang_PATOKAN_ARRAY, $id_barang);
array_push($nama_barang_PATOKAN_ARRAY, $nama_barang);
}
if($total_rows == 0) {
throw new PDOException("TIDAK ADA DATA");
}
$db->commit();
echo '[{"hasil":1, "pesan_hasil":"SUKSES"}]';
} catch (PDOException $ex) {
$db->rollBack();
echo '[{"hasil":0, "pesan_hasil":"ERROR: ' . $ex->getMessage() . '"}]';
}
?>
view raw php_array.php hosted with ❤ by GitHub

Senin, 16 Oktober 2023

PHP Perhitungan Metode Penyusutan Aset Saldo Menurun Ganda (Double Declining)

<?php
$date_beli = strtotime("2019-11-01");
$nominal_pembelian = 1684900;
$persen_penyusutan = 50;
$lama_tahun_penyusutan = 4;
$string = "";
$sisa_nominal = $nominal_pembelian;
if (date("d", $date_beli) <= 15) {
$bulan_berjalan = 0;
} else {
$bulan_berjalan = 1;
}
for ($aa = 0; $aa < ($lama_tahun_penyusutan); $aa++) {
$penyusutan_per_tahun = ROUND((($persen_penyusutan / 100) * $sisa_nominal), 2);
if (($aa + 1) == $lama_tahun_penyusutan) {
$sisa_nominal = $sisa_nominal;
} else {
$sisa_nominal = $sisa_nominal - $penyusutan_per_tahun;
}
echo "Tahun ke-" . ($aa + 1) . ": " . $sisa_nominal . "\n";
for ($bb = 0; $bb < 12; $bb++) {
$hitung_bulan = date('m', strtotime("+" . $bulan_berjalan . " months", $date_beli));
$hitung_tahun = date('Y', strtotime("+" . $bulan_berjalan . " months", $date_beli));
echo ($aa + 1) . " - " . ($bb + 1) . " - " . $hitung_bulan . "/" . $hitung_tahun . " - " . ROUND(($sisa_nominal / 12), 2) . "\n";
$bulan_berjalan++;
}
}
?>
Tahun ke-1: 842450
1 - 1 - 11/2019 - 70204.166666667
1 - 2 - 12/2019 - 70204.166666667
1 - 3 - 01/2020 - 70204.166666667
1 - 4 - 02/2020 - 70204.166666667
1 - 5 - 03/2020 - 70204.166666667
1 - 6 - 04/2020 - 70204.166666667
1 - 7 - 05/2020 - 70204.166666667
1 - 8 - 06/2020 - 70204.166666667
1 - 9 - 07/2020 - 70204.166666667
1 - 10 - 08/2020 - 70204.166666667
1 - 11 - 09/2020 - 70204.166666667
1 - 12 - 10/2020 - 70204.166666667
Tahun ke-2: 421225
2 - 1 - 11/2020 - 35102.083333333
2 - 2 - 12/2020 - 35102.083333333
2 - 3 - 01/2021 - 35102.083333333
2 - 4 - 02/2021 - 35102.083333333
2 - 5 - 03/2021 - 35102.083333333
2 - 6 - 04/2021 - 35102.083333333
2 - 7 - 05/2021 - 35102.083333333
2 - 8 - 06/2021 - 35102.083333333
2 - 9 - 07/2021 - 35102.083333333
2 - 10 - 08/2021 - 35102.083333333
2 - 11 - 09/2021 - 35102.083333333
2 - 12 - 10/2021 - 35102.083333333
Tahun ke-3: 210612.5
3 - 1 - 11/2021 - 17551.041666667
3 - 2 - 12/2021 - 17551.041666667
3 - 3 - 01/2022 - 17551.041666667
3 - 4 - 02/2022 - 17551.041666667
3 - 5 - 03/2022 - 17551.041666667
3 - 6 - 04/2022 - 17551.041666667
3 - 7 - 05/2022 - 17551.041666667
3 - 8 - 06/2022 - 17551.041666667
3 - 9 - 07/2022 - 17551.041666667
3 - 10 - 08/2022 - 17551.041666667
3 - 11 - 09/2022 - 17551.041666667
3 - 12 - 10/2022 - 17551.041666667
Tahun ke-4: 210612.5
4 - 1 - 11/2022 - 17551.041666667
4 - 2 - 12/2022 - 17551.041666667
4 - 3 - 01/2023 - 17551.041666667
4 - 4 - 02/2023 - 17551.041666667
4 - 5 - 03/2023 - 17551.041666667
4 - 6 - 04/2023 - 17551.041666667
4 - 7 - 05/2023 - 17551.041666667
4 - 8 - 06/2023 - 17551.041666667
4 - 9 - 07/2023 - 17551.041666667
4 - 10 - 08/2023 - 17551.041666667
4 - 11 - 09/2023 - 17551.041666667
4 - 12 - 10/2023 - 17551.041666667
view raw gistfile1.txt hosted with ❤ by GitHub

Kamis, 26 Januari 2023

Ajax

var protocol = "http";
var host = "localhost";
var directory = "sca";

var isi_token_pengguna = getCookie("isi_token_pengguna");
var lama_sesi_login = 1; //1 hari

var isi_value_combobox = "-1";
var isi_html_combobox = "-- PILIH COMBOBOX --";

$(function () {
	$(".tanggal").datepicker({ dateFormat: "yy-mm-dd", maxDate: new Date });
});

function addZero(i) {
	if (i < 10) {
		i = "0" + i;
	}
	return i;
}

var sekarang = new Date();
var dd = addZero(sekarang.getDate());
var mm = addZero(sekarang.getMonth() + 1); //January is 0!
var yyyy = addZero(sekarang.getFullYear());
var h = addZero(sekarang.getHours());
var m = addZero(sekarang.getMinutes());
var s = addZero(sekarang.getSeconds());

var sekarang_date = yyyy + '-' + mm + '-' + dd;
var sekarang_datetime = yyyy + '-' + mm + '-' + dd + ' ' + h + ':' + m + ':' + s;

var tampungan_cc_pelanggan_lokal = [];

function cc_pelanggan_lokal() {
	var data = {
		token_pengguna: isi_token_pengguna
	};
	$.ajax({
		url: protocol + "://" + host + "/" + directory + "/actions/cc_pelanggan_lokal.php?nc=" + (new Date()).getTime(),
		type: "POST",
		dataType: "json",
		data: data,
		success: function (pesan) {
			tampungan_cc_pelanggan_lokal = pesan;
			$('#id_pelanggan').typeahead('destroy');
			$('#id_pelanggan').typeahead({
				source: tampungan_cc_pelanggan_lokal,
				items: 10
			});
		},
		error: function (pesan) {
			//console.log(pesan);
			alert("ERROR: cc_pelanggan_lokal");
		}
	});
}

function cetak_faktur_penjualan(a) {
	var r = confirm("Apakah Anda yakin Mengunci, MELUNASI (Jika Tunai) & Mencetak Faktur Penjualan ID#" + a + "?");
	if (r == true) {
		//var newwindow = window.open(protocol + "://" + host + "/" + directory + "/actions/cetak_surat_jalan3.php?id=" + a + "&token_pengguna=" + isi_token_pengguna + "&nc=" + (new Date()).getTime(), 'name', 'height=560,width=812,top=70,left=550,menubar=no,location=no,directories=no,resizable=no,scrollbars=yes,toolbar=no,status=no');
		var newwindow = window.open(protocol + "://" + host + "/" + directory + "/actions/cetak_faktur_penjualan.php?id=" + a + "&token_pengguna=" + isi_token_pengguna + "&nc=" + (new Date()).getTime(), 'name', 'height=550,width=580,top=70,left=550,menubar=no,location=no,directories=no,resizable=no,scrollbars=yes,toolbar=no,status=no');
		if (window.focus) { newwindow.focus() }
	}
}

function setCookie(cname, cvalue, exdays) {
	var d = new Date();
	d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
	var expires = "expires=" + d.toUTCString();
	document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

function getCookie(cname) {
	var name = cname + "=";
	var ca = document.cookie.split(';');
	for (var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ') {
			c = c.substring(1);
		}
		if (c.indexOf(name) == 0) {
			return c.substring(name.length, c.length);
		}
	}
	return "";
}

function deleteCookie(name) {
	(function () {
		var cookies = document.cookie.split("; ");
		for (var c = 0; c < cookies.length; c++) {
			var d = window.location.hostname.split(".");
			while (d.length > 0) {
				var cookieBase = encodeURIComponent(cookies[c].split(";")[0].split("=")[0]) + "=; expires=Thu, 01-Jan-1970 00:00:01 GMT; domain=" + d.join(".") + " ;path=";
				var p = location.pathname.split("/");
				document.cookie = cookieBase + "/";
				while (p.length > 0) {
					document.cookie = cookieBase + p.join("/");
					p.pop();
				};
				d.shift();
			}
		}
	});
	document.cookie = name + "=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;";
}

if ($('#ingatkan_aku').is(':checked')) {
	var lama_sesi_login = 30; //30 Hari, masa aktif token
}

if ($('#status_penjualan_detail:checked').prop('checked') == true) {
	status_penjualan_detail = "1";
} else {
	status_penjualan_detail = "0";
}

$("#id_jenis_pembayaran").change(function () {
	if ($("#id_jenis_pembayaran").val() == "2") {
		$("#form_tempo_hari_penjualan").removeClass("sr-only");
	} else {
		$("#form_tempo_hari_penjualan").addClass("sr-only");
		$("#tempo_hari_penjualan").val(0);
	}
});

$("#tanggal_penjualan").prop("disabled", true);
$("#id_dari_combobox").append(new Option(isi_html_combobox, isi_value_combobox));
$("#id_dari_combobox").val(isi_value_combobox);
if(alfabet == 1) {
	$("#id_dari_checkbox").prop("checked", true);
} else {
	$("#id_dari_checkbox").prop("checked", false);
}

$('#tombol_buat').remove();
$('#id_pelanggan').focus();
$('#id_pelanggan').select();

$("#tombol_masuk").click(function () {
	if ($(window).width() < 768) { //KETIKA LAYAR HP/ANDROID
		var keterangan_masuk = 1;
	} else { //KETIKA LAYAR KOMPUTER
		var keterangan_masuk = 3;
	}

	var data = {
		username_pengguna: $("#username").val(),
		password_pengguna: $("#password").val(),
		lama_sesi_login: lama_sesi_login,
		keterangan_masuk: keterangan_masuk
	};
	$.ajax({
		url: protocol + "://" + host + "/" + directory + "/actions/core/masuk.php?nc=" + (new Date()).getTime(),
		dataType: "json",
		type: "POST",
		data: data,
		success: function (pesan) {
			$.each(pesan, function (i, n) {
				pesan_a = n["id_pengguna"];
				pesan_g = n["token_pengguna"];
			});
			if (pesan_a == 0) {
				alert("GAGAL LOGIN");
			} else {
				alert("SUKSES LOGIN");
				setCookie("id_pengguna", pesan_a, lama_sesi_login);
				setCookie("isi_token_pengguna", pesan_g, lama_sesi_login);
				localStorage.clear();
				localStorage.setItem("menu_pengguna", pesan_h);
				setTimeout(function () {
					location.reload();
				}, 2000);
			}
		},
		error: function (pesan) {
			alert("Terjadi Kesalahan Pada Saat Menghubungkan Dengan Server, Silahkan Coba Kembali"); //GAGAL
		}
	});
	return false;
});

function tambah_data() {
	var validasi_form = true;
	var hasil = 0;
	var pesan_hasil = "Terjadi Kesalahan Pada Saat Menghubungkan Dengan Server, Silahkan Coba Kembali";
	if ($("#id_barang").val().slice(-14).substr(0, 4) == "BRG-") { //BRG-BBGDL0009607 <<< Ambil 14 character paling belakang
		//validasi_form = true;
	} else if (validasi_form == true) {
		validasi_form = false;
		pesan_hasil = "ADA KESALAHAN PADA KODE BARANG";
	}
	if ($("#id_barang").val().slice(-16).substring(0, 2).replace(/^0+/, '') > 0) { //BRG-BBGDL0009607 <<< Ambil 2 character paling belakang
		//validasi_form = true;
	} else if (validasi_form == true) {
		validasi_form = false;
		pesan_hasil = "ADA KESALAHAN PADA SATUAN BARANG";
	}
	var r = confirm("Apakah Anda yakin input data ini?");
	if (validasi_form == true) {
		if (r == true) {
			var data = {
				id_pengguna: $("#id_pengguna").val(),
				id_pelanggan: $("#id_pelanggan").val().substr(0, 15),
				id_barang: $("#id_barang").val().substr(0, 14),
				id_satuan_barang: $("#id_barang").val().substr(14, 2),
				token_pengguna: isi_token_pengguna
			};
			$.ajax({
				url: protocol + "://" + host + "/" + directory + "/actions/pengguna_tambah.php?nc=" + (new Date()).getTime(),
				type: "POST",
				data: data,
				success: function (pesan) {
					$.each(pesan, function (i, n) {
						hasil = n["hasil"];
						pesan_hasil = n["pesan_hasil"];
					});
					if (!isNaN(hasil) && hasil > 0) {
						alert("SUKSES: " + pesan_hasil);
						setTimeout(function () {
							$.ajax({
								url: protocol + "://" + host + "/" + directory + "/actions/aa_update_ppn_permintaan_penjualan.php?id_permintaan_penjualan=" + id_permintaan_penjualan + "&nc=" + (new Date()).getTime(),
								type: "GET",
								success: function (pesan) {
									alert("JALANKAN AFTER SUKSES FUNCTION");
								},
								error: function (pesan) {
									refresh();
								}
							});
						}, 500);
					} else {
						alert("GAGAL: " + pesan_hasil);
					}
				},
				error: function (pesan) {
					if (typeof pesan !== 'undefined') {
						$.each(pesan, function (i, n) {
							hasil = n["hasil"];
							pesan_hasil = n["pesan_hasil"];
						});
					}
					alert(pesan_hasil); //GAGAL
				}
			});
		}
	} else {
		alert(pesan_hasil); //GAGAL
	}
}

$(document).ready(function () {
	$('body').off();
	$('body').on('keydown', 'input, select', function (e) {
		if (e.key === "Enter") {
			if ($(this).attr('id') == "nama_permintaan_penjualan" && $("#nama_permintaan_penjualan").val() != "") {
				var self = $(this), form = self.parents('form:eq(0)'), focusable, next;
				focusable = form.find('input,a,select,button,textarea').filter(':visible');
				next = focusable.eq(focusable.index(this) + 1);
				if (next.length) {
					next.focus();
					next.select();
				} else {
					form.submit();
				}
				return false;
			} else if ($(this).attr('id') == "tempo_hari_permintaan_penjualan" && $("#tempo_hari_permintaan_penjualan").val() != "" && !isNaN($("#tempo_hari_permintaan_penjualan").val())) {
				var self = $(this), form = self.parents('form:eq(0)'), focusable, next;
				focusable = form.find('input,a,select,button,textarea').filter(':visible');
				next = focusable.eq(focusable.index(this) + 1);
				if (next.length) {
					next.focus();
					next.select();
				} else {
					form.submit();
				}
				return false;
			} else if ($(this).attr('id') == "id_pelanggan" && $("#id_pelanggan").val() != "" && $("#id_pelanggan").val().includes(" == ")) {
				var self = $(this), form = self.parents('form:eq(0)'), focusable, next;
				focusable = form.find('input,a,select,button,textarea').filter(':visible');
				next = focusable.eq(focusable.index(this) + 1);
				if (next.length) {
					next.focus();
					next.select();
				} else {
					form.submit();
				}
				return false;
			} else if ($(this).attr('id') == "jumlah_permintaan_penjualan_detail" && $("#jumlah_permintaan_penjualan_detail").val() > 0) {
				var self = $(this), form = self.parents('form:eq(0)'), focusable, next;
				focusable = form.find('input,a,select,button,textarea').filter(':visible');
				next = focusable.eq(focusable.index(this) + 1);
				if (next.length) {
					next.focus();
					next.select();
				} else {
					form.submit();
				}
				return false;
			} else {
				var self = $(this), form = self.parents('form:eq(0)'), focusable, next;
				focusable = form.find('input,a,select,button,textarea').filter(':visible');
				next = focusable.eq(focusable.index(this) + 1);
				if (next.length) {
					next.focus();
					next.select();
				} else {
					form.submit();
				}
				return false;
			}
		} else if (e.key === "Escape") {
			location.reload();
		}
	});
});