feature: serah terima & print barcode
This commit is contained in:
@@ -1635,55 +1635,12 @@ class Fakturv4 extends MY_Controller
|
|||||||
0,
|
0,
|
||||||
$kredit
|
$kredit
|
||||||
);
|
);
|
||||||
if (!$status) {
|
if (!$status['status']) {
|
||||||
$this->sys_error_db($status['msg']);
|
$this->sys_error_db($status['msg']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
} else if ($item['M_ItemItem_CategoryID'] == '2') {
|
} else if ($item['M_ItemItem_CategoryID'] == '2') {
|
||||||
if (empty($item['M_ItemM_InventarisGolID'])) {
|
$this->InsertJurnalTxInventaris($jurnalID, $item, $inv, $user['M_UserID']);
|
||||||
$this->db->trans_rollback();
|
|
||||||
$this->sys_error_db("[Error] item golongan inventaris belum ditentukan");
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
$sql_coainv = "SELECT
|
|
||||||
CoaMapInventarisHutangCoaID,
|
|
||||||
CoaMapInventarisHutangCoaNo,
|
|
||||||
CoaMapInventarisHutangCoaDesc
|
|
||||||
FROM coa_map_inventaris
|
|
||||||
WHERE CoaMapInventarisM_InventarisGolID = ?
|
|
||||||
AND CoaMapInventarisIsActive = 'Y'";
|
|
||||||
$que_coainv = $this->db->query($sql_coainv, [$item['M_ItemM_InventarisGolID']]);
|
|
||||||
if (!$que_coainv) {
|
|
||||||
$this->db->trans_rollback();
|
|
||||||
$this->sys_error_db("[Error] failed to get coa inventaris gol");
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
$item_coainv = $que_coainv->row_array();
|
|
||||||
if (empty($item_coainv)) {
|
|
||||||
$this->db->trans_rollback();
|
|
||||||
$this->sys_error_db("[Error] item inventaris coa not found");
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
$price = (doubleval($inv['SupplierInvoiceDetailTotal']) - doubleval($inv['SupplierInvoiceDetailDiscountPoProrata']));
|
|
||||||
// $taxPPH = doubleval($inv['SupplierInvoiceTaxPercentPph']) * $price / 100;
|
|
||||||
$taxPPN = doubleval($inv['SupplierInvoiceTaxPercentPpn']) * $price / 100;
|
|
||||||
|
|
||||||
$kredit = round($price + $taxPPN, 2);
|
|
||||||
|
|
||||||
$status = $this->InsertJurnalTx(
|
|
||||||
$jurnalID,
|
|
||||||
$item_coainv['CoaMapInventarisHutangCoaID'],
|
|
||||||
$item_coainv['CoaMapInventarisHutangCoaDesc'],
|
|
||||||
$user['M_UserID'],
|
|
||||||
0,
|
|
||||||
$kredit
|
|
||||||
);
|
|
||||||
if (!$status) {
|
|
||||||
$this->sys_error_db($status['msg']);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
} else if ($item['M_ItemItem_CategoryID'] == '3') {
|
} else if ($item['M_ItemItem_CategoryID'] == '3') {
|
||||||
$this->InsertJurnalTxAsset($jurnalID, $item['M_ItemID'], $inv, $user['M_UserID']);
|
$this->InsertJurnalTxAsset($jurnalID, $item['M_ItemID'], $inv, $user['M_UserID']);
|
||||||
} else if ($item['M_ItemItem_CategoryID'] == '4') {
|
} else if ($item['M_ItemItem_CategoryID'] == '4') {
|
||||||
@@ -1720,6 +1677,71 @@ class Fakturv4 extends MY_Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function InsertJurnalTxInventaris($jurnalID, $items, $invoice, $userid)
|
||||||
|
{
|
||||||
|
if (empty($items['M_ItemM_InventarisGolID'])) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] item golongan inventaris belum ditentukan");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql_coa = "SELECT
|
||||||
|
COALESCE(
|
||||||
|
i.M_InventarisItemCoaMappingID,
|
||||||
|
g.M_InventarisCoaMappingID
|
||||||
|
) AS MappingID,
|
||||||
|
COALESCE(
|
||||||
|
i.M_InventarisItemCoaMappingCoaHutangID,
|
||||||
|
g.M_InventarisCoaMappingCoaHutangID
|
||||||
|
) AS CoaHutangID,
|
||||||
|
c.coaDescription AS CoaHutangDesc
|
||||||
|
FROM (SELECT 1) AS inventory
|
||||||
|
LEFT JOIN m_inventaris_item_coa_mapping i
|
||||||
|
ON i.M_InventarisItemCoaMappingM_ItemID = ?
|
||||||
|
AND i.M_InventarisItemCoaMappingIsActive = 'Y'
|
||||||
|
LEFT JOIN m_inventaris_coa_mapping g
|
||||||
|
ON g.M_InventarisCoaMappingM_InventarisGolID = ?
|
||||||
|
AND g.M_InventarisCoaMappingIsActive = 'Y'
|
||||||
|
LEFT JOIN coa c
|
||||||
|
ON c.coaID = COALESCE(i.M_InventarisItemCoaMappingCoaHutangID, g.M_InventarisCoaMappingCoaHutangID)
|
||||||
|
AND c.coaIsActive = 'Y'";
|
||||||
|
$que_coa = $this->db->query($sql_coa, [
|
||||||
|
$items['M_ItemID'],
|
||||||
|
$items['M_ItemM_InventarisGolID'],
|
||||||
|
]);
|
||||||
|
if (!$que_coa) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed query coa hutang inventaris");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$item_coainv = $que_coa->row_array();
|
||||||
|
if (empty($item_coainv['CoaHutangID'])) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] coa ivnentory item {$items['M_ItemDesc']} not found");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$invtotal = doubleval($invoice['SupplierInvoiceDetailTotal']);
|
||||||
|
$disprorata = doubleval($invoice['SupplierInvoiceDetailDiscountPoProrata']);
|
||||||
|
$price = $invtotal - $disprorata;
|
||||||
|
$taxPPN = doubleval($invoice['SupplierInvoiceTaxPercentPpn']) * $price / 100;
|
||||||
|
$kredit = round($price + $taxPPN, 2);
|
||||||
|
|
||||||
|
$insert = $this->InsertJurnalTx(
|
||||||
|
$jurnalID,
|
||||||
|
$item_coainv['CoaHutangID'],
|
||||||
|
$item_coainv['CoaHutangDesc'],
|
||||||
|
$userid,
|
||||||
|
0,
|
||||||
|
$kredit
|
||||||
|
);
|
||||||
|
if (!$insert['status']) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db($insert['msg']);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private function InsertJurnalTxJasa($jurnalID, $itemid, $invoice, $userid)
|
private function InsertJurnalTxJasa($jurnalID, $itemid, $invoice, $userid)
|
||||||
{
|
{
|
||||||
$sql_coa = "SELECT
|
$sql_coa = "SELECT
|
||||||
@@ -1759,7 +1781,7 @@ class Fakturv4 extends MY_Controller
|
|||||||
0,
|
0,
|
||||||
$kredit
|
$kredit
|
||||||
);
|
);
|
||||||
if (!$insert) {
|
if (!$insert['status']) {
|
||||||
$this->db->trans_rollback();
|
$this->db->trans_rollback();
|
||||||
$this->sys_error_db($insert['msg']);
|
$this->sys_error_db($insert['msg']);
|
||||||
exit;
|
exit;
|
||||||
@@ -1804,7 +1826,7 @@ class Fakturv4 extends MY_Controller
|
|||||||
0,
|
0,
|
||||||
$finalValue
|
$finalValue
|
||||||
);
|
);
|
||||||
if (!$insert) {
|
if (!$insert['status']) {
|
||||||
$this->db->trans_rollback();
|
$this->db->trans_rollback();
|
||||||
$this->sys_error_db($insert['msg']);
|
$this->sys_error_db($insert['msg']);
|
||||||
exit;
|
exit;
|
||||||
|
|||||||
@@ -351,7 +351,8 @@ class ReceiveItemPOAsset extends MY_Controller
|
|||||||
PurchaseOrderID,
|
PurchaseOrderID,
|
||||||
PurchaseOrderNumber,
|
PurchaseOrderNumber,
|
||||||
PurchaseOrderAssetContractID,
|
PurchaseOrderAssetContractID,
|
||||||
PurchaseOrderAssetContractName
|
PurchaseOrderAssetContractName,
|
||||||
|
ReceiveOrderPoIsHandover
|
||||||
FROM receive_order_po
|
FROM receive_order_po
|
||||||
JOIN receive_order_po_detail
|
JOIN receive_order_po_detail
|
||||||
ON ReceiveOrderPoDetailReceiveOrderPoID = ReceiveOrderPoID
|
ON ReceiveOrderPoDetailReceiveOrderPoID = ReceiveOrderPoID
|
||||||
@@ -847,7 +848,7 @@ class ReceiveItemPOAsset extends MY_Controller
|
|||||||
if (intval($obj['qty']) > intval($cekReceived['PoItemReceiveQty'])) {
|
if (intval($obj['qty']) > intval($cekReceived['PoItemReceiveQty'])) {
|
||||||
$this->db->trans_rollback();
|
$this->db->trans_rollback();
|
||||||
throw new Exception(
|
throw new Exception(
|
||||||
"jumlah item {$obj['M_ItemDesc']} yang tesedia sudah berubah, silakan pilih ulang item",
|
"jumlah item {$obj['M_ItemDesc']} yang tesedia sudah berubah, silakan pilih ulang item"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1288,7 +1289,10 @@ class ReceiveItemPOAsset extends MY_Controller
|
|||||||
}
|
}
|
||||||
$periode_jurnal = $que_periode->row_array()['periodeID'];
|
$periode_jurnal = $que_periode->row_array()['periodeID'];
|
||||||
|
|
||||||
$sql_typejurnal = "SELECT JurnalTypeID FROM jurnal_type WHERE JurnalTypeCode = ? AND JurnalTypeIsActive = 'Y'";
|
$sql_typejurnal = "SELECT JurnalTypeID
|
||||||
|
FROM jurnal_type
|
||||||
|
WHERE JurnalTypeCode = ?
|
||||||
|
AND JurnalTypeIsActive = 'Y'";
|
||||||
$que_typejurnal = $this->db->query($sql_typejurnal, ['AUTOGOODRECEIVE']);
|
$que_typejurnal = $this->db->query($sql_typejurnal, ['AUTOGOODRECEIVE']);
|
||||||
if (!$que_typejurnal) {
|
if (!$que_typejurnal) {
|
||||||
$this->db->trans_rollback();
|
$this->db->trans_rollback();
|
||||||
@@ -1451,12 +1455,12 @@ class ReceiveItemPOAsset extends MY_Controller
|
|||||||
if (doubleval($elem['DiscPOPercent']) != 0.00) {
|
if (doubleval($elem['DiscPOPercent']) != 0.00) {
|
||||||
$diskon_po = (doubleval($data_po['totalAllPricePO']) * doubleval($elem['DiscPOPercent'])) / 100;
|
$diskon_po = (doubleval($data_po['totalAllPricePO']) * doubleval($elem['DiscPOPercent'])) / 100;
|
||||||
}
|
}
|
||||||
$diskon_proratapo =
|
|
||||||
($diskon_po * doubleval($elem['TotalAllPO'])) / doubleval($data_po['totalAllPricePO']);
|
$besarDiskonPO = ($diskon_po * doubleval($elem['TotalAllPO']));
|
||||||
$diskon_prorata_item = round(
|
$diskon_proratapo = $besarDiskonPO / doubleval($data_po['totalAllPricePO']);
|
||||||
(intval($elem['ReceiveOrderPoDetailQty']) / intval($elem['QtyAllPO'])) * $diskon_proratapo,
|
|
||||||
2,
|
$ratioQty = (intval($elem['ReceiveOrderPoDetailQty']) / intval($elem['QtyAllPO']));
|
||||||
);
|
$diskon_prorata_item = round($ratioQty * $diskon_proratapo,2);
|
||||||
|
|
||||||
$total_diskonpo = round($total_diskonpo + $diskon_prorata_item, 2);
|
$total_diskonpo = round($total_diskonpo + $diskon_prorata_item, 2);
|
||||||
$input_diskon = [$diskon, $diskon_prorata_item];
|
$input_diskon = [$diskon, $diskon_prorata_item];
|
||||||
@@ -1912,7 +1916,7 @@ class ReceiveItemPOAsset extends MY_Controller
|
|||||||
$user,
|
$user,
|
||||||
$param['ruanganID'],
|
$param['ruanganID'],
|
||||||
'BNP',
|
'BNP',
|
||||||
$item['ReceiveOrderPoItemID'],
|
$item['ReceiveOrderPoItemID']
|
||||||
);
|
);
|
||||||
$sql_insert_barcode = "INSERT INTO t_barcode_barang(
|
$sql_insert_barcode = "INSERT INTO t_barcode_barang(
|
||||||
T_BarcodeBarangReceiveOrderPoID,
|
T_BarcodeBarangReceiveOrderPoID,
|
||||||
|
|||||||
Reference in New Issue
Block a user