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