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