From 2652cc71a101807e0e2724e3a1ccda124c05158a Mon Sep 17 00:00:00 2001 From: Potenz Date: Fri, 5 Sep 2025 01:05:13 +0530 Subject: [PATCH] feat(ocr) - icn added, --- apps/Backend/src/services/paymentService.ts | 1 + .../components/payments/payment-edit-modal.tsx | 6 ++++++ .../components/payments/payment-ocr-block.tsx | 17 ++++++++++++----- .../payments/payments-recent-table.tsx | 2 +- packages/db/prisma/schema.prisma | 1 + 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/apps/Backend/src/services/paymentService.ts b/apps/Backend/src/services/paymentService.ts index 69d78bd..6c7c9d0 100644 --- a/apps/Backend/src/services/paymentService.ts +++ b/apps/Backend/src/services/paymentService.ts @@ -220,6 +220,7 @@ export const fullOcrPaymentService = { totalDue: billed, status: "PENDING", // updatePayment will fix it notes: `OCR import from ${row.sourceFile ?? "Unknown file"}`, + icn: row.icn ?? "", }, }); diff --git a/apps/Frontend/src/components/payments/payment-edit-modal.tsx b/apps/Frontend/src/components/payments/payment-edit-modal.tsx index 28d4297..cdaaaeb 100644 --- a/apps/Frontend/src/components/payments/payment-edit-modal.tsx +++ b/apps/Frontend/src/components/payments/payment-edit-modal.tsx @@ -290,6 +290,12 @@ export default function PaymentEditModal({ ? formatDateToHumanReadable(serviceLines[0]?.procedureDate) : formatDateToHumanReadable(payment.createdAt)} + + {payment.icn ? ( + + ICN : {payment.icn} + + ) : null} diff --git a/apps/Frontend/src/components/payments/payment-ocr-block.tsx b/apps/Frontend/src/components/payments/payment-ocr-block.tsx index 525a697..47b1b85 100644 --- a/apps/Frontend/src/components/payments/payment-ocr-block.tsx +++ b/apps/Frontend/src/components/payments/payment-ocr-block.tsx @@ -22,6 +22,7 @@ type Row = { __id: number } & Record; export default function PaymentOCRBlock() { // UI state + const fileInputRef = React.useRef(null); const [uploadedImages, setUploadedImages] = React.useState([]); const [isDragging, setIsDragging] = React.useState(false); const [isExtracting, setIsExtracting] = React.useState(false); @@ -257,9 +258,12 @@ export default function PaymentOCRBlock() { setIsDragging(true); }} onDragLeave={() => setIsDragging(false)} - onClick={() => - document.getElementById("image-upload-input")?.click() - } + onClick={() => { + if (fileInputRef.current) { + fileInputRef.current.value = ""; // ✅ reset before opening + fileInputRef.current.click(); + } + }} > {uploadedImages.length ? (
@@ -312,17 +316,20 @@ export default function PaymentOCRBlock() {
)} { + handleImageSelect(e); + e.currentTarget.value = ""; + }} className="hidden" multiple /> {/* Extract */} -