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

263 lines
10 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 {
$xuserid = 3;
$this->db->trans_begin();
$data = [
'BranchCompanyID' => 1,
'JurnalTypeID' => 1,
'RegionalID' => 8,
'jurnalperiodeID' => 4,
'account' => 5110200001,
'amount' => 100000000,
'jurnal' => [
'nomor' => "GJ/2025/02/001",
'cabang' => "",
'tanggal' => "01-01-2025",
'title' => "Gaji Regional bulan Januari",
'deskripsi' => ""
],
'transaksi' => [
'kode' =>
[
'kode' => "BA",
'data' => [
[
'coaid' => "882",
'akun' => "5110200001",
'deskripsi' => "B. GAJI TEHNIS - REGIONAL",
'debit' => 50000000.00,
'kredit' => 0.00
],
[
'coaid' => "29",
'akun' => "1110211021",
'deskripsi' => "BCA PT PRAMITTA (5060)",
'debit' => 0.00,
'kredit' => 50000000.00,
]
],
],
[
'kode' => "BB",
'data' => [
[
'coaid' => "882",
'akun' => "5110200001",
'deskripsi' => "B. GAJI TEHNIS - REGIONAL",
'debit' => 25000000.00,
'kredit' => 0.00
],
[
'coaid' => "40",
'akun' => "1110211021",
'deskripsi' => "BCA PT PRAMITTA (5060)",
'debit' => 0.00,
'kredit' => 50000000.00
],
],
],
[
'kode' => "BC",
'data' => [
[
'coaid' => "882",
'akun' => "5110200001",
'deskripsi' => "B. GAJI TEHNIS - REGIONAL",
'debit' => 25000000.00,
'kredit' => 0.00
],
[
'coaid' => "79",
'akun' => "1110211071",
'deskripsi' => "BCA PT PRAMITA (2121)",
'debit' => 0.00,
'kredit' => 25000000.00
]
],
]
]
];
$jurnalBranchCompanyID = $data['BranchCompanyID'];
$jurnalJurnalTypeID = $data['JurnalTypeID'];
$jurnalRegionalID = $data['RegionalID'];
// $jurnalBranchCode = $prm['BranchCode'];
$tanggalFormatted = date_format(date_create_from_format('d-m-Y', $data['jurnal']['tanggal']), 'Y-m-d');
$jurnalDate = $tanggalFormatted;
$year = date('Y', strtotime($jurnalDate));
$month = date('m', strtotime($jurnalDate));
// $jurnalPeriodeID = $data['jurnalperiodeID'];
// $jurnalNo = $prm['jurnalNo'];
$jurnalTitle = $data['jurnal']['title'];
$jurnalDescription = $data['jurnal']['deskripsi'];
$jurnalAddOnValue = $data['account'];
$jurnalAmount = $data['amount'];
// $jurnalPercentID = $prm['branch_percent_detail_ID'];
$transaksi = $data['transaksi']['kode'];
$sqlPeriodeID = "SELECT periodeID FROM acc_one.periode WHERE periodeYear = ? AND periodeMonth = ? AND periodeIsActive = 'Y'
";
$query = $this->db_onedev->query($sqlPeriodeID, [
(int)$year,
(int)$month
]);
if (!$query) {
$this->db->trans_rollback();
$this->sys_error_db("Periode search", $this->db_onedev);
exit;
}
// Ambil periodeID dari hasil query
$result = $query->row();
echo $result;
if ($result) {
$jurnalPeriodeID = $result->periodeID;
} else {
$this->db->trans_rollback();
$this->sys_error_db("PeriodeID search tidak ditemukan 2", $this->db_onedev);
exit;
}
echo $jurnalPeriodeID;
exit;
foreach ($transaksi as $trx) {
$branchCode = $trx['kode'];
$trxdatas = $trx['data'];
$jurnalNomor = $data['jurnal']['nomor'];
$jurnalNo = $jurnalNomor . '/' . $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]);
foreach ($trxdatas as $trxdata) {
$jurnalCOAID = $trxdata['coaid'];
$jurnalCOADesc = $trxdata['deskripsi'];
$new_jurnal_debit_amount = $trxdata['debit'];
$new_jurnal_credit_amount = $trxdata['kreit'];
//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_debit_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_credit_amount, $xuserid]);
if (!$query) {
$this->db->trans_rollback();
$this->sys_error_db("jurnaltx_credit insert", $this->db_onedev);
exit;
}
}
}
$this->db->trans_commit();
$this->sys_ok("Berhasil");
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
}