Compare commits

...

23 Commits

Author SHA1 Message Date
42581b13ce add klinik melati di option 2025-09-01 13:27:08 +07:00
5e26f48489 done permintaan gizi : nama karyawan bisa input, dan tidak ada add catatan pada download verfikasi pekerjaan 2025-09-01 13:04:39 +07:00
e6e481ddf7 fixing mail 2025-09-01 12:04:25 +07:00
7937c1aa4c fixing mail 2025-09-01 12:00:57 +07:00
12c0f3ec92 fixing time in step 2 order tanggal 2025-09-01 11:54:34 +07:00
aa442f33f6 add gambar 2025-09-01 11:44:51 +07:00
f15dcffb7d add gambar 2025-09-01 11:43:00 +07:00
1ac2c881fd add keterangan email untuk karyawan saat checkout 2025-09-01 08:40:23 +07:00
d157808dba Merge pull request 'add info menu yang dipesan' (#15) from development into production
Reviewed-on: #15
2025-08-25 07:53:06 +00:00
0f2963dc16 Merge pull request 'add info menu yang dipesan' (#14) from development into production
Reviewed-on: #14
2025-08-25 07:47:50 +00:00
4977874daa Merge pull request 'add favicon logo kemenkes & info data pending' (#13) from development into production
Reviewed-on: #13
2025-08-25 02:33:15 +00:00
0cbd81b958 Merge pull request 'add alamat' (#12) from development into production
Reviewed-on: #12
2025-08-22 06:30:10 +00:00
d501f5167e Merge pull request 'development' (#11) from development into production
Reviewed-on: #11
2025-08-22 03:38:25 +00:00
82b7bd42ed Merge pull request 'development' (#10) from development into production
Reviewed-on: #10
2025-08-21 08:33:35 +00:00
36ac961e03 Merge pull request 'done' (#9) from development into production
Reviewed-on: #9
2025-08-21 08:00:21 +00:00
b9d1d207f3 Merge pull request 'done -> testing in production' (#8) from development into production
Reviewed-on: #8
2025-08-21 06:31:55 +00:00
d9a35e15f7 Merge pull request 'development' (#7) from development into production
Reviewed-on: #7
2025-08-21 06:07:49 +00:00
edd76a2513 Merge pull request 'development' (#6) from development into production
Reviewed-on: #6
2025-08-20 07:27:21 +00:00
3c2ce3610f Merge pull request 'update layout success salin dengan swal alert' (#5) from development into production
Reviewed-on: #5
2025-08-20 03:51:28 +00:00
d8b33496dc Merge pull request 'add DB::connection('dbOrderGizi') di setiap controller dan ubah type pengiriman email dari method queue jadi send' (#4) from development into production
Reviewed-on: #4
2025-08-20 02:54:39 +00:00
e06e1490a8 Merge pull request 'format http -> https in production' (#3) from development into production
Reviewed-on: #3
2025-08-20 01:58:20 +00:00
49817cdd2b Merge pull request 'development' (#2) from development into production
Reviewed-on: #2
2025-08-20 01:25:35 +00:00
d9ebc738c0 Merge pull request 'development' (#1) from development into production
Reviewed-on: #1
2025-08-19 04:40:01 +00:00
7 changed files with 77 additions and 25 deletions

View File

@ -285,7 +285,7 @@ class CustomerController extends Controller
'entry_at' => Carbon::now()->format('Y-m-d H:i:s.u'),
];
if($jenisCustomer === "Karyawan RSAB Harapan Kita"){
$nip_pns = Karyawan::where('namalengkap',$biodataResult['nama_pemesan'])->first()->nip_pns;
$nip_pns = Karyawan::where('namalengkap',$biodataResult['nama_pemesan'])->first()?->nip_pns;
$payloadOrder['nip'] = $nip_pns ?? null;
$payloadOrder['bagian_instalasi'] = $biodataResult['bagian_instalasi'] ?? null;
$payloadOrder['no_ekstensien'] = $biodataResult['no_ekstensien'] ?? null;
@ -317,7 +317,12 @@ class CustomerController extends Controller
}
//code...
if($order->email){
Mail::to($order->email)->send(new NotifikasiCustomer($order->nama_pemesan, $order->no_order, $order->total_harga));
try {
Mail::to($order->email)->send(new NotifikasiCustomer($order->nama_pemesan, $order->no_order, $order->total_harga));
} catch (\Throwable $th) {
//throw $th;
}
}
DB::connection('dbOrderGizi')->commit();
return response()->json([
@ -375,7 +380,15 @@ class CustomerController extends Controller
$order->update($payload);
if($order->email){
Mail::to($order->email)->send(new NotifikasiPembayaran($order->nama_pemesan, $order->no_order));
try {
Mail::to($order->email)->send(
new NotifikasiPembayaran($order->nama_pemesan, $order->no_order)
);
} catch (\Exception $e) {
// log error biar bisa ditelusuri nanti
// \Log::error('Gagal mengirim email ke ' . $order->email . ': ' . $e->getMessage());
// continue tanpa break flow
}
}
DB::connection('dbOrderGizi')->commit();
session()->flash('payment_success', true);

View File

@ -122,7 +122,12 @@ class PesananController extends Controller
$order->update($payload);
if($order->email){
Mail::to($order->email)->send(new NotifikasiKonfirmasiPembayaran($order->nama_pemesan, $order->no_order, $order->total_harga));
try {
//code...
Mail::to($order->email)->send(new NotifikasiKonfirmasiPembayaran($order->nama_pemesan, $order->no_order, $order->total_harga));
} catch (\Throwable $th) {
//throw $th;
}
}
DB::connection('dbOrderGizi')->commit();

View File

@ -241,18 +241,21 @@ function toggleCustomerFields() {
$nama.val('')
$nama.removeClass('form-control')
$("#help_nama_pemesan").removeClass('d-none')
$("#help_email_karyawan").removeClass('d-none')
selectKaryawan(); // inisialisasi ulang selectize
break;
case 'Keluarga Pasien / Penunggu Pasien':
$('.pasien').show();
$nama.addClass('form-control')
$("#help_nama_pemesan").addClass('d-none')
$("#help_email_karyawan").addClass('d-none')
break;
default: // Masyarakat Umum
$('.umum').show();
$nama.addClass('form-control')
$("#help_nama_pemesan").addClass('d-none')
$("#help_email_karyawan").addClass('d-none')
break;
}
}
@ -743,8 +746,6 @@ function validateCartBeforeSubmit() {
cart.forEach((item, index) => {
const pesananList = item.pesanan || [];
pesananList.forEach((pesanan, i) => {
console.log(!pesanan.karbohidrat_id, !item?.apakah_someday);
if (!pesanan.tgl) {
isValid = false;
errorMessage = `Tanggal belum diisi pada item "${item.nama_menu}" (baris ${i + 1})`;
@ -784,20 +785,42 @@ function hitungTotalHarga(){
function copyNoRek() {
const text = document.getElementById('noRekText').innerText;
navigator.clipboard.writeText(text).then(() => {
alert("Nomor rekening berhasil disalin: " + text);
Swal.fire({
icon: 'success',
title: 'Disalin!',
text: 'Nomor rekening berhasil disalin: ' + text,
showConfirmButton: false,
timer: 1500
});
}).catch(err => {
console.error('Gagal menyalin: ', err);
alert("Gagal menyalin teks.");
Swal.fire({
icon: 'warning',
text: 'Gagal menyalin teks: ' + text,
showConfirmButton: false,
timer: 2000
});
});
}
function copyNoOrder() {
const text = document.getElementById('no_order_display').innerText;
navigator.clipboard.writeText(text).then(() => {
alert("Nomor order berhasil disalin: " + text);
Swal.fire({
icon: 'success',
title: 'Disalin!',
text: 'Nomor order berhasil disalin: ' + text,
showConfirmButton: false,
timer: 1500
});
}).catch(err => {
console.error('Gagal menyalin: ', err);
alert("Gagal menyalin teks.");
Swal.fire({
icon: 'warning',
text: 'Gagal menyalin teks: ' + text,
showConfirmButton: false,
timer: 2000
});
});
}
@ -834,12 +857,13 @@ function initFlatpickrTersedia(item, i) {
dayNumbers.forEach(day => {
const dayStr = String(day).padStart(2, '0');
const fullDateStr = `${year}-${month}-${dayStr}`;
const fullDate = new Date(`${fullDateStr}T00:00:00`);
const fullDate = new Date(`${fullDateStr}T13:00:00`);
// Jika bukan menu someday, cek aturan H-1 dan jam batas
if (item.apakah_someday) {
availableDates.push(fullDateStr);
} else {
const selisihHari = Math.floor((fullDate - now) / (1000 * 60 * 60 * 24));
if (selisihHari >= 1 || (selisihHari === 1 && !lewatBatasNormal)) {
availableDates.push(fullDateStr);
@ -881,7 +905,6 @@ function increment(itemId, index) {
function decrement(itemId, index) {
const input = document.getElementById(`jumlah-${itemId}-${index}`);
let current = parseInt(input.value || "0");
console.log(current);
if (current > 1) {
input.value = current - 1;
@ -957,7 +980,6 @@ document.getElementById('submitNote').addEventListener('click', function(e){
const noted = $("#note_order").val()
const cart = JSON.parse(sessionStorage.getItem('cart') || '[]');
const item =cart.find(item => item.id === id)
console.log(id, index, item);
if(item && item.pesanan && item.pesanan[index]){
item.pesanan[index].catatan = noted
@ -985,7 +1007,13 @@ function selectKaryawan(){
valueField: 'label', // sama dengan labelField
labelField: 'label',
searchField: ['label'],
create: false,
create: function(input) {
return {
label: input,
value: input
};
},
createOnBlur: true,
placeholder: "Cari nama karyawan...",
maxItems: 1,
load: function (query, callback) {

View File

@ -148,9 +148,12 @@
@if($label->total_kalori)
<tr><td>Total Kalori</td><td>: {{ $label->total_kalori }}</td></tr>
@endif
@if($label->order?->jenis_customer !== 'MCU')
<tr><td>Harga Satuan</td><td>: Rp {{ number_format($label?->harga_satuan, 0, ',', '.') }}</td></tr>
@endif
<tr><td>Catatan</td>
<td><span style="vertical-align: top;">:</span>
<span style="max-width: 54mm; word-wrap: break-word; white-space: normal; display: inline-block; vertical-align: top;">
{{ $label?->catatan ?? '-' }}
</span></td>
</tr>
<tr><td>Tanggal Produksi</td><td>: {{ $label?->tgl_antar ? \Carbon\Carbon::parse($label->tgl_antar)->translatedFormat('d F Y') : '-' }} </td></tr>
<tr><td>No. Telp</td><td>: {{ $label?->order?->no_wa ?? '-' }}</td></tr>
@if ($label?->order?->alamat)

View File

@ -75,7 +75,6 @@
}
th:nth-child(6), td:nth-child(6) {
width: 110px;
text-align: center;
}
@ -126,6 +125,7 @@
<th>Waktu Makan <br/> /Jam Layanan</th>
<th>Menu</th>
<th>Karbohidrat</th>
<th>Catatan</th>
<th>Total Kalori</th>
<th>Keterangan</th>
<th>Jumlah</th>
@ -157,6 +157,7 @@
-
@endif
</td>
<td>{{ $row['catatan'] ? $row['catatan'] . ' kal' : '' }}</td>
<td>{{ $row['total_kalori'] ? $row['total_kalori'] . ' kal' : '' }}</td>
<td class="keterangan">
@php

View File

@ -50,6 +50,7 @@
<div class="col-md-12">
<label class="form-label">Email <span class="text-danger">*</span></label>
<input type="email" class="form-control" name="email" id="email" required>
<div id="help_email_karyawan" class="form-text d-none">Notifikasi dari sistem belum dapat dikirim ke email dengan domain @rsabhk.co.id, oleh karena itu karyawan disarankan memakai alamat email lain</div>
</div>
{{-- <div class="col-md-6">
<label class="form-label">Tanggal Lahir</label>
@ -81,8 +82,9 @@
<option value="Ruang Cempaka">Ruang Cempaka</option>
<option value="Ruang Widuri">Ruang Widuri</option>
<option value="Ruang Teratai">Ruang Teratai</option>
<option value="Klinik Anggrek">Klinik Melati</option>
<option value="Ruang Anggrek">Ruang Anggrek</option>
<option value="Ruang VK">Ruang VK</option>
<option value="Klinik Melati">Klinik Melati</option>
</select>
</div>
@ -98,7 +100,7 @@
<option value="VIP A">VIP A</option>
<option value="VIP B">VIP B</option>
<option value="Kelas I">Kelas I</option>
<option value="Mesa Tesa">Mesa Tesa</option>
<option value="Klinik Melati">Klinik Melati</option>
</select>
</div>
{{-- End Pasien --}}

View File

@ -4,7 +4,7 @@
<div class="card shadow-sm p-4">
<div class="row justify-content-center text-center">
<div class="col-12 col-sm-10 col-md-8 col-lg-6 mb-3">
<img src="gambar/qris.jpg" alt="Pembayaran"
<img src="/gambar/qris.jpg" alt="Pembayaran"
class="img-fluid rounded shadow w-100"
style="max-width: 500px; height: auto;">
</div>
@ -35,13 +35,13 @@
<!-- Bank -->
<div class="row mb-3">
<div class="col-md-6 col-sm-12 fw-semibold">Bank</div>
<div class="col-md-6 col-sm-12 text-sm-end">Bank BCA</div>
<div class="col-md-6 col-sm-12 text-sm-end">Bank BRI</div>
</div>
<!-- Nama Rekening -->
<div class="row mb-3">
<div class="col-md-6 col-sm-12 fw-semibold">Nama Rek.</div>
<div class="col-md-6 col-sm-12 text-sm-end">RSAB Harapan Kita</div>
<div class="col-md-6 col-sm-12 text-sm-end">RPL 182 RSAB HARKIT OPR BLU PENERIMAAN</div>
</div>
<!-- No Rek -->
@ -53,7 +53,7 @@
<i class="fa fa-copy me-1"></i> Salin
</button>
</div>
<strong id="noRekText" class="d-block text-sm-end">1234-5678-9101</strong>
<strong id="noRekText" class="d-block text-sm-end">096201000073308</strong>
</div>
</div>