This commit is contained in:
Dwi Swandhana
2026-05-19 20:19:36 +07:00
parent a9c6cf12ca
commit 714b6ab26d
6 changed files with 77 additions and 62 deletions
@@ -200,12 +200,12 @@ class GudangController extends Controller
'bulan' => $rdata->bulan,
'tahun' => $rdata->tahun,
'deskripsi' => $deskripsiGabungan,
'pemasukan' => number_format( $pemasukan , 0 , '.' , ',' ),
'pengeluaran' => number_format( $pengeluaran , 0 , '.' , ',' ),
'pemasukan' => $rdata->pemasukan ?? 0,
'pengeluaran' => $rdata->pengeluaran ?? 0,
'jenis' => $rdata->jenis,
'masa_expired' => $rdata->masa_expired,
'keterangan' => $rdata->keterangan,
'tgllengkap' => $tgllengkap,
'tgllengkap' => $rdata->created_at->format('m/d/Y'),
'total' => $total,
);
}
@@ -270,13 +270,13 @@ class GudangController extends Controller
}
public function jsonReportbhpPaginated(Request $request) {
$tanggal = $request->input('tanggal');
$deskripsi = $request->input('deskripsi');
$kategori = $request->input('kategori');
$lm = 10;
$limit = ($request->input('limit') == null ? $lm : $request->input('limit'));
$order = ($request->input('order') == null ? 'id desc' : $request->input('order'));
$data = new SIMBHPReport;
$tanggal = $request->input('tanggal');
$deskripsi = $request->input('deskripsi');
$kategori = $request->input('kategori');
$lm = 10;
$limit = ($request->input('limit') == null ? $lm : $request->input('limit'));
$order = ($request->input('order') == null ? 'id desc' : $request->input('order'));
$data = new SIMBHPReport;
if ($kategori != null AND $kategori != '') $data = $data->where('jenis', $kategori);
if ($tanggal != null AND $tanggal != '') $data = $data->where('created_at', 'LIKE', '%'.$tanggal.'%');
if ($deskripsi != null AND $deskripsi != '') $data = $data->where('deskripsi', 'LIKE', '%'.$deskripsi.'%');
@@ -287,60 +287,54 @@ class GudangController extends Controller
$kredit = 0;
if (!empty($data)){
foreach($data as $rdata){
$dd = $rdata->tanggal;
$mm = $rdata->bulan;
$yy = $rdata->tahun;
$pengeluaran = $rdata->pengeluaran;
$pemasukan = $rdata->pemasukan;
$deskripsi = $rdata->deskripsi;
$jenis = $rdata->jenis;
$debet = $debet + $pemasukan;
$kredit = $kredit + $pengeluaran;
$cekjenis = SIMBHPJenis::where('kodejenis', $jenis)->first();
$pengeluaran = $rdata->pengeluaran;
$pemasukan = $rdata->pemasukan;
$deskripsi = $rdata->deskripsi;
$jenis = $rdata->jenis;
$debet = $debet + $pemasukan;
$kredit = $kredit + $pengeluaran;
$cekjenis = SIMBHPJenis::where('kodejenis', $jenis)->first();
if (isset($cekjenis->id)){
$kodejenis = $cekjenis->kodejenis;
$jenis = $cekjenis->jenis;
$satuan = $cekjenis->satuan;
$kodejenis = $cekjenis->kodejenis;
$jenis = $cekjenis->jenis;
$satuan = $cekjenis->satuan;
} else {
$kodejenis = $jenis;
$jenis = '';
$satuan = '';
$kodejenis = $jenis;
$jenis = '';
$satuan = '';
}
if ($jenis != ''){
$deskripsi = '<strong>'.$jenis.'</strong><br />'.$deskripsi;
}
if ($mm < 10){
$tgllengkap = $yy.'-0'.$mm.'-'.$dd;
} else {
$tgllengkap = $yy.'-'.$mm.'-'.$dd;
}
if ($pengeluaran == '' OR $pengeluaran == 0) {
$total = $pemasukan;
$jentrans = 'PEMASUKAN';
$total = $pemasukan;
$jentrans = 'PEMASUKAN';
}
else {
$total = $pengeluaran;
$jentrans = 'PENGELUARAN';
$total = $pengeluaran;
$jentrans = 'PENGELUARAN';
}
$hasil[] = array(
'id' => $rdata->id,
'tanggal' => $rdata->tanggal,
'bulan' => $rdata->bulan,
'tahun' => $rdata->tahun,
'tlsdeskripsi' => $deskripsi,
'deskripsi' => $rdata->deskripsi,
'pemasukan' => number_format( $pemasukan , 0 , '.' , ',' ),
'pengeluaran' => number_format( $pengeluaran , 0 , '.' , ',' ),
'jenis' => $kodejenis,
'masa_expired' => $rdata->masa_expired,
'keterangan' => $rdata->keterangan,
'tgllengkap' => $tgllengkap,
'created_at' => $rdata->created_at,
'nominal' => $total.' '.$satuan,
'jentrans' => $jentrans,
'id' => $rdata->id,
'tanggal' => $rdata->tanggal,
'bulan' => $rdata->bulan,
'tahun' => $rdata->tahun,
'tlsdeskripsi' => $deskripsi,
'deskripsi' => $rdata->deskripsi,
'pemasukan' => $rdata->pemasukan ?? 0,
'pengeluaran' => $rdata->pengeluaran ?? 0,
'jenis' => $kodejenis,
'masa_expired' => $rdata->masa_expired,
'keterangan' => $rdata->keterangan,
'tgllengkap' => $rdata->created_at->format('m/d/Y'),
'created_at' => $rdata->created_at,
'nominal' => $total.' '.$satuan,
'jentrans' => $jentrans,
);
}
}
@@ -782,7 +782,7 @@
{ name: 'jenis',type: 'text'},
{ name: 'masa_expired',type: 'text'},
{ name: 'keterangan',type: 'text'},
{ name: 'tgllengkap',type: 'text'},
{ name: 'tgllengkap',type: 'date'},
{ name: 'total',type: 'text'},
],
type: 'POST',
@@ -800,15 +800,17 @@
autoheight: true,
theme: "energyblue",
source: dataAdapter,
showaggregates: true,
showstatusbar: true,
statusbarheight: 50,
altrows: true,
selectionmode: 'multiplecellsextended',
columns: [
{ text: 'dd', columngroup: 'tglinput', filtertype: 'checkedlist', datafield: 'tanggal', width: '5%', cellsalign: 'center', align: 'center' },
{ text: 'mm', columngroup: 'tglinput', filtertype: 'checkedlist', datafield: 'bulan', width: '5%', cellsalign: 'center', align: 'center' },
{ text: 'yy', columngroup: 'tglinput', filtertype: 'checkedlist', datafield: 'tahun', width: '5%', cellsalign: 'center', align: 'center' },
{ text: 'Tanggal', cellsformat: 'dd-MMMM-yyyy', filtertype: 'date', datafield: 'tgllengkap', width: '15%', cellsalign: 'center', align: 'center' },
{ text: 'Jenis', datafield: 'jenis', filtertype: 'checkedlist', width: '10%', cellsalign: 'center', align: 'center' },
{ text: 'Deskripsi', datafield: 'deskripsi', width: '25%', cellsalign: 'left', align: 'center' },
{ text: 'MASUK', datafield: 'pemasukan', width: '10%', cellsalign: 'right', align: 'center' },
{ text: 'KELUAR', datafield: 'pengeluaran', width: '10%', cellsalign: 'right', align: 'center' },
{ text: 'MASUK', cellsformat: 'n2',aggregates: ['sum'], datafield: 'pemasukan', width: '10%', cellsalign: 'right', align: 'center' },
{ text: 'KELUAR', cellsformat: 'n2', aggregates: ['sum'], datafield: 'pengeluaran', width: '10%', cellsalign: 'right', align: 'center' },
{ text: 'Masa Expired', datafield: 'masa_expired', width: '12%', cellsalign: 'center', align: 'center' },
{ text: 'Keterangan', datafield: 'keterangan', width: '8%', cellsalign: 'right', align: 'center' },
{ text: 'Edit', columntype: 'button', width: '10%', cellsrenderer: function () { return "Edit";
@@ -2121,12 +2121,12 @@
</li>
<li class="nav-item">
<a href="#tabel_manual1" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Bakteri Manual I
<i class="fi-monitor mr-2"></i> MALDITOF
</a>
</li>
<li class="nav-item">
<a href="#tabel_manual2" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Bakteri Manual II
<i class="fi-monitor mr-2"></i> Bakteri Manual I
</a>
</li>
</ul>
@@ -5514,7 +5514,7 @@
{ text: 'Service', filtertype: 'checkedlist', datafield: 'tlsreques', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Status', filtertype: 'checkedlist', datafield: 'tlsstatus', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Themeplate', filtertype: 'checkedlist', datafield: 'dlp', width: 75, cellsalign: 'left', align: 'center'},
{ text: 'Jenis', filtertype: 'checkedlist', datafield: 'diagnosa2', width: 75, cellsalign: 'left', align: 'center'},
{ text: 'Kelompok', filtertype: 'checkedlist', datafield: 'kd_spesimen', width: 75, cellsalign: 'left', align: 'center'},
{ text: 'Specimen', filtertype: 'checkedlist', datafield: 'nm_spesimen', width: 230, cellsalign: 'left', align: 'center'},
{ text: 'Updated_at', datafield: 'updated_at', filtertype: 'date', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Duration', cellsrenderer: tlsdurasi, width: 100, cellsalign: 'left', align: 'center' },
+1 -1
View File
@@ -5549,7 +5549,7 @@
{ text: 'Service', filtertype: 'checkedlist', datafield: 'tlsreques', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Status', filtertype: 'checkedlist', datafield: 'tlsstatus', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Themeplate', filtertype: 'checkedlist', datafield: 'dlp', width: 75, cellsalign: 'left', align: 'center'},
{ text: 'Jenis', filtertype: 'checkedlist', datafield: 'diagnosa2', width: 75, cellsalign: 'left', align: 'center'},
{ text: 'Kelompok', filtertype: 'checkedlist', datafield: 'kd_spesimen', width: 75, cellsalign: 'left', align: 'center'},
{ text: 'Specimen', filtertype: 'checkedlist', datafield: 'nm_spesimen', width: 230, cellsalign: 'left', align: 'center'},
{ text: 'Updated_at', datafield: 'updated_at', filtertype: 'date', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Duration', cellsrenderer: tlsdurasi, width: 100, cellsalign: 'left', align: 'center' },
@@ -5540,7 +5540,7 @@
{ text: 'Service', filtertype: 'checkedlist', datafield: 'tlsreques', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Status', filtertype: 'checkedlist', datafield: 'tlsstatus', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Themeplate', filtertype: 'checkedlist', datafield: 'dlp', width: 75, cellsalign: 'left', align: 'center'},
{ text: 'Jenis', filtertype: 'checkedlist', datafield: 'diagnosa2', width: 75, cellsalign: 'left', align: 'center'},
{ text: 'Kelompok', filtertype: 'checkedlist', datafield: 'kd_spesimen', width: 75, cellsalign: 'left', align: 'center'},
{ text: 'Specimen', filtertype: 'checkedlist', datafield: 'nm_spesimen', width: 230, cellsalign: 'left', align: 'center'},
{ text: 'Updated_at', datafield: 'updated_at', filtertype: 'date', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Duration', cellsrenderer: tlsdurasi, width: 100, cellsalign: 'left', align: 'center' },
+20 -1
View File
@@ -30,10 +30,25 @@ log_handler = TimedRotatingFileHandler(
)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(threadName)s - %(message)s')
log_handler.setFormatter(formatter)
logging.basicConfig(level=logging.INFO, handlers=[log_handler])
log_handler.setLevel(logging.ERROR)
logging.basicConfig(level=logging.ERROR, handlers=[log_handler])
logging.getLogger().setLevel(logging.ERROR)
logging.getLogger("werkzeug").setLevel(logging.ERROR)
THREAD_LOG_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "thread_logs")
thread_log_lock = threading.Lock()
ERROR_LOG_KEYWORDS = (
"critical",
"crash",
"error",
"exception",
"failed",
"failure",
"gagal",
"corrupt",
"ditolak",
"traceback",
)
# ==========================================
# 1. KONFIGURASI SISTEM
@@ -260,6 +275,10 @@ def _sanitize_thread_log_name(thread_name):
return safe_name or "main"
def _write_thread_log(message):
text = str(message or "")
if not any(keyword in text.lower() for keyword in ERROR_LOG_KEYWORDS):
return
try:
os.makedirs(THREAD_LOG_DIR, exist_ok=True)
thread_name = threading.current_thread().name