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.
568 lines
15 KiB
PHP
568 lines
15 KiB
PHP
<?php
|
|
if(isset($_REQUEST['status']) && $_REQUEST['status'] == 'ok')
|
|
{
|
|
if ($_REQUEST['operation'] == 'cari')
|
|
{
|
|
cari_barang($_REQUEST['kode'], $_REQUEST['nama']);
|
|
} 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("../db_login.inc.php");
|
|
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
|
|
if(!mysqli_connect_errno())
|
|
{
|
|
// isi table master
|
|
$ket = "Revisi Barang dari no faktur => ".$nofaktur;
|
|
$stmt = $mysqli->prepare("INSERT INTO m_pembelian VALUES (?, now(), now(), '-', now(), ?, 'T', 0, ?, ?, 0, '1', '$ket', 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("../db_login.inc.php");
|
|
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
|
|
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("../db_login.inc.php");
|
|
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
|
|
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("../db_login.inc.php");
|
|
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
|
|
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("../db_login.inc.php");
|
|
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
|
|
// 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("../db_login.inc.php");
|
|
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
|
|
// 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("../db_login.inc.php");
|
|
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
|
|
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("../db_login.inc.php");
|
|
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
|
|
|
|
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)
|
|
{
|
|
if($kode != "" || $nama != "")
|
|
{
|
|
$harray = array();
|
|
/* konfigurasi untuk koneksi ke database */
|
|
require_once("../db_login.inc.php");
|
|
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
|
|
|
|
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.nama_barang LIKE '%{$nama}%'");
|
|
} 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}%' OR brg.kode_lama 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_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("../db_login.inc.php");
|
|
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
|
|
|
|
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("../db_login.inc.php");
|
|
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
|
|
|
|
$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;
|
|
}
|
|
?>
|