app = $app; $this->db = $db; $this->web_app = (array) $session->get('WEB_APP'); $this->app_gel = (array) $session->get('APP_GEL'); $this->id_cab = Param::Int("CabID", $session->get('APP_INV')['CABANGID']); $this->mode = Param::Get("mode", ""); $this->mode_detail = Param::Get("mode_detail", ""); $this->kode_jurnal = Param::Get("Kode_Jurnal", ""); $this->kode_rek = Param::Get("Kode_Rek", ""); $this->gel = new Gel($app); } public function table_detail() { if (in_array($this->mode_detail, ["insert","update","delete"])) { $jumlah = (float) Param::Get("Jumlah", 0) * -1; $sql = new SQL($this->app); $sql->set_table("tmp_gel_jurnal_detail"); $sql->add_param("Kode_Rek"); $sql->add_param("DK", "K"); $sql->add_param("Jumlah", $jumlah); $sql->add_param_unix(); $sql->add_param_userid(); $sql->add_where("Kode_Jurnal"); $sql->add_where("ID"); if ($this->mode_detail === "insert") { $sql->add_param("Kode_Jurnal"); $sql->InsertDB(); } else if ($this->mode_detail === "update") { $sql->UpdateDB(); } else if ($this->mode_detail === "delete") { $sql->DeleteDB(); } } $tsql = ''; $asql = [$this->kode_jurnal, "K"]; $qtabel = "gel_jurnal_detail"; if (in_array($this->mode, ["add","edit"])) { if ($this->mode === "add") { $tsql = " AND Unix=?"; $asql[] = $this->app->user()->unix(); } $qtabel = "tmp_gel_jurnal_detail"; } $obj = new Table($this->app); $obj->set_table("(SELECT * FROM ".$qtabel." WHERE Kode_Jurnal=? AND DK=?".$tsql.") D LEFT JOIN gel_acc A ON (D.Kode_Rek=A.Kode_Rek)", "D.*,-D.Jumlah Jumlah2,A.Nama_Rek", "", $asql); $obj->set_footer("SUM(-Jumlah) Jumlah2, COUNT(*) Kode_Rek"); $obj->add_field("ID", "ID", "hid"); $obj->add_field("Kode_Rek", "Kode", "c", "", "records"); $obj->add_field("Nama_Rek", "Rekening Kredit", "awr"); $obj->add_field("Jumlah2", "Jumlah", "r", "kurung", "kurung"); $obj->set_field_order("Kode_Rek", "A"); if (in_array($this->mode, ["add","edit"])) { $obj->add_row_btn("clipboard", "Ubah", "GELTerimaJS.detail_ubah"); $obj->add_row_btn("trash", "Hapus", "GELTerimaJS.detail_hapus", "Unix", $this->app->user()->unix()); $obj->set_func_btn("GELTerimaJS.detail_tambah", ' Rekening'); $obj->set_func_btn("GELTerimaJS.rek_brow", ' Browse'); } $nitems = (int) $this->db->fetchField("SELECT COUNT(*) FROM ".$qtabel." WHERE Kode_Jurnal=? AND DK=?".$tsql, $asql) ?? 0; $this->app->json([ $obj->json_table("divDetailTabel"), ['type'=>"form", 'id'=>"Total_Item", 'value'=>$nitems] ]); } public function brow_tx() { $tcari = Param::Get("Cari_TX"); $tsql = 'TipeID=2'; $asql = []; if (!empty($tcari)) { $tsql .= " AND CONCAT(Kode_Jurnal,DATE_FORMAT(Tanggal,'%d-%m-%Y'),Kode_Ref,Catatan) LIKE ?"; $asql[] = '%' . $tcari . '%'; } $obj = new Table($this->app); $obj->set_table("gel_jurnal", "*", $tsql, $asql); $obj->add_field("Kode_Jurnal", "Kode Jurnal", "c"); $obj->add_field("Tanggal", "Tanggal", "c", "sqltgl", "", "val-tgl"); $obj->add_field("Kode_Ref", "Kode Ref.", "l"); $obj->add_field("Catatan", "Deskripsi", "awr"); $obj->set_field_order("Kode_Jurnal", "D"); $obj->set_func_select("GELTerimaJS.tx_select"); $this->app->json([ $obj->db_table("divBrowTX") ]); } public function brow_rek() { $tcari = Param::Get("Cari_Rek"); $tsql = 'Aktif=1 AND Mode="D"'; $asql = []; if (!empty($tcari)) { $tsql .= " AND CONCAT(Kode_Rek,Nama_Rek) LIKE ?"; $asql[] = '%' . $tcari . '%'; } $obj = new Table($this->app); $obj->set_table("gel_acc", "*", $tsql, $asql); $obj->add_field("Kode_Rek", "Kode", "c"); $obj->add_field("Nama_Rek", "Nama Rekening", "awr"); $obj->add_field("Level", "Level", "c"); $obj->set_field_order("Kode_Rek", "A"); $obj->set_func_select("GELTerimaJS.rek_select"); $this->app->json([ $obj->db_table("divBrowRek") ]); } public function auto_rek() { $tcari = Param::Get("Auto_Query"); $ajson['autodata'] = []; $stat = $this->db->runQuery("SELECT Kode_Rek,Nama_Rek,CONCAT(Kode_Rek,' - ',Nama_Rek) Nama_Lengkap FROM gel_acc WHERE Aktif=1 AND Mode='D' AND CONCAT(Kode_Rek,Nama_Rek) LIKE ? ORDER BY Kode_Rek LIMIT 50", ['%'.$tcari.'%']); while ($row = $stat->fetch(SimplePdo::FETCH_ASSOC)) { $ajson['autodata'][] = ['value'=>$row['Kode_Rek'], 'text'=>$row['Nama_Rek'], 'html'=>''.$row['Kode_Rek'].' '.$row['Nama_Rek'], 'data'=>"", 'bc'=>0]; } $this->app->json($ajson); } public function form_master() { $ajson = [ 'error'=>"", 'html'=>"" ]; $atabel = [ 'Kode_Jurnal'=>"", 'CabID'=>$this->id_cab, 'Kode_Ref'=>"", 'Tanggal'=>tgl_ymd(), 'Kode_Kas'=>"", 'Catatan'=>"" ]; if ($this->mode === "add") { $atabel['Kode_Jurnal'] = "GT-BARU#".(string) $this->web_app['SERVER_ID']. $this->app->user()->id(3); $atabel['Tanggal'] = tgl_ymd(); $atabel['Kode_Kas'] = $this->app_gel['KAS_TUNAI']; $this->kode_jurnal = ""; } else if ($this->mode === "edit") { $this->gel->Detail_Copy($this->kode_jurnal); } else if ($this->mode === "save") { $no_lama = $this->kode_jurnal; $tgl_jurn = Param::Get("Tanggal"); $b_baru = str_contains($no_lama, "BARU"); if ($b_baru) $this->kode_jurnal = $this->gel->Jurnal_Baru($this->id_cab, $tgl_jurn, true); $kode_kas = Param::Get("Kode_Kas"); $this->db->runQuery("DELETE FROM tmp_gel_jurnal_detail WHERE Kode_Jurnal='".$no_lama."' AND LEFT(Kode_Rek,1)='1' AND DK='D'"); $ntot_kas = $this->db->fetchField("SELECT SUM(-Jumlah) FROM tmp_gel_jurnal_detail WHERE Kode_Jurnal='".$no_lama."' AND Unix='".$this->app->user()->unix()."'") ?? 0; $this->db->insert("tmp_gel_jurnal_detail", [ 'Kode_Jurnal'=>$no_lama, 'Kode_Rek'=>$kode_kas, 'DK'=>'D', 'Jumlah'=>$ntot_kas,'Unix'=>$this->app->user()->unix(), 'UserID'=>$this->app->user()->id() ]); $this->gel->Detail_Save($this->kode_jurnal, 2, $this->id_cab, $tgl_jurn, $b_baru, $no_lama); $this->gel->Jurnal_Save($this->kode_jurnal, 2, $this->id_cab, $tgl_jurn, Param::Get("Kode_Ref"), Param::Get("Catatan")); $atabel['Tanggal'] = $tgl_jurn; $this->mode = "view"; } else if ($this->mode === "cancel") { $this->gel->Detail_Cancel($this->kode_jurnal); $this->mode = "view"; $this->kode_jurnal = ""; } if (!empty($this->kode_jurnal) && $this->mode !== "cancel") { $row = $this->db->fetchRow("SELECT * FROM gel_jurnal WHERE Kode_Jurnal='".$this->kode_jurnal."' AND TipeID=2"); if ($row) { $atabel = $row; $atabel['Kode_Kas'] = $this->db->fetchField("SELECT Kode_Rek FROM gel_jurnal_detail WHERE Kode_Jurnal='".$atabel['Kode_Jurnal']."' AND DK='D' LIMIT 1") ?? ''; } else { $ajson['error'] = "Nomor Transaksi belum ada / tidak diketemukan !"; } } $enable = in_array($this->mode, ["add","edit"]) ? true : false; $form = new Form($this->app); $tkode = $form->textbox("_", "Kode_Jurnal", $atabel['Kode_Jurnal'], !$enable, false, "text", "kode jurnal"); $tref = $form->textbox("_", "Kode_Ref", $atabel['Kode_Ref'], $enable, false, "text", "kode referensi"); $ttgl = $form->datebox("_", "Tanggal", $atabel['Tanggal'], $enable, false); $tcab = $form->option_db("_", "CabID", $atabel['CabID'], $enable, false, "para_cabang", ["CabID","Nama_Cab"], "Aktif=1 ORDER BY CabID"); $tkas = $form->option_db("_", "Kode_Kas", $atabel['Kode_Kas'], $enable, false, "vi_gel_acc", ["Kode_Rek","Nama_Lengkap"], "Kas_Rek=1 AND Aktif=1 AND Mode='D' ORDER BY Kode_Rek"); $tcatat = $form->textbox("_", "Catatan", stripslashes($atabel['Catatan']), $enable, false, "text", "catatan jurnal"); $ajson['html'] = '
'.$tkode.'
'.$ttgl.'
'.$tcab.'
'.$tref.'
'.$tcatat.'
'.$tkas.'

'; $this->app->json($ajson); } public function form_rek() { $id = (int) Param::Get("ID", 0); $atabel = [ 'ID'=>$id, 'Kode_Rek'=>$this->kode_rek, 'Nama_Rek'=>"", 'Jumlah'=>0 ]; if ($id > 0) { $atabel = $this->db->fetchRow("SELECT * FROM tmp_gel_jurnal_detail WHERE Kode_Jurnal=? AND ID=?", [$this->kode_jurnal, $id]); } if (!empty($atabel['Kode_Rek'])) { $atabel['Nama_Rek'] = $this->db->fetchField("SELECT Nama_Rek FROM gel_acc WHERE Kode_Rek=?", [$atabel['Kode_Rek']]) ?? ''; } $form = new Form($this->app); $tkode = $form->textbox("_", "Kode_Rek", $atabel['Kode_Rek'], false, false, "text"); $tnama = $form->textauto("_", "Nama_Rek", ['value'=>$atabel['Kode_Rek'],'text'=>$atabel['Nama_Rek']], true, true, "ketik kode / nama rekening"); $tjumlah = $form->textbox("_", "Jumlah", abs($atabel['Jumlah']), true, true, "double"); $ajson['html'] = '
'.$tkode.'
'.$tnama.'
'.$tjumlah.'
'; $this->app->json($ajson); } public function proses_hapus() { $this->db->runQuery("DELETE FROM gel_jurnal WHERE Kode_Jurnal='".$this->kode_jurnal."'"); $this->db->runQuery("DELETE FROM gel_jurnal_detail WHERE Kode_Jurnal='".$this->kode_jurnal."'"); $this->app->json([ 'status' => true ]); } public function index() { $this->app->json(['html' => '
 
 
' ]); } }