update
This commit is contained in:
@@ -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' },
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user