be crud m_ruangan

This commit is contained in:
2026-06-12 16:58:24 +07:00
parent 86d147945b
commit f3dba31445
3 changed files with 452 additions and 151 deletions

View File

@@ -536,7 +536,7 @@ class Mediajurnalauto extends MY_Controller
$this->db->trans_start();
}
$sql = "SELECT M_BranchCode, M_BranchIPAddress, M_BranchName
$sql = "SELECT M_BranchCode, M_BranchIPAddress, M_BranchName
FROM m_branch
WHERE M_BranchIsActive = 'Y'
AND M_BranchS_RegionalID = ? ORDER BY M_BranchCode ASC";
@@ -600,7 +600,7 @@ class Mediajurnalauto extends MY_Controller
$this->db->trans_start();
}
$sql = "SELECT M_BranchCode, M_BranchIPAddress, M_BranchName
$sql = "SELECT M_BranchCode, M_BranchIPAddress, M_BranchName
FROM m_branch
WHERE M_BranchIsActive = 'Y'
AND M_BranchCode = ? ORDER BY M_BranchCode ASC";
@@ -754,10 +754,10 @@ class Mediajurnalauto extends MY_Controller
public function injectMapRkCabang()
{
$sql = "INSERT INTO map_rk_cabang
(Map_RkCabang_Rk_TypeID, Map_RkCabang_BranchCode, Map_RkCabang_SRegionalID,
$sql = "INSERT INTO map_rk_cabang
(Map_RkCabang_Rk_TypeID, Map_RkCabang_BranchCode, Map_RkCabang_SRegionalID,
Map_RkCabang_CoaID, Map_RkCabang_CoaAccountNo, Map_RkCabang_CoaDescription)
VALUES
VALUES
('RUJ', 'BA', 8, 674, '3160400001', 'R/K CAB. MATRAMAN - RUJUKAN'),
('KEU', 'BA', 8, 675, '3160400002', 'R/K CAB. MATRAMAN - KEUANGAN'),
('STOK', 'BA', 8, 677, '3160400004', 'R/K CAB. MATRAMAN - PERSEDIAAN'),
@@ -773,7 +773,7 @@ class Mediajurnalauto extends MY_Controller
";
}
/*
/*
* ------------------------*
* PRIVATE HELPER FUNCTION *
* ------------------------*
@@ -781,8 +781,8 @@ class Mediajurnalauto extends MY_Controller
private function getIpBranch($branchCode)
{
$sql = "SELECT M_BranchName, M_BranchIPAddress
FROM m_branch
$sql = "SELECT M_BranchName, M_BranchIPAddress
FROM m_branch
WHERE M_BranchIsActive = 'Y' AND M_BranchCode = ? LIMIT 1";
$qry = $this->db->query($sql, [$branchCode]);
if (!$qry) {
@@ -834,19 +834,19 @@ class Mediajurnalauto extends MY_Controller
}
/**
* Jika totalDebit != totalKredit dan selisih < Rp 500,
* Jika totalDebit != totalKredit dan selisih < Rp 500,
* maka masukkan selisih ke CoA pembulatan: CoaAccNo 1141100002
* Masukkan sebagai debit jika debit < kredit
* Masukkan sebagai kredit jika debit > kredit
*/
private function handleRoundingDifference($balances, $details, $errMap)
private function handleRoundingDifference($balances, $details, $errMap)
{
$debit = round($balances['totalDebit'], 2);
$kredit = round($balances['totalKredit'], 2);
if ($debit != $kredit) {
// Kalau selisih < 500, masuk ke pembulatan
if (abs($debit - $kredit) < 500){
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
WHERE coaAccountNo = '1141100002' AND coaIsActive = 'Y'";
$qry = $this->db->query($sql);
if ($qry->row() == null) {
@@ -882,8 +882,8 @@ class Mediajurnalauto extends MY_Controller
"err_type" => "Mapping",
"err_msg" => "Selisih Debit dan Kredit lebih dari Rp 500. {$lebihBesar} lebih besar dengan selisih Rp {$selisih} "
];
}
}
}
}
// Rounding Total Debit Kredit and Balances
$balances['totalDebit'] = round($balances['totalDebit'], 2);
@@ -911,8 +911,8 @@ class Mediajurnalauto extends MY_Controller
// ? Apakah perlu cek $r->NatBankIsEDC = 'N' ?
if ($r->M_BankAccountNo != "" && $r->M_BankAccountNo != "EDC") {
$sql = "SELECT MapBank_CoaID, MapBank_CoaAccountNo, MapBank_CoaDescription
FROM map_bank_coa
WHERE MapBank_BankAccountNo LIKE CONCAT('%',$r->M_BankAccountNo, '%')
FROM map_bank_coa
WHERE MapBank_BankAccountNo LIKE CONCAT('%',$r->M_BankAccountNo, '%')
AND MapBank_IsActive = 'Y'
AND MapBank_BranchCode = ?
AND MapBank_NatBankIsEDC = 'N'
@@ -953,7 +953,7 @@ class Mediajurnalauto extends MY_Controller
if ($balances['totalDebit'] > 0 && count($details) > 0) {
$sql = "SELECT Map_RkCabang_CoaID, Map_RkCabang_CoaAccountNo, Map_RkCabang_CoaDescription
FROM map_rk_cabang
WHERE Map_RkCabang_Rk_TypeID = 3
WHERE Map_RkCabang_Rk_TypeID = 3
AND Map_RkCabang_BranchCode = ? AND Map_RkCabang_IsActive = 'Y' LIMIT 1";
$qry = $this->db->query($sql, [$branchCode]);
if ($qry->row() == null) {
@@ -1006,7 +1006,7 @@ class Mediajurnalauto extends MY_Controller
$sql = "SELECT MapBank_NatBankIsEDC,
MapBank_EDC_CoaID, MapBank_EDC_CoaAccountNo,MapBank_EDC_CoaDescription,
MapBank_CoaID, MapBank_CoaAccountNo, MapBank_CoaDescription
FROM map_bank_coa
FROM map_bank_coa
WHERE MapBank_BankAccountNo LIKE CONCAT('%',?, '%')
AND MapBank_NatBankID = ?
AND MapBank_BranchCode = ?
@@ -1042,11 +1042,11 @@ class Mediajurnalauto extends MY_Controller
// Jika Non EDC, pakai mapping R/K Regional dan bawa AddOn jurnalRegNo
else {
$sql = "SELECT Map_RkCabang_CoaID, Map_RkCabang_CoaAccountNo, Map_RkCabang_CoaDescription
FROM m_branch
FROM m_branch
JOIN map_rk_cabang ON Map_RkCabang_SRegionalID = M_BranchS_RegionalID
WHERE M_BranchCode = ?
AND Map_RkCabang_Rk_TypeID = 3
AND (Map_RkCabang_BranchCode = '' OR Map_RkCabang_BranchCode IS NULL)
AND (Map_RkCabang_BranchCode = '' OR Map_RkCabang_BranchCode IS NULL)
LIMIT 1";
$qry = $this->db->query($sql, [$raw->BranchCode]);
if ($qry->row() == null) {
@@ -1108,7 +1108,7 @@ class Mediajurnalauto extends MY_Controller
// Handle Voucher. Masuk Debit. Coa B. Voucher Discount
else if (stripos($raw->Ref, 'voucher')!== false) {
$raw->coaAccNo = "5210000016";
$sql = "SELECT coaID, coaDescription FROM coa WHERE coaAccountNo = ? LIMIT 1";
$qry = $this->db->query($sql, [$raw->coaAccNo]);
if ($qry->row() == null) {
@@ -1145,9 +1145,9 @@ class Mediajurnalauto extends MY_Controller
$natSubGroupID = $raw->NatSubGroupID;
// Mapping Nat SubGroup -> pendapatan
$sql = "SELECT MapNatSub_PendapatanCoaAccountNo, coaID, coaDescription
FROM map_nat_subgroup
JOIN coa ON coaAccountNo = MapNatSub_PendapatanCoaAccountNo
WHERE MapNatSub_NatGroupID = ? AND MapNatSub_NatSubGroupID = ?
FROM map_nat_subgroup
JOIN coa ON coaAccountNo = MapNatSub_PendapatanCoaAccountNo
WHERE MapNatSub_NatGroupID = ? AND MapNatSub_NatSubGroupID = ?
AND MapNatSub_IsActive = 'Y' LIMIT 1";
$qry = $this->db->query($sql, [$natGroupID, $natSubGroupID]);
if ($qry->row() == null) {
@@ -1190,8 +1190,8 @@ class Mediajurnalauto extends MY_Controller
$sql = "SELECT MapNatGroup_Disc_coaID,
MapNatGroup_Disc_coaAccNo,
MapNatGroup_Disc_coaDesc
FROM map_nat_group
WHERE MapNatGroup_NatGroupID = ?
FROM map_nat_group
WHERE MapNatGroup_NatGroupID = ?
AND MapNatGroup_IsActive = 'Y'";
$qry = $this->db->query($sql, [$raw->NatGroupID]);
if ($qry->row() == null) {
@@ -1214,8 +1214,8 @@ class Mediajurnalauto extends MY_Controller
$sql = "SELECT MapNatGroup_Retur_coaID,
MapNatGroup_Retur_coaAccNo,
MapNatGroup_Retur_coaDesc
FROM map_nat_group
WHERE MapNatGroup_NatGroupID = ?
FROM map_nat_group
WHERE MapNatGroup_NatGroupID = ?
AND MapNatGroup_IsActive = 'Y'";
$qry = $this->db->query($sql, [$raw->Ref]);
if ($qry->row() == null) {
@@ -1234,7 +1234,7 @@ class Mediajurnalauto extends MY_Controller
// Handle Mapping round
else if (stripos($raw->Ref, 'round') !== false) {
$sql = "SELECT coaID, coaDescription FROM coa
$sql = "SELECT coaID, coaDescription FROM coa
WHERE coaAccountNo = '1141100002' AND coaIsActive = 'Y'";
$qry = $this->db->query($sql);
if ($qry->row() == null) {
@@ -1253,7 +1253,7 @@ class Mediajurnalauto extends MY_Controller
// Update: 20250506 Pembulatan dihandle di bawah
// continue;
}
}
else {
$errMap[] = [
"err_type" => "Mapping",
@@ -1306,17 +1306,17 @@ class Mediajurnalauto extends MY_Controller
if (isset($raw->is_parent) && $raw->is_parent == 1) {
// 2a. Kalau M_CompanyID 1235 (PASIEN KLINISI), pakai coaNo 1120100002
if ($raw->M_CompanyID == 1235) {
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
WHERE coaAccountNo = '1120100002' AND coaIsActive = 'Y'";
}
// 2b. Kalau M_CompanyID 1222 (PASIEN MANDIRI), pakai coaNo 1120100001
else if ($raw->M_CompanyID == 1222) {
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
WHERE coaAccountNo = '1120100001' AND coaIsActive = 'Y'";
}
// 2c. Selain itu, pakai coaNo 1120200001 9PIUTANG USAHA REKANAN)
else {
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
WHERE coaAccountNo = '1120200001' AND coaIsActive = 'Y'";
}
$qry = $this->db->query($sql);
@@ -1329,7 +1329,7 @@ class Mediajurnalauto extends MY_Controller
}
// * Untuk Parent: dibuat menjadi 2 jurnal_tx
// * 1. Debit Pakai coaCompany (Piutang). rawDbt
// * 2. Kredit Pakai mapping NatSubGroup. rawCr
// * 2. Kredit Pakai mapping NatSubGroup. rawCr
$rawDbt = clone $raw;
$rawDbt->coaID = $qry->row()->coaID;
$rawDbt->coaDescription = $qry->row()->coaDescription;
@@ -1341,10 +1341,10 @@ class Mediajurnalauto extends MY_Controller
$natGroupID = $rawCr->NatGroupID;
$natSubGroupID = $rawCr->NatSubGroupID;
$sql = "SELECT MapNatSub_PendapatanCoaAccountNo, coaID, coaDescription
FROM map_nat_subgroup
$sql = "SELECT MapNatSub_PendapatanCoaAccountNo, coaID, coaDescription
FROM map_nat_subgroup
JOIN coa ON MapNatSub_PendapatanCoaAccountNo = coaAccountNo
WHERE MapNatSub_NatGroupID = ? AND MapNatSub_NatSubGroupID = ?
WHERE MapNatSub_NatGroupID = ? AND MapNatSub_NatSubGroupID = ?
AND MapNatSub_IsActive = 'Y' LIMIT 1";
$qry = $this->db->query($sql, [$natGroupID, $natSubGroupID]);
if (!$qry) {
@@ -1398,10 +1398,10 @@ class Mediajurnalauto extends MY_Controller
// 3. Kalau !is_parent dan !is_diskon , maka CoA pakai mapping NatSubGroup (Product)
else if (!isset($raw->is_parent) && !isset($raw->is_diskon)) {
$sql = "SELECT MapNatSub_PendapatanCoaAccountNo, coaID, coaDescription
FROM map_nat_subgroup
$sql = "SELECT MapNatSub_PendapatanCoaAccountNo, coaID, coaDescription
FROM map_nat_subgroup
JOIN coa ON MapNatSub_PendapatanCoaAccountNo = coaAccountNo
WHERE MapNatSub_NatGroupID = ? AND MapNatSub_NatSubGroupID = ?
WHERE MapNatSub_NatGroupID = ? AND MapNatSub_NatSubGroupID = ?
AND MapNatSub_IsActive = 'Y' LIMIT 1";
$qry = $this->db->query($sql, [$raw->NatGroupID, $raw->NatSubGroupID]);
if (!$qry) {
@@ -1435,8 +1435,8 @@ class Mediajurnalauto extends MY_Controller
$sql = "SELECT MapNatGroup_Disc_coaID,
MapNatGroup_Disc_coaAccNo,
MapNatGroup_Disc_coaDesc
FROM map_nat_group
WHERE MapNatGroup_NatGroupID = ?
FROM map_nat_group
WHERE MapNatGroup_NatGroupID = ?
AND MapNatGroup_IsActive = 'Y'";
$qry = $this->db->query($sql, [$raw->NatGroupID]);
if (!$qry) {
@@ -1514,8 +1514,8 @@ class Mediajurnalauto extends MY_Controller
$errMap = [];
$i = 0;
/*
Setiap item di $raws jadi 2 jurnal_tx dan 7 addOn:
/*
Setiap item di $raws jadi 2 jurnal_tx dan 7 addOn:
1. Debit dari Bank
2. Kredit ke Piutang Company
*/
@@ -1541,12 +1541,12 @@ class Mediajurnalauto extends MY_Controller
$norek = str_replace(['-', '.'], '', $raw->M_BankAccountNo);
$sql = "SELECT MapBank_CoaAccountNo, MapBank_CoaDescription,
$sql = "SELECT MapBank_CoaAccountNo, MapBank_CoaDescription,
MapBank_BankAccountNo, MapBank_BranchCode,
coaID, coaDescription
FROM map_bank_coa
JOIN coa ON coaAccountNo = MapBank_CoaAccountNo
WHERE MapBank_BankAccountNo = ?
WHERE MapBank_BankAccountNo = ?
AND MapBank_IsActive = 'Y'
LIMIT 1";
$qry = $this->db->query($sql, [$norek]);
@@ -1601,17 +1601,17 @@ class Mediajurnalauto extends MY_Controller
// 2. Kredit ke Piutang Company.
if ($raw->M_CompanyID == 1235) {
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
WHERE coaAccountNo = '1120100002' AND coaIsActive = 'Y'";
}
// 2b. Kalau M_CompanyID 1222 (PASIEN MANDIRI), pakai coaNo 1120100001
else if ($raw->M_CompanyID == 1222) {
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
WHERE coaAccountNo = '1120100001' AND coaIsActive = 'Y'";
}
// 2c. Selain itu, pakai coaNo 1120200001 9PIUTANG USAHA REKANAN)
else {
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
WHERE coaAccountNo = '1120200001' AND coaIsActive = 'Y'";
}
@@ -1697,9 +1697,9 @@ class Mediajurnalauto extends MY_Controller
'totalBalance' => 0
];
$errMap = [];
/*
Tiap item di $raws jadi 2 jurnal_tx dan 7 addOn:
1. Debit pakai coa RK
/*
Tiap item di $raws jadi 2 jurnal_tx dan 7 addOn:
1. Debit pakai coa RK
2. Kredit pakai coa Piutang Company
*/
foreach ($raws as $raw) {
@@ -1713,8 +1713,8 @@ class Mediajurnalauto extends MY_Controller
// 1. Debit pakai coa RK
$sql = "SELECT Map_RkCabang_CoaAccountNo, Map_RkCabang_CoaDescription, Map_RkCabang_BranchCode, coaID
FROM map_rk_cabang
JOIN coa ON Map_RkCabang_CoaAccountNo = coaAccountNo
WHERE Map_RkCabang_BranchCode = ?
JOIN coa ON Map_RkCabang_CoaAccountNo = coaAccountNo
WHERE Map_RkCabang_BranchCode = ?
AND Map_RkCabang_Rk_TypeID = 1
AND Map_RkCabang_IsActive = 'Y'";
$qry = $this->db->query($sql, [$raw->BranchCode]);
@@ -1741,17 +1741,17 @@ class Mediajurnalauto extends MY_Controller
// 2. Kredit pakai coa Piutang Company
// Kalau M_CompanyID 1235 (PASIEN DOKTER/KLINIS), pakai coaNo 1120100002
if ($raw->M_CompanyID == 1235) {
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
WHERE coaAccountNo = '1120100002' AND coaIsActive = 'Y'";
}
// Kalau M_CompanyID 1222 (PASIEN MANDIRI), pakai coaNo 1120100001
else if ($raw->M_CompanyID == 1222) {
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
WHERE coaAccountNo = '1120100001' AND coaIsActive = 'Y'";
}
// Selain itu, pakai coaNo 1120200001 PIUTANG USAHA REKANAN)
else {
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
WHERE coaAccountNo = '1120200001' AND coaIsActive = 'Y'";
}
$qry = $this->db->query($sql);
@@ -1842,7 +1842,7 @@ class Mediajurnalauto extends MY_Controller
/* --------- BRIEF: ------------
Setiap item di $raws masing-masing menjadi 1 jurnal_tx dan berbeda AddOn
- Debit dari Client
- Debit dari Client
- Coa: coa Bank
- Addon: companyid, companynum, companyname, paytypeID, paymentpusatDate
- Kredit ke R/K cabang lain
@@ -1922,8 +1922,8 @@ class Mediajurnalauto extends MY_Controller
foreach ($rawCabLain as &$rawCr) {
$sql = "SELECT Map_RkCabang_CoaAccountNo, Map_RkCabang_CoaDescription, Map_RkCabang_BranchCode, coaID
FROM map_rk_cabang
JOIN coa ON Map_RkCabang_CoaAccountNo = coaAccountNo
WHERE Map_RkCabang_BranchCode = ?
JOIN coa ON Map_RkCabang_CoaAccountNo = coaAccountNo
WHERE Map_RkCabang_BranchCode = ?
AND Map_RkCabang_Rk_TypeID = 1
AND Map_RkCabang_IsActive = 'Y'";
$qry = $this->db->query($sql, [$rawCr->RK_BranchCode]);
@@ -1978,17 +1978,17 @@ class Mediajurnalauto extends MY_Controller
foreach ($rawCabIni as &$rawCr2) {
// PASIEN DOKTER/KLINISI
if ($raw->M_CompanyID == 1235) {
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
WHERE coaAccountNo = '1120100002' AND coaIsActive = 'Y'";
}
// Kalau M_CompanyID 1222 (PASIEN MANDIRI), pakai coaNo 1120100001
else if ($raw->M_CompanyID == 1222) {
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
WHERE coaAccountNo = '1120100001' AND coaIsActive = 'Y'";
}
//Selain itu, pakai coaNo 1120200001 9PIUTANG USAHA REKANAN)
else {
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
$sql = "SELECT coaID, coaDescription, coaAccountNo FROM coa
WHERE coaAccountNo = '1120200001' AND coaIsActive = 'Y'";
}
@@ -2061,15 +2061,15 @@ class Mediajurnalauto extends MY_Controller
private function insertMapBank($raws)
{
$sqlCheck = "SELECT MapBank_BankAccountNo, MapBank_NatBankID, MapBank_BranchCode
FROM map_bank_coa
$sqlCheck = "SELECT MapBank_BankAccountNo, MapBank_NatBankID, MapBank_BranchCode
FROM map_bank_coa
WHERE MapBank_BankAccountNo LIKE CONCAT ('%', ?, '%') AND MapBank_NatBankID = ? AND MapBank_BranchCode = ?
AND MapBank_IsActive = 'Y'";
$sql = "INSERT INTO map_bank_coa
(MapBank_BranchCode, MapBank_NatBankName, MapBank_BankAccountNo,
MapBank_NatBankID, MapBank_NatBankCode, MapBank_NatBankIsEDC,
MapBank_IsActive, MapBank_CreatedAt, MapBank_LastUpdatedAt)
(MapBank_BranchCode, MapBank_NatBankName, MapBank_BankAccountNo,
MapBank_NatBankID, MapBank_NatBankCode, MapBank_NatBankIsEDC,
MapBank_IsActive, MapBank_CreatedAt, MapBank_LastUpdatedAt)
VALUES (?, ?, ?, ?, ?, ?, 'Y', NOW(), NOW())";
$errMap = [];
$seenAcc = [];
@@ -2131,11 +2131,11 @@ class Mediajurnalauto extends MY_Controller
{
$jurnalInfo = [];
// * Sudah pasti success karena di awal sudah ada yang mirip (tidak perlu cek eror)
$sql = "SELECT M_BranchID, M_BranchM_CompanyID, M_BranchS_RegionalID,
$sql = "SELECT M_BranchID, M_BranchM_CompanyID, M_BranchS_RegionalID,
M_BranchName, S_RegionalName
FROM m_branch
FROM m_branch
JOIN s_regional ON M_BranchS_RegionalID = S_RegionalID
WHERE M_BranchCode = ? ";
WHERE M_BranchCode = ? AND M_BranchIsActive = 'Y'";
$qry = $this->db->query($sql, [$branchCode]);
$regID = $qry->row()->M_BranchS_RegionalID;
@@ -2233,10 +2233,10 @@ class Mediajurnalauto extends MY_Controller
private function injectJurnal($jurnalInfo, $details)
{
$sqlHeader = "INSERT INTO jurnal
(jurnalM_BranchCompanyID, JurnalS_RegionalID, jurnalM_BranchCode,
jurnalperiodeID, jurnalNo, jurnalTitle,
jurnalDescription, jurnalDate, jurnalJurnalTypeID,
$sqlHeader = "INSERT INTO jurnal
(jurnalM_BranchCompanyID, JurnalS_RegionalID, jurnalM_BranchCode,
jurnalperiodeID, jurnalNo, jurnalTitle,
jurnalDescription, jurnalDate, jurnalJurnalTypeID,
jurnalCreated, jurnalM_UserID)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), ?)";
@@ -2296,13 +2296,13 @@ class Mediajurnalauto extends MY_Controller
// if ($jurnalTxDebit == 0 && $jurnalTxCredit == 0) {
// return;
// }
$insertTx = "INSERT INTO jurnal_tx
$insertTx = "INSERT INTO jurnal_tx
(jurnalTxJurnalID, jurnalTxCoaID, jurnalTxDescription, jurnalTxCredit,
jurnalTxDebit, jurnalTxIsActive, jurnalTxCreated, jurnalTxLastUpdated, jurnalTxM_UserID)
VALUES (?, ?, ?, ?, ?, 'Y', NOW(), NOW(), 500)";
$insertAddOn = "INSERT INTO jurnal_addon
(jurnalAddOnJurnalID, jurnalAddOnJurnalTxID,
$insertAddOn = "INSERT INTO jurnal_addon
(jurnalAddOnJurnalID, jurnalAddOnJurnalTxID,
jurnalAddOnCode,
jurnalAddOnValue,
jurnalAddOnIsActive, jurnalAddOnCreated,
@@ -2341,8 +2341,8 @@ class Mediajurnalauto extends MY_Controller
private function injectErrors($jurnalErr, $jurnalID)
{
$sql = "INSERT INTO jurnal_errors
(JurnalErr_JurnalID, JurnalErr_Msg, JurnalErr_CreatedAt, JurnalErr_LastUpdatedAt)
$sql = "INSERT INTO jurnal_errors
(JurnalErr_JurnalID, JurnalErr_Msg, JurnalErr_CreatedAt, JurnalErr_LastUpdatedAt)
VALUES (?, ?, NOW(), NOW())"; // NOW() is handled by MySQL, so no placeholder is needed
foreach ($jurnalErr as $err) {
@@ -2357,9 +2357,9 @@ class Mediajurnalauto extends MY_Controller
private function getBranchCodeRegenSalesReg($jurnalNo)
{
$sql = "SELECT jurnalID, jurnalNo FROM jurnal
$sql = "SELECT jurnalID, jurnalNo FROM jurnal
WHERE jurnalNo LIKE CONCAT('%', ?, '%')
AND jurnalJurnalTypeID = 7
AND jurnalJurnalTypeID = 7
AND jurnalIsActive = 'Y' ORDER BY jurnalNo DESC"; //! Harus DESC agar nomor jurnal Cabang ada di index 0 dan diquery row() langsung dapat";
$qry = $this->db->query($sql, [$jurnalNo]);
if (!$qry) {
@@ -2377,9 +2377,9 @@ class Mediajurnalauto extends MY_Controller
private function checkExistingJurnal($branchCode, $searchDate, $jurnalType, $jurnalNo = "")
{
$sql = "SELECT jurnalID, jurnalNo FROM jurnal
$sql = "SELECT jurnalID, jurnalNo FROM jurnal
WHERE jurnalM_BranchCode = ?
AND jurnalDate = ? AND jurnalJurnalTypeID = ?
AND jurnalDate = ? AND jurnalJurnalTypeID = ?
AND jurnalIsActive = 'Y' ORDER BY jurnalID DESC";
switch ($jurnalType) {
@@ -2416,7 +2416,7 @@ class Mediajurnalauto extends MY_Controller
// * Sementara khusus regen SALES karena harus 2 jurnalID
if ($regenFromCab || $regenFromReg) {
$sql_2 = "SELECT jurnalID, jurnalNo FROM jurnal
$sql_2 = "SELECT jurnalID, jurnalNo FROM jurnal
WHERE jurnalNo LIKE CONCAT(?, '%')
AND jurnalJurnalTypeID = ?
AND jurnalIsActive = 'Y' AND jurnalIsPosted = 'N' ORDER BY jurnalNo ASC"; // ASC Nomor Regional di Atas
@@ -2450,8 +2450,8 @@ class Mediajurnalauto extends MY_Controller
];
$fullmsg = json_encode($fullmsg, JSON_PRETTY_PRINT);
$sql = "INSERT INTO jurnal_errors
(JurnalErr_JurnalID, JurnalErr_Msg, JurnalErr_CreatedAt, JurnalErr_LastUpdatedAt)
$sql = "INSERT INTO jurnal_errors
(JurnalErr_JurnalID, JurnalErr_Msg, JurnalErr_CreatedAt, JurnalErr_LastUpdatedAt)
VALUES (?, ?, NOW(), NOW())";
$qry = $this->db->query($sql, [$jurnalID, $fullmsg]);
@@ -2479,14 +2479,14 @@ class Mediajurnalauto extends MY_Controller
exit;
}
// 1. Update jurnal where jurnalID = ?
// 1. Update jurnal where jurnalID = ?
$this->db->set('jurnalIsActive', 'N');
$this->db->set('jurnalLastUpdated', 'NOW()', FALSE);
$this->db->set('jurnalM_UserID', $userID);
$this->db->where('jurnalID', $jurnalID);
$this->db->update('jurnal');
// 2. Update jurnal_tx where jurnalTxJurnalID = ?
// 2. Update jurnal_tx where jurnalTxJurnalID = ?
$this->db->set('jurnalTxIsActive', 'N');
$this->db->set('jurnalTxLastUpdated', 'NOW()', FALSE);
$this->db->set('jurnalTxM_UserID', $userID);
@@ -2563,7 +2563,7 @@ class Mediajurnalauto extends MY_Controller
$jurnal = "INSERT INTO `jurnal` (`jurnalM_BranchCompanyID`, `JurnalS_RegionalID`, `jurnalM_BranchCode`, `jurnalperiodeID`, `jurnalNo`, `jurnalTitle`, `jurnalDescription`, `jurnalDate`, `jurnalIsPosted`, `jurnalJurnalTypeID`, `jurnalIsActive`, `jurnalCreated`, `jurnalLastUpdated`, `jurnalM_UserID`) VALUES (1, 8, 'BA', 4, 'autosales001', 'Media Jurnal Penjualan ', 'description', '2025-01-09', 'N', 7, 'Y',NOW(), NOW(),345)";
$tx = "INSERT INTO `jurnal_tx` (`jurnalTxJurnalID`, `jurnalTxCoaID`, `jurnalTxDescription`,
`jurnalTxDebit`, `jurnalTxCredit`, `jurnalTxIsActive`, `jurnalTxCreated`,
`jurnalTxDebit`, `jurnalTxCredit`, `jurnalTxIsActive`, `jurnalTxCreated`,
`jurnalTxLastUpdated`, `jurnalTxM_UserID`) VALUES
(96, 5, 'TUNAI', 1850000, 0, 'Y', NOW(), NOW(), 345),
(96, 29, 'BCA PT PRAMITTA (5060)', 4393950, 0, 'Y', NOW(), NOW(), 345),
@@ -2608,7 +2608,7 @@ class Mediajurnalauto extends MY_Controller
$addOn = "INSERT INTO `jurnal_addon` (`jurnalAddOnJurnalID`, `jurnalAddOnJurnalTxID`,
`jurnalAddOnCode`, `jurnalAddOnValue`, `jurnalAddOnIsActive`, `jurnalAddOnCreated`,
`jurnalAddOnCreatedUserID`, `jurnalAddOnDeleted`, `jurnalAddOnDeletedUserID`,
`jurnalAddOnLastUpdatedUserID`, `jurnalAddOnLastUpdated`) VALUES
`jurnalAddOnLastUpdatedUserID`, `jurnalAddOnLastUpdated`) VALUES
(96, 316,'OMZTYPE', '1', 'Y', NOW(), 345, NOW(), 0, 345, NOW()),
(96, 316,'OMZNAME', 'APS', 'Y', NOW(), 345, NOW(), 0, 345, NOW()),
(96, 317,'OMZTYPE', '1', 'Y', NOW(), 345, NOW(), 0, 345, NOW()),
@@ -2666,14 +2666,14 @@ class Mediajurnalauto extends MY_Controller
$jurnal = "INSERT INTO `jurnal` (`jurnalM_BranchCompanyID`, `JurnalS_RegionalID`,
`jurnalM_BranchCode`, `jurnalperiodeID`, `jurnalNo`, `jurnalTitle`, `jurnalDescription`,
`jurnalDate`, `jurnalIsPosted`, `jurnalJurnalTypeID`, `jurnalIsActive`, `jurnalCreated`,
`jurnalLastUpdated`, `jurnalM_UserID`) VALUES (1, 8, 'BA', 4, 'autoAR001',
'Media Jurnal AR', 'inject manual AR belum balance', '2025-01-09', 'N', 10, 'Y',
`jurnalLastUpdated`, `jurnalM_UserID`) VALUES (1, 8, 'BA', 4, 'autoAR001',
'Media Jurnal AR', 'inject manual AR belum balance', '2025-01-09', 'N', 10, 'Y',
NOW(), NOW(),345)";
$jurnalID = 144;
$tx = "INSERT INTO `jurnal_tx` (`jurnalTxJurnalID`, `jurnalTxCoaID`, `jurnalTxDescription`,
`jurnalTxDebit`, `jurnalTxCredit`, `jurnalTxIsActive`, `jurnalTxCreated`,
`jurnalTxDebit`, `jurnalTxCredit`, `jurnalTxIsActive`, `jurnalTxCreated`,
`jurnalTxLastUpdated`, `jurnalTxM_UserID`) VALUES
(144, 199, 'PASIEN DOKTER / KLINISI', 585600, 0, 'Y', NOW(), NOW(), 345),
(144, 847, 'PEND. RAD. PANORAMIC & DENTAL', 0, 732000, 'Y', NOW(), NOW(), 345),
@@ -2689,7 +2689,7 @@ class Mediajurnalauto extends MY_Controller
$addOn = "INSERT INTO `jurnal_addon` (`jurnalAddOnJurnalID`, `jurnalAddOnJurnalTxID`,
`jurnalAddOnCode`, `jurnalAddOnValue`, `jurnalAddOnIsActive`, `jurnalAddOnCreated`,
`jurnalAddOnCreatedUserID`, `jurnalAddOnDeleted`, `jurnalAddOnDeletedUserID`,
`jurnalAddOnLastUpdatedUserID`, `jurnalAddOnLastUpdated`) VALUES
`jurnalAddOnLastUpdatedUserID`, `jurnalAddOnLastUpdated`) VALUES
(144, 913,'CMPNYNUM', 'PRAMITA00013', 'Y', NOW(), 345, NOW(), 0, 345, NOW()),
(144, 913,'CMPNYID', '1235', 'Y', NOW(), 345, NOW(), 0, 345, NOW()),
(144, 913,'CMPNYNAME', 'PASIEN KLINISI', 'Y', NOW(), 345, NOW(), 0, 345, NOW()),

View File

@@ -0,0 +1,301 @@
<?php
class Ruangan extends MY_Controller
{
var $db;
function __construct()
{
parent::__construct();
}
function index()
{
echo "API Ruangan";
}
function lookupRuangan()
{
try {
if (!$this->isLogin) {
throw new Exception('Invalid token');
}
$para = $this->sys_input;
$keyword = "%";
if (isset($para['keyword'])) {
$keyword .= $para['keyword'] . "%";
}
$limit = 10;
$offset = 0;
if ($para['latestPage'] > 0) {
$offset = ($para['latestPage'] - 1) * $limit;
}
$sql = "SELECT
r.M_RuanganID AS id,
r.M_RuanganM_BranchID AS branch_id,
b.M_BranchName AS branch_name,
b.M_BranchCode AS branch_code,
r.M_RuanganCode AS code,
r.M_RuanganName AS name,
r.M_RuanganUserID AS user_id,
r.M_RuanganCreated AS created,
r.M_RuanganLastUpdated AS last_updated
FROM m_ruangan r
JOIN m_branch b
ON b.M_BranchID = r.M_RuanganM_BranchID
AND b.M_BranchIsActive = 'Y'
JOIN s_regional s
ON s.S_RegionalID = b.M_BranchS_RegionalID
WHERE r.M_RuanganIsActive = 'Y'
AND s.S_RegionalID = ?
AND (? = 0 OR r.M_RuanganM_BranchID = ?)
AND ( r.M_RuanganName LIKE ? OR r.M_RuanganCode LIKE ?)";
$sql_data = $sql . " ORDER BY r.M_RuanganName ASC LIMIT ? OFFSET ? ";
$que_data = $this->db->query($sql_data, [
$para['regionalID'],
$para['branchID'],
$para['branchID'],
$keyword,
$keyword,
$limit,
$offset
]);
if (!$que_data) {
throw new Exception('failed to query data ruangan', 1);
}
$data = $que_data->result_array();
$sql_total = "SELECT COUNT(*) AS total FROM ($sql) AS x";
$que_total = $this->db->query($sql_total, [
$para['regionalID'],
$para['branchID'],
$para['branchID'],
$keyword,
$keyword,
]);
if (!$que_total) {
throw new Exception('failed to query total data ruangan', 1);
}
$total = $que_total->row_array()['total'];
$this->sys_ok([
"records" => $data,
"total" => $total
]);
} catch (Exception $e) {
$msg = '[Error] ' . $e->getMessage();
$code = $e->getCode();
if ($code == 0) {
$this->sys_error($msg);
} else {
$this->sys_error_db($msg);
}
exit;
}
}
function insertRuangan()
{
try {
if (!$this->isLogin) {
throw new Exception('Invalid token');
}
$para = $this->sys_input;
$userid = $this->sys_user['M_UserID'];
$this->db->trans_begin();
$sql_check = "SELECT COUNT(*) AS exist
FROM m_ruangan
WHERE M_RuanganIsActive = 'Y'
AND M_RuanganM_BranchID = ?
AND M_RuanganCode = ?";
$que_check = $this->db->query($sql_check, [
$para['branchID'],
$para['ruanganCode']
]);
if (!$que_check) {
throw new Exception('failed to check duplicate ruangan', 1);
}
if ($que_check->row_array()['exist'] > 0) {
throw new Exception('ruangan already exists');
}
$sql = "INSERT INTO m_ruangan (
M_RuanganM_BranchID,
M_RuanganName,
M_RuanganCode,
M_RuanganUserID,
M_RuanganIsActive,
M_RuanganCreated,
M_RuanganLastUpdated
) VALUES (?,?,?,?,'Y',NOW(),NOW())";
$que = $this->db->query($sql, [
$para['branchID'],
$para['ruanganName'],
$para['ruanganCode'],
$userid
]);
if (!$que) {
throw new Exception('failed to insert ruangan', 1);
}
$insert_id = $this->db->insert_id();
$this->db->trans_commit();
$this->sys_ok([
"records" => [
"id" => $insert_id,
"name" => $para['ruanganName'],
"msg" => "Success Insert Ruangan"
]
]);
} catch (Exception $e) {
$this->db->trans_rollback();
$msg = '[Error] ' . $e->getMessage();
$code = $e->getCode();
if ($code == 0) {
$this->sys_error($msg);
} else {
$this->sys_error_db($msg);
}
exit;
}
}
function updateRuangan()
{
try {
if (!$this->isLogin) {
throw new Exception('Invalid token');
}
$para = $this->sys_input;
$userid = $this->sys_user['M_UserID'];
$this->db->trans_begin();
$sql_check = "SELECT COUNT(*) AS exist
FROM m_ruangan
WHERE M_RuanganIsActive = 'Y'
AND M_RuanganM_BranchID = ?
AND M_RuanganCode = ?
AND M_RuanganID != ?";
$que_check = $this->db->query($sql_check, [
$para['branchID'],
$para['ruanganCode'],
$para['ruanganID']
]);
if (!$que_check) {
throw new Exception('failed to check duplicate ruangan', 1);
}
if ($que_check->row_array()['exist'] > 0) {
throw new Exception('ruangan already exists');
}
$sql = "UPDATE m_ruangan
SET
M_RuanganM_BranchID = ?,
M_RuanganName = ?,
M_RuanganCode = ?,
M_RuanganUserID = ?,
M_RuanganLastUpdated = NOW()
WHERE M_RuanganID = ?
AND M_RuanganIsActive = 'Y'";
$que = $this->db->query($sql, [
$para['branchID'],
$para['ruanganName'],
$para['ruanganCode'],
$userid,
$para['ruanganID']
]);
if (!$que) {
throw new Exception('failed to update ruangan', 1);
}
$this->db->trans_commit();
$this->sys_ok([
"records" => [
"id" => $para['ruanganID'],
"name" => $para['ruanganName'],
"msg" => "Success Update Ruangan"
]
]);
} catch (Exception $e) {
$this->db->trans_rollback();
$msg = '[Error] ' . $e->getMessage();
$code = $e->getCode();
if ($code == 0) {
$this->sys_error($msg);
} else {
$this->sys_error_db($msg);
}
exit;
}
}
function deleteRuangan()
{
try {
if (!$this->isLogin) {
throw new Exception('Invalid token');
}
$para = $this->sys_input;
$userid = $this->sys_user['M_UserID'];
$this->db->trans_begin();
$sql = "UPDATE m_ruangan
SET
M_RuanganIsActive = 'N',
M_RuanganUserID = ?,
M_RuanganDeleted = NOW(),
M_RuanganLastUpdated = NOW()
WHERE M_RuanganID = ?
AND M_RuanganIsActive = 'Y'";
$que = $this->db->query($sql, [
$userid,
$para['ruanganID']
]);
if (!$que) {
throw new Exception('failed to delete ruangan', 1);
}
$this->db->trans_commit();
$this->sys_ok([
"records" => [
"id" => $para['ruanganID'],
"msg" => "Success Update Ruangan"
]
]);
} catch (Exception $e) {
$this->db->trans_rollback();
$msg = '[Error] ' . $e->getMessage();
$code = $e->getCode();
if ($code == 0) {
$this->sys_error($msg);
} else {
$this->sys_error_db($msg);
}
exit;
}
}
}

View File

@@ -113,20 +113,19 @@ class PurchaseRequestNonPersediaan extends MY_Controller
IFNULL(M_BranchCode, '') as M_BranchCode,
IFNULL(M_BranchName, '') as M_BranchName,
item_category.ItemCategoryName as itemCategoryName,
item_category.ItemCategoryID as itemCategoryID,
IF(ah.AssetHandoverID IS NULL, 0, 1) AS hasHandover,
ah.AssetHandoverConfirmedBy as handoverConfirmedBy,
ah.AssetHandoverID AS handoverID,
ah.AssetHandoverDate AS handoverDate,
ah.AssetHandoverToUserID AS handoverToUserID
item_category.ItemCategoryID as itemCategoryID
-- IF(ah.AssetHandoverID IS NULL, 0, 1) AS hasHandover,
-- ah.AssetHandoverConfirmedBy as handoverConfirmedBy,
-- 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
AND ah.AssetHandoverIsActive = 'Y'
-- LEFT JOIN asset_handover ah ON ah.AssetHandoverPurchaseRequestID = PurchaseRequestID AND ah.AssetHandoverIsActive = 'Y'
WHERE PurchaseRequestIsActive = 'Y'
AND PurchaseRequestItemCategoryID <> '1'
AND ( PurchaseRequestDate BETWEEN ? AND ? )
@@ -142,14 +141,39 @@ class PurchaseRequestNonPersediaan extends MY_Controller
$this->sys_error_db("select purchase request", $this->db);
exit;
}
$rows = $exec->result_array();
$query = $this->db->last_query();
foreach ($rows as $key => $value) {
$sql_isHandedOver = "SELECT
AssetHandoverID,
AssetHandoverDetailID,
AssetHandoverToUserID,
AssetHandoverConfirmedBy,
T_BarcodeBarangNumber,
M_UserUsername,
CASE
WHEN AssetHandoverConfirmedBy = 0 THEN 'N'
ELSE 'Y'
END AS allHandedOver
FROM asset_handover
JOIN asset_handover_detail ON AssetHandoverDetailAssetHandoverID = AssetHandoverID
AND AssetHandoverIsActive = 'Y'
JOIN t_barcode_barang ON AssetHandoverDetailT_BarcodeBarangID = T_BarcodeBarangID
JOIN m_user ON M_UserID = AssetHandoverToUserID
WHERE AssetHandoverPurchaseRequestID = ?";
$que_isHandedOver = $this->db->query($sql_isHandedOver, [$value['prId']]);
if (!$que_isHandedOver) {
$this->sys_error_db("select purchase request", $this->db);
exit;
}
$data_handed = $que_isHandedOver->result_array();
$rows[$key]['itemHandedOver'] = $data_handed;
}
$result = array(
"total" => $totalPage,
"totalFilter" => $totalCount,
"records" => $rows,
"db" => $query
"records" => $rows
);
$this->sys_ok($result);
@@ -2149,53 +2173,29 @@ class PurchaseRequestNonPersediaan extends MY_Controller
return;
}
# update confirm hand over #
$sql = "UPDATE asset_handover SET
AssetHandoverConfirmedAt = NOW(),
AssetHandoverConfirmedBy = ?,
AssetHandoverLastUpdated = NOW(),
AssetHandoverUserID = ?
WHERE AssetHandoverPurchaseRequestID = ?";
$qry = $this->db->query($sql, [
$user['M_UserID'],
$user['M_UserID'],
$prm['purchaseRequestID']
]);
if (!$qry) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] update confirm hand over", $this->db);
exit;
$dataHanded = $prm['itemHandedOver'];
foreach ($dataHanded as $key => $value) {
# update confirm hand over #
$sql = "UPDATE asset_handover SET
AssetHandoverConfirmedAt = NOW(),
AssetHandoverConfirmedBy = ?,
AssetHandoverLastUpdated = NOW(),
AssetHandoverUserID = ?
WHERE AssetHandoverPurchaseRequestID = ?
AND AssetHandoverID = ?";
$qry = $this->db->query($sql, [
$user['M_UserID'],
$user['M_UserID'],
$prm['purchaseRequestID'],
$value['AssetHandoverID']
]);
if (!$qry) {
$this->db->trans_rollback();
$this->sys_error_db("[Error] update confirm hand over", $this->db);
exit;
}
}
# update status purchase request #
// $sql_pr = "UPDATE purchase_request
// SET PurchaseRequestStatus = 'Closed',
// PurchaseRequestLastUpdated = NOW(),
// PurchaseRequestLastUpdatedUserID = ?
// WHERE PurchaseRequestID = ?";
// $qry_pr = $this->db->query($sql_pr, [$user['M_UserID'], $prm['purchaseRequestID']]);
// if (!$qry_pr) {
// $this->db->trans_rollback();
// $this->sys_error_db("[Error] update status purchase request", $this->db);
// exit;
// }
// $sql = "SELECT *
// FROM purchase_request
// JOIN m_user ON M_UserID = PurchaseRequestCreatedUserID
// WHERE PurchaseRequestID = ?";
// $query = $this->db->query($sql, [$prm['purchaseRequestID']]);
// $row = $query->row_array();
// $sql = "SELECT * FROM purchase_request_detail WHERE PurchaseRequestDetailPurchaseRequestID = ? AND PurchaseRequestDetailIsActive = 'Y'";
// $query = $this->db->query($sql, [$prm['purchaseRequestID']]);
// $rows = $query->result_array();
// $data = array(
// "header" => $row,
// "details" => $rows
// );
// $message = "Nomor PR: " . $row["PurchaseRequestNumber"] . " telah melakukan konfirmasi serah terima oleh " . $row["M_UserUsername"];
// $this->insert_act_log("PRNP", "CONFIRM", $message, $prm['purchaseRequestID'], $this->safeJsonEncode($data), $user['M_UserID']);
$this->db->trans_commit();
$this->sys_ok("Konfirmasi serah terima berhasil disimpan");
} catch (Exception $exc) {