update / proses add akun pusat di media jurnal & move barcode to serah terima

This commit is contained in:
2026-05-13 16:51:39 +07:00
parent 4234c37e75
commit dc4e16329f
16 changed files with 4227 additions and 551 deletions

View File

@@ -62,13 +62,13 @@ class ReceiveItemPoInventaris extends MY_Controller
$search = $payload['search'] . '%';
$sql = "SELECT M_RuanganID,
M_RuanganM_BranchID,
M_RuanganName,
M_RuanganCode
M_RuanganM_BranchID,
M_RuanganName,
M_RuanganCode
FROM m_ruangan
WHERE M_RuanganIsActive = 'Y'
AND M_RuanganM_BranchID = ?
AND M_RuanganName LIKE ?
AND M_RuanganM_BranchID = ?
AND M_RuanganName LIKE ?
ORDER BY M_RuanganName ASC";
$qry = $this->db->query($sql, [$user['M_BranchID'], $search]);
@@ -630,37 +630,39 @@ class ReceiveItemPoInventaris extends MY_Controller
$user = $this->sys_user;
$param = $this->sys_input;
// $sql = "SELECT DISTINCT
// u.M_UserID,
// u.M_UserUsername
// FROM receive_order_po ro
// JOIN receive_order_po_detail rod
// ON rod.ReceiveOrderPoDetailReceiveOrderPoID = ro.ReceiveOrderPoID
// AND rod.ReceiveOrderPoDetailIsActive = 'Y'
// JOIN purchase_order_detail pod
// ON pod.PurchaseOrderDetailID = rod.ReceiveOrderPoDetailPurchaseOrderDetailID
// AND pod.PurchaseOrderDetailIsActive = 'Y'
// JOIN purchase_request pr
// ON pr.PurchaseRequestID = pod.PurchaseOrderDetailPurchaseRequestID
// AND pr.PurchaseRequestIsActive = 'Y'
// JOIN m_user u
// ON u.M_UserID = pr.PurchaseRequestRequestedBy
// AND u.M_UserIsActive = 'Y'
// WHERE
// ro.ReceiveOrderPoID = ?
// AND ro.ReceiveOrderPoIsActive = 'Y'";
// $que = $this->db->query($sql, [$param['ROID']]);
//
if ($param['isSerahTerima'] == 'Y') {
$sql = "SELECT DISTINCT
u.M_UserID,
u.M_UserUsername
FROM receive_order_po ro
JOIN receive_order_po_detail rod
ON rod.ReceiveOrderPoDetailReceiveOrderPoID = ro.ReceiveOrderPoID
AND rod.ReceiveOrderPoDetailIsActive = 'Y'
JOIN purchase_order_detail pod
ON pod.PurchaseOrderDetailID = rod.ReceiveOrderPoDetailPurchaseOrderDetailID
AND pod.PurchaseOrderDetailIsActive = 'Y'
JOIN purchase_request pr
ON pr.PurchaseRequestID = pod.PurchaseOrderDetailPurchaseRequestID
AND pr.PurchaseRequestIsActive = 'Y'
JOIN m_user u
ON u.M_UserID = pr.PurchaseRequestRequestedBy
AND u.M_UserIsActive = 'Y'
WHERE
ro.ReceiveOrderPoID = ?
AND ro.ReceiveOrderPoIsActive = 'Y'";
$que = $this->db->query($sql, [$param['ROID']]);
} else {
$sql = "SELECT
M_UserID,
M_UserUsername
FROM m_user
WHERE M_UserM_BranchID = ?
AND M_UserS_RegionalID = ?
AND M_UserIsActive = 'Y'
ORDER BY M_UserUsername";
$que = $this->db->query($sql, [$user['M_BranchID'], $user['S_RegionalID']]);
}
$sql = "SELECT
M_UserID,
M_UserUsername
FROM m_user
WHERE M_UserM_BranchID = ?
AND M_UserS_RegionalID = ?
AND M_UserIsActive = 'Y'
ORDER BY M_UserUsername";
$que = $this->db->query($sql, [$user['M_BranchID'], $user['S_RegionalID']]);
if (!$que) {
$this->sys_error_db("[Error] get staff");
exit;
@@ -926,42 +928,42 @@ class ReceiveItemPoInventaris extends MY_Controller
$RODetailID = $this->db->insert_id();
if (intval($obj['qty']) > 0) {
$qty = intval($obj['qty']);
for ($i = 0; $i < $qty; $i++) {
# generate nomor barcode #
$noBarcode = $this->generateNoBarcode($user, $param['lokasiID'], 'BNP', $obj['M_ItemID']);
// if (intval($obj['qty']) > 0) {
// $qty = intval($obj['qty']);
// for ($i = 0; $i < $qty; $i++) {
// # generate nomor barcode #
// $noBarcode = $this->generateNoBarcode($user, $param['lokasiID'], 'BNP', $obj['M_ItemID']);
# INSERT INTO t_barcode_barang #
$sqlInsertBarcode = "INSERT INTO t_barcode_barang(
T_BarcodeBarangReceiveOrderPoID,
T_BarcodeBarangReceiveOrderPoDetailID,
T_BarcodeBarangRefType,
T_BarcodeBarangM_ItemID,
T_BarcodeBarangItemUnitID,
T_BarcodeBarangNumber,
T_BarcodeBarangM_RuanganID,
T_BarcodeBarangM_BranchID,
T_BarcodeBarangIsActive,
T_BarcodeBarangUserID,
T_BarcodeBarangCreated) VALUES(?,?,'PO',?,?,?,?,?,'Y',?,NOW())";
$qryInsertBarcode = $this->db->query($sqlInsertBarcode, array(
$roID,
$RODetailID,
$obj['M_ItemID'],
$obj['ItemUnitID'],
$noBarcode,
$param['lokasiID'],
$user['M_BranchID'],
$user['M_UserID']
));
if (!$qryInsertBarcode) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] insert data barcode item");
exit;
}
}
}
// # INSERT INTO t_barcode_barang #
// $sqlInsertBarcode = "INSERT INTO t_barcode_barang(
// T_BarcodeBarangReceiveOrderPoID,
// T_BarcodeBarangReceiveOrderPoDetailID,
// T_BarcodeBarangRefType,
// T_BarcodeBarangM_ItemID,
// T_BarcodeBarangItemUnitID,
// T_BarcodeBarangNumber,
// T_BarcodeBarangM_RuanganID,
// T_BarcodeBarangM_BranchID,
// T_BarcodeBarangIsActive,
// T_BarcodeBarangUserID,
// T_BarcodeBarangCreated) VALUES(?,?,'PO',?,?,?,?,?,'Y',?,NOW())";
// $qryInsertBarcode = $this->db->query($sqlInsertBarcode, array(
// $roID,
// $RODetailID,
// $obj['M_ItemID'],
// $obj['ItemUnitID'],
// $noBarcode,
// $param['lokasiID'],
// $user['M_BranchID'],
// $user['M_UserID']
// ));
// if (!$qryInsertBarcode) {
// $this->db->trans_rollback();
// $this->sys_error_db("[Error] insert data barcode item");
// exit;
// }
// }
// }
# INSERT INTO receive_order_po_inspeksi #
$inspeksi = $obj['inspeksi_item'];
@@ -1770,34 +1772,31 @@ class ReceiveItemPoInventaris extends MY_Controller
# INSERT JURNAL TX #
if (intval($item_cek['M_ItemItem_CategoryID']) == 2) {
if (empty($item_cek['M_ItemNat_SubGroupID'])) {
if (empty($item_cek['M_ItemM_InventarisGolID'])) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] subgroup item {$item_cek['M_ItemDesc']} tidak ditemukan pada PO
$this->sys_error_db("[Error] golongan inventaris item {$item_cek['M_ItemDesc']} tidak ditemukan pada PO
{$detail['PurchaseOrderNumber']}");
exit;
}
$sql_item_group = "SELECT * FROM map_nat_subgroup
WHERE MapNatSub_NatGroupID = ?
AND MapNatSub_NatSubGroupID = ?
AND MapNatSub_IsActive = 'Y'";
$que_item_group = $this->db->query($sql_item_group, [
$item_cek['M_ItemNat_GroupID'],
$item_cek['M_ItemNat_SubGroupID']
]);
if (!$que_item_group) {
$sql_coa_inv = "SELECT
CoaMapInventarisCoaID,
CoaMapInventarisCoaNo,
CoaMapInventarisCoaDesc
FROM coa_map_inventaris
WHERE CoaMapInventarisM_InventarisGolID = ?
AND CoaMapInventarisIsActive = 'Y'";
$que_coa_inv = $this->db->query($sql_coa_inv, [$item_cek['M_ItemM_InventarisGolID']]);
if (!$que_coa_inv) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] get item group/subgroup");
$this->sys_error_db("[Error] failed to get coa biaya item inventaris");
exit;
}
$item_group = $que_item_group->row_array();
if (
empty($item_group['MapNatSub_BiayaCoaID']) ||
empty($item_group['MapNatSub_BiayaCoaAccountNo']) ||
empty($item_group['MapNatSub_BiayaCoaDescription'])
) {
$iteminv_coa = $que_coa_inv->row_array();
if (empty($iteminv_coa['CoaMapInventarisCoaID'])) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] Account inventory item {$item_cek['M_ItemDesc']} tidak ditemukan");
$this->sys_error_db("[Error] coa gol inventaris not found");
exit;
}
@@ -1815,8 +1814,8 @@ class ReceiveItemPoInventaris extends MY_Controller
) VALUES (?,?,?,?,?,?)";
$que_tx_jurnal = $this->db->query($sql_tx_jurnal, [
$jurnal_ID,
$item_group['MapNatSub_BiayaCoaID'],
$item_group['MapNatSub_BiayaCoaDescription'],
$iteminv_coa['CoaMapInventarisCoaID'],
$iteminv_coa['CoaMapInventarisCoaDesc'],
$debet,
0,
$user['M_UserID']
@@ -1829,7 +1828,7 @@ class ReceiveItemPoInventaris extends MY_Controller
}
$juranl_tx_ID = $this->db->insert_id();
$each_desc[] = "- Add detail Jurnal debet {$item_cek['M_ItemDesc']}
{$item_group['MapNatSub_BiayaCoaDescription']} sejumlah {$this->formatRupiah($debet)}";
{$iteminv_coa['CoaMapInventarisCoaDesc']} sejumlah {$this->formatRupiah($debet)}";
# INSERT JURNAL ADDON #
$sql_addon_jurnal = "INSERT INTO jurnal_addon (