add more BE file from server

This commit is contained in:
2026-05-06 16:48:09 +07:00
parent 55c6ed9779
commit bf0cc4af84
54 changed files with 35583 additions and 0 deletions

View File

@@ -0,0 +1,274 @@
<?php
class Mdcoa extends MY_Controller
{
var $db;
public function index()
{
echo "COA API";
// $cek = $this->db->query("select database() as current_db")->result();
// print_r($cek);
}
public function __construct()
{
parent::__construct();
}
function search()
{
try {
//# cek token valid
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$prm = $this->sys_input;
$search = "";
if (isset($prm['search'])) {
$search = trim($prm["search"]);
if ($search != "") {
$search = '%' . $prm['search'] . '%';
} else {
$search = '%%';
}
}
$number_limit = 20;
$number_offset = 0;
if ($prm['current_page'] > 0) {
$number_offset = ($prm['current_page'] - 1) * $number_limit;
}
$sql_filter = "SELECT count(*) as total
FROM coa
WHERE coaIsActive = 'Y'
AND (coaDescription LIKE ? OR coaSubDescription LIKE ? OR coaAccountNo LIKE ?)";
$qry_filter = $this->db->query($sql_filter, [$search, $search, $search]);
$tot_count = 0;
$tot_page = 0;
if ($qry_filter) {
$tot_count = $qry_filter->result_array()[0]["total"];
$tot_page = ceil($tot_count / $number_limit);
} else {
$this->db->trans_rollback();
$this->sys_error_db("coa count", $this->db);
exit;
}
$sql = "SELECT
coaID,
coaAccountNo,
coaDescription,
coaSubDescription,
coaAccountType,
coaIsInput,
coaReportSchedule,
coaCurrencyCode,
coaCashFlowCategory,
coaLevel
FROM coa
WHERE coaIsActive = 'Y'
AND (coaDescription LIKE ? OR coaSubDescription LIKE ? OR coaAccountNo LIKE ?)
ORDER BY coaAccountNo ASC
LIMIT ? OFFSET ?";
$qry = $this->db->query($sql, [$search, $search, $search, $number_limit, $number_offset]);
if ($qry) {
$rows = $qry->result_array();
} else {
$this->db->trans_rollback();
$this->sys_error_db("select coa", $this->db);
exit;
}
$result = array(
"total" => $tot_page,
"total_filter" => $tot_count,
"records" => $rows,
"sql" => $this->db->last_query()
);
$this->sys_ok($result);
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function addnewcoa()
{
try {
//# cek token valid
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$this->db->trans_begin();
$prm = $this->sys_input;
$accountno = $prm["accountno"];
$description = $prm["description"];
$subdescription = $prm["subdescription"];
$accounttype = $prm["accounttype"];
$currencycode = $prm["currencycode"];
$cashflowcategory = $prm["cashflowcategory"];
$reportschedule = $prm["reportschedule"];
$level = $prm["level"];
$isinput = $prm["isinput"];
$query = "SELECT COUNT(*) as exist FROM coa WHERE coaIsActive = 'Y' AND coaAccountNo = ?";
$exist_accountno = $this->db->query($query, [$accountno]);
if ($exist_accountno) {
$row = $exist_accountno->row()->exist;
} else {
$this->sys_error_db("exist error", $this->db);
exit;
}
if ($row == 0) {
$sql = "INSERT INTO coa(
coaAccountNo,
coaDescription,
coaSubDescription,
coaAccountType,
coaIsInput,
coaReportSchedule,
coaCurrencyCode,
coaCashFlowCategory,
coaCreated,
coaIsActive,
coaLevel
) VALUES(?,?,?,?,?,?,?,?,NOW(),'Y',?)";
$qry = $this->db->query($sql, [
$accountno,
$description,
$subdescription,
$accounttype,
$isinput,
$reportschedule,
$currencycode,
$cashflowcategory,
$level
]);
if (!$qry) {
$this->db->trans_rollback();
$this->sys_error_db("coa insert error", $this->db);
exit;
}
$this->db->trans_commit();
$result = array("total" => 1, "records" => array("xid" => 0));
$this->sys_ok($result);
} else {
$errors = array();
if ($row != 0) {
array_push($errors, array('field' => 'account no', 'msg' => 'Account No sudah digunakan'));
}
$result = array("total" => -1, "errors" => $errors, "records" => array('status' => 'ERROR'));
$this->sys_ok($result);
}
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function editcoa()
{
try {
//# cek token valid
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$this->db->trans_begin();
$prm = $this->sys_input;
$coaid = $prm["coaid"];
$accountno = $prm["accountno"];
$description = $prm["description"];
$subdescription = $prm["subdescription"];
$accounttype = $prm["accounttype"];
$currencycode = $prm["currencycode"];
$cashflowcategory = $prm["cashflowcategory"];
$reportschedule = $prm["reportschedule"];
$level = $prm["level"];
$isinput = $prm["isinput"];
$sql = "UPDATE coa SET
coaAccountNo = ?,
coaDescription = ?,
coaSubDescription = ?,
coaAccountType = ?,
coaIsInput = ?,
coaReportSchedule = ?,
coaCurrencyCode = ?,
coaCashFlowCategory = ?,
coaLastUpdated = NOW(),
coaLevel = ?
WHERE coaID = ?";
$qry = $this->db->query($sql, [
$accountno,
$description,
$subdescription,
$accounttype,
$isinput,
$reportschedule,
$currencycode,
$cashflowcategory,
$level,
$coaid
]);
if (!$qry) {
$this->db->trans_rollback();
$this->sys_error_db("coa update error", $this->db);
exit;
}
$this->db->trans_commit();
$result = array("total" => 1, "records" => array("xid" => $coaid));
$this->sys_ok($result);
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function deletecoa()
{
try {
//# cek token valid
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$this->db->trans_begin();
$prm = $this->sys_input;
$coaid = $prm["coaid"];
$sql = "UPDATE coa SET
coaLastUpdated = NOW(),
coaIsActive = 'N'
WHERE coaID = ?";
$qry = $this->db->query($sql, [$coaid]);
if (!$qry) {
$this->db->trans_rollback();
$this->sys_error_db("coa delete error", $this->db);
exit;
}
$this->db->trans_commit();
$result = array("total" => 1, "records" => array("xid" => 0));
$this->sys_ok($result);
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
}