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); } } }