2025-04-27 22:31:11 +07:00

356 lines
12 KiB
JavaScript

formCreate.on("submit", async function(e) {
e.preventDefault();
const formData = new FormData(formCreate[0]);
try {
const response = await fetch(formCreate.attr("action"), {
method: "POST",
body: formData,
headers: {
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content // penting untuk Laravel
}
});
if (!response.ok) {
// Kalau response error (422, 500, dll), ambil text error dari server
const errorText = await response.text();
throw new Error(errorText);
}
const result = await response.json();
if (result.status === "success") {
Swal.fire({
title: "Success",
text: result.message || "Data Berhasil ditambahkan",
icon: "success",
showConfirmButton: false,
timer: 1200
});
formCreate[0].reset();
$("#create_modal").modal('hide');
dataTable.bootstrapTable("refresh");
}
} catch (error) {
let errorMessage = 'Terjadi kesalahan saat mengirim data.';
try {
// Coba parse error yang dilempar
const parsedError = JSON.parse(error.message);
if (parsedError.errors) {
// Kalau Laravel kirim validation error
errorMessage = Object.values(parsedError.errors).flat().join('\n');
} else if (parsedError.message) {
errorMessage = parsedError.message;
}
} catch (parseError) {
// Kalau error bukan JSON valid, tampilkan biasa
errorMessage = error.message;
}
Swal.fire({
title: "Error",
text: errorMessage,
icon: "error",
});
}
});
// function editData(value){
// const uid = $(value).data('uid')
// const el = $(value)
// $("#no_card_asuransi_edit").val(el.data('no_card_asuransi'))
// selectOldPasien(el.data('pasien_uid'))
// selectOldAsuransi(el.data('asuransi_uid'))
// selectOldRuangan(el.data('ruang_pelayanan_uid'))
// $("#edit_modal").modal("show")
// formEdit.attr('action', `/registrasi/${uid}`)
// formEdit.off("submit").on("submit", async function(e){
// e.preventDefault()
// const formDataEdit = new FormData(formEdit[0])
// try {
// const responseEdit = await fetch(formEdit.attr("action"), {
// method:"POST",
// body:formDataEdit,
// })
// const resultEdit = await responseEdit.json()
// if(responseEdit.ok && resultEdit.status === "success"){
// Swal.fire({
// title:"Success",
// text:"Data Berhasil diupdate",
// icon:"success",
// showConfirmButton: false,
// timer:1200
// });
// formEdit[0].reset()
// $("#edit_modal").modal('hide')
// dataTable.bootstrapTable("refresh")
// }
// } catch (error) {
// Swal.fire({
// title:"Error",
// text:"Message:" + error,
// icon:"error",
// })
// }
// })
// }
function deleteData(id, name){
Swal.fire({
title: "Apakah kamu yakin ingin menghapus data ini?",
text : name,
icon: "warning",
showCancelButton: true
}).then((result) => {
if(result.isConfirmed){
fetch(`/transaksi/${id}`, {
method:'DELETE',
headers: {
"X-CSRF-TOKEN": document.querySelector('meta[name="csrf-token"]').getAttribute('content'),
"Content-Type": "application/json"
}
}).then((response) => {
if(!response.ok){
throw new Error("Network response was not ok");
}
return response.json();
})
.then((data) => {
if(data.status === "success"){
Swal.fire({
title: "Success",
text: "Data berhasil dihapus",
icon:"success",
showConfirmButton: false,
timer: 1000
}).then(() => {
dataTable.bootstrapTable("refresh")
})
}else{
Swal.fire({
title: "Error!",
text: data.message || "Failed to delete Schedule.",
icon: "error"
});
}
})
.catch(error => {
Swal.fire({
title: "Error!",
text: "Something went wrong. Please try again later.",
icon: "error"
});
});
}
})
}
function selectOldPasien(selectedValue){
const pasienEdit = $("#pasien_uid_edit")
if(pasienEdit[0].selectize){
pasienEdit[0].selectize.destroy()
}
pasienEdit.selectize({
valueField:"uid",
labelField:"name",
searchField:['name', 'uid'],
create:false,
placeholder:"Cari Pasien ...",
load:function(query, callback){
if(!query.length) return callback();
$.ajax({
url:'/helper/get/patient',
data: {search: query},
success: function (response){
if(response.error === 0 && Array.isArray(response.data)){
callback(response.data);
}else{
callback([])
}
},
error: function() {
callback([]);
}
});
},
render: {
option: function(item, escape){
return `
<div class="p-1">
<div class="fw-semibold" style="font-size: 0.85rem;">
${escape(item.name)}
</div>
</div>`;
},
item: function(item, escape){
return `<div> ${escape(item.name)} </div>`
}
},
onInitialize:function(){
const selectize = this;
if(selectedValue){
if(!selectize.options[selectedValue]){
$.ajax({
url:'/helper/get/patient',
data: {search : selectedValue},
success: function(response){
if(response.error === 0 && response.data){
selectize.addOption(response.data[0])
selectize.setValue(selectedValue)
}
},
error:function(){
console.error('Failed to fetch data');
}
})
}
}else{
selectize.setValue(selectedValue)
}
}
})
}
function selectOldAsuransi(selectedValue){
const asuransiEdit = $("#asuransi_uid_edit")
if(asuransiEdit[0].selectize){
asuransiEdit[0].selectize.destroy()
}
asuransiEdit.selectize({
valueField:"uid",
labelField:"name",
searchField:['name', 'uid'],
create:false,
placeholder:"Cari Asuransi ...",
load:function(query, callback){
if(!query.length) return callback();
$.ajax({
url:'/helper/get/asuransi',
data: {search: query},
success: function (response){
if(response.error === 0 && Array.isArray(response.data)){
callback(response.data);
}else{
callback([])
}
},
error: function() {
callback([]);
}
});
},
render: {
option: function(item, escape){
return `
<div class="p-1">
<div class="fw-semibold" style="font-size: 0.85rem;">
${escape(item.name)}
</div>
</div>`;
},
item: function(item, escape){
return `<div> ${escape(item.name)} </div>`
}
},
onInitialize:function(){
const selectize = this;
if(selectedValue){
if(!selectize.options[selectedValue]){
$.ajax({
url:'/helper/get/asuransi',
data: {search : selectedValue},
success: function(response){
if(response.error === 0 && response.data){
selectize.addOption(response.data[0])
selectize.setValue(selectedValue)
}
},
error:function(){
console.error('Failed to fetch data');
}
})
}
}else{
selectize.setValue(selectedValue)
}
}
})
}
function selectOldRuangan(selectedValue){
const ruangEdit = $("#ruang_pelayanan_uid_edit")
if(ruangEdit[0].selectize){
ruangEdit[0].selectize.destroy()
}
ruangEdit.selectize({
valueField:"uid",
labelField:"name",
searchField:['name', 'uid'],
create:false,
placeholder:"Cari Ruangan layanan....",
load:function(query, callback){
if(!query.length) return callback();
$.ajax({
url:'/helper/get/roomService',
data: {search: query},
success: function (response){
if(response.error === 0 && Array.isArray(response.data)){
callback(response.data);
}else{
callback([])
}
},
error: function() {
callback([]);
}
});
},
render: {
option: function(item, escape){
return `
<div class="p-1">
<div class="fw-semibold" style="font-size: 0.85rem;">
${escape(item.name)}
</div>
</div>`;
},
item: function(item, escape){
return `<div> ${escape(item.name)} </div>`
}
},
onInitialize:function(){
const selectize = this;
if(selectedValue){
if(!selectize.options[selectedValue]){
$.ajax({
url:'/helper/get/roomService',
data: {search : selectedValue},
success: function(response){
if(response.error === 0 && response.data){
selectize.addOption(response.data[0])
selectize.setValue(selectedValue)
}
},
error:function(){
console.error('Failed to fetch data');
}
})
}
}else{
selectize.setValue(selectedValue)
}
}
})
}