add progress
This commit is contained in:
@@ -39,14 +39,14 @@ class PurchaseRequestNonPersediaan extends MY_Controller
|
||||
$params[] = $status;
|
||||
$params[] = '%' . $search . '%';
|
||||
|
||||
$sql = "SELECT M_UserLocationS_RegionalID as S_RegionalID,
|
||||
$sql = "SELECT
|
||||
M_UserLocationS_RegionalID as S_RegionalID,
|
||||
IFNULL(M_BranchCode, '') as M_BranchCode,
|
||||
IFNULL(M_BranchName, '') as M_BranchName
|
||||
FROM m_userlocation
|
||||
LEFT JOIN m_branch ON M_BranchID = M_UserLocationM_BranchID
|
||||
WHERE
|
||||
M_UserLocationIsActive = 'Y' AND
|
||||
M_UserLocationM_UserID = ?";
|
||||
FROM m_userlocation
|
||||
LEFT JOIN m_branch ON M_BranchID = M_UserLocationM_BranchID
|
||||
WHERE M_UserLocationIsActive = 'Y'
|
||||
AND M_UserLocationM_UserID = ?";
|
||||
$exec = $this->db->query($sql, [$userId]);
|
||||
if (!$exec) {
|
||||
$this->sys_error_db("select user location", $this->db);
|
||||
@@ -72,14 +72,13 @@ class PurchaseRequestNonPersediaan extends MY_Controller
|
||||
$totalPage = 1;
|
||||
|
||||
$sql = "SELECT COUNT(*) as total
|
||||
FROM purchase_request
|
||||
JOIN s_regional ON S_RegionalID = PurchaseRequestS_RegionalID
|
||||
WHERE
|
||||
PurchaseRequestIsActive = 'Y' AND
|
||||
PurchaseRequestItemCategoryID <> '1' AND
|
||||
( PurchaseRequestDate BETWEEN ? AND ? ) AND
|
||||
( PurchaseRequestStatus = ? OR ? = '' ) AND
|
||||
( PurchaseRequestNumber LIKE ?)
|
||||
FROM purchase_request
|
||||
JOIN s_regional ON S_RegionalID = PurchaseRequestS_RegionalID
|
||||
WHERE PurchaseRequestIsActive = 'Y'
|
||||
AND PurchaseRequestItemCategoryID <> '1'
|
||||
AND ( PurchaseRequestDate BETWEEN ? AND ? )
|
||||
AND ( PurchaseRequestStatus = ? OR ? = '' )
|
||||
AND ( PurchaseRequestNumber LIKE ?)
|
||||
$filterBranch
|
||||
$filterRegional";
|
||||
|
||||
@@ -96,7 +95,8 @@ class PurchaseRequestNonPersediaan extends MY_Controller
|
||||
$params[] = $offset;
|
||||
$params[] = $pageSize;
|
||||
|
||||
$sql = "SELECT DISTINCT PurchaseRequestID as prId,
|
||||
$sql = "SELECT DISTINCT
|
||||
PurchaseRequestID as prId,
|
||||
PurchaseRequestNumber as prNumber,
|
||||
PurchaseRequestDate as prDate,
|
||||
PurchaseRequestStatus as prStatus,
|
||||
@@ -119,41 +119,37 @@ class PurchaseRequestNonPersediaan extends MY_Controller
|
||||
ah.AssetHandoverID AS handoverID,
|
||||
ah.AssetHandoverDate AS handoverDate,
|
||||
ah.AssetHandoverToUserID AS handoverToUserID
|
||||
FROM purchase_request
|
||||
JOIN s_regional ON S_RegionalID = PurchaseRequestS_RegionalID
|
||||
JOIN item_category ON item_category.ItemCategoryID = PurchaseRequestItemCategoryID
|
||||
JOIN m_user requestedBy ON requestedBy.M_UserID = PurchaseRequestRequestedBy
|
||||
LEFT JOIN m_user approvedBy ON approvedBy.M_UserID = PurchaseRequestApprovedBy
|
||||
LEFT JOIN m_branch ON M_BranchCode = PurchaseRequestM_BranchCode
|
||||
LEFT JOIN asset_handover ah
|
||||
ON ah.AssetHandoverPurchaseRequestID = PurchaseRequestID
|
||||
FROM purchase_request
|
||||
JOIN s_regional ON S_RegionalID = PurchaseRequestS_RegionalID
|
||||
JOIN item_category ON item_category.ItemCategoryID = PurchaseRequestItemCategoryID
|
||||
JOIN m_user requestedBy ON requestedBy.M_UserID = PurchaseRequestRequestedBy
|
||||
LEFT JOIN m_user approvedBy ON approvedBy.M_UserID = PurchaseRequestApprovedBy
|
||||
LEFT JOIN m_branch ON M_BranchCode = PurchaseRequestM_BranchCode
|
||||
LEFT JOIN asset_handover ah ON ah.AssetHandoverPurchaseRequestID = PurchaseRequestID
|
||||
AND ah.AssetHandoverIsActive = 'Y'
|
||||
WHERE
|
||||
PurchaseRequestIsActive = 'Y' AND
|
||||
PurchaseRequestItemCategoryID <> '1' AND
|
||||
( PurchaseRequestDate BETWEEN ? AND ? ) AND
|
||||
( PurchaseRequestStatus = ? OR ? = '' ) AND
|
||||
( PurchaseRequestNumber LIKE ? )
|
||||
WHERE PurchaseRequestIsActive = 'Y'
|
||||
AND PurchaseRequestItemCategoryID <> '1'
|
||||
AND ( PurchaseRequestDate BETWEEN ? AND ? )
|
||||
AND ( PurchaseRequestStatus = ? OR ? = '' )
|
||||
AND ( PurchaseRequestNumber LIKE ? )
|
||||
$filterBranch
|
||||
$filterRegional
|
||||
ORDER BY PurchaseRequestID DESC
|
||||
LIMIT ?, ?";
|
||||
ORDER BY PurchaseRequestID DESC
|
||||
LIMIT ?, ?";
|
||||
|
||||
$exec = $this->db->query($sql, $params);
|
||||
if (!$exec) {
|
||||
$this->sys_error_db("select purchase request", $this->db);
|
||||
exit;
|
||||
}
|
||||
//echo $this->db->last_query();
|
||||
//exit;
|
||||
|
||||
$rows = $exec->result_array();
|
||||
|
||||
|
||||
$query = $this->db->last_query();
|
||||
$result = array(
|
||||
"total" => $totalPage,
|
||||
"totalFilter" => $totalCount,
|
||||
"records" => $rows
|
||||
"records" => $rows,
|
||||
"db" => $query
|
||||
);
|
||||
|
||||
$this->sys_ok($result);
|
||||
|
||||
@@ -85,6 +85,63 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
}
|
||||
}
|
||||
|
||||
function getInventarisBelumSerah()
|
||||
{
|
||||
try {
|
||||
if (!$this->isLogin) {
|
||||
throw new Exception('invalid token');
|
||||
}
|
||||
|
||||
$para = $this->sys_input;
|
||||
|
||||
$sql = "SELECT
|
||||
rod.ReceiveOrderPoDetailID,
|
||||
rod.ReceiveOrderPoItemID,
|
||||
rod.ReceiveOrderPoItemUnitID,
|
||||
pod.PurchaseOrderDetailPurchaseRequestID AS PurchaseRequestID,
|
||||
mi.M_ItemDesc,
|
||||
rod.ReceiveOrderPoDetailQty AS originalQty,
|
||||
COALESCE(ahd_count.InsertedQty, 0) AS serahQty,
|
||||
rod.ReceiveOrderPoDetailQty - COALESCE(ahd_count.InsertedQty, 0) AS sisaQty,
|
||||
CASE
|
||||
WHEN COALESCE(ahd_count.InsertedQty, 0) = rod.ReceiveOrderPoDetailQty THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS isHandoverDone
|
||||
FROM receive_order_po_detail rod
|
||||
JOIN purchase_order_detail pod ON pod.PurchaseOrderDetailID = rod.ReceiveOrderPoDetailPurchaseOrderDetailID
|
||||
JOIN m_item mi ON mi.M_ItemID = rod.ReceiveOrderPoItemID
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
AssetHandoverDetailReceiveOrderPoDetailID,
|
||||
COUNT(*) AS InsertedQty
|
||||
FROM asset_handover_detail ahd
|
||||
JOIN asset_handover ah ON ahd.AssetHandoverDetailAssetHandoverID = ah.AssetHandoverID
|
||||
AND ah.AssetHandoverIsActive = 'Y'
|
||||
WHERE ahd.AssetHandoverDetailIsActive = 'Y'
|
||||
AND ah.AssetHandoverReceiveOrderPoID = ?
|
||||
GROUP BY AssetHandoverDetailReceiveOrderPoDetailID
|
||||
) ahd_count ON ahd_count.AssetHandoverDetailReceiveOrderPoDetailID = rod.ReceiveOrderPoDetailID
|
||||
WHERE rod.ReceiveOrderPoDetailReceiveOrderPoID = ?
|
||||
AND rod.ReceiveOrderPoDetailIsActive = 'Y'";
|
||||
$que = $this->db->query($sql, [$para['ROID'], $para['ROID']]);
|
||||
if (!$que) {
|
||||
throw new Exception('listing inventory belum yg diserah terima', 1);
|
||||
}
|
||||
$data = $que->result_array();
|
||||
|
||||
$this->sys_ok($data);
|
||||
} catch (Exception $e) {
|
||||
$message = $e->getMessage();
|
||||
$code = $e->getCode();
|
||||
if ($code == 1) {
|
||||
$this->sys_error_db("[Error] " . $message);
|
||||
} else {
|
||||
$this->sys_error("[Error] " . $message);
|
||||
}
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
function getPurchaseOrder()
|
||||
{
|
||||
try {
|
||||
@@ -241,15 +298,13 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
PoItemReceiveQty as originalQty,
|
||||
PoItemReceiveQtyReceived as receivedQty,
|
||||
0 as qty,
|
||||
PoItemReceiveQty - PurchaseOrderSummaryQtyReceived AS qtyRest,
|
||||
PoItemReceiveQty - PoItemReceiveQtyReceived AS qtyRest,
|
||||
PoItemReceivePrice,
|
||||
'N' as alreadySave
|
||||
FROM po_item_receive
|
||||
JOIN purchase_order ON PoItemReceivePurchaseOrderID = PurchaseOrderID
|
||||
AND PurchaseOrderIsActive = 'Y'
|
||||
AND PoItemReceiveIsActive = 'Y'
|
||||
-- AND (PoItemReceiveQty - PoItemReceiveQtyReceived) > 0
|
||||
JOIN purchase_order_summary ON PurchaseOrderSummaryID = PoItemReceivePurchaseOrderSummaryID
|
||||
JOIN warehouse ON PoItemReceiveWarehouseID = WarehouseID
|
||||
AND WarehouseIsActive = 'Y'
|
||||
JOIN m_item ON PoItemReceiveItemID = M_ItemID
|
||||
@@ -467,54 +522,50 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
}
|
||||
|
||||
$sql = "SELECT
|
||||
ReceiveOrderPoNumber,
|
||||
ReceiveOrderPoID,
|
||||
ReceiveOrderPoSupplierID,
|
||||
ReceiveOrderPoIDate,
|
||||
ReceiveOrderShippingCostAmount,
|
||||
ReceiveOrderPoNote,
|
||||
ReceiveOrderPoRefNumber,
|
||||
ReceiveOrderPoDONumber,
|
||||
ReceiveOrderPoIsHandover,
|
||||
SupplierID,
|
||||
SupplierName,
|
||||
WarehouseID,
|
||||
WarehouseCode,
|
||||
CASE
|
||||
WHEN WarehouseType = 'B'
|
||||
THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', M_BranchName)
|
||||
WHEN WarehouseType = 'R'
|
||||
THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', S_RegionalName)
|
||||
ELSE ''
|
||||
END WarehouseName,
|
||||
M_RuanganID,
|
||||
M_RuanganName,
|
||||
M_RuanganCode,
|
||||
ReceiveOrderPoConfirmed,
|
||||
DATE_FORMAT(ReceiveOrderPoConfirmedDate, '%d-%m-%Y %H:%i') AS ReceiveOrderPoConfirmedDate,
|
||||
M_UserUsername AS ReceiveOrderPoConfirmedUserName
|
||||
FROM receive_order_po
|
||||
JOIN warehouse ON ReceiveOrderPoWarehouseID = WarehouseID
|
||||
JOIN supplier ON ReceiveOrderPoSupplierID = SupplierID
|
||||
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'
|
||||
LEFT JOIN m_user ON ReceiveOrderPoConfirmedUserID = M_UserID
|
||||
LEFT JOIN m_ruangan ON M_RuanganM_BranchID = M_BranchID
|
||||
WHERE ReceiveOrderPoIsActive = 'Y'
|
||||
AND (ReceiveOrderPoNumber LIKE ? OR ReceiveOrderPoDONumber LIKE ?)
|
||||
AND ReceiveOrderPoIDate BETWEEN DATE(?) AND DATE(?)
|
||||
AND ReceiveOrderPoS_RegionalID = ?
|
||||
AND ReceiveOrderPoM_BranchCode LIKE ?
|
||||
AND ReceiveOrderPoID NOT IN (
|
||||
SELECT DISTINCT ReceiveOrderPoDetailReceiveOrderPoID
|
||||
FROM receive_order_po_detail
|
||||
JOIN purchase_order ON ReceiveOrderPoDetailPurchaseOrderID = PurchaseOrderID
|
||||
WHERE PurchaseOrderItemCategoryID IN (1, 4)
|
||||
AND ReceiveOrderPoDetailIsActive = 'Y'
|
||||
)
|
||||
ORDER BY ReceiveOrderPoID DESC";
|
||||
ReceiveOrderPoNumber,
|
||||
ReceiveOrderPoID,
|
||||
ReceiveOrderPoSupplierID,
|
||||
ReceiveOrderPoIDate,
|
||||
ReceiveOrderShippingCostAmount,
|
||||
ReceiveOrderPoNote,
|
||||
ReceiveOrderPoRefNumber,
|
||||
ReceiveOrderPoDONumber,
|
||||
ReceiveOrderPoIsHandover,
|
||||
SupplierID,
|
||||
SupplierName,
|
||||
WarehouseID,
|
||||
WarehouseCode,
|
||||
CASE
|
||||
WHEN WarehouseType = 'B'
|
||||
THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', M_BranchName)
|
||||
WHEN WarehouseType = 'R'
|
||||
THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', S_RegionalName)
|
||||
ELSE ''
|
||||
END WarehouseName,
|
||||
ReceiveOrderPoConfirmed,
|
||||
DATE_FORMAT(ReceiveOrderPoConfirmedDate, '%d-%m-%Y %H:%i') AS ReceiveOrderPoConfirmedDate,
|
||||
M_UserUsername AS ReceiveOrderPoConfirmedUserName
|
||||
FROM receive_order_po
|
||||
JOIN warehouse ON ReceiveOrderPoWarehouseID = WarehouseID
|
||||
JOIN supplier ON ReceiveOrderPoSupplierID = SupplierID
|
||||
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'
|
||||
LEFT JOIN m_user ON ReceiveOrderPoConfirmedUserID = M_UserID
|
||||
WHERE ReceiveOrderPoIsActive = 'Y'
|
||||
AND (ReceiveOrderPoNumber LIKE ? OR ReceiveOrderPoDONumber LIKE ?)
|
||||
AND ReceiveOrderPoIDate BETWEEN DATE(?) AND DATE(?)
|
||||
AND ReceiveOrderPoS_RegionalID = ?
|
||||
AND ReceiveOrderPoM_BranchCode LIKE ?
|
||||
AND ReceiveOrderPoID NOT IN (
|
||||
SELECT DISTINCT ReceiveOrderPoDetailReceiveOrderPoID
|
||||
FROM receive_order_po_detail
|
||||
JOIN purchase_order ON ReceiveOrderPoDetailPurchaseOrderID = PurchaseOrderID
|
||||
WHERE PurchaseOrderItemCategoryID IN (1,3,4)
|
||||
AND ReceiveOrderPoDetailIsActive = 'Y'
|
||||
)
|
||||
ORDER BY ReceiveOrderPoID DESC";
|
||||
|
||||
$sqltotal = "SELECT COUNT(*) as total FROM ($sql) as x";
|
||||
$quetotal = $this->db->query($sqltotal, [$search, $search, $startdate, $enddate, $regID, $brnCD]);
|
||||
@@ -542,12 +593,13 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
|
||||
$records = $quedata->result_array();
|
||||
foreach ($records as $key => $value) {
|
||||
$sql = "SELECT ReceiveOrderPoDocumentID,
|
||||
ReceiveOrderPoDocumentDate,
|
||||
ReceiveOrderPoDocumentFile
|
||||
$sql = "SELECT
|
||||
ReceiveOrderPoDocumentID,
|
||||
ReceiveOrderPoDocumentDate,
|
||||
ReceiveOrderPoDocumentFile
|
||||
FROM receive_order_po_document
|
||||
WHERE ReceiveOrderPoDocumentIsActive = 'Y'
|
||||
AND ReceiveOrderPoDocumentReceiveOrderPoID = ?";
|
||||
AND ReceiveOrderPoDocumentReceiveOrderPoID = ?";
|
||||
$qry = $this->db->query($sql, [$value['ReceiveOrderPoID']]);
|
||||
if (!$qry) {
|
||||
$this->sys_error_db("[Error] get document RO");
|
||||
@@ -632,24 +684,19 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
|
||||
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'";
|
||||
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
|
||||
@@ -928,43 +975,6 @@ 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']);
|
||||
|
||||
// # 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'];
|
||||
$sqlInspeksi = "INSERT INTO receive_order_po_inspeksi (
|
||||
@@ -1098,9 +1108,9 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
|
||||
# CHECK IF DETAIL ALREADY IN TABLE RECEIVE #
|
||||
$sql_check_ro = "SELECT ReceiveOrderPoDetailID, ReceiveOrderPoDetailPoItemReceiveID
|
||||
FROM receive_order_po_detail
|
||||
WHERE ReceiveOrderPoDetailReceiveOrderPoID = ?
|
||||
AND ReceiveOrderPoDetailIsActive = 'Y'";
|
||||
FROM receive_order_po_detail
|
||||
WHERE ReceiveOrderPoDetailReceiveOrderPoID = ?
|
||||
AND ReceiveOrderPoDetailIsActive = 'Y'";
|
||||
$que_check_ro = $this->db->query($sql_check_ro, [$param['ReceiveOrderID']]);
|
||||
if (!$que_check_ro) {
|
||||
$this->db->trans_rollback();
|
||||
@@ -1156,12 +1166,12 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
|
||||
# UPDATE po item receive #
|
||||
$sql_up_po_receive = "UPDATE po_item_receive
|
||||
JOIN receive_order_po_detail ON ReceiveOrderPoDetailPoItemReceiveID = PoItemReceiveID
|
||||
AND ReceiveOrderPoDetailID = ?
|
||||
SET
|
||||
PoItemReceiveQtyReceived = (PoItemReceiveQtyReceived - ReceiveOrderPoDetailQty) + ?,
|
||||
PoItemReceiveUpdatedUserID = ?
|
||||
WHERE PoItemReceiveID = ?";
|
||||
JOIN receive_order_po_detail ON ReceiveOrderPoDetailPoItemReceiveID = PoItemReceiveID
|
||||
AND ReceiveOrderPoDetailID = ?
|
||||
SET
|
||||
PoItemReceiveQtyReceived = (PoItemReceiveQtyReceived - ReceiveOrderPoDetailQty) + ?,
|
||||
PoItemReceiveUpdatedUserID = ?
|
||||
WHERE PoItemReceiveID = ?";
|
||||
$que_up_po_receive = $this->db->query($sql_up_po_receive, [
|
||||
$obj['ReceiveOrderPoDetailID'],
|
||||
$obj['qty'],
|
||||
@@ -1191,20 +1201,20 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
}
|
||||
|
||||
$sql_update_detail = "UPDATE receive_order_po_detail SET
|
||||
ReceiveOrderPoDetailReceiveOrderPoID = ?,
|
||||
ReceiveOrderPoDetailPurchaseOrderID = ?,
|
||||
ReceiveOrderPoDetailPurchaseOrderSummaryID = ?,
|
||||
ReceiveOrderPoDetailPurchaseOrderDetailID = ?,
|
||||
ReceiveOrderPoDetailPoItemReceiveID = ?,
|
||||
ReceiveOrderPoDetailQty = ?,
|
||||
ReceiveOrderPoDetailPrice = ?,
|
||||
ReceiveOrderPoDetailTotal = ?,
|
||||
ReceiveOrderPoItemID = ?,
|
||||
ReceiveOrderPoItemUnitID = ?,
|
||||
ReceiveOrderPoDetailBatchNo = ?,
|
||||
ReceiveOrderPoDetailEd = ?,
|
||||
ReceiveOrderPoDetailBatchList = ?
|
||||
WHERE ReceiveOrderPoDetailID = ?";
|
||||
ReceiveOrderPoDetailReceiveOrderPoID = ?,
|
||||
ReceiveOrderPoDetailPurchaseOrderID = ?,
|
||||
ReceiveOrderPoDetailPurchaseOrderSummaryID = ?,
|
||||
ReceiveOrderPoDetailPurchaseOrderDetailID = ?,
|
||||
ReceiveOrderPoDetailPoItemReceiveID = ?,
|
||||
ReceiveOrderPoDetailQty = ?,
|
||||
ReceiveOrderPoDetailPrice = ?,
|
||||
ReceiveOrderPoDetailTotal = ?,
|
||||
ReceiveOrderPoItemID = ?,
|
||||
ReceiveOrderPoItemUnitID = ?,
|
||||
ReceiveOrderPoDetailBatchNo = ?,
|
||||
ReceiveOrderPoDetailEd = ?,
|
||||
ReceiveOrderPoDetailBatchList = ?
|
||||
WHERE ReceiveOrderPoDetailID = ?";
|
||||
$que_update_detail = $this->db->query($sql_update_detail, [
|
||||
$param['ReceiveOrderID'],
|
||||
$obj['PoItemReceivePurchaseOrderID'],
|
||||
@@ -1227,51 +1237,6 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
if (intval($obj['qty']) > 0) {
|
||||
$qty = intval($obj['qty']);
|
||||
for ($i = 0; $i < $qty; $i++) {
|
||||
|
||||
# INSERT INTO t_barcode_barang #
|
||||
$barcode_item = $obj['barcode_item'];
|
||||
|
||||
foreach ($barcode_item as $key => $barcode) {
|
||||
# generate nomor barcode #
|
||||
$noBarcode = $this->generateNoBarcode($user, $param['lokasiID'], 'BNP', $obj['M_ItemID']);
|
||||
|
||||
$sqlInsertBarcode = "UPDATE t_barcode_barang SET
|
||||
T_BarcodeBarangReceiveOrderPoID = ?,
|
||||
T_BarcodeBarangReceiveOrderPoDetailID = ?,
|
||||
T_BarcodeBarangRefType = 'PO',
|
||||
T_BarcodeBarangM_ItemID = ?,
|
||||
T_BarcodeBarangItemUnitID = ?,
|
||||
T_BarcodeBarangNumber = ?,
|
||||
T_BarcodeBarangM_RuanganID = ?,
|
||||
T_BarcodeBarangM_BranchID = ?,
|
||||
T_BarcodeBarangIsActive = 'Y',
|
||||
T_BarcodeBarangUserID = ?,
|
||||
T_BarcodeBarangLastUpdated = NOW()
|
||||
WHERE T_BarcodeBarangID = ?";
|
||||
$qryInsertBarcode = $this->db->query($sqlInsertBarcode, array(
|
||||
$param['ReceiveOrderID'],
|
||||
$obj['ReceiveOrderPoDetailID'],
|
||||
$obj['M_ItemID'],
|
||||
$obj['ItemUnitID'],
|
||||
$noBarcode,
|
||||
$param['lokasiID'],
|
||||
$user['M_BranchID'],
|
||||
$user['M_UserID'],
|
||||
$barcode['T_BarcodeBarangID']
|
||||
));
|
||||
if (!$qryInsertBarcode) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("[Error] update data barcode item", $this->db);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# update form inspeksi item #
|
||||
$inspeksi = $obj['inspeksi_item'];
|
||||
$sql_inspeksi = "UPDATE receive_order_po_inspeksi SET
|
||||
@@ -1408,43 +1373,6 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
}
|
||||
$ro_detail_ID = $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']);
|
||||
|
||||
# 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(
|
||||
$param['ReceiveOrderID'],
|
||||
$ro_detail_ID,
|
||||
$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 form inspeksi item #
|
||||
$inspekitem = $obj['inspeksi_item'];
|
||||
$sql_insert_inspeksi = " INSERT INTO receive_order_po_inspeksi (
|
||||
@@ -2736,10 +2664,9 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
$sql_get_prid = "SELECT DISTINCT
|
||||
pod.PurchaseOrderDetailPurchaseRequestID AS PurchaseRequestID
|
||||
FROM receive_order_po_detail ropd
|
||||
JOIN purchase_order_detail pod
|
||||
ON pod.PurchaseOrderDetailID = ropd.ReceiveOrderPoDetailPurchaseOrderDetailID
|
||||
JOIN purchase_order_detail pod ON pod.PurchaseOrderDetailID = ropd.ReceiveOrderPoDetailPurchaseOrderDetailID
|
||||
WHERE ropd.ReceiveOrderPoDetailReceiveOrderPoID = ?
|
||||
AND pod.PurchaseOrderDetailPurchaseRequestID IS NOT NULL";
|
||||
AND pod.PurchaseOrderDetailPurchaseRequestID IS NOT NULL";
|
||||
$que_get_prid = $this->db->query($sql_get_prid, [$param['receiveOrderPoID']]);
|
||||
if (!$que_get_prid) {
|
||||
$this->db->trans_rollback();
|
||||
@@ -2748,86 +2675,152 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
}
|
||||
$data_prid = $que_get_prid->row_array();
|
||||
|
||||
# insert handover #
|
||||
$sql_insert_handover = "INSERT INTO asset_handover(
|
||||
AssetHandoverPurchaseRequestID,
|
||||
AssetHandoverReceiveOrderPoID,
|
||||
AssetHandoverDate,
|
||||
AssetHandoverM_RuanganID,
|
||||
AssetHandoverToUserID,
|
||||
AssetHandoverIsActive,
|
||||
AssetHandoverCreated,
|
||||
AssetHandoverUserID) VALUES(?,?,NOW(),?,?,'Y',NOW(),?)";
|
||||
$qry_insert_handover = $this->db->query($sql_insert_handover, [
|
||||
$data_prid['PurchaseRequestID'],
|
||||
$param['receiveOrderPoID'],
|
||||
$param['ruanganID'],
|
||||
$param['staffID'],
|
||||
$user['M_UserID']
|
||||
]);
|
||||
if (!$qry_insert_handover) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("[Error] insert asset handover");
|
||||
exit;
|
||||
}
|
||||
|
||||
$handoverID = $this->db->insert_id();
|
||||
|
||||
# ambil data barcode #
|
||||
$sql_get_barcode = "SELECT
|
||||
ropd.ReceiveOrderPoDetailID,
|
||||
ropd.ReceiveOrderPoItemID AS M_ItemID,
|
||||
bb.T_BarcodeBarangID
|
||||
FROM receive_order_po_detail ropd
|
||||
JOIN t_barcode_barang bb
|
||||
ON bb.T_BarcodeBarangReceiveOrderPoDetailID = ropd.ReceiveOrderPoDetailID
|
||||
AND bb.T_BarcodeBarangIsActive = 'Y'
|
||||
WHERE ropd.ReceiveOrderPoDetailReceiveOrderPoID = ?";
|
||||
$que_get_barcode = $this->db->query($sql_get_barcode, [$param['receiveOrderPoID']]);
|
||||
if (!$que_get_barcode) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("[Error] get barcode barang from RO Detail");
|
||||
exit;
|
||||
}
|
||||
|
||||
$barcodes = $que_get_barcode->result_array();
|
||||
|
||||
# insert handover detail #
|
||||
foreach ($barcodes as $key => $value) {
|
||||
$sql_insert_handover_detail = "INSERT INTO asset_handover_detail(
|
||||
AssetHandoverDetailAssetHandoverID,
|
||||
AssetHandoverDetailT_BarcodeBarangID,
|
||||
AssetHandoverDetailM_ItemID,
|
||||
AssetHandoverDetailIsActive,
|
||||
AssetHandoverDetailCreated,
|
||||
AssetHandoverDetailUserID) VALUES(?,?,?,'Y',NOW(),?)";
|
||||
$que_insert_handover_detail = $this->db->query($sql_insert_handover_detail, [
|
||||
$handoverID,
|
||||
$value['T_BarcodeBarangID'],
|
||||
$value['M_ItemID'],
|
||||
foreach ($param['item'] as $key => $item) {
|
||||
# insert handover #
|
||||
$sql_insert_handover = "INSERT INTO asset_handover(
|
||||
AssetHandoverPurchaseRequestID,
|
||||
AssetHandoverReceiveOrderPoID,
|
||||
AssetHandoverDate,
|
||||
AssetHandoverM_RuanganID,
|
||||
AssetHandoverToUserID,
|
||||
AssetHandoverIsActive,
|
||||
AssetHandoverCreated,
|
||||
AssetHandoverUserID
|
||||
) VALUES(?,?,NOW(),?,?,'Y',NOW(),?)";
|
||||
$qry_insert_handover = $this->db->query($sql_insert_handover, [
|
||||
$item['PurchaseRequestID'],
|
||||
$param['receiveOrderPoID'],
|
||||
$param['ruanganID'],
|
||||
$param['staffID'],
|
||||
$user['M_UserID']
|
||||
]);
|
||||
if (!$que_insert_handover_detail) {
|
||||
if (!$qry_insert_handover) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("[Error] insert asset handover detail");
|
||||
$this->sys_error_db("[Error] insert asset handover");
|
||||
exit;
|
||||
}
|
||||
$handoverID = $this->db->insert_id();
|
||||
|
||||
$qty_invnt = intval($item['serahQty']);
|
||||
for ($i = 0; $i < $qty_invnt; $i++) {
|
||||
|
||||
# generate barcode number each inventory item #
|
||||
$noBarcode = $this->generateNoBarcode($user, $param['ruanganID'], 'BNP', $item['ReceiveOrderPoItemID']);
|
||||
$sql_insert_barcode = "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())";
|
||||
$que_insert_barcode = $this->db->query($sql_insert_barcode, [
|
||||
$param['receiveOrderPoID'],
|
||||
$item['ReceiveOrderPoDetailID'],
|
||||
$item['ReceiveOrderPoItemID'],
|
||||
$item['ReceiveOrderPoItemUnitID'],
|
||||
$noBarcode,
|
||||
$param['ruanganID'],
|
||||
$user['M_BranchID'],
|
||||
$user['M_UserID']
|
||||
]);
|
||||
if (!$que_insert_barcode) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("[Error] insert no barcode invetaris");
|
||||
exit;
|
||||
}
|
||||
|
||||
$barcodeID = $this->db->insert_id();
|
||||
|
||||
# insert each inventory handover detail #
|
||||
$sql_insert_handover_detail = "INSERT INTO asset_handover_detail(
|
||||
AssetHandoverDetailAssetHandoverID,
|
||||
AssetHandoverDetailReceiveOrderPoDetailID,
|
||||
AssetHandoverDetailT_BarcodeBarangID,
|
||||
AssetHandoverDetailM_ItemID,
|
||||
AssetHandoverDetailIsActive,
|
||||
AssetHandoverDetailCreated,
|
||||
AssetHandoverDetailUserID
|
||||
) VALUES(?,?,?,?,'Y',NOW(),?)";
|
||||
$que_insert_handover_detail = $this->db->query($sql_insert_handover_detail, [
|
||||
$handoverID,
|
||||
$item['ReceiveOrderPoDetailID'],
|
||||
$barcodeID,
|
||||
$item['ReceiveOrderPoItemID'],
|
||||
$user['M_UserID']
|
||||
]);
|
||||
if (!$que_insert_handover_detail) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("[Error] insert asset handover detail");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# check if all received inventaris are all handed over #
|
||||
$sql_cek_allhanded = "SELECT
|
||||
rod.ReceiveOrderPoDetailID,
|
||||
CASE
|
||||
WHEN COALESCE(ahd_count.InsertedQty, 0) = rod.ReceiveOrderPoDetailQty THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS isHandoverDone
|
||||
FROM receive_order_po_detail rod
|
||||
JOIN m_item mi ON mi.M_ItemID = rod.ReceiveOrderPoItemID
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
AssetHandoverDetailReceiveOrderPoDetailID,
|
||||
COUNT(*) AS InsertedQty
|
||||
FROM asset_handover_detail ahd
|
||||
JOIN asset_handover ah
|
||||
ON ahd.AssetHandoverDetailAssetHandoverID = ah.AssetHandoverID
|
||||
AND ah.AssetHandoverIsActive = 'Y'
|
||||
WHERE ahd.AssetHandoverDetailIsActive = 'Y'
|
||||
AND ah.AssetHandoverReceiveOrderPoID = ?
|
||||
GROUP BY AssetHandoverDetailReceiveOrderPoDetailID
|
||||
) ahd_count
|
||||
ON ahd_count.AssetHandoverDetailReceiveOrderPoDetailID = rod.ReceiveOrderPoDetailID
|
||||
WHERE rod.ReceiveOrderPoDetailReceiveOrderPoID = ?
|
||||
AND rod.ReceiveOrderPoDetailIsActive = 'Y'";
|
||||
$que_cek_allhanded = $this->db->query($sql_cek_allhanded, [
|
||||
$param['receiveOrderPoID'],
|
||||
$param['receiveOrderPoID']
|
||||
]);
|
||||
if (!$que_cek_allhanded) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("[Error] cek data all handed over");
|
||||
exit;
|
||||
}
|
||||
$cek_allhanded = $que_cek_allhanded->result_array();
|
||||
|
||||
$isAllHanded = count($cek_allhanded) > 0;
|
||||
foreach ($cek_allhanded as $key => $value) {
|
||||
if ($value['isHandoverDone'] != 'Y') {
|
||||
$isAllHanded = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
# update status handover di receive order po #
|
||||
$sql_update_ro = "UPDATE receive_order_po SET
|
||||
ReceiveOrderPoIsHandover = 'Y',
|
||||
ReceiveOrderPoLastUpdated = NOW(),
|
||||
ReceiveOrderPoLastUpdatedUserID = ?
|
||||
WHERE ReceiveOrderPoID = ?";
|
||||
$que_update_ro = $this->db->query($sql_update_ro, [
|
||||
$user['M_UserID'],
|
||||
$param['receiveOrderPoID']
|
||||
]);
|
||||
if (!$que_update_ro) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("[Error] update status handover di RO");
|
||||
exit;
|
||||
if ($isAllHanded) {
|
||||
$sql_update_ro = "UPDATE receive_order_po SET
|
||||
ReceiveOrderPoIsHandover = 'Y',
|
||||
ReceiveOrderPoLastUpdated = NOW(),
|
||||
ReceiveOrderPoLastUpdatedUserID = ?
|
||||
WHERE ReceiveOrderPoID = ?";
|
||||
$que_update_ro = $this->db->query($sql_update_ro, [
|
||||
$user['M_UserID'],
|
||||
$param['receiveOrderPoID']
|
||||
]);
|
||||
if (!$que_update_ro) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("[Error] update status handover di RO");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
$this->db->trans_commit();
|
||||
@@ -2928,18 +2921,18 @@ class ReceiveItemPoInventaris extends MY_Controller
|
||||
$user = $this->sys_user;
|
||||
|
||||
$sql = "SELECT
|
||||
T_BarcodeBarangID as id,
|
||||
T_BarcodeBarangNumber,
|
||||
M_ItemDesc,
|
||||
M_BranchName,
|
||||
M_RuanganName,
|
||||
'N' as chex
|
||||
T_BarcodeBarangID as id,
|
||||
T_BarcodeBarangNumber,
|
||||
M_ItemDesc,
|
||||
M_BranchName,
|
||||
M_RuanganName,
|
||||
'N' as chex
|
||||
FROM t_barcode_barang
|
||||
JOIN m_item ON M_ItemID = T_BarcodeBarangM_ItemID
|
||||
JOIN m_branch ON M_BranchID = T_BarcodeBarangM_BranchID
|
||||
LEFT JOIN m_ruangan ON M_RuanganID = T_BarcodeBarangM_RuanganID
|
||||
WHERE T_BarcodeBarangReceiveOrderPoID = ?
|
||||
AND T_BarcodeBarangIsActive = 'Y'
|
||||
AND T_BarcodeBarangIsActive = 'Y'
|
||||
ORDER BY T_BarcodeBarangID";
|
||||
$que = $this->db->query($sql, [$param['ROID']]);
|
||||
if (!$que) {
|
||||
|
||||
Reference in New Issue
Block a user