first commit
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
PHP Class : /Controller/Report/Gel/HariandetailController
|
||||
Description : Laporan Jurnal Detail
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : June 5th, 2009.
|
||||
Last Modified : October 24th, 2026.
|
||||
|
||||
(c) 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Controller\Report\Gel;
|
||||
|
||||
use flight\Engine;
|
||||
use flight\database\SimplePdo;
|
||||
use flight\Session;
|
||||
use Webapp\Printer\PrintHTML;
|
||||
use Webapp\Web\Form;
|
||||
use Webapp\Web\Param;
|
||||
use Webapp\Web\Table;
|
||||
|
||||
class HariandetailController {
|
||||
|
||||
private string $reg_name;
|
||||
protected Engine $app;
|
||||
protected SimplePdo $db;
|
||||
|
||||
public function __construct(Engine $app, SimplePdo $db, Session $session) {
|
||||
$this->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) ? '<b class="text-success">OK</b>' : '<b class="text-danger">Tidak Seimbang</b>';
|
||||
|
||||
// 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 = '<table class="notaHeader"><tbody>';
|
||||
$kop .= '<tr><td width="15%">Kode Jurnal</td><td width="35%" class="ttkdua">'.$apre['header']['Kode_Jurnal'].'</td><td width="15%">Periode</td><td width="35%" class="ttkdua">'.$apre['header']['Periode'].'</td></tr>';
|
||||
$kop .= '<tr><td>Tanggal</td><td class="ttkdua">'.tgl_sql2str($apre['header']['Tanggal']).'</td><td>Tipe Jurnal</td><td class="ttkdua">['.$apre['header']['Kode_Tipe']."] Jurnal ".$apre['header']['Nama_Tipe'].'</td></tr>';
|
||||
$kop .= '<tr><td>Kode Referensi</td><td class="ttkdua">'.$apre['header']['Kode_Ref'].'</td><td>Informasi User</td><td class="ttkdua">['.isi_nol($apre['header']['UserID'],3)."] ".$apre['header']['NamaUser'].'</td></tr>';
|
||||
$kop .= '<tr><td>Keterangan</td><td class="ttkdua" colspan="3">'.$apre['header']['Catatan'].'</td></tr>';
|
||||
$kop .= '<tr><td>Status</td><td class="ttkdua" colspan="3">'.$apre['header']['Status'].'</td></tr>';
|
||||
$kop .= '</tbody></table>';
|
||||
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' => '
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-6 col-lg-4 col-form-label" for="Kode_Jurnal">Kode Jurnal</label>
|
||||
<div class="col"><div class="input-group">'.$tkode.'<button id="butBrowJurnal" class="btn btn-info" type="button"><i class="bi-search"></i></button></div></div>
|
||||
</div>'
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user