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 */} -