update logic payment based on SIMRS
This commit is contained in:
@@ -80,7 +80,6 @@ watch(
|
|||||||
{ immediate: true }
|
{ immediate: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
// script page index:
|
|
||||||
watch(
|
watch(
|
||||||
wsData,
|
wsData,
|
||||||
(newStatus) => {
|
(newStatus) => {
|
||||||
@@ -88,51 +87,55 @@ watch(
|
|||||||
const posDevices = newStatus?.data?.posdevice || [];
|
const posDevices = newStatus?.data?.posdevice || [];
|
||||||
|
|
||||||
if (!newStatus || !payloadData) {
|
if (!newStatus || !payloadData) {
|
||||||
console.log("📭 WS: No valid payload data in message. Skipping state change.");
|
console.log(
|
||||||
|
"📭 WS: No valid payload data in message. Skipping state change."
|
||||||
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ... (console.log yang ada) ...
|
|
||||||
|
|
||||||
const isTargetDevice = payloadData.ip === localIpAddress.value;
|
const isTargetDevice = payloadData.ip === localIpAddress.value;
|
||||||
const isPosDevice = posDevices.includes(localIpAddress.value);
|
const isPosDevice = posDevices.includes(localIpAddress.value);
|
||||||
const isRelevantDevice = isTargetDevice || isPosDevice; // Kita gunakan ini
|
const isRelevantDevice = isTargetDevice || isPosDevice; // Kita gunakan ini
|
||||||
|
|
||||||
// --- LOGIKA BARU DITAMBAHKAN DI SINI ---
|
|
||||||
// Jika kita di Step 3 (Sukses) atau 4 (Gagal) DAN ada transaksi BARU (status "1")
|
|
||||||
if (
|
if (
|
||||||
(paymentStore.currentStep === 3 || paymentStore.currentStep === 4) &&
|
(paymentStore.currentStep === 3 || paymentStore.currentStep === 4) &&
|
||||||
isRelevantDevice &&
|
isRelevantDevice &&
|
||||||
payloadData.status === "1"
|
payloadData.status === "1"
|
||||||
) {
|
) {
|
||||||
console.log("🔄 [WS] New transaction received on end screen. Resetting state...");
|
console.log(
|
||||||
|
"🔄 [WS] New transaction received on end screen. Resetting state..."
|
||||||
// 1. Reset store secara paksa (ini akan membersihkan timer dan kembali ke step 1)
|
);
|
||||||
paymentStore.reset();
|
|
||||||
|
paymentStore.reset();
|
||||||
// 2. Sekarang proses data baru seolah-olah kita berada di Step 1
|
|
||||||
paymentStore.updatePayment({ data: [payloadData] });
|
paymentStore.updatePayment({ data: [payloadData] });
|
||||||
paymentStore.setStep(2);
|
paymentStore.setStep(2);
|
||||||
}
|
} else if (paymentStore.currentStep === 1) {
|
||||||
// --- AKHIR LOGIKA BARU ---
|
|
||||||
|
|
||||||
// Logika Anda yang sudah ada
|
|
||||||
else if (paymentStore.currentStep === 1) {
|
|
||||||
console.log("🔍 Step 1 (WS): Looking for IP:", localIpAddress.value);
|
console.log("🔍 Step 1 (WS): Looking for IP:", localIpAddress.value);
|
||||||
|
|
||||||
if (isRelevantDevice && payloadData.status === "1") {
|
if (isRelevantDevice && payloadData.status === "1") {
|
||||||
console.log("✅ WS Data found for IP (New Transaction). Moving to Step 2.");
|
console.log(
|
||||||
|
"✅ WS Data found for IP (New Transaction). Moving to Step 2."
|
||||||
|
);
|
||||||
paymentStore.updatePayment({ data: [payloadData] });
|
paymentStore.updatePayment({ data: [payloadData] });
|
||||||
paymentStore.setStep(2);
|
paymentStore.setStep(2);
|
||||||
} else {
|
} else {
|
||||||
console.log(`⏳ No relevant data found for IP ${localIpAddress.value} in this broadcast.`);
|
console.log(
|
||||||
|
`⏳ No relevant data found for IP ${localIpAddress.value} in this broadcast.`
|
||||||
|
);
|
||||||
}
|
}
|
||||||
} else if (paymentStore.currentStep === 2) {
|
} else if (paymentStore.currentStep === 2) {
|
||||||
if (isRelevantDevice &&
|
if (isRelevantDevice) {
|
||||||
payloadData.display_nobill === paymentStore.qrData.display_nobill) {
|
console.log(
|
||||||
console.log("🔄 WS Update received for current patient in Step 2. Updating store...");
|
"🔄 WS Update received for current patient in Step 2. Updating store..."
|
||||||
|
);
|
||||||
paymentStore.updatePayment({ data: [payloadData] });
|
paymentStore.updatePayment({ data: [payloadData] });
|
||||||
}
|
}
|
||||||
|
// if (isRelevantDevice &&
|
||||||
|
// payloadData.display_nobill === paymentStore.qrData.display_nobill) {
|
||||||
|
// console.log("🔄 WS Update received for current patient in Step 2. Updating store...");
|
||||||
|
// paymentStore.updatePayment({ data: [payloadData] });
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ deep: true }
|
{ deep: true }
|
||||||
@@ -235,7 +238,6 @@ onUnmounted(() => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Large tablet portrait */
|
/* Large tablet portrait */
|
||||||
@media (min-width: 769px) and (max-width: 1024px) and (orientation: portrait) {
|
@media (min-width: 769px) and (max-width: 1024px) and (orientation: portrait) {
|
||||||
.payment-centered {
|
.payment-centered {
|
||||||
@@ -285,4 +287,4 @@ onUnmounted(() => {
|
|||||||
min-height: 600px;
|
min-height: 600px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user