app = $app; $this->db = $db; $this->app_gel = (array) $session->get('APP_GEL'); $this->mode = Param::Get("mode", ""); $this->mode_detail = Param::Get("mode_detail", ""); $this->id_karya = Param::Int("KaryaID", 0); $this->is_pinjam = Param::Int("is_pinjam", 0); $this->no_trans = Param::Get("No_Trans", ""); $this->gel = new Gel($app); } public function table_karya() { if (in_array($this->mode_detail, ["insert","update","delete"])) { $sql = new SQL($this->app); $sql->set_table("gel_karyawan"); $sql->add_param_date("Tgl_Trans"); $sql->add_param("Catatan"); $sql->add_param_userid(); $sql->add_where("No_Trans", $this->no_trans); $tgl_trans = Param::Get("Tgl_Trans"); if ($this->mode_detail === "insert") { $this->no_trans = $this->gel->Karya_Baru($tgl_trans); $sql->add_param("No_Trans", $this->no_trans); $sql->add_param("KaryaID"); // PROSES POSTING GL if ($this->is_pinjam === 1) { $sql->add_param("Total_Pinjam"); $tcat = "Pinjaman Karyawan : "; $ddk = "D"; $kdk = "K"; } else { $sql->add_param("Total_Bayar"); $tcat = "Pembayaran Karyawan : "; $ddk = "K"; $kdk = "D"; } $sql->InsertDB(); $tot_jumlah = (float) Param::Get("Total_Bayar", 0) + (float) Param::Get("Total_Pinjam", 0); $ajurnal = [ 'TipeID' => 13, 'Tanggal' => $tgl_trans, 'Kode_Ref' => $this->no_trans, 'Catatan' => $tcat.(string) Param::Get("Nama_Karya").", Untuk : ".(string) Param::Get("Catatan") ]; $adetail = []; $adetail[] = [ 'Kode_Rek' => $this->app_gel['PIU_KARYA'], 'DK' => $ddk, 'Jumlah' => $tot_jumlah ]; $adetail[] = [ 'Kode_Rek' => (string) Param::Get("Kode_Rek"), 'DK' => $kdk, 'Jumlah' => $tot_jumlah ]; $kode_jurnal = $this->gel->Jurnal_Post($ajurnal, $adetail); $this->db->update("gel_karyawan", [ 'Kode_Jurnal'=>$kode_jurnal ], "No_Trans=?", [ $this->no_trans ]); } else if ($this->mode_detail === "delete") { $sql->DeleteDB(); // PROSES POSTING GL $kode_jurnal = $this->db->fetchField("SELECT Kode_Jurnal FROM gel_karyawan WHERE No_Trans=?", [ $this->no_trans ]) ?? ''; if (!empty($kode_jurnal)) { $this->db->delete("gel_jurnal", "Kode_Jurnal=?", [ $kode_jurnal ]); $this->db->delete("gel_jurnal_detail", "Kode_Jurnal=?", [ $kode_jurnal ]); } } $ipinjam = (float) $this->db->fetchField("SELECT SUM(Total_Pinjam-Total_Bayar) FROM gel_karyawan WHERE KaryaID=?", [ $this->id_karya ]) ?? 0; $this->db->update("para_karyawan", ['Total_Pinjam'=>$ipinjam], "KaryaID=?", [ $this->id_karya ]); } $obj = new Table($this->app); $obj->set_table("gel_karyawan", "*", "KaryaID=?", [ $this->id_karya ]); $obj->set_footer("SUM(Total_Pinjam) Total_Pinjam,SUM(Total_Bayar) Total_Bayar"); $obj->add_field("No_Trans", "No. Trans", "c"); $obj->add_field("Tgl_Trans", "Tgl. Trans", "c", "sqltgl", "", "val-tgl"); $obj->add_field("Kode_Jurnal", "Kode Jurnal", "c"); $obj->add_field("Total_Pinjam", "Pinjaman", "r", "rupiah", "rupiah"); $obj->add_field("Total_Bayar", "Setoran", "r", "rupiah", "rupiah"); $obj->add_field("Catatan", "Catatan", "awr"); $obj->set_field_order("Tgl_Trans", "A"); $obj->add_row_btn("trash", "Hapus", "GELKaryaJS.karya_hapus", "Kunci", 0); $this->app->json([ $obj->json_table("divTXKarya") ]); } public function form_master() { $ajson = [ 'error'=>"", 'html'=>"" ]; $atabel = ['KaryaID'=>0, 'Total_Pinjam'=>0, 'Tot_Pinjam'=>0, 'Tot_Bayar'=>0]; if ($this->id_karya > 0) { $row = $this->db->fetchRow("SELECT * FROM para_karyawan WHERE KaryaID=?", [ $this->id_karya ]); if ($row) { $atabel = $row->getData(); if ((int) $atabel['KaryaID'] > 0) { $_tot = $this->db->fetchRow("SELECT SUM(Total_Pinjam) Tot_Pinjam,SUM(Total_Bayar) Tot_Bayar FROM gel_karyawan WHERE KaryaID=?", [ $atabel['KaryaID'] ]); if ($_tot) $atabel = array_merge($atabel, $_tot->getData()); } } else { $ajson['error'] = "Nomor Transaksi belum ada / tidak diketemukan !"; } } $ket_saldo = ((float) $atabel['Total_Pinjam'] > 0) ? "Saldo Pinjaman" : "Saldo Simpanan"; $form = new Form($this->app); $tkary = $form->option_db("_", "KaryaID", $atabel['KaryaID'], true, false, "para_karyawan", ["KaryaID","Nama_Karya"], "Aktif=1 ORDER BY Nama_Karya", null, null, "GELKaryaJS.ocKarya"); $ttot_pin = ''; $ttot_bay = ''; $tpinjam = ''; $ajson['html'] = '
'.$tkary.'
'.$tpinjam.'
'.$ttot_pin.'
'.$ttot_bay.'

'; $this->app->json($ajson); } public function form_pinjam() { $form = new Form($this->app); $ttgltran = $form->datebox("_", "Tgl_Trans", tgl_ymd(), true, false); $trek = $form->option_db("_", "Kode_Rek", $this->app_gel['KAS_TUNAI'], true, false, "vi_gel_acc", ["Kode_Rek","Nama_Lengkap"], "Kas_Rek=1 AND Aktif=1 AND Mode='D' ORDER BY Kode_Rek"); $tpinjam = $form->textbox("_", "Total_Pinjam", 0, true, false, "double"); $tcatat = $form->textarea("_", "Catatan", "", true, false, 2); $ajson['html'] = '
'.$ttgltran.'
'.$trek.'
'.$tpinjam.'
'.$tcatat.'
'; $this->app->json($ajson); } public function form_bayar() { $form = new Form($this->app); $ttgltran = $form->datebox("_", "Tgl_Trans", tgl_ymd(), true, false); $trek = $form->option_db("_", "Kode_Rek", $this->app_gel['KAS_TUNAI'], true, false, "vi_gel_acc", ["Kode_Rek","Nama_Lengkap"], "Kas_Rek=1 AND Aktif=1 AND Mode='D' ORDER BY Kode_Rek"); $tbayar = $form->textbox("_", "Total_Bayar", 0, true, false, "double"); $tcatat = $form->textarea("_", "Catatan", "", true, false, 2); $ajson['html'] = '
'.$ttgltran.'
'.$trek.'
'.$tbayar.'
'.$tcatat.'
'; $this->app->json($ajson); } public function index() { $this->app->json(['html' => '
 
 
' ]); } }