isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $search = ""; $number_limit = 10; $tot_count = 0; if (isset($prm['search'])) { $search = trim($prm["search"]); if ($search != "") { $search = '%' . $prm['search'] . '%'; } else { $search = '%%'; } } $sql = "SELECT periodeID AS id, periodeYear, periodeMonth, CONCAT(periodeYear, ' - ',periodeMonth) as yearandmonth, periodeName, CONCAT(DATE_FORMAT(periodeStartDate, '%d %M %Y'), ' - ', DATE_FORMAT(periodeEndDate, '%d %M %Y')) as periode FROM periode WHERE periodeIsActive = 'Y' AND periodeIsClosed = 'N' ORDER BY periodeMonth DESC"; $qry = $this->db->query($sql, []); if (!$qry) { $this->sys_error_db("select period", $this->db); exit; } $rst = $qry->result_array(); $this->sys_ok($rst); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function search() { try { if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $periodeid = $prm["periodeid"]; $xdate = $prm["xdate"]; $branchid = $prm["branchid"]; $regionalid = $prm["regionalid"]; $filter_regional = ""; $filter_cabang = ""; $join_regional = ""; $join_cabang = ""; if (intval($branchid) === 0) { $filter_regional = " AND S_RegionalID = {$regionalid}"; $join_regional = " LEFT JOIN m_branch ON jurnalM_BranchCode = M_BranchCode AND M_BranchIsActive = 'Y' "; } else { $filter_cabang = " AND S_RegionalID = {$regionalid} AND M_BranchID = {$branchid}"; $join_cabang = " JOIN m_branch ON jurnalM_BranchCode = M_BranchCode AND M_BranchIsActive = 'Y' "; } $sql = "SELECT M_ItemCode CodeFixedAsset, M_ItemDesc NameFixedAsset, Fa_ItemAcquisitionPrice AcquisitionPrice, IFNULL(Fa_ClassDepreCorp,0) DepreRateFixedAsset, IFNULL(Fa_ClassDepreGov,0) DepreGovPercent, 0 DebitFixedAsset, 0 CreditFixedAsset, IFNULL(Fa_ClassDepreCorp,0)/12*Fa_ItemAcquisitionPrice AccumDepreFixedAsset, Fa_ItemAcquisitionPrice - IFNULL(Fa_ClassDepreCorp,0)/12*Fa_ItemAcquisitionPrice RemainingValueFixedAsset, '' as ErrStatus, '' as ErrMsg, '' as detailtx FROM fa_item JOIN m_item ON M_ItemID = Fa_ItemM_ItemID JOIN fa_class ON Fa_ClassID = M_ItemFa_ClassID WHERE Fa_ItemIsActive = 'Y' ORDER BY M_ItemCode ASC"; $sql_total = "SELECT count(*) as total FROM ($sql) as x"; $qry_total = $this->db->query($sql_total); $number_offset = 0; $number_limit = 10; if ($prm["current_page"] > 0) { $number_offset = ($prm["current_page"] - 1) * $number_limit; } $totalCount = 0; $totalPage = 0; if ($qry_total) { $totalCount = $qry_total->result_array()[0]["total"]; $totalPage = ceil($totalCount / $number_limit); } else { $this->db->trans_rollback(); $this->sys_error_db("select jurnal count error", $this->db);; exit; } $sql_select = $sql . " LIMIT $number_limit OFFSET $number_offset"; $qry = $this->db->query($sql_select); if ($qry) { $rows = $qry->result_array(); } else { $this->db->trans_rollback(); $this->sys_error_db("select jurnal error", $this->db); exit; } foreach ($rows as $key => $value) { $sql_err = "SELECT JurnalErr_ID, JurnalErr_Msg FROM jurnal_errors WHERE JurnalErr_IsActive = 'Y' AND JurnalErr_JurnalID = ?"; $qry_err = $this->db->query($sql_err, array($value["jurnalID"])); if (!$qry_err) { $this->db->trans_rollback(); $this->sys_error_db("select jurnal msg error", $this->db); exit; } $rows_err = $qry_err->result_array(); // Decode JSON di dalam kolom JurnalErr_Msg foreach ($rows_err as &$row) { $row['JurnalErr_Msg'] = json_decode($row['JurnalErr_Msg'], true); } if (count($rows_err) > 0) { $rows[$key]["ErrStatus"] = 'Y'; $rows[$key]["ErrMsg"] = $rows_err; } else { $rows[$key]["ErrStatus"] = 'N'; $rows[$key]["ErrMsg"] = []; } $sql_detail = "SELECT jurnalTxID, jurnalTxJurnalID, jurnalTxCoaID, jurnalTxDescription, jurnalTxDebit, jurnalTxCredit, coaID, coaAccountNo, coaDescription, coaSubDescription, coaAccountType, coaIsInput, coaReportSchedule, coaCurrencyCode, coaCashFlowCategory, GROUP_CONCAT(jurnalAddOnCode SEPARATOR ', ') as jurnalAddOnCode, GROUP_CONCAT(jurnalAddOnValue SEPARATOR ' | ') as jurnalAddOnValue FROM jurnal_tx JOIN coa ON jurnalTxCoaID = coaID AND coaIsActive = 'Y' LEFT JOIN jurnal_addon ON jurnalTxID = jurnalAddOnJurnalTxID AND jurnalAddOnIsActive = 'Y' AND (jurnalAddOnCode = 'PVNO') WHERE jurnalTxIsActive = 'Y' AND jurnalTxJurnalID = ? GROUP BY jurnalTxID"; $qry_detail = $this->db->query($sql_detail, array($value["jurnalID"])); if (!$qry_detail) { $this->db->trans_rollback(); $this->sys_error_db("select jurnal tx error", $this->db); exit; } // echo $this->db->last_query(); // exit; $rows_detail = $qry_detail->result_array(); if (count($rows_detail) > 0) { $rows[$key]["detailtx"] = $rows_detail; } else { $rows[$key]["detailtx"] = []; } } $result = array( 'total' => $totalPage, 'totalfilter' => $totalCount, "records" => $rows ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } }