From 3a0a0db8a71c69b04fd353161e85200d781b9794 Mon Sep 17 00:00:00 2001 From: Ahmed Bouhuolia Date: Wed, 12 Jun 2024 19:43:42 +0200 Subject: [PATCH 1/3] feat: setting up the date format in the whole system dates --- .../server/src/api/controllers/Dashboard/index.ts | 2 +- .../server/src/lib/Transformer/Transformer.ts | 9 ++++++++- .../src/lib/Transformer/TransformerInjectable.ts | 15 +++++++++++++++ .../BillPayments/BillPaymentEntryTransformer.ts | 10 +++++++++- .../Accounting/JournalsLanding/utils.tsx | 3 +-- .../Drawers/BillDrawer/BillDetailHeader.tsx | 8 ++++++-- .../CreditNoteDetailHeader.tsx | 2 +- .../Drawers/ExpenseDrawer/ExpenseDrawerHeader.tsx | 3 +-- .../InvoiceDetailDrawer/InvoiceDetailHeader.tsx | 4 ++-- .../PaymentMadeDetailHeader.tsx | 2 +- .../Drawers/PaymentMadeDetailDrawer/utils.tsx | 4 +--- .../PaymentReceiveDetailHeader.tsx | 2 +- .../Drawers/PaymentReceiveDetailDrawer/utils.tsx | 3 +-- .../ReceiptDetailDrawer/ReceiptDetailHeader.tsx | 4 ++-- .../VendorCreditDetailHeader.tsx | 2 +- .../src/containers/JournalEntriesTable/utils.tsx | 5 +---- .../Purchases/Bills/BillsLanding/components.tsx | 3 +-- .../CreditNotes/CreditNotesLanding/components.tsx | 10 +--------- .../PaymentMades/PaymentsLanding/components.tsx | 7 +++---- .../CreditNotes/CreditNotesLanding/components.tsx | 2 -- .../Estimates/EstimatesLanding/components.tsx | 3 +-- .../Sales/Invoices/InvoicesLanding/components.tsx | 5 ++--- .../PaymentsLanding/components.tsx | 3 +-- .../Sales/Receipts/ReceiptsLanding/components.tsx | 3 +-- 24 files changed, 62 insertions(+), 52 deletions(-) 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 ( - } text={intl.get('view_details')} onClick={safeCallback(onViewDetails, original)} @@ -79,8 +79,7 @@ export function usePaymentMadesTableColumns() { { id: 'payment_date', Header: intl.get('payment_date'), - Cell: FormatDateCell, - accessor: 'payment_date', + accessor: 'formatted_payment_date', width: 140, className: 'payment_date', clickable: true, diff --git a/packages/webapp/src/containers/Sales/CreditNotes/CreditNotesLanding/components.tsx b/packages/webapp/src/containers/Sales/CreditNotes/CreditNotesLanding/components.tsx index be9436ca1..864121cac 100644 --- a/packages/webapp/src/containers/Sales/CreditNotes/CreditNotesLanding/components.tsx +++ b/packages/webapp/src/containers/Sales/CreditNotes/CreditNotesLanding/components.tsx @@ -5,7 +5,6 @@ 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, @@ -112,7 +111,6 @@ export function useCreditNoteTableColumns() { id: 'credit_date', Header: intl.get('credit_note.column.credit_date'), accessor: 'formatted_credit_note_date', - Cell: FormatDateCell, width: 110, className: 'credit_date', clickable: true, diff --git a/packages/webapp/src/containers/Sales/Estimates/EstimatesLanding/components.tsx b/packages/webapp/src/containers/Sales/Estimates/EstimatesLanding/components.tsx index 5edfd9051..0c55e9bc7 100644 --- a/packages/webapp/src/containers/Sales/Estimates/EstimatesLanding/components.tsx +++ b/packages/webapp/src/containers/Sales/Estimates/EstimatesLanding/components.tsx @@ -164,8 +164,7 @@ export function useEstiamtesTableColumns() { { id: 'estimate_date', Header: intl.get('estimate_date'), - accessor: 'estimate_date', - Cell: FormatDateCell, + accessor: 'formatted_estimate_date', width: 140, className: 'estimate_date', clickable: true, diff --git a/packages/webapp/src/containers/Sales/Invoices/InvoicesLanding/components.tsx b/packages/webapp/src/containers/Sales/Invoices/InvoicesLanding/components.tsx index 2739ad9e5..ca458f00f 100644 --- a/packages/webapp/src/containers/Sales/Invoices/InvoicesLanding/components.tsx +++ b/packages/webapp/src/containers/Sales/Invoices/InvoicesLanding/components.tsx @@ -128,7 +128,7 @@ export function ActionsMenu({ onQuick, onViewDetails, onPrint, - onSendMail + onSendMail, }, row: { original }, }) { @@ -202,8 +202,7 @@ export function useInvoicesTableColumns() { { id: 'invoice_date', Header: intl.get('invoice_date'), - accessor: 'invoice_date', - Cell: FormatDateCell, + accessor: 'invoice_date_formatted', width: 110, className: 'invoice_date', clickable: true, diff --git a/packages/webapp/src/containers/Sales/PaymentReceives/PaymentsLanding/components.tsx b/packages/webapp/src/containers/Sales/PaymentReceives/PaymentsLanding/components.tsx index fd6aec581..1b800c42d 100644 --- a/packages/webapp/src/containers/Sales/PaymentReceives/PaymentsLanding/components.tsx +++ b/packages/webapp/src/containers/Sales/PaymentReceives/PaymentsLanding/components.tsx @@ -90,8 +90,7 @@ export function usePaymentReceivesColumns() { { id: 'payment_date', Header: intl.get('payment_date'), - accessor: 'payment_date', - Cell: FormatDateCell, + accessor: 'formatted_payment_date', width: 140, className: 'payment_date', clickable: true, diff --git a/packages/webapp/src/containers/Sales/Receipts/ReceiptsLanding/components.tsx b/packages/webapp/src/containers/Sales/Receipts/ReceiptsLanding/components.tsx index e76b2d9c6..f26e18ac9 100644 --- a/packages/webapp/src/containers/Sales/Receipts/ReceiptsLanding/components.tsx +++ b/packages/webapp/src/containers/Sales/Receipts/ReceiptsLanding/components.tsx @@ -119,8 +119,7 @@ export function useReceiptsTableColumns() { { id: 'receipt_date', Header: intl.get('receipt_date'), - accessor: 'receipt_date', - Cell: FormatDateCell, + accessor: 'formatted_receipt_date', width: 140, className: 'receipt_date', clickable: true, From 125dff83762944cd6d327b2ce878143f36752029 Mon Sep 17 00:00:00 2001 From: Ahmed Bouhuolia Date: Mon, 17 Jun 2024 10:27:02 +0200 Subject: [PATCH 2/3] feat: format created at date --- .../services/CreditNotes/CreditNoteTransformer.ts | 11 +++++++++++ .../src/services/Expenses/CRUD/ExpenseTransformer.ts | 10 ++++++++++ .../ManualJournals/ManualJournalTransformer.ts | 10 ++++++++++ .../Purchases/BillPayments/BillPaymentTransformer.ts | 10 ++++++++++ .../Purchases/Bills/PurchaseInvoiceTransformer.ts | 10 ++++++++++ .../VendorCredits/VendorCreditTransformer.ts | 10 ++++++++++ .../Sales/Estimates/SaleEstimateTransformer.ts | 10 ++++++++++ .../Sales/Invoices/SaleInvoiceTransformer.ts | 10 ++++++++++ .../PaymentReceives/PaymentReceiveTransformer.ts | 12 +++++++++++- .../Sales/Receipts/SaleReceiptTransformer.ts | 10 ++++++++++ packages/webapp/src/components/DrawersContainer.tsx | 2 +- .../containers/Accounting/JournalsLanding/utils.tsx | 3 +-- .../Drawers/BillDrawer/BillDetailHeader.tsx | 2 +- .../CreditNoteDetailHeader.tsx | 4 +--- .../EstimateDetailDrawer/EstimateDetailHeader.tsx | 2 +- .../Drawers/ExpenseDrawer/ExpenseDrawerHeader.tsx | 4 ++-- .../InvoiceDetailDrawer/InvoiceDetailHeader.tsx | 2 +- .../PaymentMadeDetailHeader.tsx | 3 ++- .../PaymentReceiveDetailHeader.tsx | 3 +-- .../ReceiptDetailDrawer/ReceiptDetailHeader.tsx | 2 +- .../VendorCreditDetailHeader.tsx | 2 +- .../Expenses/ExpensesLanding/components.tsx | 11 ++--------- 22 files changed, 117 insertions(+), 26 deletions(-) diff --git a/packages/server/src/services/CreditNotes/CreditNoteTransformer.ts b/packages/server/src/services/CreditNotes/CreditNoteTransformer.ts index 67b51b40d..d4780a754 100644 --- a/packages/server/src/services/CreditNotes/CreditNoteTransformer.ts +++ b/packages/server/src/services/CreditNotes/CreditNoteTransformer.ts @@ -13,6 +13,8 @@ export class CreditNoteTransformer extends Transformer { return [ 'formattedCreditsRemaining', 'formattedCreditNoteDate', + 'formattedCreatedAt', + 'formattedCreatedAt', 'formattedAmount', 'formattedCreditsUsed', 'formattedSubtotal', @@ -30,6 +32,15 @@ export class CreditNoteTransformer extends Transformer { return this.formatDate(credit.creditNoteDate); }; + /** + * Retrieve formatted created at date. + * @param credit + * @returns {string} + */ + protected formattedCreatedAt = (credit): string => { + return this.formatDate(credit.createdAt); + }; + /** * Retrieve formatted invoice amount. * @param {ICreditNote} credit diff --git a/packages/server/src/services/Expenses/CRUD/ExpenseTransformer.ts b/packages/server/src/services/Expenses/CRUD/ExpenseTransformer.ts index 92caf0959..3f566b87b 100644 --- a/packages/server/src/services/Expenses/CRUD/ExpenseTransformer.ts +++ b/packages/server/src/services/Expenses/CRUD/ExpenseTransformer.ts @@ -15,6 +15,7 @@ export class ExpenseTransfromer extends Transformer { 'formattedLandedCostAmount', 'formattedAllocatedCostAmount', 'formattedDate', + 'formattedCreatedAt', 'categories', 'attachments', ]; @@ -62,6 +63,15 @@ export class ExpenseTransfromer extends Transformer { return this.formatDate(expense.paymentDate); }; + /** + * Retrieve formatted created at date. + * @param {IExpense} expense + * @returns {string} + */ + protected formattedCreatedAt = (expense: IExpense): string => { + return this.formatDate(expense.createdAt); + } + /** * Retrieves the transformed expense categories. * @param {IExpense} expense diff --git a/packages/server/src/services/ManualJournals/ManualJournalTransformer.ts b/packages/server/src/services/ManualJournals/ManualJournalTransformer.ts index cd4d0baa9..84ac7e0c9 100644 --- a/packages/server/src/services/ManualJournals/ManualJournalTransformer.ts +++ b/packages/server/src/services/ManualJournals/ManualJournalTransformer.ts @@ -13,6 +13,7 @@ export class ManualJournalTransfromer extends Transformer { 'formattedAmount', 'formattedDate', 'formattedPublishedAt', + 'formattedCreatedAt', 'attachments', ]; }; @@ -37,6 +38,15 @@ export class ManualJournalTransfromer extends Transformer { return this.formatDate(manualJorunal.date); }; + /** + * Retrieve formatted created at date. + * @param {IManualJournal} manualJournal + * @returns {string} + */ + protected formattedCreatedAt = (manualJorunal: IManualJournal): string => { + return this.formatDate(manualJorunal.createdAt); + }; + /** * Retrieve formatted published at date. * @param {IManualJournal} manualJournal diff --git a/packages/server/src/services/Purchases/BillPayments/BillPaymentTransformer.ts b/packages/server/src/services/Purchases/BillPayments/BillPaymentTransformer.ts index adf77dd41..6299b3758 100644 --- a/packages/server/src/services/Purchases/BillPayments/BillPaymentTransformer.ts +++ b/packages/server/src/services/Purchases/BillPayments/BillPaymentTransformer.ts @@ -12,6 +12,7 @@ export class BillPaymentTransformer extends Transformer { public includeAttributes = (): string[] => { return [ 'formattedPaymentDate', + 'formattedCreatedAt', 'formattedAmount', 'entries', 'attachments', @@ -27,6 +28,15 @@ export class BillPaymentTransformer extends Transformer { return this.formatDate(billPayment.paymentDate); }; + /** + * Retrieve formatted created at date. + * @param {IBillPayment} billPayment + * @returns {string} + */ + protected formattedCreatedAt = (billPayment: IBillPayment): string => { + return this.formatDate(billPayment.createdAt); + } + /** * Retrieve formatted bill amount. * @param {IBill} invoice diff --git a/packages/server/src/services/Purchases/Bills/PurchaseInvoiceTransformer.ts b/packages/server/src/services/Purchases/Bills/PurchaseInvoiceTransformer.ts index 43b8a4b1a..d940d79fa 100644 --- a/packages/server/src/services/Purchases/Bills/PurchaseInvoiceTransformer.ts +++ b/packages/server/src/services/Purchases/Bills/PurchaseInvoiceTransformer.ts @@ -14,6 +14,7 @@ export class PurchaseInvoiceTransformer extends Transformer { return [ 'formattedBillDate', 'formattedDueDate', + 'formattedCreatedAt', 'formattedAmount', 'formattedPaymentAmount', 'formattedBalance', @@ -57,6 +58,15 @@ export class PurchaseInvoiceTransformer extends Transformer { return this.formatDate(bill.dueDate); }; + /** + * Retrieve the formatted created at date. + * @param {IBill} bill + * @returns {string} + */ + protected formattedCreatedAt = (bill: IBill): string => { + return this.formatDate(bill.createdAt); + }; + /** * Retrieve formatted bill amount. * @param {IBill} bill diff --git a/packages/server/src/services/Purchases/VendorCredits/VendorCreditTransformer.ts b/packages/server/src/services/Purchases/VendorCredits/VendorCreditTransformer.ts index 86518c23e..ba7625562 100644 --- a/packages/server/src/services/Purchases/VendorCredits/VendorCreditTransformer.ts +++ b/packages/server/src/services/Purchases/VendorCredits/VendorCreditTransformer.ts @@ -14,6 +14,7 @@ export class VendorCreditTransformer extends Transformer { 'formattedAmount', 'formattedSubtotal', 'formattedVendorCreditDate', + 'formattedCreatedAt', 'formattedCreditsRemaining', 'formattedInvoicedAmount', 'entries', @@ -30,6 +31,15 @@ export class VendorCreditTransformer extends Transformer { return this.formatDate(vendorCredit.vendorCreditDate); }; + /** + * Retireve formatted created at date. + * @param vendorCredit + * @returns {string} + */ + protected formattedCreatedAt = (vendorCredit): string => { + return this.formatDate(vendorCredit.createdAt); + }; + /** * Retrieve formatted vendor credit amount. * @param {IVendorCredit} credit diff --git a/packages/server/src/services/Sales/Estimates/SaleEstimateTransformer.ts b/packages/server/src/services/Sales/Estimates/SaleEstimateTransformer.ts index 9e6cb1be3..1a7d6990a 100644 --- a/packages/server/src/services/Sales/Estimates/SaleEstimateTransformer.ts +++ b/packages/server/src/services/Sales/Estimates/SaleEstimateTransformer.ts @@ -18,6 +18,7 @@ export class SaleEstimateTransfromer extends Transformer { 'formattedDeliveredAtDate', 'formattedApprovedAtDate', 'formattedRejectedAtDate', + 'formattedCreatedAt', 'entries', 'attachments', ]; @@ -41,6 +42,15 @@ export class SaleEstimateTransfromer extends Transformer { return this.formatDate(estimate.expirationDate); }; + /** + * Retrieves the formatted estimate created at. + * @param {ISaleEstimate} estimate - + * @returns {string} + */ + protected formattedCreatedAt = (estimate: ISaleEstimate): string => { + return this.formatDate(estimate.createdAt); + }; + /** * Retrieve formatted estimate date. * @param {ISaleEstimate} invoice diff --git a/packages/server/src/services/Sales/Invoices/SaleInvoiceTransformer.ts b/packages/server/src/services/Sales/Invoices/SaleInvoiceTransformer.ts index 4d3b9d2c2..ef5fe5e12 100644 --- a/packages/server/src/services/Sales/Invoices/SaleInvoiceTransformer.ts +++ b/packages/server/src/services/Sales/Invoices/SaleInvoiceTransformer.ts @@ -13,6 +13,7 @@ export class SaleInvoiceTransformer extends Transformer { return [ 'invoiceDateFormatted', 'dueDateFormatted', + 'createdAtFormatted', 'dueAmountFormatted', 'paymentAmountFormatted', 'balanceAmountFormatted', @@ -48,6 +49,15 @@ export class SaleInvoiceTransformer extends Transformer { return this.formatDate(invoice.dueDate); }; + /** + * Retrieve the formatted created at date. + * @param invoice + * @returns {string} + */ + protected createdAtFormatted = (invoice): string => { + return this.formatDate(invoice.createdAt); + }; + /** * Retrieve formatted invoice due amount. * @param {ISaleInvoice} invoice diff --git a/packages/server/src/services/Sales/PaymentReceives/PaymentReceiveTransformer.ts b/packages/server/src/services/Sales/PaymentReceives/PaymentReceiveTransformer.ts index 5ca84db07..eaf4dfe9e 100644 --- a/packages/server/src/services/Sales/PaymentReceives/PaymentReceiveTransformer.ts +++ b/packages/server/src/services/Sales/PaymentReceives/PaymentReceiveTransformer.ts @@ -12,6 +12,7 @@ export class PaymentReceiveTransfromer extends Transformer { return [ 'subtotalFormatted', 'formattedPaymentDate', + 'formattedCreatedAt', 'formattedAmount', 'formattedExchangeRate', 'entries', @@ -27,9 +28,18 @@ export class PaymentReceiveTransfromer extends Transformer { return this.formatDate(payment.paymentDate); }; + /** + * Retrieves the formatted created at date. + * @param {IPaymentReceive} payment + * @returns {string} + */ + protected formattedCreatedAt = (payment: IPaymentReceive): string => { + return this.formatDate(payment.createdAt); + }; + /** * Retrieve the formatted payment subtotal. - * @param {IPaymentReceive} payment + * @param {IPaymentReceive} payment * @returns {string} */ protected subtotalFormatted = (payment: IPaymentReceive): string => { diff --git a/packages/server/src/services/Sales/Receipts/SaleReceiptTransformer.ts b/packages/server/src/services/Sales/Receipts/SaleReceiptTransformer.ts index f031e567a..90d3631af 100644 --- a/packages/server/src/services/Sales/Receipts/SaleReceiptTransformer.ts +++ b/packages/server/src/services/Sales/Receipts/SaleReceiptTransformer.ts @@ -17,6 +17,7 @@ export class SaleReceiptTransformer extends Transformer { 'formattedAmount', 'formattedReceiptDate', 'formattedClosedAtDate', + 'formattedCreatedAt', 'entries', 'attachments', ]; @@ -40,6 +41,15 @@ export class SaleReceiptTransformer extends Transformer { return this.formatDate(receipt.closedAt); }; + /** + * Retrieve formatted receipt created at date. + * @param receipt + * @returns {string} + */ + protected formattedCreatedAt = (receipt: ISaleReceipt): string => { + return this.formatDate(receipt.createdAt); + }; + /** * Retrieves the estimate formatted subtotal. * @param {ISaleReceipt} receipt diff --git a/packages/webapp/src/components/DrawersContainer.tsx b/packages/webapp/src/components/DrawersContainer.tsx index aeae5c4ec..af3c97525 100644 --- a/packages/webapp/src/components/DrawersContainer.tsx +++ b/packages/webapp/src/components/DrawersContainer.tsx @@ -21,9 +21,9 @@ import RefundCreditNoteDetailDrawer from '@/containers/Drawers/RefundCreditNoteD import RefundVendorCreditDetailDrawer from '@/containers/Drawers/RefundVendorCreditDetailDrawer'; import WarehouseTransferDetailDrawer from '@/containers/Drawers/WarehouseTransferDetailDrawer'; import TaxRateDetailsDrawer from '@/containers/TaxRates/drawers/TaxRateDetailsDrawer/TaxRateDetailsDrawer'; +import CategorizeTransactionDrawer from '@/containers/CashFlow/CategorizeTransaction/drawers/CategorizeTransactionDrawer/CategorizeTransactionDrawer'; import { DRAWERS } from '@/constants/drawers'; -import CategorizeTransactionDrawer from '@/containers/CashFlow/CategorizeTransaction/drawers/CategorizeTransactionDrawer/CategorizeTransactionDrawer'; /** * Drawers container of the dashboard. diff --git a/packages/webapp/src/containers/Accounting/JournalsLanding/utils.tsx b/packages/webapp/src/containers/Accounting/JournalsLanding/utils.tsx index 68030f0d4..ab8bfac21 100644 --- a/packages/webapp/src/containers/Accounting/JournalsLanding/utils.tsx +++ b/packages/webapp/src/containers/Accounting/JournalsLanding/utils.tsx @@ -65,8 +65,7 @@ export const useManualJournalsColumns = () => { { id: 'created_at', Header: intl.get('created_at'), - accessor: 'created_at', - Cell: FormatDateCell, + accessor: 'formatted_created_at', width: 125, clickable: true, }, diff --git a/packages/webapp/src/containers/Drawers/BillDrawer/BillDetailHeader.tsx b/packages/webapp/src/containers/Drawers/BillDrawer/BillDetailHeader.tsx index dea7b7c96..6b68ff838 100644 --- a/packages/webapp/src/containers/Drawers/BillDrawer/BillDetailHeader.tsx +++ b/packages/webapp/src/containers/Drawers/BillDrawer/BillDetailHeader.tsx @@ -79,7 +79,7 @@ export default function BillDetailHeader() { /> } + children={bill.formatted_created_at} /> diff --git a/packages/webapp/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetailHeader.tsx b/packages/webapp/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetailHeader.tsx index 3a545a83d..ffb1f7985 100644 --- a/packages/webapp/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetailHeader.tsx +++ b/packages/webapp/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetailHeader.tsx @@ -5,13 +5,11 @@ import styled from 'styled-components'; import { defaultTo } from 'lodash'; import { - FormatDate, T, Row, Col, DetailsMenu, DetailItem, - ButtonLink, CommercialDocHeader, CommercialDocTopHeader, CustomerDrawerLink, @@ -85,7 +83,7 @@ export default function CreditNoteDetailHeader() { /> } - children={} + children={creditNote.formatted_created_at} /> diff --git a/packages/webapp/src/containers/Drawers/EstimateDetailDrawer/EstimateDetailHeader.tsx b/packages/webapp/src/containers/Drawers/EstimateDetailDrawer/EstimateDetailHeader.tsx index 7c07ee1db..a6ae51468 100644 --- a/packages/webapp/src/containers/Drawers/EstimateDetailDrawer/EstimateDetailHeader.tsx +++ b/packages/webapp/src/containers/Drawers/EstimateDetailDrawer/EstimateDetailHeader.tsx @@ -81,7 +81,7 @@ export default function EstimateDetailHeader() { /> } - children={} + children={estimate.formatted_created_at} /> diff --git a/packages/webapp/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerHeader.tsx b/packages/webapp/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerHeader.tsx index 31dda7722..84aadd48d 100644 --- a/packages/webapp/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerHeader.tsx +++ b/packages/webapp/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerHeader.tsx @@ -65,11 +65,11 @@ export default function ExpenseDrawerHeader() { minLabelSize={'180px'} > }> - + {expense.formatted_date} }> - + {expense.formatted_created_at} diff --git a/packages/webapp/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailHeader.tsx b/packages/webapp/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailHeader.tsx index 10756938e..9231132a8 100644 --- a/packages/webapp/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailHeader.tsx +++ b/packages/webapp/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailHeader.tsx @@ -86,7 +86,7 @@ export default function InvoiceDetailHeader() { /> } + children={invoice.created_at_formatted} /> diff --git a/packages/webapp/src/containers/Drawers/PaymentMadeDetailDrawer/PaymentMadeDetailHeader.tsx b/packages/webapp/src/containers/Drawers/PaymentMadeDetailDrawer/PaymentMadeDetailHeader.tsx index de31d42f6..6f88eb968 100644 --- a/packages/webapp/src/containers/Drawers/PaymentMadeDetailDrawer/PaymentMadeDetailHeader.tsx +++ b/packages/webapp/src/containers/Drawers/PaymentMadeDetailDrawer/PaymentMadeDetailHeader.tsx @@ -58,6 +58,7 @@ export default function PaymentMadeDetailHeader() { /> + } + children={paymentMade.formatted_created_at} /> diff --git a/packages/webapp/src/containers/Drawers/PaymentReceiveDetailDrawer/PaymentReceiveDetailHeader.tsx b/packages/webapp/src/containers/Drawers/PaymentReceiveDetailDrawer/PaymentReceiveDetailHeader.tsx index bddb4c313..88b2443a0 100644 --- a/packages/webapp/src/containers/Drawers/PaymentReceiveDetailDrawer/PaymentReceiveDetailHeader.tsx +++ b/packages/webapp/src/containers/Drawers/PaymentReceiveDetailDrawer/PaymentReceiveDetailHeader.tsx @@ -5,7 +5,6 @@ import { defaultTo } from 'lodash'; import { Row, Col, - FormatDate, DetailsMenu, DetailItem, CommercialDocHeader, @@ -71,7 +70,7 @@ export default function PaymentReceiveDetailHeader() { /> } + children={paymentReceive.formatted_created_at} /> diff --git a/packages/webapp/src/containers/Drawers/ReceiptDetailDrawer/ReceiptDetailHeader.tsx b/packages/webapp/src/containers/Drawers/ReceiptDetailDrawer/ReceiptDetailHeader.tsx index e5ddfa6ab..a55d47ee6 100644 --- a/packages/webapp/src/containers/Drawers/ReceiptDetailDrawer/ReceiptDetailHeader.tsx +++ b/packages/webapp/src/containers/Drawers/ReceiptDetailDrawer/ReceiptDetailHeader.tsx @@ -82,7 +82,7 @@ export default function ReceiptDetailHeader() { /> } + children={receipt.formatted_created_at} /> diff --git a/packages/webapp/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetailHeader.tsx b/packages/webapp/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetailHeader.tsx index e4b501fc1..989b1b245 100644 --- a/packages/webapp/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetailHeader.tsx +++ b/packages/webapp/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetailHeader.tsx @@ -78,7 +78,7 @@ export default function VendorCreditDetailHeader() { /> } - children={} + children={vendorCredit.formatted_created_at} /> diff --git a/packages/webapp/src/containers/Expenses/ExpensesLanding/components.tsx b/packages/webapp/src/containers/Expenses/ExpensesLanding/components.tsx index 3f32537d1..cac65ea92 100644 --- a/packages/webapp/src/containers/Expenses/ExpensesLanding/components.tsx +++ b/packages/webapp/src/containers/Expenses/ExpensesLanding/components.tsx @@ -17,13 +17,7 @@ import clsx from 'classnames'; import { CLASSES } from '@/constants/classes'; import { ExpenseAction, AbilitySubject } from '@/constants/abilityOption'; -import { - FormatDateCell, - FormattedMessage as T, - Icon, - If, - Can, -} from '@/components'; +import { FormattedMessage as T, Icon, If, Can } from '@/components'; import { safeCallback } from '@/utils'; /** @@ -137,8 +131,7 @@ export function useExpensesTableColumns() { { id: 'payment_date', Header: intl.get('payment_date'), - accessor: 'payment_date', - Cell: FormatDateCell, + accessor: 'formatted_date', width: 140, className: 'payment_date', clickable: true, From 2ad77103aca33538a56bd05d8ab10a45bf7c3d72 Mon Sep 17 00:00:00 2001 From: Ahmed Bouhuolia Date: Mon, 17 Jun 2024 12:50:31 +0200 Subject: [PATCH 3/3] feat: cashflow tranasction date format --- .../CashflowTransactionTransformer.ts | 29 +++++++++++++++++-- .../Organization/OrganizationService.ts | 2 +- .../CashflowTransactionDrawerHeader.tsx | 2 +- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/packages/server/src/services/Cashflow/CashflowTransactionTransformer.ts b/packages/server/src/services/Cashflow/CashflowTransactionTransformer.ts index 797d847dd..f6b9e288b 100644 --- a/packages/server/src/services/Cashflow/CashflowTransactionTransformer.ts +++ b/packages/server/src/services/Cashflow/CashflowTransactionTransformer.ts @@ -7,7 +7,12 @@ export class CashflowTransactionTransformer extends Transformer { * @returns {string[]} */ public includeAttributes = (): string[] => { - return ['formattedAmount', 'transactionTypeFormatted']; + return [ + 'formattedAmount', + 'transactionTypeFormatted', + 'formattedDate', + 'formattedCreatedAt', + ]; }; /** @@ -24,10 +29,28 @@ export class CashflowTransactionTransformer extends Transformer { /** * Formatted transaction type. - * @param transaction + * @param transaction * @returns {string} */ protected transactionTypeFormatted = (transaction) => { return this.context.i18n.__(transaction.transactionTypeFormatted); - } + }; + + /** + * Retrieve the formatted transaction date. + * @param invoice + * @returns {string} + */ + protected formattedDate = (invoice): string => { + return this.formatDate(invoice.date); + }; + + /** + * Retrieve the formatted created at date. + * @param invoice + * @returns {string} + */ + protected formattedCreatedAt = (invoice): string => { + return this.formatDate(invoice.createdAt); + }; } diff --git a/packages/server/src/services/Organization/OrganizationService.ts b/packages/server/src/services/Organization/OrganizationService.ts index 06731b741..883db3ce5 100644 --- a/packages/server/src/services/Organization/OrganizationService.ts +++ b/packages/server/src/services/Organization/OrganizationService.ts @@ -207,7 +207,7 @@ export default class OrganizationService { ): IOrganizationBuildDTO { return { ...buildDTO, - dateFormat: defaultTo(buildDTO.dateFormat, 'DD/MM/yyyy'), + dateFormat: defaultTo(buildDTO.dateFormat, 'DD MMM yyyy'), }; } diff --git a/packages/webapp/src/containers/Drawers/CashflowTransactionDetailDrawer/CashflowTransactionDrawerHeader.tsx b/packages/webapp/src/containers/Drawers/CashflowTransactionDetailDrawer/CashflowTransactionDrawerHeader.tsx index 3fc0477cd..68879e3e6 100644 --- a/packages/webapp/src/containers/Drawers/CashflowTransactionDetailDrawer/CashflowTransactionDrawerHeader.tsx +++ b/packages/webapp/src/containers/Drawers/CashflowTransactionDetailDrawer/CashflowTransactionDrawerHeader.tsx @@ -46,7 +46,7 @@ export default function CashflowTransactionDrawerHeader() { }> - + {cashflowTransaction.formatted_date} }>