From d52b89de43fb891227a0629e81727659178e097f Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Sun, 28 Dec 2025 02:10:16 +0000 Subject: [PATCH] Add New Invoice Modal to SalesOrderInfo Component - Introduced a new modal for creating invoices within the SalesOrderInfo component. - Implemented state management for the new invoice modal, allowing users to open and close it. - Integrated NewInvoice component with default values for sales order processing. --- .../Sales/SalesOrders/SalesOrderInfo.jsx | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/components/Dashboard/Sales/SalesOrders/SalesOrderInfo.jsx b/src/components/Dashboard/Sales/SalesOrders/SalesOrderInfo.jsx index a7a2ecd..417598d 100644 --- a/src/components/Dashboard/Sales/SalesOrders/SalesOrderInfo.jsx +++ b/src/components/Dashboard/Sales/SalesOrders/SalesOrderInfo.jsx @@ -31,6 +31,7 @@ import ShipmentIcon from '../../../Icons/ShipmentIcon.jsx' import InvoiceIcon from '../../../Icons/InvoiceIcon.jsx' import StockEventIcon from '../../../Icons/StockEventIcon.jsx' import { getModelByName } from '../../../../database/ObjectModels.js' +import NewInvoice from '../../Finance/Invoices/NewInvoice.jsx' const log = loglevel.getLogger('SalesOrderInfo') log.setLevel(config.logLevel) @@ -46,6 +47,7 @@ const SalesOrderInfo = () => { const [postSalesOrderOpen, setPostSalesOrderOpen] = useState(false) const [confirmSalesOrderOpen, setConfirmSalesOrderOpen] = useState(false) const [cancelSalesOrderOpen, setCancelSalesOrderOpen] = useState(false) + const [newInvoiceOpen, setNewInvoiceOpen] = useState(false) const salesOrderId = new URLSearchParams(location.search).get('salesOrderId') const [collapseState, updateCollapseState] = useCollapseState( 'SalesOrderInfo', @@ -99,6 +101,10 @@ const SalesOrderInfo = () => { setNewShipmentOpen(true) return true }, + newInvoice: () => { + setNewInvoiceOpen(true) + return true + }, post: () => { setPostSalesOrderOpen(true) return true @@ -379,6 +385,26 @@ const SalesOrderInfo = () => { }} /> + { + setNewInvoiceOpen(false) + }} + width={800} + footer={null} + destroyOnHidden={true} + > + { + setNewInvoiceOpen(false) + }} + reset={newInvoiceOpen} + defaultValues={{ + orderType: 'salesOrder', + order: { ...objectFormState.objectData } + }} + /> + {