app = $app; $this->db = $db; $this->reg_name = $session->get('WEB_APP')['REG_NAME']; } public function brow_jurnal() { $tcari = Param::Get("Cari_Jurnal"); $tsql = ''; $asql = []; if (!empty($tcari)) { $tsql .= " WHERE CONCAT(Kode_Jurnal,DATE_FORMAT(Tanggal,'%d-%m-%Y'),Kode_Ref,Catatan) LIKE ?"; array_push($asql, '%' . $tcari . '%'); } $obj = new Table($this->app); $obj->set_table("(SELECT * FROM gel_jurnal".$tsql.") J LEFT JOIN gel_tipe T ON (T.TipeID=J.TipeID)", "J.*,T.Kode_Tipe", "", $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->add_field("Kode_Tipe", "Tipe", "l"); $obj->set_field_order("Kode_Jurnal", "D"); $obj->set_func_select("RepoGelHDetailJS.jurnal_select"); $this->app->json([ $obj->db_table("divBrowJurnal") ]); } private function prepare() { $apre = [ 'kode_jurnal' => Param::Get("Kode_Jurnal"), 'header' => [], 'detail' => [], ]; // ambil detail informasi jurnal $apre['header'] = $this->db->fetchRow("SELECT J.*, O.Nama NamaUser, CONCAT(YEAR(J.Tanggal),'-',IF(MONTH(J.Tanggal)<10,'0',''),MONTH(J.Tanggal)) Periode,T.Kode_Tipe,T.Nama_Tipe FROM (SELECT * FROM gel_jurnal WHERE Kode_Jurnal=?) J LEFT JOIN app_operator O ON (J.UserID=O.UserID) LEFT JOIN gel_tipe T ON (J.TipeID=T.TipeID)", [$apre['kode_jurnal']]); // check status jurnal $cek = (float) $this->db->fetchField("SELECT SUM(Jumlah) FROM gel_jurnal_detail WHERE Kode_Jurnal=?", [$apre['kode_jurnal']]) ?? 0; $apre['header']['Status'] = ($cek === 0.0) ? 'OK' : 'Tidak Seimbang'; // query detail jurnal $apre['detail'] = $this->db->fetchAll("SELECT D.*, A.Nama_Rek FROM (SELECT ID,Kode_Rek,DK,IF(DK='D',Jumlah,0) Debit, IF(DK='K',Jumlah*-1,0) Kredit FROM gel_jurnal_detail WHERE Kode_Jurnal=?) D LEFT JOIN gel_acc A ON (D.Kode_Rek=A.Kode_Rek) ORDER BY D.ID", [$apre['kode_jurnal']]); return $apre; } public function print() { $apre = $this->prepare(); $pre = new PrintHTML($this->app); $pre->add_title([strtoupper($this->reg_name), "JURNAL DETAIL"]); $pre->add_field("No.",10,"C"); $pre->add_field("Kode",50,"C"); $pre->add_field("Nama Rekening",150,"L"); $pre->add_field("D / K",10,"C"); $pre->add_field("Debit",20,"R","rupiah"); $pre->add_field("Kredit",20,"R","rupiah"); $pre->show_titles(); $kop = ''; $kop .= ''; $kop .= ''; $kop .= ''; $kop .= ''; $kop .= ''; $kop .= '
Kode Jurnal'.$apre['header']['Kode_Jurnal'].'Periode'.$apre['header']['Periode'].'
Tanggal'.tgl_sql2str($apre['header']['Tanggal']).'Tipe Jurnal['.$apre['header']['Kode_Tipe']."] Jurnal ".$apre['header']['Nama_Tipe'].'
Kode Referensi'.$apre['header']['Kode_Ref'].'Informasi User['.isi_nol($apre['header']['UserID'],3)."] ".$apre['header']['NamaUser'].'
Keterangan'.$apre['header']['Catatan'].'
Status'.$apre['header']['Status'].'
'; echo $kop; $pre->show_headers(); foreach ($apre['detail'] as $row) { $pre->add_row([ $row['ID'], $row['Kode_Rek'], $row['Nama_Rek'], $row['DK'], $row['Debit'], $row['Kredit'] ]); } $pre->add_stamp(1, true); $pre->show(); } public function index() { $form = new Form($this->app); $tkode = $form->textbox("_", "Kode_Jurnal", "", true, false, "text", "kode jurnal"); $this->app->json([ 'html' => '
'.$tkode.'
' ]); } }