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/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/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/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/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/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 3bb0aa798..ab8bfac21 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, @@ -66,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 34e0418a3..6b68ff838 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() {