diff --git a/packages/server/src/api/controllers/Dashboard/index.ts b/packages/server/src/api/controllers/Dashboard/index.ts
index 027f151ac..47f3a5396 100644
--- a/packages/server/src/api/controllers/Dashboard/index.ts
+++ b/packages/server/src/api/controllers/Dashboard/index.ts
@@ -5,7 +5,7 @@ import DashboardService from '@/services/Dashboard/DashboardService';
@Service()
export default class DashboardMetaController {
@Inject()
- dashboardService: DashboardService;
+ private dashboardService: DashboardService;
/**
* Constructor router.
diff --git a/packages/server/src/lib/Transformer/Transformer.ts b/packages/server/src/lib/Transformer/Transformer.ts
index dfec3391f..185e09c16 100644
--- a/packages/server/src/lib/Transformer/Transformer.ts
+++ b/packages/server/src/lib/Transformer/Transformer.ts
@@ -149,13 +149,19 @@ export class Transformer {
return this.excludeAttributes().length > 0;
};
+ private dateFormat = 'YYYY MMM DD';
+
+ setDateFormat(format: string) {
+ this.dateFormat = format;
+ }
+
/**
*
* @param date
* @returns
*/
protected formatDate(date) {
- return date ? moment(date).format('YYYY/MM/DD') : '';
+ return date ? moment(date).format(this.dateFormat) : '';
}
/**
@@ -193,6 +199,7 @@ export class Transformer {
) {
transformer.setOptions(options);
transformer.setContext(this.context);
+ transformer.setDateFormat(this.dateFormat);
return transformer.work(obj);
}
diff --git a/packages/server/src/lib/Transformer/TransformerInjectable.ts b/packages/server/src/lib/Transformer/TransformerInjectable.ts
index 7343198de..128e3f9bc 100644
--- a/packages/server/src/lib/Transformer/TransformerInjectable.ts
+++ b/packages/server/src/lib/Transformer/TransformerInjectable.ts
@@ -24,6 +24,17 @@ export class TransformerInjectable {
};
}
+ /**
+ * Retrieves the given tenatn date format.
+ * @param {number} tenantId
+ * @returns {string}
+ */
+ async getTenantDateFormat(tenantId: number) {
+ const metadata = await TenantMetadata.query().findOne('tenantId', tenantId);
+
+ return metadata.dateFormat;
+ }
+
/**
* Transformes the given transformer after inject the tenant context.
* @param {number} tenantId
@@ -41,7 +52,11 @@ export class TransformerInjectable {
if (!isNull(tenantId)) {
const context = await this.getApplicationContext(tenantId);
transformer.setContext(context);
+
+ const dateFormat = await this.getTenantDateFormat(tenantId);
+ transformer.setDateFormat(dateFormat);
}
+
transformer.setOptions(options);
return transformer.work(object);
diff --git a/packages/server/src/services/Purchases/BillPayments/BillPaymentEntryTransformer.ts b/packages/server/src/services/Purchases/BillPayments/BillPaymentEntryTransformer.ts
index 19dcbacb5..43edf0571 100644
--- a/packages/server/src/services/Purchases/BillPayments/BillPaymentEntryTransformer.ts
+++ b/packages/server/src/services/Purchases/BillPayments/BillPaymentEntryTransformer.ts
@@ -1,5 +1,6 @@
import { Transformer } from '@/lib/Transformer/Transformer';
import { formatNumber } from '@/utils';
+import { PurchaseInvoiceTransformer } from '../Bills/PurchaseInvoiceTransformer';
export class BillPaymentEntryTransformer extends Transformer {
/**
@@ -7,7 +8,14 @@ export class BillPaymentEntryTransformer extends Transformer {
* @returns {Array}
*/
public includeAttributes = (): string[] => {
- return ['paymentAmountFormatted'];
+ return ['paymentAmountFormatted', 'bill'];
+ };
+
+ /**
+ * Retreives the
+ */
+ protected bill = (entry) => {
+ return this.item(entry.bill, new PurchaseInvoiceTransformer());
};
/**
diff --git a/packages/webapp/src/containers/Accounting/JournalsLanding/utils.tsx b/packages/webapp/src/containers/Accounting/JournalsLanding/utils.tsx
index 3bb0aa798..68030f0d4 100644
--- a/packages/webapp/src/containers/Accounting/JournalsLanding/utils.tsx
+++ b/packages/webapp/src/containers/Accounting/JournalsLanding/utils.tsx
@@ -16,8 +16,7 @@ export const useManualJournalsColumns = () => {
{
id: 'date',
Header: intl.get('date'),
- accessor: 'date',
- Cell: FormatDateCell,
+ accessor: 'formatted_date',
width: 115,
className: 'date',
clickable: true,
diff --git a/packages/webapp/src/containers/Drawers/BillDrawer/BillDetailHeader.tsx b/packages/webapp/src/containers/Drawers/BillDrawer/BillDetailHeader.tsx
index 34e0418a3..dea7b7c96 100644
--- a/packages/webapp/src/containers/Drawers/BillDrawer/BillDetailHeader.tsx
+++ b/packages/webapp/src/containers/Drawers/BillDrawer/BillDetailHeader.tsx
@@ -41,19 +41,23 @@ export default function BillDetailHeader() {
-
+ {bill.formatted_bill_date}
+
-
+ {bill.formatted_due_date}
+
{bill.vendor?.display_name}
+
{defaultTo(bill.bill_number, '-')}
+
-
+ {creditNote.formatted_credit_note_date}
}>
- {moment(expense.payment_date).format('YYYY MMM DD')}
+ {expense.formatted_payment_date}
}>
diff --git a/packages/webapp/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailHeader.tsx b/packages/webapp/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailHeader.tsx
index a79b6b22c..10756938e 100644
--- a/packages/webapp/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailHeader.tsx
+++ b/packages/webapp/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailHeader.tsx
@@ -43,11 +43,11 @@ export default function InvoiceDetailHeader() {
-
+ {invoice.invoice_date_formatted}
-
+ {invoice.due_date_formatted}
diff --git a/packages/webapp/src/containers/Drawers/PaymentMadeDetailDrawer/PaymentMadeDetailHeader.tsx b/packages/webapp/src/containers/Drawers/PaymentMadeDetailDrawer/PaymentMadeDetailHeader.tsx
index 102f62b53..de31d42f6 100644
--- a/packages/webapp/src/containers/Drawers/PaymentMadeDetailDrawer/PaymentMadeDetailHeader.tsx
+++ b/packages/webapp/src/containers/Drawers/PaymentMadeDetailDrawer/PaymentMadeDetailHeader.tsx
@@ -37,7 +37,7 @@ export default function PaymentMadeDetailHeader() {
}
+ children={paymentMade.formatted_payment_date}
/>
{
() => [
{
Header: intl.get('date'),
- accessor: (row) => moment(row.date).format('YYYY MMM DD'),
+ accessor: 'bill.formatted_bill_date',
width: 100,
disableSortBy: true,
className: 'date',
diff --git a/packages/webapp/src/containers/Drawers/PaymentReceiveDetailDrawer/PaymentReceiveDetailHeader.tsx b/packages/webapp/src/containers/Drawers/PaymentReceiveDetailDrawer/PaymentReceiveDetailHeader.tsx
index df251fed2..bddb4c313 100644
--- a/packages/webapp/src/containers/Drawers/PaymentReceiveDetailDrawer/PaymentReceiveDetailHeader.tsx
+++ b/packages/webapp/src/containers/Drawers/PaymentReceiveDetailDrawer/PaymentReceiveDetailHeader.tsx
@@ -36,7 +36,7 @@ export default function PaymentReceiveDetailHeader() {
}
+ children={paymentReceive.formatted_payment_date}
/>
{
() => [
{
Header: intl.get('date'),
- accessor: (row) => moment(row.payment_date).format('YYYY MMM DD'),
+ accessor: 'invoice.invoice_date_formatted',
width: 100,
className: 'date',
disableSortBy: true,
diff --git a/packages/webapp/src/containers/Drawers/ReceiptDetailDrawer/ReceiptDetailHeader.tsx b/packages/webapp/src/containers/Drawers/ReceiptDetailDrawer/ReceiptDetailHeader.tsx
index 2d350f660..e5ddfa6ab 100644
--- a/packages/webapp/src/containers/Drawers/ReceiptDetailDrawer/ReceiptDetailHeader.tsx
+++ b/packages/webapp/src/containers/Drawers/ReceiptDetailDrawer/ReceiptDetailHeader.tsx
@@ -54,11 +54,11 @@ export default function ReceiptDetailHeader() {
}
+ children={receipt.formatted_receipt_date}
/>
}
+ children={receipt.formatted_closed_at_date}
/>
-
+ {vendorCredit.formatted_vendor_credit_date}
{
return React.useMemo(
() => [
{
Header: intl.get('date'),
- accessor: ({ formatted_date }) =>
- moment(formatted_date).format('YYYY MMM DD'),
+ accessor: 'date.formatted_date',
width: 140,
className: 'date',
textOverview: true,
diff --git a/packages/webapp/src/containers/Purchases/Bills/BillsLanding/components.tsx b/packages/webapp/src/containers/Purchases/Bills/BillsLanding/components.tsx
index 167f145aa..f23f2f085 100644
--- a/packages/webapp/src/containers/Purchases/Bills/BillsLanding/components.tsx
+++ b/packages/webapp/src/containers/Purchases/Bills/BillsLanding/components.tsx
@@ -161,8 +161,7 @@ export function useBillsTableColumns() {
{
id: 'bill_date',
Header: intl.get('bill_date'),
- accessor: 'bill_date',
- Cell: FormatDateCell,
+ accessor: 'formatted_bill_date',
width: 110,
className: 'bill_date',
clickable: true,
diff --git a/packages/webapp/src/containers/Purchases/CreditNotes/CreditNotesLanding/components.tsx b/packages/webapp/src/containers/Purchases/CreditNotes/CreditNotesLanding/components.tsx
index 800f2ef8a..69f7a482c 100644
--- a/packages/webapp/src/containers/Purchases/CreditNotes/CreditNotesLanding/components.tsx
+++ b/packages/webapp/src/containers/Purchases/CreditNotes/CreditNotesLanding/components.tsx
@@ -5,14 +5,7 @@ import clsx from 'classnames';
import { Intent, Tag, Menu, MenuItem, MenuDivider } from '@blueprintjs/core';
import { CLASSES } from '@/constants/classes';
-import {
- FormatDateCell,
- FormattedMessage as T,
- Choose,
- If,
- Icon,
- Can,
-} from '@/components';
+import { FormattedMessage as T, Choose, If, Icon, Can } from '@/components';
import { safeCallback } from '@/utils';
import { VendorCreditAction, AbilitySubject } from '@/constants/abilityOption';
@@ -119,7 +112,6 @@ export function useVendorsCreditNoteTableColumns() {
id: 'credit_date',
Header: intl.get('date'),
accessor: 'formatted_vendor_credit_date',
- Cell: FormatDateCell,
width: 110,
className: 'credit_date',
clickable: true,
diff --git a/packages/webapp/src/containers/Purchases/PaymentMades/PaymentsLanding/components.tsx b/packages/webapp/src/containers/Purchases/PaymentMades/PaymentsLanding/components.tsx
index 2305a9e49..c7291d222 100644
--- a/packages/webapp/src/containers/Purchases/PaymentMades/PaymentsLanding/components.tsx
+++ b/packages/webapp/src/containers/Purchases/PaymentMades/PaymentsLanding/components.tsx
@@ -11,7 +11,7 @@ import {
Position,
} from '@blueprintjs/core';
-import { Icon, Money, FormatDateCell, Can } from '@/components';
+import { Icon, Money, Can } from '@/components';
import { PaymentMadeAction, AbilitySubject } from '@/constants/abilityOption';
import { safeCallback } from '@/utils';
@@ -29,7 +29,7 @@ export function ActionsMenu({
}) {
return (