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.
This commit is contained in:
Tom Butcher 2025-12-28 02:10:16 +00:00
parent b4a78f3c91
commit d52b89de43

View File

@ -31,6 +31,7 @@ import ShipmentIcon from '../../../Icons/ShipmentIcon.jsx'
import InvoiceIcon from '../../../Icons/InvoiceIcon.jsx' import InvoiceIcon from '../../../Icons/InvoiceIcon.jsx'
import StockEventIcon from '../../../Icons/StockEventIcon.jsx' import StockEventIcon from '../../../Icons/StockEventIcon.jsx'
import { getModelByName } from '../../../../database/ObjectModels.js' import { getModelByName } from '../../../../database/ObjectModels.js'
import NewInvoice from '../../Finance/Invoices/NewInvoice.jsx'
const log = loglevel.getLogger('SalesOrderInfo') const log = loglevel.getLogger('SalesOrderInfo')
log.setLevel(config.logLevel) log.setLevel(config.logLevel)
@ -46,6 +47,7 @@ const SalesOrderInfo = () => {
const [postSalesOrderOpen, setPostSalesOrderOpen] = useState(false) const [postSalesOrderOpen, setPostSalesOrderOpen] = useState(false)
const [confirmSalesOrderOpen, setConfirmSalesOrderOpen] = useState(false) const [confirmSalesOrderOpen, setConfirmSalesOrderOpen] = useState(false)
const [cancelSalesOrderOpen, setCancelSalesOrderOpen] = useState(false) const [cancelSalesOrderOpen, setCancelSalesOrderOpen] = useState(false)
const [newInvoiceOpen, setNewInvoiceOpen] = useState(false)
const salesOrderId = new URLSearchParams(location.search).get('salesOrderId') const salesOrderId = new URLSearchParams(location.search).get('salesOrderId')
const [collapseState, updateCollapseState] = useCollapseState( const [collapseState, updateCollapseState] = useCollapseState(
'SalesOrderInfo', 'SalesOrderInfo',
@ -99,6 +101,10 @@ const SalesOrderInfo = () => {
setNewShipmentOpen(true) setNewShipmentOpen(true)
return true return true
}, },
newInvoice: () => {
setNewInvoiceOpen(true)
return true
},
post: () => { post: () => {
setPostSalesOrderOpen(true) setPostSalesOrderOpen(true)
return true return true
@ -379,6 +385,26 @@ const SalesOrderInfo = () => {
}} }}
/> />
</Modal> </Modal>
<Modal
open={newInvoiceOpen}
onCancel={() => {
setNewInvoiceOpen(false)
}}
width={800}
footer={null}
destroyOnHidden={true}
>
<NewInvoice
onOk={() => {
setNewInvoiceOpen(false)
}}
reset={newInvoiceOpen}
defaultValues={{
orderType: 'salesOrder',
order: { ...objectFormState.objectData }
}}
/>
</Modal>
<Modal <Modal
open={postSalesOrderOpen} open={postSalesOrderOpen}
onCancel={() => { onCancel={() => {