You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

563 lines
15 KiB
PHTML

<?php
if(isset($_REQUEST['status']) && $_REQUEST['status'] == 'ok')
{
if ($_REQUEST['operation'] == 'cari')
{
cari_barang($_REQUEST['kode'], $_REQUEST['nama'], $_REQUEST['nonota']);
} elseif ($_REQUEST['operation'] == 'cek')
{
cek_barang($_REQUEST['kode'], $_REQUEST['nomor'], $_REQUEST['nonota']);
} elseif ($_REQUEST['operation'] == 'ambil')
{
ambil_barang($_REQUEST['kode'], $_REQUEST['nomor'], $_REQUEST['nonota']);
} elseif ($_REQUEST['operation'] == 'simpan')
{
simpan($_REQUEST['norhp'], $_REQUEST['statusrvb'], $_REQUEST['nonota'], $_REQUEST['kodesupplier'], $_REQUEST['nik'], $_REQUEST['kodebarang'], $_REQUEST['kodelama'], $_REQUEST['nomor'], $_REQUEST['stok'], $_REQUEST['stokrev'], $_REQUEST['hplama'], $_REQUEST['hjlama'], $_REQUEST['hpbaru'], $_REQUEST['hjbaru'], $_REQUEST['namabarang'], $_REQUEST['idgabungan']);
} elseif ($_REQUEST['operation'] == 'cari_supp')
{
get_supplier($_REQUEST['kode'], $_REQUEST['nama']);
} elseif ($_REQUEST['operation'] == 'get_rhp')
{
get_no_rhp($_REQUEST['kd_supp']);
}
}
/**
*
* @return unknown_type
*/
function simpan($norhp, $statusrvb, $nofaktur, $kd_supplier, $nik, $kode_barang, $kode_lama, $nomor, $stok, $stokrev, $hplama, $hjlama, $hpbaru, $hjbaru, $nama, $idgabungan)
{
$harray = array();
$j_lama = hitung_total_hp($hplama, $stok);
$j_baru = hitung_total_hp($hpbaru, $stokrev);
$rpbeli = $j_baru - $j_lama;
$master = insert_m_pembelian($norhp, $kd_supplier, $nik, $rpbeli, $nofaktur, $statusrvb);
if($master)
{
$detil = insert_d_pembelian($norhp, $kode_barang, $kode_lama, $nomor, $stok, $stokrev, $hplama, $hjlama, $hpbaru, $hjbaru, $nama, $idgabungan);
if($detil)
{
$harray[0] = "true";
} else
{
$harray[0] = "false";
}
} else
{
$harray[0] = "false";
}
/* cetak hasil */
echo json_encode($harray);
}
/**
*
* @param $norhp
* @param $kd_supplier
* @param $nik
* @param $rpbeli
* @return unknown_type
*/
function insert_m_pembelian($norhp, $kd_supplier, $nik, $rpbeli, $nofaktur, $statusrvb)
{
$hasil = FALSE;
/* konfigurasi untuk koneksi ke database */
require_once("../konfig/konfig_db.inc.php");
$mysqli = new mysqli(NAMA_HOST, NAMA_USER, PASSWORD, NAMA_DB);
if(!mysqli_connect_errno())
{
// isi table master
$stmt = $mysqli->prepare("INSERT INTO m_pembelian VALUES (?, now(), now(), '-', now(), ?, 'T', 0, ?, ?, 0, '1', 'Revisi Barang', now(), ?, ?)");
$stmt->bind_param("sssiss", $norhp, $kd_supplier, $nik, $rpbeli, $nofaktur, $statusrvb);
$stmt->execute();
if($stmt->affected_rows > 0)
{
$hasil = TRUE;
$stmt->close();
} else
{
$hasil = FALSE;
}
}
/* tutup koneksi */
$mysqli->close();
return $hasil;
}
function insert_d_pembelian($norhp, $kode_barang, $kode_lama, $nomor, $stok, $stokrev, $hplama, $hjlama, $hpbaru, $hjbaru, $nama, $idgabungan)
{
$hasil = FALSE;
/* konfigurasi untuk koneksi ke database */
require_once("../konfig/konfig_db.inc.php");
$mysqli = new mysqli(NAMA_HOST, NAMA_USER, PASSWORD, NAMA_DB);
if(!mysqli_connect_errno())
{
for ($i = 0; $i < count($kode_barang); $i++)
{
/* insert data lama */
$hplm = decode_hp($hplama[$i]);
$profitlama = ceil((($hjlama[$i] - $hplm) / $hplm) * 100);
$stoklama = -1 * $stok[$i];
$faktur_asli = get_kode_faktur_asli($kode_barang[$i]);
$stmt = $mysqli->prepare("INSERT INTO d_pembelian(no_faktur, kode_barang, kode_baranglama, nomor, jumlah, harga_satuan, harga_pokok, harga_jual, profit, kode_asli, jum_fisik, jenis, lokasi, hj_final, nm_brg)
VALUES (?, ?, ?, ?, ?, 0, ?, ?, ?, '-', ?, 'S', '1A', ?, ?)");
$stmt->bind_param("ssssisiiiis", $norhp, $kode_barang[$i], $kode_lama[$i], $nomor[$i], $stoklama, $hplama[$i], $hjlama[$i], $profitlama, $stoklama, $hjlama[$i], $nama[$i]);
$stmt->execute();
if($stmt->affected_rows > 0)
{
$hasil = TRUE;
$stmt->close();
} else
{
$hasil = FALSE;
}
/* insert data baru */
if ($hasil)
{
$hpbr = decode_hp($hpbaru[$i]);
$profitbaru = ceil((($hjbaru[$i] - $hpbr) / $hpbr) * 100);
$stmt = $mysqli->prepare("INSERT INTO d_pembelian(no_faktur, kode_barang, kode_baranglama, nomor, jumlah, harga_satuan, harga_pokok, harga_jual, profit, kode_asli, jum_fisik, jenis, lokasi, hj_final, nm_brg)
VALUES (?, ?, ?, ?, ?, 0, ?, ?, ?, '-', ?, 'S', '1A', ?, ?)");
$stmt->bind_param("ssssisiiiis", $norhp, $kode_barang[$i], $kode_lama[$i], $nomor[$i], $stokrev[$i], $hpbaru[$i], $hjbaru[$i], $profitbaru, $stokrev[$i], $hjbaru[$i], $nama[$i]);
$stmt->execute();
if($stmt->affected_rows > 0)
{
$hasil = TRUE;
$stmt->close();
} else
{
$hasil = FALSE;
}
}
/* update barang*/
if ($hasil)
{
$update2 = update_barang($idgabungan[$i], $nama[$i]);
if($update2)
{
$hasil = TRUE;
} else
{
$hasil = FALSE;
}
}
/* update no_barang*/
if ($hasil)
{
$update = update_no_barang($idgabungan[$i], $nomor[$i], $hpbaru[$i], $hjbaru[$i], $stokrev[$i]);
if($update)
{
$hasil = TRUE;
} else
{
$hasil = FALSE;
}
}
$faktur_asli = "";
}
}
/* tutup koneksi */
$mysqli->close();
return $hasil;
}
/**
*
* @param $id
* @param $nomor
* @param $hp
* @param $hj
* @return unknown_type
*/
function update_no_barang($id, $nomor, $hp, $hj, $stokrev)
{
$hasil = FALSE;
/* konfigurasi untuk koneksi ke database */
require_once("../konfig/konfig_db.inc.php");
$mysqli = new mysqli(NAMA_HOST, NAMA_USER, PASSWORD, NAMA_DB);
if(!mysqli_connect_errno())
{
// isi table master
$stmt = $mysqli->prepare("UPDATE no_barang SET stok = ?,harga_pokok = ?, harga_jual = ? WHERE id_gabungan = ? AND nomor = ?");
$stmt->bind_param("isiss", $stokrev, $hp, $hj, $id, $nomor);
$stmt->execute();
if($stmt->affected_rows >= 0)
{
$hasil = TRUE;
$stmt->close();
} else
{
$hasil = FALSE;
}
}
/* tutup koneksi */
$mysqli->close();
return $hasil;
}
function update_barang($id, $nama)
{
$hasil = FALSE;
/* konfigurasi untuk koneksi ke database */
require_once("../konfig/konfig_db.inc.php");
$mysqli = new mysqli(NAMA_HOST, NAMA_USER, PASSWORD, NAMA_DB);
if(!mysqli_connect_errno())
{
// isi table master
$stmt = $mysqli->prepare("UPDATE barang SET nama_barang = ? WHERE id_gabungan = ?");
$stmt->bind_param("ss", $nama, $id);
$stmt->execute();
if($stmt->affected_rows >= 0)
{
$hasil = TRUE;
$stmt->close();
} else
{
$hasil = FALSE;
}
}
/* tutup koneksi */
$mysqli->close();
return $hasil;
}
/**
*
* @param $kdsupplier
* @return unknown_type
*/
function get_no_rhp($kdsupplier)
{
$urutbaru = 0;
/* konfigurasi untuk koneksi ke database */
require_once("../konfig/konfig_db.inc.php");
$mysqli = new mysqli(NAMA_HOST, NAMA_USER, PASSWORD, NAMA_DB);
// cek ada atau tidak
if(cek_data($kdsupplier))
{
$data_faktur = $mysqli->query("SELECT MAX(RIGHT(no_faktur, 3)) FROM m_pembelian WHERE LEFT(no_faktur, 10) = 'RVB-{$kdsupplier}'");
if($data_faktur->num_rows > 0)
{
$urut = $data_faktur->fetch_array();
$urutbaru = (int)$urut[0] + 1;
if(strlen($urutbaru) == 1)
{
$urutbaru = "00".$urutbaru;
}
if(strlen($urutbaru) == 2)
{
$urutbaru = "0".$urutbaru;
}
/* tutup hasil query */
$data_faktur->close();
}
} else
{
$urutbaru = "000";
}
$hasil[0] = "RVB-".$kdsupplier."-".$urutbaru;
echo json_encode($hasil);
/* tutup koneksi */
$mysqli->close();
}
/**
*
* @param $kodesupplier
* @return unknown_type
*/
function cek_data($kodesupplier)
{
/* konfigurasi untuk koneksi ke database */
require_once("../konfig/konfig_db.inc.php");
$mysqli = new mysqli(NAMA_HOST, NAMA_USER, PASSWORD, NAMA_DB);
// cek ada atau tidak
$data = $mysqli->query("SELECT COUNT(*) FROM m_pembelian WHERE LEFT(no_faktur, 10) = 'RVB-{$kodesupplier}'");
$dt = $data->fetch_array();
if($dt[0] > 0)
{
return true;
} else
{
return false;
}
/* tutup hasil query */
$data->close();
/* tutup koneksi */
$mysqli->close();
}
/**
*
* @param $kode
* @param $nomor
* @param $kd_supplier
* @return unknown_type
*/
function ambil_barang($kode, $nomor, $nofaktur)
{
if($kode != "" || $nomor != "")
{
$harray = array();
/* konfigurasi untuk koneksi ke database */
require_once("../konfig/konfig_db.inc.php");
$mysqli = new mysqli(NAMA_HOST, NAMA_USER, PASSWORD, NAMA_DB);
if($nomor != "")
{
$data = $mysqli->query("SELECT DISTINCT brg.kode_barang, brg.kode_lama, brg.nama_barang, brg.id_gabungan, nb.stok, nb.harga_pokok, nb.harga_jual, brg.kode_supplier, s.nama_supplier
FROM barang brg, no_barang nb, supplier s, d_pembelian dp
WHERE brg.id_gabungan = nb.id_gabungan AND brg.kode_barang = dp.kode_barang
AND brg.kode_barang = '{$kode}' AND nb.nomor = '{$nomor}'
AND brg.kode_supplier = s.kd_supplier AND dp.no_faktur = '{$nofaktur}' LIMIT 1");
} else if($nomor == "")
{
$data = $mysqli->query("SELECT DISTINCT brg.kode_barang, brg.kode_lama, brg.nama_barang, brg.id_gabungan, nb.stok, nb.harga_pokok, nb.harga_jual, brg.kode_supplier, s.nama_supplier
FROM barang brg, no_barang nb, supplier s, d_pembelian dp
WHERE brg.id_gabungan = nb.id_gabungan AND brg.kode_barang = dp.kode_barang
AND brg.kode_barang = '{$kode}'
AND brg.kode_supplier = s.kd_supplier AND dp.no_faktur = '{$nofaktur}' LIMIT 1");
}
/* tampung jumlah data dalam var hasil */
$hasil = $data->num_rows;
if($hasil > 0)
{
$idx = 0;
while($a = $data->fetch_array(MYSQLI_ASSOC))
{
$harray[$idx] = array('kode_barang' => $a['kode_barang'], 'kode_lama' => $a['kode_lama'], 'nama_barang' => $a['nama_barang'],
'supplier' => $a['nama_supplier'], 'id_gabungan' => $a['id_gabungan'], 'stok' => $a['stok'],
'kd_supplier' => $a['kode_supplier'], 'hp' => $a['harga_pokok'], 'hj' => $a['harga_jual']
);
$idx++;
}
/* tutup hasil query */
$data->close();
}
/* tutup koneksi */
$mysqli->close();
}
/* cetak hasil */
echo json_encode($harray);
}
/**
*
* @param $kode
* @param $nomor
* @param $kd_supplier
* @return unknown_type
*/
function cek_barang($kode, $nomor, $nofaktur)
{
if($kode != "" || $nomor != "")
{
$harray = array();
/* konfigurasi untuk koneksi ke database */
require_once("../konfig/konfig_db.inc.php");
$mysqli = new mysqli(NAMA_HOST, NAMA_USER, PASSWORD, NAMA_DB);
if($nomor != "")
{
$data = $mysqli->query("SELECT count(*)
FROM barang brg, no_barang nb, d_pembelian dp
WHERE brg.id_gabungan = nb.id_gabungan AND brg.kode_barang = dp.kode_barang
AND brg.kode_barang = '{$kode}' AND nb.nomor = '{$nomor}'
AND dp.no_faktur = '{$nofaktur}'");
} else if($nomor == "")
{
$data = $mysqli->query("SELECT count(*)
FROM barang brg
WHERE brg.kode_barang = '{$kode}'");
}
if($data->num_rows > 0)
{
$jum = $data->fetch_array();
if($jum[0] > 0)
{
$harray[0] = "true";
} else
{
$harray[0] = "false";
}
/* tutup hasil query */
$data->close();
} else
{
$harray[0] = "false";
}
/* tutup koneksi */
$mysqli->close();
}
/* cetak hasil */
echo json_encode($harray);
}
/**
*
* @param $kode
* @param $nama
* @param $kd_supplier
* @return unknown_type
*/
function cari_barang($kode, $nama, $nofaktur)
{
if($kode != "" || $nama != "")
{
$harray = array();
/* konfigurasi untuk koneksi ke database */
require_once("../konfig/konfig_db.inc.php");
$mysqli = new mysqli(NAMA_HOST, NAMA_USER, PASSWORD, NAMA_DB);
if($nama != "")
{
$data = $mysqli->query("SELECT DISTINCT brg.kode_barang, brg.nama_barang, nb.harga_pokok, nb.harga_jual, brg.kode_supplier, s.nama_supplier
FROM barang brg, no_barang nb, d_pembelian dp, supplier s
WHERE brg.id_gabungan = nb.id_gabungan AND brg.kode_barang = dp.kode_barang AND brg.kode_supplier = s.kd_supplier
AND brg.kode_barang LIKE '{$kode}%' AND brg.nama_barang LIKE '%{$nama}%'
AND dp.no_faktur = '{$nofaktur}'");
} else if($nama == "")
{
$data = $mysqli->query("SELECT DISTINCT brg.kode_barang, brg.nama_barang, nb.harga_pokok, nb.harga_jual, brg.kode_supplier, s.nama_supplier
FROM barang brg, no_barang nb, d_pembelian dp, supplier s
WHERE brg.id_gabungan = nb.id_gabungan AND brg.kode_barang = dp.kode_barang AND brg.kode_supplier = s.kd_supplier
AND brg.kode_barang LIKE '{$kode}%'
AND dp.no_faktur = '{$nofaktur}'");
}
/* tampung jumlah data dalam var hasil */
$hasil = $data->num_rows;
if($hasil > 0)
{
$idx = 0;
while($a = $data->fetch_array(MYSQLI_ASSOC))
{
$harray[$idx] = array(
'kode_barang' => $a['kode_barang'], 'nama_barang' => $a['nama_barang'], 'supplier' => $a['nama_supplier'],
'kd_supplier' => $a['kode_supplier'], 'hp' => $a['harga_pokok'], 'hj' => $a['harga_jual']
);
$idx++;
}
/* tutup hasil query */
$data->close();
}
/* tutup koneksi */
$mysqli->close();
}
/* cetak hasil */
echo json_encode($harray);
}
/**
*
* @param $kode
* @param $nama
* @return unknown_type
*/
function get_supplier($kode, $nama)
{
if($kode != "" || $nama != "")
{
$harray = array();
/* konfigurasi untuk koneksi ke database */
require_once("../konfig/konfig_db.inc.php");
$mysqli = new mysqli(NAMA_HOST, NAMA_USER, PASSWORD, NAMA_DB);
if($nama != "")
{
$data = $mysqli->query("SELECT s.kd_supplier, s.nama_supplier
FROM supplier s
WHERE s.kd_supplier LIKE '%{$kode}%' AND s.nama_supplier LIKE '%{$nama}%'");
} else if($nama == "")
{
$data = $mysqli->query("SELECT s.kd_supplier, s.nama_supplier
FROM supplier s
WHERE s.kd_supplier LIKE '%{$kode}%'");
}
/* tampung jumlah data dalam var hasil */
$hasil = $data->num_rows;
if($hasil > 0)
{
$idx = 0;
while($a = $data->fetch_array(MYSQLI_ASSOC))
{
$harray[$idx] = array('kode_supplier' => $a['kd_supplier'], 'nama_supplier' => $a['nama_supplier']);
$idx++;
}
/* tutup hasil query */
$data->close();
}
/* tutup koneksi */
$mysqli->close();
}
/* cetak hasil */
echo json_encode($harray);
}
/**
*
* @param $kodebarang
* @return unknown_type
*/
function get_kode_faktur_asli($kodebarang)
{
$faktur = "";
if($kodebarang != "" )
{
/* konfigurasi untuk koneksi ke database */
require_once("../konfig/konfig_db.inc.php");
$mysqli = new mysqli(NAMA_HOST, NAMA_USER, PASSWORD, NAMA_DB);
$data = $mysqli->query("SELECT d.no_faktur FROM d_pembelian d WHERE d.kode_barang = '{$kodebarang}'");
if($data->num_rows > 0)
{
$faktur = $data->fetch_array(MYSQLI_NUM);
$faktur = $faktur[0];
/* tutup hasil query */
$data->close();
}
/* tutup koneksi */
$mysqli->close();
}
return $faktur;
}
/**
*
* @param $data
* @return unknown_type
*/
function hitung_total_hp($data, $stok)
{
$total = 0;
for ($i = 0; $i < count($data); $i++)
{
$total += decode_hp($data[$i]) * $stok[$i];
}
return $total;
}
/**
*
* @param $hp
* @return int hasil decode
*/
function decode_hp($hp)
{
$dt = "";
for($i = 0; $i < strlen($hp); $i++)
{
$chr = substr($hp, $i, 1);
switch($chr)
{
case "B" : $dt .= "1";break;
case "R" : $dt .= "2";break;
case "A" : $dt .= "3";break;
case "W" : $dt .= "4";break;
case "N" : $dt .= "5";break;
case "F" : $dt .= "6";break;
case "O" : $dt .= "7";break;
case "X" : $dt .= "8";break;
case "E" : $dt .= "9";break;
case "S" : $dt .= "0";break;
}
}
return (int) $dt;
}
?>