Files
be-accone/application/controllers/fixedasset/Journalfixedassetv2.php

1055 lines
44 KiB
PHP

<?php
class Journalfixedassetv2 extends MY_Controller
{
var $db;
public function index()
{
echo "PAYMENT VOUCHER API";
}
public function __construct()
{
parent::__construct();
}
function getPeriode()
{
try {
if (! $this->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"];
$user = $this->sys_user;
$regionalID = $user['S_RegionalID'];
$branchCode = $user['M_BranchCode'];
/* if (isset($branchCode)) {
$join_branch = " JOIN m_branch ON M_BranchCode = '{$branchCode}'
JOIN s_regional ON S_RegionalID = '{$regionalID}'";
$filter_branch = " AND Fa_ItemS_RegionalID = '{$regionalID}' AND Fa_ItemM_BranchCode = '{$branchCode}'";
}else{
$join_branch = " JOIN s_regional ON S_RegionalID = '{$regionalID}'
LEFT JOIN m_branch ON M_BranchS_RegionalID = '{$regionalID}' AND Fa_ItemM_BranchCode = '{$branchCode}'";
$filter_branch = " AND Fa_ItemS_RegionalID = '{$regionalID}'";
}
*/
$join_branch = " JOIN s_regional ON S_RegionalID = '{$regionalID}'";
$filter_branch = " AND Fa_ItemS_RegionalID = '{$regionalID}'";
$sql_confirm = "SELECT COUNT(*) as total
FROM (SELECT periodeID
FROM periode
WHERE periodeEndDate < (
SELECT periodeStartDate
FROM periode
WHERE periodeID = '{$periodeid}')
ORDER BY periodeEndDate DESC
LIMIT 1) a
JOIN fa_item_detail ON Fa_ItemDetailperiodeID = a.periodeID AND Fa_ItemDetailIsActive = 'Y'
";
$qry_confirm = $this->db->query($sql_confirm);
//echo $this->db->last_query();
if ($qry_confirm) {
$totalConfirm = $qry_confirm->result_array()[0]["total"];
if ($totalConfirm == 0){
$hide = 'Y';
} else {
$hide = 'N';
}
}
$sql = "SELECT
'{$hide}' as ishide,
Fa_ItemID,
Fa_ItemNote,
Fa_ItemNumber CodeFixedAsset,
M_ItemDesc NameFixedAsset,
Fa_ItemAcquisitionPrice AcquisitionPrice,
Fa_ItemDeprePerMonth,
CASE
WHEN Fa_ItemDate BETWEEN periodeStartDate AND periodeEndDate THEN 1
ELSE 0
END AS pMonth,
IFNULL(Fa_ClassDepreCorp,0) DepreRateFixedAsset,
IFNULL(Fa_ClassDepreGov,0) DepreGovPercent,
0 depresiasi,
0 akumulasi,
0 nilai_saat_ini,
0 depresiasi_text,
0 akumulasi_text,
0 nilai_saat_ini_text,
Fa_ItemNetBookValue BookValue,
0 BookValue_text,
'' as ErrStatus,
'' as ErrMsg,
'' as detailtx,
Fa_ItemDetailID,
IFNULL(Fa_ItemDetailIsConfirm,'N') as Fa_ItemIsConfirm,
DATE_FORMAT(Fa_ItemDate, '%c') month_fa,
0 AcquisitionPrice_text,
1 total_month,
Fa_ItemBranchFaPercentID,
'' branchlists
FROM fa_item
JOIN m_item ON M_ItemID = Fa_ItemM_ItemID
JOIN fa_class ON Fa_ClassID = M_ItemFa_ClassID
LEFT JOIN fa_item_detail ON Fa_ItemDetailFa_ItemID = Fa_ItemID AND Fa_ItemDetailIsActive = 'Y' AND Fa_ItemDetailperiodeID = $periodeid
JOIN periode ON periodeID = $periodeid AND periodeIsActive = 'Y'
$join_branch
WHERE Fa_ItemIsActive = 'Y'
$filter_branch
AND (date(Fa_ItemDate) <= periodeStartDate OR date(Fa_ItemDate) <= periodeEndDate)
ORDER BY Fa_ItemID DESC";
$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 = "SELECT periodeYear, periodeMonth FROM periode WHERE periodeID = ?";
$date_now = $this->db->query($sql, [$periodeid])->row();
$month = $date_now->periodeMonth;
if($month == 1){
$year = $date_now->periodeYear - 1;
$month_before = 12 ;
}else{
$year = $date_now->periodeYear;
$month_before = $month - 1 ;
}
$sql = "SELECT periodeID FROM periode WHERE periodeYear = '{$year}' AND periodeMonth = '{$month_before}'";
$periode_before = $this->db->query($sql)->row()->periodeID;
$total_month = $month - $value['month_fa'] + 1;
$rows[$key]["total_month"] = $total_month;
$sql = "SELECT Fa_ItemDetailFa_ItemID,
Fa_ItemDetailperiodeID,
Fa_ItemDetailDepre,
Fa_ItemDetailAccum,
Fa_ItemDetailCurrentValue,
Fa_ItemDetailCurrentValue as Fa_ItemDetailBookValue
FROM fa_item_detail
JOIN fa_item ON Fa_ItemID = Fa_ItemDetailFa_ItemID
WHERE Fa_ItemDetailFa_ItemID = {$value['Fa_ItemID']} AND
Fa_ItemDetailperiodeID = $periode_before
AND Fa_ItemDetailIsActive = 'Y'";
$fa_detail = $this->db->query($sql)->row();
$depre_amount = $value['Fa_ItemDeprePerMonth'];
$rows[$key]["depresiasi"] = $depre_amount;
$rows[$key]["depresiasi_text"] = number_format($depre_amount, 0, ',', '.');
$sum_depre_before = $depre_amount;
$akumulasi = $total_month * $sum_depre_before;
$rows[$key]["akumulasi"] = $akumulasi;
$rows[$key]["akumulasi_text"] = number_format($akumulasi, 0, ',', '.');
$nilai_saat_ini = $value['AcquisitionPrice'] - $akumulasi;
$rows[$key]["nilai_saat_ini"] = $nilai_saat_ini;
$rows[$key]["nilai_saat_ini_text"] = number_format($nilai_saat_ini, 0, ',', '.');
$rows[$key]["AcquisitionPrice_text"] = number_format($value['AcquisitionPrice'], 0, ',', '.');
if (isset($fa_detail->Fa_ItemDetailBookValue)){
$Fa_ItemDetailBookValue = $fa_detail->Fa_ItemDetailBookValue;
$rows[$key]["BookValue"] = $Fa_ItemDetailBookValue;
$rows[$key]["BookValue_text"] = number_format($Fa_ItemDetailBookValue, 0, ',', '.');
}else{
$Fa_ItemDetailBookValue = $nilai_saat_ini + $depre_amount;
$rows[$key]["BookValue"] = $Fa_ItemDetailBookValue;
$rows[$key]["BookValue_text"] = number_format($Fa_ItemDetailBookValue, 0, ',', '.');
}
$rows[$key]['branchlists'] = $this->getdetail($value['Fa_ItemBranchFaPercentID'],$depre_amount);
}
$result = array(
'total' => $totalPage,
'totalfilter' => $totalCount,
"records" => $rows
);
$this->sys_ok($result);
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function getdetail($Fa_ItemBranchFaPercentID,$depre_amount)
{
$sql = "SELECT BranchFaPercentDetailID,
BranchFaPercentDetailBranchFaPercentID,
BranchFaPercentDetailS_RegionalID,
BranchFaPercentDetailAccountNumber,
BranchFaPercentDetailM_BranchID,
BranchFaPercentDetailValue,
coaID,
coaAccountNo,
coaDescription,
M_BranchName,
(BranchFaPercentDetailValue / 100) * $depre_amount as totaldepre,
0 totaldepretext
FROM branch_fa_percent
JOIN branch_fa_percent_detail ON BranchFaPercentID = BranchFaPercentDetailBranchFaPercentID AND BranchFaPercentIsActive = 'Y'
AND BranchFaPercentDetailIsActive = 'Y'
AND BranchFaPercentDetailBranchFaPercentID = ?
JOIN coa
ON BranchFaPercentDetailAccountNumber = coaAccountNo
AND coaIsActive = 'Y'
JOIN m_branch
ON M_BranchID = BranchFaPercentDetailM_BranchID
";
$query = $this->db->query($sql, [$Fa_ItemBranchFaPercentID]);
if ($query) {
$rows = $query->result_array();
if($rows){
foreach ($rows as $key => $value) {
$rows[$key]["totaldepretext"] = number_format($value['totaldepre'], 0, ',', '.');
}
}
return $rows;
} else {
$this->sys_error_db("get branchlist", $this->db_onedev);
exit;
}
}
function addConfirm()
{
$prm = $this->sys_input;
try {
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$this->db_onedev->trans_begin();
$userid = $this->sys_user['M_UserID'];
$periodeid = $prm['periodeid'];
foreach ($prm['details'] as $k => $v) {
// Pastikan hanya proses yang belum dikonfirmasi
if ($v['Fa_ItemIsConfirm'] == 'N') {
// Masukkan data ke fa_item_detail
$query = "INSERT INTO fa_item_detail
(Fa_ItemDetailFa_ItemID,
Fa_ItemDetailperiodeID,
Fa_ItemDetailBookValue,
Fa_ItemDetailDeprePerMonth,
Fa_ItemDetailDepre,
Fa_ItemDetailAccum,
Fa_ItemDetailCurrentValue,
Fa_ItemDetailIsConfirm,
Fa_ItemDetailConfirmDate,
Fa_ItemDetailConfirmUserID)
VALUES(?,?,?,?,?,?,?,?,now(),?)";
$qry = $this->db_onedev->query($query, array(
$v['Fa_ItemID'],
$periodeid,
$v['BookValue'],
$v['Fa_ItemDeprePerMonth'],
$v['depresiasi'],
$v['akumulasi'],
$v['nilai_saat_ini'],
'Y',
$userid
));
$last_qry = $this->db_onedev->last_query();
if (!$qry) {
$this->db_onedev->trans_rollback();
$error = array(
"message" => $this->db_onedev->error()["message"],
"sql" => $last_qry
);
$this->sys_error_db($error, $this->db_onedev);
exit;
}
$last_id = $this->db_onedev->insert_id();
// Insert jurnal pembelian
$newData = [];
$sqlData = "SELECT fa_item.*,
fa_item_detail.*,
M_BranchID,
M_BranchCode,
M_BranchName,
M_BranchS_RegionalID,
M_BranchCompanyID,
M_BranchCompanyName,
CONCAT('Jurnal Pembelian Fix Asset ', DATE_FORMAT(now(), '%d-%m-%Y')) xdescription,
'{$periodeid}' periodeid,
CONCAT('Jurnal Pembelian Fix Asset ', DATE_FORMAT(now(), '%d-%m-%Y'), ' cabang ',M_BranchName) title,
21 typeid,
'' detailjurnal,
ca.coaDescription as CoaBiayaDepresiasi,
cb.coaDescription as CoaAkumulasiDepresiasi,
Fa_ClassAccumDepreCostCoaID,
Fa_ItemFa_ClassAccumDepreCoaID,
bd.coaID as CoaBeliDebetID,
bd.coaDescription as CoaBeliDebetName,
bc.coaID as CoaBeliCreditID,
bc.coaDescription as CoaBeliCreditName
FROM fa_item_detail
JOIN fa_item ON Fa_ItemID = Fa_ItemDetailFa_ItemID
JOIN m_item ON M_ItemID = Fa_ItemM_ItemID
JOIN fa_class ON Fa_ClassID = M_ItemFa_ClassID
LEFT JOIN m_branch ON M_BranchCode = Fa_ItemM_BranchCode
LEFT JOIN m_branch_companydetail ON M_BranchCompanyDetailM_BranchCode = M_BranchCode AND M_BranchCompanyDetailIsActive = 'Y'
LEFT JOIN m_branch_company ON M_BranchCompanyID = M_BranchCompanyDetailM_BranchCompanyID AND M_BranchCompanyIsActive = 'Y'
JOIN coa ca ON ca.coaID = Fa_ClassAccumDepreCostCoaID
JOIN coa cb ON cb.coaID = Fa_ItemFa_ClassAccumDepreCoaID
LEFT JOIN coa bd ON bd.coaID = Fa_ItemFa_ClassCoaID
LEFT JOIN coa bc ON bc.coaID = Fa_ItemAcquisitionCoaID
WHERE Fa_ItemDetailID = {$last_id} AND Fa_ItemDetailIsActive = 'Y'";
$qryData = $this->db_onedev->query($sqlData);
$last_qry = $this->db_onedev->last_query();
if (!$qryData) {
$this->db_onedev->trans_rollback();
$error = array(
"message" => $this->db_onedev->error()["message"],
"sql" => $last_qry
);
$this->sys_error_db($error, $this->db_onedev);
exit;
}
$newData = $qryData->result_array();
if ($newData) {
foreach ($newData as $k_jurnal => $v_jurnal) {
$branchid = $v_jurnal["M_BranchID"];
$branchcompanyid = $v_jurnal["M_BranchCompanyID"];
$date = date('Y-m-d');
$description = $v_jurnal["xdescription"];
$regionalid = $v_jurnal["M_BranchS_RegionalID"];
$title = $v_jurnal["title"];
$typeid = $v_jurnal["typeid"];
$pvno = $v_jurnal["Fa_ItemNumber"];
$detailjurnal = $this->db_onedev->query("SELECT {$v_jurnal["CoaBeliDebetID"]} coaid,
'{$v_jurnal["CoaBeliDebetName"]}' xdescription,
{$v_jurnal["Fa_ItemDetailBookValue"]} debit,
0 credit
UNION
SELECT
{$v_jurnal["CoaBeliCreditID"]} coaid,
'{$v_jurnal["CoaBeliCreditName"]}' xdescription,
0 debit,
{$v_jurnal["Fa_ItemDetailBookValue"]} credit")->result_array();
$this->savejurnalbeli($branchid, $date, $description, $periodeid, $regionalid, $title, $typeid, $detailjurnal, $pvno, $branchcompanyid);
}
}
// Loop untuk branchlists
// Data branchlists sudah ada di $v dari hasil fungsi search()
foreach ($v['branchlists'] as $key => $value) {
$branchlistid = $value["BranchFaPercentDetailM_BranchID"];
$querybranchlist = "INSERT INTO fa_item_branch
(Fa_ItemBranchFa_ItemID,
Fa_ItemBranchFa_ItemDetailID,
Fa_ItemBranchM_BranchID,
Fa_ItemBranchperiodeID,
Fa_ItemBranchDeprePerMonth,
Fa_ItemBranchIsConfirm,
Fa_ItemBranchConfirmDate,
Fa_ItemBranchConfirmUserID,
Fa_ItemBranchUserID)
VALUES(?,?,?,?,?,?,now(),?,?)";
$qrybranchlist = $this->db_onedev->query($querybranchlist, array(
$v['Fa_ItemID'],
$last_id,
$branchlistid,
$periodeid,
$value['totaldepre'],
'Y',
$userid,
$userid
));
$last_qry = $this->db_onedev->last_query();
if (!$qrybranchlist) {
$this->db_onedev->trans_rollback();
$error = array(
"message" => $this->db_onedev->error()["message"],
"sql" => $last_qry
);
$this->sys_error_db($error, $this->db_onedev);
exit;
}
$last_branchid = $this->db_onedev->insert_id();
// Jurnal untuk branch regional
$sqlDatabranchlist = "SELECT fa_item.*,
fa_item_detail.*,
fa_item_branch.*,
M_BranchID,
M_BranchCode,
M_BranchName,
M_BranchS_RegionalID,
M_BranchCompanyID,
M_BranchCompanyName,
CONCAT('Jurnal Depresiasi Fix Asset Cabang', DATE_FORMAT(now(), '%d-%m-%Y')) xdescription,
'{$periodeid}' periodeid,
CONCAT('Jurnal Depresiasi Fix Asset Cabang', DATE_FORMAT(now(), '%d-%m-%Y'), ' cabang ', M_BranchName) title,
21 typeid,
'' detailjurnal,
cb.coaID as CoaDebetID,
cb.coaDescription as CoaDebetName,
ca.coaID as CoaCreditID,
ca.coaDescription as CoaCreditName
FROM fa_item_branch
JOIN fa_item_detail ON Fa_ItemDetailID = Fa_ItemBranchFa_ItemDetailID AND Fa_ItemBranchIsActive = 'Y'
JOIN fa_item ON Fa_ItemID = Fa_ItemDetailFa_ItemID
JOIN m_item ON M_ItemID = Fa_ItemM_ItemID
JOIN fa_class ON Fa_ClassID = M_ItemFa_ClassID
LEFT JOIN m_branch ON M_BranchID = Fa_ItemBranchM_BranchID
LEFT JOIN m_branch_companydetail ON M_BranchCompanyDetailM_BranchCode = M_BranchCode AND M_BranchCompanyDetailIsActive = 'Y'
LEFT JOIN m_branch_company ON M_BranchCompanyID = M_BranchCompanyDetailM_BranchCompanyID AND M_BranchCompanyIsActive = 'Y'
JOIN branch_fa_percent ON BranchFaPercentID = Fa_ItemBranchFaPercentID
JOIN branch_fa_percent_detail ON BranchFaPercentDetailBranchFaPercentID = BranchFaPercentID AND BranchFaPercentDetailM_BranchID = Fa_ItemBranchM_BranchID AND BranchFaPercentDetailIsActive = 'Y'
JOIN coa ca ON ca.coaAccountNo = BranchFaPercentDetailAccountNumber
JOIN coa cb ON cb.coaID = Fa_ItemFa_ClassAccumDepreCoaID
WHERE Fa_ItemBranchFa_ItemDetailID = {$last_id} AND Fa_ItemBranchIsActive = 'Y' AND Fa_ItemBranchID = {$last_branchid}";
$qryDatabranchlist = $this->db_onedev->query($sqlDatabranchlist);
$last_qry = $this->db_onedev->last_query();
if (!$qryDatabranchlist) {
$this->db_onedev->trans_rollback();
$error = array(
"message" => $this->db_onedev->error()["message"],
"sql" => $last_qry
);
$this->sys_error_db($error, $this->db_onedev);
exit;
}
$newDatabranchlist = $qryDatabranchlist->result_array();
if ($newDatabranchlist) {
foreach ($newDatabranchlist as $key_jurnal_regional => $value_jurnal_regional) {
$branchid = $value_jurnal_regional["M_BranchID"];
$branchcompanyid = $value_jurnal_regional["M_BranchCompanyID"];
$date = date('Y-m-d');
$description = $value_jurnal_regional["xdescription"];
$regionalid = $value_jurnal_regional["M_BranchS_RegionalID"];
$title = $value_jurnal_regional["title"];
$typeid = $value_jurnal_regional["typeid"];
$pvno = $value_jurnal_regional["Fa_ItemNumber"];
$creditid = $value_jurnal_regional["CoaCreditID"];
$creditname = $value_jurnal_regional["CoaCreditName"];
$credittotal = $value_jurnal_regional["Fa_ItemDetailDeprePerMonth"];
$detailjurnal = $this->db_onedev->query("SELECT {$value_jurnal_regional["CoaDebetID"]} coaid,
'{$value_jurnal_regional["CoaDebetName"]}' xdescription,
{$value_jurnal_regional["Fa_ItemBranchDeprePerMonth"]} debit,
0 credit
UNION SELECT {$value_jurnal_regional["CoaCreditID"]} coaid,
'{$value_jurnal_regional["CoaCreditName"]}' xdescription,
0 debit,
{$value_jurnal_regional["Fa_ItemBranchDeprePerMonth"]} credit
")->result_array();
$this->savejurnalbranch($branchid, $date, $description, $periodeid, $regionalid, $title, $typeid, $detailjurnal, $pvno, $branchcompanyid, $creditid, $creditname, $credittotal);
}
}
}
$newDataRegional = [];
$sqlDataRegional = "SELECT fa_item.*,
fa_item_detail.*,
M_BranchID,
M_BranchCode,
M_BranchName,
M_BranchS_RegionalID,
M_BranchCompanyID,
M_BranchCompanyName,
CONCAT('Jurnal Depresiasi Fix Asset Regional', DATE_FORMAT(now(), '%d-%m-%Y')) xdescription,
'{$periodeid}' periodeid,
CONCAT('Jurnal Depresiasi Fix Asset Regional', DATE_FORMAT(now(), '%d-%m-%Y'), ' ',S_RegionalName) title,
21 typeid,
'' detailjurnal,
ca.coaDescription as CoaBiayaDepresiasi,
cb.coaDescription as CoaAkumulasiDepresiasi,
Fa_ClassAccumDepreCostCoaID,
Fa_ItemFa_ClassAccumDepreCoaID,
bd.coaID as CoaDebetID,
bd.coaDescription as CoaDebetName,
cb.coaID as CoaCreditID,
cb.coaDescription as CoaCreditName
FROM fa_item_detail
JOIN fa_item ON Fa_ItemID = Fa_ItemDetailFa_ItemID
JOIN m_item ON M_ItemID = Fa_ItemM_ItemID
JOIN fa_class ON Fa_ClassID = M_ItemFa_ClassID
LEFT JOIN m_branch ON M_BranchCode = Fa_ItemM_BranchCode
LEFT JOIN s_regional ON S_RegionalID = M_BranchS_RegionalID
LEFT JOIN m_branch_companydetail ON M_BranchCompanyDetailM_BranchCode = M_BranchCode AND M_BranchCompanyDetailIsActive = 'Y'
LEFT JOIN m_branch_company ON M_BranchCompanyID = M_BranchCompanyDetailM_BranchCompanyID AND M_BranchCompanyIsActive = 'Y'
JOIN coa ca ON ca.coaID = Fa_ClassAccumDepreCostCoaID
JOIN coa cb ON cb.coaID = Fa_ItemFa_ClassAccumDepreCoaID
LEFT JOIN coa bd ON bd.coaID = Fa_ItemFa_ClassCoaID
LEFT JOIN coa bc ON bc.coaID = Fa_ItemAcquisitionCoaID
WHERE Fa_ItemDetailID = {$last_id} AND Fa_ItemDetailIsActive = 'Y'";
$qryDataRegional = $this->db_onedev->query($sqlDataRegional);
$last_qry = $this->db_onedev->last_query();
if (!$qryDataRegional) {
$this->db_onedev->trans_rollback();
$error = array(
"message" => $this->db_onedev->error()["message"],
"sql" => $last_qry
);
$this->sys_error_db($error, $this->db_onedev);
exit;
}
$newDataRegional = $qryDataRegional->result_array();
if ($newDataRegional) {
foreach ($newDataRegional as $k_jurnal => $v_jurnal) {
$branchid = $v_jurnal["M_BranchID"];
$branchcompanyid = $v_jurnal["M_BranchCompanyID"];
$date = date('Y-m-d');
$description = $v_jurnal["xdescription"];
$regionalid = $v_jurnal["M_BranchS_RegionalID"];
$title = $v_jurnal["title"];
$typeid = $v_jurnal["typeid"];
$pvno = $v_jurnal["Fa_ItemNumber"];
$detailjurnal = $this->db_onedev->query("SELECT coaID coaid,
coaDescription xdescription,
Fa_ItemBranchDeprePerMonth debit,
0 credit
FROM fa_item_branch
JOIN fa_item_detail ON Fa_ItemDetailID = Fa_ItemBranchFa_ItemDetailID AND Fa_ItemBranchIsActive = 'Y'
JOIN fa_item ON Fa_ItemID = Fa_ItemDetailFa_ItemID
JOIN branch_fa_percent ON BranchFaPercentID = Fa_ItemBranchFaPercentID
JOIN branch_fa_percent_detail ON BranchFaPercentDetailBranchFaPercentID = BranchFaPercentID AND BranchFaPercentDetailM_BranchID = Fa_ItemBranchM_BranchID AND BranchFaPercentDetailIsActive = 'Y'
JOIN coa ON coaAccountNo = BranchFaPercentDetailAccountNumber
WHERE Fa_ItemBranchFa_ItemDetailID = {$last_id} AND Fa_ItemBranchIsActive = 'Y'
UNION ALL
SELECT
{$v_jurnal["CoaCreditID"]} coaid,
'{$v_jurnal["CoaCreditName"]}' xdescription,
0 debit,
{$v_jurnal["Fa_ItemDetailDeprePerMonth"]} credit")->result_array();
$this->savejurnalregional($branchid, $date, $description, $periodeid, $regionalid, $title, $typeid, $detailjurnal, $pvno, $branchcompanyid);
}
}
}
}
$this->db_onedev->trans_commit();
$result = array("total" => 1);
$this->sys_ok($result);
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function savejurnalbeli($branchid, $date, $description, $periodeid, $regionalid, $title, $typeid, $detailjurnal, $pvno, $branchcompanyid)
{
try {
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$this->db->trans_begin();
$userid = $this->sys_user['M_UserID'];
$sql_branch = "SELECT
M_BranchID,
M_BranchCode,
M_BranchName
FROM m_branch
WHERE M_BranchIsActive = 'Y'
AND M_BranchID = ?";
$qry_branch = $this->db->query($sql_branch, array($branchid));
if ($qry_branch) {
$branchcodex = $qry_branch->row()->M_BranchCode;
} else {
$this->db->trans_rollback();
$this->sys_error_db("select branch error", $this->db);
exit;
}
$sql = "INSERT INTO jurnal(
jurnalM_BranchCompanyID,
JurnalS_RegionalID,
jurnalperiodeID,
jurnalNo,
jurnalTitle,
jurnalDescription,
jurnalDate,
jurnalJurnalTypeID,
jurnalIsActive,
jurnalCreated,
jurnalM_UserID
) VALUES(?,?,?,`fn_numbering`('J'),?,?,?,?,'Y',NOW(),?)";
$qry = $this->db->query($sql, array(
$branchcompanyid,
$regionalid,
$periodeid,
$title,
$description,
$date,
$typeid,
$userid
));
$last_qry = $this->db->last_query();
if (!$qry) {
$this->db->trans_rollback();
$error = array(
"message" => $this->db->error()["message"],
"sql" => $last_qry
);
$this->sys_error_db($error, $this->db);
exit;
}
$last_id = $this->db->insert_id();
foreach ($detailjurnal as $key => $value) {
$sql_detail = "INSERT INTO jurnal_tx(
jurnalTxJurnalID,
jurnalTxCoaID,
jurnalTxDescription,
jurnalTxDebit,
jurnalTxCredit,
jurnalTxIsActive,
jurnalTxCreated,
jurnalTxM_UserID) VALUES(?,?,?,?,?,'Y',NOW(),?)";
$qry_detail = $this->db->query($sql_detail, array(
$last_id,
$value["coaid"],
$value["xdescription"],
$value["debit"],
$value["credit"],
$userid
));
$last_qry = $this->db->last_query();
if (!$qry_detail) {
$this->db->trans_rollback();
$error = array(
"message" => $this->db->error()["message"],
"sql" => $last_qry
);
$this->sys_error_db($error, $this->db);
exit;
}
$tx_id = $this->db->insert_id();
$sql = "INSERT INTO jurnal_addon
(jurnalAddOnJurnalID,
jurnalAddOnJurnalTxID,
jurnalAddOnCode,
jurnalAddOnValue,
jurnalAddOnCreated,
jurnalAddOnCreatedUserID,
jurnalAddOnLastUpdatedUserID,
jurnalAddOnLastUpdated)
VALUES
(?,
?,
'JFA',
?,
now(),
?,
?,
now())";
$qry = $this->db->query($sql, array(
$last_id,
$tx_id,
$pvno,
$userid,
$userid
));
$last_qry = $this->db->last_query();
if (!$qry) {
$this->db->trans_rollback();
$error = array(
"message" => $this->db->error()["message"],
"sql" => $last_qry
);
$this->sys_error_db($error, $this->db);
exit;
}
}
$this->db->trans_commit();
// $result = array("total" => 1);
// $this->sys_ok($result);
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function savejurnalregional($branchid, $date, $description, $periodeid, $regionalid, $title, $typeid, $detailjurnal, $pvno, $branchcompanyid)
{
try {
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$this->db->trans_begin();
$userid = $this->sys_user['M_UserID'];
$sql_branch = "SELECT
M_BranchID,
M_BranchCode,
M_BranchName
FROM m_branch
WHERE M_BranchIsActive = 'Y'
AND M_BranchID = ?";
$qry_branch = $this->db->query($sql_branch, array($branchid));
if ($qry_branch) {
$branchcodex = $qry_branch->row()->M_BranchCode;
} else {
$this->db->trans_rollback();
$this->sys_error_db("select branch error", $this->db);
exit;
}
$sql = "INSERT INTO jurnal(
jurnalM_BranchCompanyID,
JurnalS_RegionalID,
jurnalperiodeID,
jurnalNo,
jurnalTitle,
jurnalDescription,
jurnalDate,
jurnalJurnalTypeID,
jurnalIsActive,
jurnalCreated,
jurnalM_UserID
) VALUES(?,?,?,`fn_numbering`('J'),?,?,?,?,'Y',NOW(),?)";
$qry = $this->db->query($sql, array(
$branchcompanyid,
$regionalid,
$periodeid,
$title,
$description,
$date,
$typeid,
$userid
));
$last_qry = $this->db->last_query();
if (!$qry) {
$this->db->trans_rollback();
$error = array(
"message" => $this->db->error()["message"],
"sql" => $last_qry
);
$this->sys_error_db($error, $this->db);
exit;
}
$last_id = $this->db->insert_id();
foreach ($detailjurnal as $key => $value) {
$sql_detail = "INSERT INTO jurnal_tx(
jurnalTxJurnalID,
jurnalTxCoaID,
jurnalTxDescription,
jurnalTxDebit,
jurnalTxCredit,
jurnalTxIsActive,
jurnalTxCreated,
jurnalTxM_UserID) VALUES(?,?,?,?,?,'Y',NOW(),?)";
$qry_detail = $this->db->query($sql_detail, array(
$last_id,
$value["coaid"],
$value["xdescription"],
$value["debit"],
$value["credit"],
$userid
));
$last_qry = $this->db->last_query();
if (!$qry_detail) {
$this->db->trans_rollback();
$error = array(
"message" => $this->db->error()["message"],
"sql" => $last_qry
);
$this->sys_error_db($error, $this->db);
exit;
}
$tx_id = $this->db->insert_id();
$sql = "INSERT INTO jurnal_addon
(jurnalAddOnJurnalID,
jurnalAddOnJurnalTxID,
jurnalAddOnCode,
jurnalAddOnValue,
jurnalAddOnCreated,
jurnalAddOnCreatedUserID,
jurnalAddOnLastUpdatedUserID,
jurnalAddOnLastUpdated)
VALUES
(?,
?,
'JFA',
?,
now(),
?,
?,
now())";
$qry = $this->db->query($sql, array(
$last_id,
$tx_id,
$pvno,
$userid,
$userid
));
$last_qry = $this->db->last_query();
if (!$qry) {
$this->db->trans_rollback();
$error = array(
"message" => $this->db->error()["message"],
"sql" => $last_qry
);
$this->sys_error_db($error, $this->db);
exit;
}
}
$this->db->trans_commit();
// $result = array("total" => 1);
// $this->sys_ok($result);
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function savejurnalbranch($branchid, $date, $description, $periodeid, $regionalid, $title, $typeid, $detailjurnal, $pvno, $branchcompanyid,$creditid,$creditname,$credittotal)
{
try {
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$this->db->trans_begin();
$userid = $this->sys_user['M_UserID'];
$sql_branch = "SELECT
M_BranchID,
M_BranchCode,
M_BranchName
FROM m_branch
WHERE M_BranchIsActive = 'Y'
AND M_BranchID = ?";
$qry_branch = $this->db->query($sql_branch, array($branchid));
if ($qry_branch) {
$branchcodex = $qry_branch->row()->M_BranchCode;
} else {
$this->db->trans_rollback();
$this->sys_error_db("select branch error", $this->db);
exit;
}
$sql = "INSERT INTO jurnal(
jurnalM_BranchCompanyID,
JurnalS_RegionalID,
jurnalM_BranchCode,
jurnalperiodeID,
jurnalNo,
jurnalTitle,
jurnalDescription,
jurnalDate,
jurnalJurnalTypeID,
jurnalIsActive,
jurnalCreated,
jurnalM_UserID
) VALUES(?,?,?,?,`fn_numbering`('J'),?,?,?,?,'Y',NOW(),?)";
$qry = $this->db->query($sql, array(
$branchcompanyid,
$regionalid,
$branchcodex,
$periodeid,
$title,
$description,
$date,
$typeid,
$userid
));
$last_qry = $this->db->last_query();
if (!$qry) {
$this->db->trans_rollback();
$error = array(
"message" => $this->db->error()["message"],
"sql" => $last_qry
);
$this->sys_error_db($error, $this->db);
exit;
}
$last_id = $this->db->insert_id();
foreach ($detailjurnal as $key => $value) {
$sql_detail = "INSERT INTO jurnal_tx(
jurnalTxJurnalID,
jurnalTxCoaID,
jurnalTxDescription,
jurnalTxDebit,
jurnalTxCredit,
jurnalTxIsActive,
jurnalTxCreated,
jurnalTxM_UserID) VALUES(?,?,?,?,?,'Y',NOW(),?)";
$qry_detail = $this->db->query($sql_detail, array(
$last_id,
$value["coaid"],
$value["xdescription"],
$value["debit"],
$value["credit"],
$userid
));
$last_qry = $this->db->last_query();
if (!$qry_detail) {
$this->db->trans_rollback();
$error = array(
"message" => $this->db->error()["message"],
"sql" => $last_qry
);
$this->sys_error_db($error, $this->db);
exit;
}
$tx_id = $this->db->insert_id();
$sql = "INSERT INTO jurnal_addon
(jurnalAddOnJurnalID,
jurnalAddOnJurnalTxID,
jurnalAddOnCode,
jurnalAddOnValue,
jurnalAddOnCreated,
jurnalAddOnCreatedUserID,
jurnalAddOnLastUpdatedUserID,
jurnalAddOnLastUpdated)
VALUES
(?,
?,
'JFA',
?,
now(),
?,
?,
now())";
$qry = $this->db->query($sql, array(
$last_id,
$tx_id,
$pvno,
$userid,
$userid
));
$last_qry = $this->db->last_query();
if (!$qry) {
$this->db->trans_rollback();
$error = array(
"message" => $this->db->error()["message"],
"sql" => $last_qry
);
$this->sys_error_db($error, $this->db);
exit;
}
}
$this->db->trans_commit();
// $result = array("total" => 1);
// $this->sys_ok($result);
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
}