Files
BE_IBL/application/controllers/tools/inject_jurnal/Jurnalinject_bckp.php
2026-04-15 15:23:57 +07:00

244 lines
9.9 KiB
PHP

<?php
class Jurnalinject extends MY_Controller
{
var $db_onedev;
public function index()
{
echo "USER GROUP API";
}
public function __construct()
{
parent::__construct();
$this->db_onedev = $this->load->database("onedev", true);
}
function insertjurnal()
{
try {
//# cek token valid
// if (!$this->isLogin) {
// $this->sys_error("Invalid Token");
// exit;
// }
$xuserid = 3;
$prm = $this->sys_input;
$jurnalBranchCompanyID = $prm['BranchCompanyID'];
$jurnalJurnalTypeID = $prm['JurnalTypeID'];
$jurnalRegionalID = $prm['RegionalID'];
// $jurnalBranchCode = $prm['BranchCode'];
$jurnalDate = $prm['jurnalDate'];
$jurnalPeriodeID = $prm['jurnalperiodeID'];
$jurnalNo = $prm['jurnalNo'];
$jurnalTitle = $prm['jurnalTitle'];
$jurnalAddOnValue = $prm['jurnalAccount'];
$jurnalAmount = $prm['jurnalAmount'];
$jurnalDescription = $prm['jurnalDescription'];
$jurnalPercentID = $prm['branch_percent_detail_ID'];
$jurnalCOAID = $prm['jurnalCOAID'];
// $jurnalCOADesc = $prm['jurnalCOADesc'];
$this->db->trans_begin();
// Ambil COA coaDescription
$sql = "SELECT coaDescription
FROM acc_one.coa
WHERE coaID = ?
AND coaIsActive = 'Y'";
$query = $this->db_onedev->query($sql, [$jurnalCOAID]);
if (!$query || $query->num_rows() == 0) {
$this->db->trans_rollback();
$this->sys_error("Invalid coaID");
exit;
}
$jurnalCOADesc = $query->row()->coaDescription;
// Ambil BranchPercentDetailValue berdasarkan BranchPercentDetailID
$sql = "SELECT BranchPercentDetailValue, BranchPercentDetailM_BranchID
FROM acc_one.branch_percent_detail
WHERE BranchPercentDetailBranchPercentID = ?
AND BranchPercentDetailIsActive = 'Y'";
$query = $this->db_onedev->query($sql, [$jurnalPercentID]);
if (!$query || $query->num_rows() == 0) {
$this->db->trans_rollback();
$this->sys_error("Invalid BranchPercentDetailID");
exit;
}
$branchPercentDetails = $query->result();
foreach ($branchPercentDetails as $detail) {
$branchID = $detail->BranchPercentDetailM_BranchID;
$percentValue = $detail->BranchPercentDetailValue;
$new_jurnal_amount = $jurnalAmount * ($percentValue / 100);
// Cari M_BranchCode berdasarkan BranchID
$sqlBranch = "SELECT M_BranchCode
FROM acc_one.m_branch
WHERE M_BranchID = ?
AND M_BranchIsActive = 'Y'";
$queryBranch = $this->db_onedev->query($sqlBranch, [$branchID]);
if (!$queryBranch || $queryBranch->num_rows() == 0) {
$this->db->trans_rollback();
$this->sys_error("Branch not found for BranchID: " . $branchID);
exit;
}
$branchCode = $queryBranch->row()->M_BranchCode;
// Insert ke tabel jurnal
$sqlJurnal = "INSERT INTO acc_one.jurnal (
jurnalM_BranchCompanyID,
JurnalS_RegionalID,
jurnalM_BranchCode,
jurnalperiodeID,
jurnalNo,
jurnalTitle,
jurnalDescription,
jurnalDate,
jurnalJurnalTypeID
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
$this->db_onedev->query($sqlJurnal, [
$jurnalBranchCompanyID,
$jurnalRegionalID,
$branchCode,
$jurnalPeriodeID,
$jurnalNo,
$jurnalTitle,
$jurnalDescription,
$jurnalDate,
$jurnalJurnalTypeID
]);
if (!$sqlJurnal) {
$this->db->trans_rollback();
$this->sys_error_db("jurnal insert", $this->db_onedev);
exit;
}
$last_inserted_jurnal_id = $this->db_onedev->insert_id();
//Insert ke Table Addon dengan id jurnaltx id yang 0 untuk ACSALREG
$sql = "INSERT INTO acc_one.jurnal_addon (
jurnalAddOnJurnalID,
jurnalAddOnJurnalTxID,
jurnalAddOnCode,
jurnalAddOnValue,
jurnalAddOnCreatedUserID,
jurnalAddOnLastUpdatedUserID
)VALUES (
?,?,?,?,?,?
);";
$query = $this->db_onedev->query($sql, [$last_inserted_jurnal_id, 0, 'ACSALREG', $jurnalAddOnValue, $xuserid, $xuserid]);
if (!$query) {
$this->db->trans_rollback();
$this->sys_error_db("jurnal_addon_account insert", $this->db_onedev);
exit;
}
//Insert ke Table Addon dengan id jurnaltx id yang 0 untuk AMSALREG
$sql = "INSERT INTO acc_one.jurnal_addon (
jurnalAddOnJurnalID,
jurnalAddOnJurnalTxID,
jurnalAddOnCode,
jurnalAddOnValue,
jurnalAddOnCreatedUserID,
jurnalAddOnLastUpdatedUserID
)VALUES (
?,?,?,?,?,?
);";
$query = $this->db_onedev->query($sql, [$last_inserted_jurnal_id, $jurnalAmount, 'AMSALREG', $jurnalAmount, $xuserid, $xuserid]);
if (!$query) {
$this->db->trans_rollback();
$this->sys_error_db("jurnal_addon_amount insert", $this->db_onedev);
exit;
}
//Insert ke Table jurnaltx dengan id jurnal id yang 0 untuk ACSALREG dan AMSALREG
$sql = "INSERT INTO acc_one.jurnal_tx (
jurnalTxJurnalID,
jurnalTxCoaID,
jurnalTxDescription,
jurnalTxDebit,
jurnalTxM_UserID
)VALUES (
?,?,?,?,?
);";
$query = $this->db_onedev->query($sql, [$last_inserted_jurnal_id, $jurnalCOAID, $jurnalCOADesc, $new_jurnal_amount, $xuserid]);
if (!$query) {
$this->sys_error_db("jurnaltx_debit insert", $this->db_onedev);
exit;
}
// $last_inserted_jurnaltx_debit_id = $this->db_onedev->insert_id();
$sql = "INSERT INTO acc_one.jurnal_tx (
jurnalTxJurnalID,
jurnalTxCoaID,
jurnalTxDescription,
jurnalTxCredit,
jurnalTxM_UserID
)VALUES (
?,?,?,?,?
);";
$query = $this->db_onedev->query($sql, [$last_inserted_jurnal_id, $jurnalCOAID, $jurnalCOADesc, $new_jurnal_amount, $xuserid]);
if (!$query) {
$this->db->trans_rollback();
$this->sys_error_db("jurnaltx_credit insert", $this->db_onedev);
exit;
}
// $last_inserted_jurnaltx_credit_id = $this->db_onedev->insert_id();
// //Insert ke Table Addon dengan id jurnaltx debit untuk BRCSALREG
// $sql = "INSERT INTO acc_one.jurnal_addon (
// jurnalAddOnJurnalID,
// jurnalAddOnJurnalTxID,
// jurnalAddOnCode,
// jurnalAddOnValue,
// jurnalAddOnCreatedUserID,
// jurnalAddOnLastUpdatedUserID
// )VALUES (
// ?,?,?,?,?,?
// );";
// $query = $this->db_onedev->query($sql, [$last_inserted_jurnal_id, $last_inserted_jurnaltx_debit_id, 'BRCSALREG', $new_jurnal_amount, $xuserid, $xuserid]);
// if (!$query) {
// $this->db->trans_rollback();
// $this->sys_error_db("jurnal_addon_debit insert", $this->db_onedev);
// exit;
// }
// //Insert ke Table Addon dengan id jurnaltx credit untuk BRCSALREG
// $sql = "INSERT INTO acc_one.jurnal_addon (
// jurnalAddOnJurnalID,
// jurnalAddOnJurnalTxID,
// jurnalAddOnCode,
// jurnalAddOnValue,
// jurnalAddOnCreatedUserID,
// jurnalAddOnLastUpdatedUserID
// )VALUES (
// ?,?,?,?,?,?
// );";
// $query = $this->db_onedev->query($sql, [$last_inserted_jurnal_id, $last_inserted_jurnaltx_credit_id, 'BRCSALREG', $new_jurnal_amount, $xuserid, $xuserid]);
// if (!$query) {
// $this->db->trans_rollback();
// $this->sys_error_db("jurnal_addon_credit insert", $this->db_onedev);
// exit;
// }
}
$this->db->trans_commit();
$this->sys_ok("Berhasil");
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
}