From 0d1dcb1b5e553c10aaae03404cca211f0e5ba5fa Mon Sep 17 00:00:00 2001 From: sasadib Date: Thu, 9 Jul 2026 08:22:16 +0700 Subject: [PATCH] add query insert into table stock_inventory in func savehandover receiveitempo inventaris --- .../ReceiveItemPoInventaris.php | 181 ++++++++++-------- 1 file changed, 106 insertions(+), 75 deletions(-) diff --git a/application/controllers/mockup/receive-item-po/ReceiveItemPoInventaris.php b/application/controllers/mockup/receive-item-po/ReceiveItemPoInventaris.php index f95561e..f83678a 100644 --- a/application/controllers/mockup/receive-item-po/ReceiveItemPoInventaris.php +++ b/application/controllers/mockup/receive-item-po/ReceiveItemPoInventaris.php @@ -1514,23 +1514,23 @@ class ReceiveItemPoInventaris extends MY_Controller # GET DATA RO # $json_ro_before = $this->getDataROPO($ROID); $sql_ro = "SELECT - receive_order_po.*, - DATE_FORMAT(ReceiveOrderPoIDate, '%d-%m-%Y') AS formatedDate, - CASE - WHEN WarehouseType = 'B' - THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', M_BranchName) - WHEN WarehouseType = 'R' - THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', S_RegionalName) - ELSE '' - END WarehouseName, - WarehouseID - FROM receive_order_po - JOIN warehouse ON ReceiveOrderPoWarehouseID = WarehouseID - JOIN s_regional ON WarehouseS_RegionalID = S_RegionalID - AND S_RegionalIsActive = 'Y' - LEFT JOIN m_branch ON WarehouseM_BranchID = M_BranchID - AND M_BranchIsActive = 'Y' - WHERE ReceiveOrderPoID = ?"; + receive_order_po.*, + DATE_FORMAT(ReceiveOrderPoIDate, '%d-%m-%Y') AS formatedDate, + CASE + WHEN WarehouseType = 'B' + THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', M_BranchName) + WHEN WarehouseType = 'R' + THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', S_RegionalName) + ELSE '' + END WarehouseName, + WarehouseID + FROM receive_order_po + JOIN warehouse ON ReceiveOrderPoWarehouseID = WarehouseID + JOIN s_regional ON WarehouseS_RegionalID = S_RegionalID + AND S_RegionalIsActive = 'Y' + LEFT JOIN m_branch ON WarehouseM_BranchID = M_BranchID + AND M_BranchIsActive = 'Y' + WHERE ReceiveOrderPoID = ?"; $que_ro = $this->db->query($sql_ro, [$ROID]); if (!$que_ro) { $this->db->trans_rollback(); @@ -1545,23 +1545,23 @@ class ReceiveItemPoInventaris extends MY_Controller } $sql_detail_ro = "SELECT - receive_order_po_detail.*, - PurchaseOrderID, - PurchaseOrderNumber, - PurchaseOrderTaxPercentPph, - PurchaseOrderTaxPercentPpn, - PurchaseOrderSummaryDiscountAmount as DiscountPerItem, - PurchaseOrderSummaryQty as QtyAllPO, - PurchaseOrderSummaryTotal as TotalAllPO, - PurchaseOrderDiscountPercent AS DiscPOPercent, - PurchaseOrderDiscountAmount AS DiscPORupiah - FROM receive_order_po_detail - JOIN purchase_order ON ReceiveOrderPoDetailPurchaseOrderID = PurchaseOrderID - JOIN purchase_order_summary ON ReceiveOrderPoDetailPurchaseOrderSummaryID = PurchaseOrderSummaryID - AND PurchaseOrderSummaryIsActive = 'Y' - WHERE ReceiveOrderPoDetailReceiveOrderPoID = ? - AND ReceiveOrderPoDetailIsActive='Y' - GROUP BY ReceiveOrderPoDetailID"; + receive_order_po_detail.*, + PurchaseOrderID, + PurchaseOrderNumber, + PurchaseOrderTaxPercentPph, + PurchaseOrderTaxPercentPpn, + PurchaseOrderSummaryDiscountAmount as DiscountPerItem, + PurchaseOrderSummaryQty as QtyAllPO, + PurchaseOrderSummaryTotal as TotalAllPO, + PurchaseOrderDiscountPercent AS DiscPOPercent, + PurchaseOrderDiscountAmount AS DiscPORupiah + FROM receive_order_po_detail + JOIN purchase_order ON ReceiveOrderPoDetailPurchaseOrderID = PurchaseOrderID + JOIN purchase_order_summary ON ReceiveOrderPoDetailPurchaseOrderSummaryID = PurchaseOrderSummaryID + AND PurchaseOrderSummaryIsActive = 'Y' + WHERE ReceiveOrderPoDetailReceiveOrderPoID = ? + AND ReceiveOrderPoDetailIsActive='Y' + GROUP BY ReceiveOrderPoDetailID"; $que_detail_ro = $this->db->query($sql_detail_ro, [$ROID]); if (!$que_detail_ro) { $this->db->trans_rollback(); @@ -1572,10 +1572,10 @@ class ReceiveItemPoInventaris extends MY_Controller # UPDATE STATUS RO # $sql_update_ro = "UPDATE receive_order_po SET - ReceiveOrderPoConfirmed = 'Y', - ReceiveOrderPoConfirmedDate = NOW(), - ReceiveOrderPoConfirmedUserID = ? - WHERE ReceiveOrderPoID = ?"; + ReceiveOrderPoConfirmed = 'Y', + ReceiveOrderPoConfirmedDate = NOW(), + ReceiveOrderPoConfirmedUserID = ? + WHERE ReceiveOrderPoID = ?"; $que_update_ro = $this->db->query($sql_update_ro, [$user['M_UserID'], $ROID]); if (!$que_update_ro) { $this->db->trans_rollback(); @@ -1594,8 +1594,8 @@ class ReceiveItemPoInventaris extends MY_Controller $jurnal_number = $que_jrnl_num->row_array()['numbering']; $sql_periode = "SELECT periodeID FROM periode - WHERE DATE(NOW()) BETWEEN periodeStartDate AND periodeEndDate - AND periodeIsActive= 'Y' AND periodeIsClosed = 'N'"; + WHERE DATE(NOW()) BETWEEN periodeStartDate AND periodeEndDate + AND periodeIsActive= 'Y' AND periodeIsClosed = 'N'"; $que_periode = $this->db->query($sql_periode, []); if (!$que_periode) { $this->sys_error_db("[Error] get periode", $this->db); @@ -1631,17 +1631,17 @@ class ReceiveItemPoInventaris extends MY_Controller # INSERT JURNAL HEADER # $sql_head_jurnal = "INSERT INTO jurnal ( - jurnalM_BranchCompanyID, - JurnalS_RegionalID, - jurnalM_BranchCode, - jurnalperiodeID, - jurnalNo, - jurnalTitle, - jurnalDescription, - jurnalDate, - jurnalJurnalTypeID, - jurnalM_UserID - ) VALUES (?,?,?,?,?,?,?,NOW(),?,?)"; + jurnalM_BranchCompanyID, + JurnalS_RegionalID, + jurnalM_BranchCode, + jurnalperiodeID, + jurnalNo, + jurnalTitle, + jurnalDescription, + jurnalDate, + jurnalJurnalTypeID, + jurnalM_UserID + ) VALUES (?,?,?,?,?,?,?,NOW(),?,?)"; $que_head_jurnal = $this->db->query($sql_head_jurnal, [ $user['M_BranchCompanyID'], $user['S_RegionalID'], @@ -1862,8 +1862,8 @@ class ReceiveItemPoInventaris extends MY_Controller // save diskon prorata $sql_save_diskon = "UPDATE receive_order_po_detail SET - ReceiveOrderPoDetailDiskonPoProrata = ? - WHERE ReceiveOrderPoDetailID = ?"; + ReceiveOrderPoDetailDiskonPoProrata = ? + WHERE ReceiveOrderPoDetailID = ?"; $que_save_diskon = $this->db->query($sql_save_diskon, [ $diskon_prorata_item, $detail['ReceiveOrderPoDetailID'] @@ -1898,9 +1898,9 @@ class ReceiveItemPoInventaris extends MY_Controller // update stock based on batch foreach ($batch_list as $key => $batch) { $sql_cek_stock = "SELECT * - FROM stock s - JOIN m_item i ON s.StockItemID = i.M_ItemID - WHERE s.StockItemID = ? + FROM stock s + JOIN m_item i ON s.StockItemID = i.M_ItemID + WHERE s.StockItemID = ? AND s.StockItemUnitID = ? AND s.StockWarehouseID = ? AND i.M_ItemItem_CategoryID = ?"; @@ -2344,22 +2344,22 @@ class ReceiveItemPoInventaris extends MY_Controller $this->db->trans_begin(); $sql_insert = "INSERT INTO receive_order_po_inspeksi ( - ReceiveOrderPoInspeksiReceiveOrderPoDetailID, - ReceiveOrderPoInspeksiQtyPesan, - ReceiveOrderPoInspeksiQtyActual, - ReceiveOrderPoInspeksiPricePesan, - ReceiveOrderPoInspeksiPriceActual, - ReceiveOrderPoInspeksiDatePesan, - ReceiveOrderPoInspeksiDateActual, - ReceiveOrderPoInspeksiExpireDate, - ReceiveOrderPoInspeksiKeadaanKemasan, - ReceiveOrderPoInspeksiKondisiPengiriman, - ReceiveOrderPoInspeksiSimpulan, - ReceiveOrderPoInspeksiCatatan, - ReceiveOrderPoInspeksiStaffPenerima, - ReceiveOrderPoInspeksiStaffPengirim, - ReceiveOrderPoInspeksiUserID - ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + ReceiveOrderPoInspeksiReceiveOrderPoDetailID, + ReceiveOrderPoInspeksiQtyPesan, + ReceiveOrderPoInspeksiQtyActual, + ReceiveOrderPoInspeksiPricePesan, + ReceiveOrderPoInspeksiPriceActual, + ReceiveOrderPoInspeksiDatePesan, + ReceiveOrderPoInspeksiDateActual, + ReceiveOrderPoInspeksiExpireDate, + ReceiveOrderPoInspeksiKeadaanKemasan, + ReceiveOrderPoInspeksiKondisiPengiriman, + ReceiveOrderPoInspeksiSimpulan, + ReceiveOrderPoInspeksiCatatan, + ReceiveOrderPoInspeksiStaffPenerima, + ReceiveOrderPoInspeksiStaffPengirim, + ReceiveOrderPoInspeksiUserID + ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; $que_insert = $this->db->query($sql_insert, [ $ROdetailID, $inspeksi['qty_po'], @@ -2736,15 +2736,46 @@ class ReceiveItemPoInventaris extends MY_Controller $barcodeID = $this->db->insert_id(); + # check if item already in stock # + $sql_cekstock = "SELECT StockID + FROM stock + JOIN warehouse ON WarehouseID = StockWarehouseID + AND WarehouseIsActive = 'Y' + WHERE WarehouseM_BranchID = ? + AND StockItemID = ? + AND StockItemUnitID = ?"; + $que_cekstock = $this->db->query($sql_cekstock, [ + $user['M_BranchID'], + $item['ReceiveOrderPoItemID'], + $item['ReceiveOrderPoItemUnitID'], + ]); + if (!$que_cekstock) { + $this->db->trans_rollback(); + $this->sys_error_db("[Error] query cek stock"); + exit; + } + $stockID = $que_cekstock->row_array()['StockID']; + # insert stock inventaris # - $sql_stockinventaris = "INSERT INTO stock_inventaris ( + $sql_stockinventaris = "INSERT INTO stock_inventory ( StockInventoryStockID, StockInventoryRuanganID, StockInventoryBarcode, - StockInventoryCabangID, + StockInventoryBranchID, StockInventoryCreatedUserID ) VALUES (?,?,?,?,?)"; - $que_stockinventaris = $this->db->query($sql_stockinventaris, []); + $que_stockinventaris = $this->db->query($sql_stockinventaris, [ + $stockID, + $param['ruanganID'], + $noBarcode, + $user['M_BranchID'], + $user['M_UserID'] + ]); + if (!$que_stockinventaris) { + $this->db->trans_rollback(); + $this->sys_error_db("[Error] insert into table stock inventaris"); + exit; + } # insert each inventory handover detail # $sql_insert_handover_detail = "INSERT INTO asset_handover_detail(