diff --git a/src/app/(app)/delivery-notes/page.tsx b/src/app/(app)/delivery-notes/page.tsx
index 06fca07..3e16332 100644
--- a/src/app/(app)/delivery-notes/page.tsx
+++ b/src/app/(app)/delivery-notes/page.tsx
@@ -1787,14 +1787,12 @@ export default function DeliveryNotesPage() {
onOpenChange={(v) => setNoteEditor((prev) => ({ ...prev, open: v }))}
deliveryNoteId={noteEditor.noteId}
deliveryNoteNumber={noteEditor.number}
- onSaved={(dnNumber) => {
+ onSaved={(dnNumber, showDocument) => {
setNoteEditor((prev) => ({ ...prev, open: false }));
// Refresh so the next quote review starts from what was
- // just saved rather than the values fetched at page load,
- // then bring the document back — "save, and show me what
- // I just saved".
+ // just saved rather than the values fetched at page load.
void fetchNotes().then(() => {
- if (dnNumber) setPreviewDnNumber(dnNumber);
+ if (showDocument && dnNumber) setPreviewDnNumber(dnNumber);
});
}}
/>
diff --git a/src/components/delivery-notes/delivery-note-editor-dialog.tsx b/src/components/delivery-notes/delivery-note-editor-dialog.tsx
index 002f678..177267b 100644
--- a/src/components/delivery-notes/delivery-note-editor-dialog.tsx
+++ b/src/components/delivery-notes/delivery-note-editor-dialog.tsx
@@ -64,9 +64,12 @@ export interface DeliveryNoteEditorDialogProps {
onOpenChange: (open: boolean) => void;
deliveryNoteId: string;
deliveryNoteNumber: string;
- /** Called after a successful save, with the DN number, so the host
- * can bring the document back up for printing. */
- onSaved?: (deliveryNoteNumber: string) => void;
+ /**
+ * Called after a SUCCESSFUL save, with the note number. The second
+ * argument is true when the operator pressed "Save & show document",
+ * so the host knows to bring the PDF up afterwards.
+ */
+ onSaved?: (deliveryNoteNumber: string, showDocument: boolean) => void;
}
export function DeliveryNoteEditorDialog({
@@ -152,7 +155,7 @@ export function DeliveryNoteEditorDialog({
);
};
- const save = async () => {
+ const save = async (showDocumentAfter = false) => {
setSaving(true);
try {
// Sequential rather than parallel: these rewrite the same DN
@@ -184,7 +187,12 @@ export function DeliveryNoteEditorDialog({
`Saved ${lines.length} line${lines.length === 1 ? "" : "s"} on ${deliveryNoteNumber}.`,
);
onOpenChange(false);
- onSaved?.(deliveryNoteNumber);
+ // The host opens the document when it gets the number back.
+ // Passing it here rather than on the button's own click is the
+ // whole fix: the old "Save & show document" closed the dialog
+ // and showed the PDF WITHOUT saving, so the operator saw the
+ // old quantities and reasonably concluded the edit hadn't taken.
+ onSaved?.(deliveryNoteNumber, showDocumentAfter);
} catch (err: unknown) {
toast.error(
err instanceof Error ? err.message : "Failed to save the delivery note",
@@ -373,21 +381,19 @@ export function DeliveryNoteEditorDialog({
>
Cancel
- {/* Close without saving, but still show the document —
- most times someone opens this to LOOK, not change. */}
+ {/* Saves, THEN shows the document. It used to only close
+ and show — which looked exactly like "my change was
+ ignored" because the PDF still carried the old numbers. */}