diff --git a/src/components/Dashboard/Inventory/PurchaseOrders/NewPurchaseOrder.jsx b/src/components/Dashboard/Inventory/PurchaseOrders/NewPurchaseOrder.jsx index 4e9728e..fe258f6 100644 --- a/src/components/Dashboard/Inventory/PurchaseOrders/NewPurchaseOrder.jsx +++ b/src/components/Dashboard/Inventory/PurchaseOrders/NewPurchaseOrder.jsx @@ -53,7 +53,8 @@ const NewPurchaseOrder = ({ onOk, reset, defaultValues }) => { acknowledgedAt: false, shippingAmount: false, shippingAmountWithTax: false, - grandTotalAmount: false + grandTotalAmount: false, + completedAt: false }} isEditing={false} objectData={objectData} diff --git a/src/components/Dashboard/Inventory/PurchaseOrders/PurchaseOrderInfo.jsx b/src/components/Dashboard/Inventory/PurchaseOrders/PurchaseOrderInfo.jsx index 4f55010..d626cec 100644 --- a/src/components/Dashboard/Inventory/PurchaseOrders/PurchaseOrderInfo.jsx +++ b/src/components/Dashboard/Inventory/PurchaseOrders/PurchaseOrderInfo.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('PurchaseOrderInfo') log.setLevel(config.logLevel) @@ -47,6 +48,7 @@ const PurchaseOrderInfo = () => { const [acknowledgePurchaseOrderOpen, setAcknowledgePurchaseOrderOpen] = useState(false) const [cancelPurchaseOrderOpen, setCancelPurchaseOrderOpen] = useState(false) + const [newInvoiceOpen, setNewInvoiceOpen] = useState(false) const purchaseOrderId = new URLSearchParams(location.search).get( 'purchaseOrderId' ) @@ -102,6 +104,10 @@ const PurchaseOrderInfo = () => { setNewShipmentOpen(true) return true }, + newInvoice: () => { + setNewInvoiceOpen(true) + return true + }, post: () => { setPostPurchaseOrderOpen(true) return true @@ -382,6 +388,26 @@ const PurchaseOrderInfo = () => { }} /> + { + setNewInvoiceOpen(false) + }} + width={800} + footer={null} + destroyOnHidden={true} + > + { + setNewInvoiceOpen(false) + }} + reset={newInvoiceOpen} + defaultValues={{ + orderType: 'purchaseOrder', + order: { ...objectFormState.objectData } + }} + /> + { diff --git a/src/database/models/PurchaseOrder.js b/src/database/models/PurchaseOrder.js index 7fcf9da..9a9a50e 100644 --- a/src/database/models/PurchaseOrder.js +++ b/src/database/models/PurchaseOrder.js @@ -103,7 +103,13 @@ export const PurchaseOrder = { url: (_id) => `/dashboard/inventory/purchaseorders/info?purchaseOrderId=${_id}&action=newInvoice`, disabled: (objectData) => { - return objectData?.state?.type != 'received' + const allowedStates = [ + 'received', + 'shipped', + 'partiallyReceived', + 'partiallyShipped' + ] + return !allowedStates.includes(objectData?.state?.type) } }, { @@ -240,7 +246,7 @@ export const PurchaseOrder = { columnWidth: 175 }, { - name: 'CompletedAt', + name: 'completedAt', label: 'Completed At', type: 'dateTime', readOnly: true