diff --git a/src/components/Dashboard/Finance/Invoices/NewInvoice.jsx b/src/components/Dashboard/Finance/Invoices/NewInvoice.jsx index ebe0699..2d1375e 100644 --- a/src/components/Dashboard/Finance/Invoices/NewInvoice.jsx +++ b/src/components/Dashboard/Finance/Invoices/NewInvoice.jsx @@ -34,6 +34,8 @@ const NewInvoice = ({ onOk, reset, defaultValues }) => { order: true, to: true, from: true, + toType: true, + fromType: true, issuedAt: true, dueAt: true }} @@ -64,7 +66,9 @@ const NewInvoice = ({ onOk, reset, defaultValues }) => { sentAt: false, paidAt: false, cancelledAt: false, - overdueAt: false + overdueAt: false, + acknowledgedAt: false, + postedAt: false }} isEditing={false} objectData={objectData} diff --git a/src/database/models/Invoice.js b/src/database/models/Invoice.js index 712a9e2..d47100a 100644 --- a/src/database/models/Invoice.js +++ b/src/database/models/Invoice.js @@ -233,23 +233,21 @@ export const Invoice = { columnWidth: 175 }, { - name: 'from', - label: 'From', - required: true, - type: 'object', - objectType: 'vendor', - showHyperlink: true, - readOnly: true, - columnWidth: 200, + name: 'fromType', + label: 'From Type', + type: 'objectType', value: (objectData) => { - if (objectData?.orderType == 'purchaseOrder') { - return objectData?.order?.vendor - } else { - return null - } - } + return objectData?.orderType == 'purchaseOrder' + ? 'vendor' + : objectData?.fromType + }, + masterFilter: ['client', 'vendor'], + readOnly: (objectData) => { + return objectData?.orderType == 'purchaseOrder' ? true : false + }, + columnWidth: 150, + required: true }, - { name: 'acknowledgedAt', label: 'Acknowledged At', @@ -257,24 +255,28 @@ export const Invoice = { readOnly: true, columnWidth: 175 }, - { - name: 'to', - label: 'To', + name: 'from', + label: 'From', required: true, type: 'object', - objectType: 'client', + objectType: (objectData) => { + return objectData?.fromType + }, showHyperlink: true, - readOnly: true, + readOnly: (objectData) => { + return objectData?.orderType == 'purchaseOrder' ? true : false + }, columnWidth: 200, value: (objectData) => { - if (objectData?.orderType == 'salesOrder') { - return objectData?.to + if (objectData?.orderType == 'purchaseOrder') { + return objectData?.order?.vendor } else { - return null + return objectData?.from } } }, + { name: 'cancelledAt', label: 'Cancelled At', @@ -283,6 +285,45 @@ export const Invoice = { columnWidth: 175 }, + { + name: 'toType', + label: 'To Type', + type: 'objectType', + masterFilter: ['vendor', 'client'], + value: (objectData) => { + return objectData?.orderType == 'salesOrder' + ? 'client' + : objectData?.toType + }, + readOnly: (objectData) => { + return objectData?.orderType == 'salesOrder' ? true : false + }, + columnWidth: 150, + required: true + }, + + { + name: 'to', + label: 'To', + required: true, + type: 'object', + objectType: (objectData) => { + return objectData?.toType + }, + showHyperlink: true, + readOnly: (objectData) => { + return objectData?.orderType == 'salesOrder' ? true : false + }, + columnWidth: 200, + value: (objectData) => { + if (objectData?.orderType == 'salesOrder') { + return objectData?.order?.client + } else { + return objectData?.to + } + } + }, + { name: 'totalTaxAmount', label: 'Total Tax Amount', @@ -403,9 +444,7 @@ export const Invoice = { ) || 0 ) } else if (objectData?.taxRate?.rateType == 'amount') { - return ( - (invoiceAmount + objectData?.taxRate?.rate).toFixed(2) || 0 - ) + return (invoiceAmount + objectData?.taxRate?.rate).toFixed(2) || 0 } return invoiceAmount } @@ -512,9 +551,7 @@ export const Invoice = { ) || 0 ) } else if (objectData?.taxRate?.rateType == 'amount') { - return ( - (invoiceAmount + objectData?.taxRate?.rate).toFixed(2) || 0 - ) + return (invoiceAmount + objectData?.taxRate?.rate).toFixed(2) || 0 } return invoiceAmount }