diff --git a/packages/server/src/modules/Accounts/Accounts.controller.ts b/packages/server/src/modules/Accounts/Accounts.controller.ts index d38613986..4e5e3d878 100644 --- a/packages/server/src/modules/Accounts/Accounts.controller.ts +++ b/packages/server/src/modules/Accounts/Accounts.controller.ts @@ -143,7 +143,7 @@ export class AccountsController { status: 200, description: 'The accounts have been successfully retrieved.', }) - async getAccounts(@Query() filter: IAccountsFilter) { + async getAccounts(@Query() filter: Partial) { return this.accountsApplication.getAccounts(filter); } } diff --git a/packages/server/src/modules/Accounts/AccountsApplication.service.ts b/packages/server/src/modules/Accounts/AccountsApplication.service.ts index 3a0858f3b..8828f2727 100644 --- a/packages/server/src/modules/Accounts/AccountsApplication.service.ts +++ b/packages/server/src/modules/Accounts/AccountsApplication.service.ts @@ -115,7 +115,7 @@ export class AccountsApplication { * @returns {Promise<{ accounts: IAccountResponse[]; filterMeta: IFilterMeta }>} */ public getAccounts = ( - filterDTO: IAccountsFilter, + filterDTO: Partial, ): Promise<{ accounts: Account[]; filterMeta: IFilterMeta }> => { return this.getAccountsService.getAccountsList(filterDTO); }; diff --git a/packages/server/src/modules/Accounts/GetAccounts.service.ts b/packages/server/src/modules/Accounts/GetAccounts.service.ts index d2741712a..8098687dc 100644 --- a/packages/server/src/modules/Accounts/GetAccounts.service.ts +++ b/packages/server/src/modules/Accounts/GetAccounts.service.ts @@ -1,6 +1,6 @@ import { Inject, Injectable } from '@nestjs/common'; import * as R from 'ramda'; -import { IAccountsFilter } from './Accounts.types'; +import { IAccountsFilter, IAccountsStructureType } from './Accounts.types'; import { DynamicListService } from '../DynamicListing/DynamicList.service'; import { AccountTransformer } from './Account.transformer'; import { TransformerInjectable } from '../Transformer/TransformerInjectable.service'; @@ -26,10 +26,17 @@ export class GetAccountsService { * @returns {Promise<{ accounts: IAccountResponse[]; filterMeta: IFilterMeta }>} */ public async getAccountsList( - filterDTO: IAccountsFilter, + filterDto: Partial, ): Promise<{ accounts: Account[]; filterMeta: IFilterMeta }> { + const parsedFilterDto = { + sortOrder: 'desc', + columnSortBy: 'created_at', + inactiveMode: false, + structure: IAccountsStructureType.Tree, + ...filterDto, + }; // Parses the stringified filter roles. - const filter = this.parseListFilterDTO(filterDTO); + const filter = this.parseListFilterDTO(parsedFilterDto); // Dynamic list service. const dynamicList = await this.dynamicListService.dynamicList( @@ -49,7 +56,7 @@ export class GetAccountsService { const transformedAccounts = await this.transformerService.transform( accounts, new AccountTransformer(), - { accountsGraph, structure: filterDTO.structure }, + { accountsGraph, structure: parsedFilterDto.structure }, ); return { diff --git a/packages/server/src/modules/Bills/Bills.application.ts b/packages/server/src/modules/Bills/Bills.application.ts index 5b8194cf3..9d389293b 100644 --- a/packages/server/src/modules/Bills/Bills.application.ts +++ b/packages/server/src/modules/Bills/Bills.application.ts @@ -56,7 +56,7 @@ export class BillsApplication { * Retrieve bills data table list. * @param {IBillsFilter} billsFilter - */ - public getBills(filterDTO: IBillsFilter) { + public getBills(filterDTO: Partial) { return this.getBillsService.getBills(filterDTO); } diff --git a/packages/server/src/modules/Bills/Bills.controller.ts b/packages/server/src/modules/Bills/Bills.controller.ts index ac38703fa..753fdd884 100644 --- a/packages/server/src/modules/Bills/Bills.controller.ts +++ b/packages/server/src/modules/Bills/Bills.controller.ts @@ -56,7 +56,7 @@ export class BillsController { type: Number, description: 'The bill id', }) - getBills(@Query() filterDTO: IBillsFilter) { + getBills(@Query() filterDTO: Partial) { return this.billsApplication.getBills(filterDTO); } diff --git a/packages/server/src/modules/Bills/queries/GetBills.service.ts b/packages/server/src/modules/Bills/queries/GetBills.service.ts index 1e33c8e9f..961ecf6df 100644 --- a/packages/server/src/modules/Bills/queries/GetBills.service.ts +++ b/packages/server/src/modules/Bills/queries/GetBills.service.ts @@ -21,13 +21,20 @@ export class GetBillsService { * Retrieve bills data table list. * @param {IBillsFilter} billsFilter - */ - public async getBills(filterDTO: IBillsFilter): Promise<{ + public async getBills(filterDTO: Partial): Promise<{ bills: Bill; pagination: IPaginationMeta; filterMeta: IFilterMeta; }> { + const _filterDto = { + page: 1, + pageSize: 12, + sortOrder: 'desc', + columnSortBy: 'created_at', + ...filterDTO, + }; // Parses bills list filter DTO. - const filter = this.parseListFilterDTO(filterDTO); + const filter = this.parseListFilterDTO(_filterDto); // Dynamic list service. const dynamicFilter = await this.dynamicListService.dynamicList( @@ -42,7 +49,7 @@ export class GetBillsService { dynamicFilter.buildQuery()(builder); // Filter query. - filterDTO?.filterQuery && filterDTO?.filterQuery(builder); + _filterDto?.filterQuery && _filterDto?.filterQuery(builder); }) .pagination(filter.page - 1, filter.pageSize); diff --git a/packages/server/src/modules/Customers/Customers.controller.ts b/packages/server/src/modules/Customers/Customers.controller.ts index a0789e451..ab7329451 100644 --- a/packages/server/src/modules/Customers/Customers.controller.ts +++ b/packages/server/src/modules/Customers/Customers.controller.ts @@ -6,9 +6,13 @@ import { Param, Post, Put, + Query, } from '@nestjs/common'; import { CustomersApplication } from './CustomersApplication.service'; -import { ICustomerOpeningBalanceEditDTO } from './types/Customers.types'; +import { + ICustomerOpeningBalanceEditDTO, + ICustomersFilter, +} from './types/Customers.types'; import { ApiOperation, ApiTags } from '@nestjs/swagger'; import { CreateCustomerDto } from './dtos/CreateCustomer.dto'; import { EditCustomerDto } from './dtos/EditCustomer.dto'; @@ -24,6 +28,12 @@ export class CustomersController { return this.customersApplication.getCustomer(customerId); } + @Get() + @ApiOperation({ summary: 'Retrieves the customers paginated list.' }) + getCustomers(@Query() filterDTO: Partial) { + return this.customersApplication.getCustomers(filterDTO); + } + @Post() @ApiOperation({ summary: 'Create a new customer.' }) createCustomer(@Body() customerDTO: CreateCustomerDto) { diff --git a/packages/server/src/modules/Customers/CustomersApplication.service.ts b/packages/server/src/modules/Customers/CustomersApplication.service.ts index 161d0532c..01984a0af 100644 --- a/packages/server/src/modules/Customers/CustomersApplication.service.ts +++ b/packages/server/src/modules/Customers/CustomersApplication.service.ts @@ -76,7 +76,7 @@ export class CustomersApplication { * Retrieve customers paginated list. * @param {ICustomersFilter} filter - Cusotmers filter. */ - public getCustomers = (filterDTO: ICustomersFilter) => { + public getCustomers = (filterDTO: Partial) => { return this.getCustomersService.getCustomersList(filterDTO); }; } diff --git a/packages/server/src/modules/Customers/queries/GetCustomers.service.ts b/packages/server/src/modules/Customers/queries/GetCustomers.service.ts index 32601334a..255cf7976 100644 --- a/packages/server/src/modules/Customers/queries/GetCustomers.service.ts +++ b/packages/server/src/modules/Customers/queries/GetCustomers.service.ts @@ -34,10 +34,18 @@ export class GetCustomers { * @returns {Promise} */ public async getCustomersList( - filterDTO: ICustomersFilter, + filterDto: Partial, ): Promise { + const _filterDto = { + inactiveMode: false, + sortOrder: 'desc', + columnSortBy: 'created_at', + page: 1, + pageSize: 12, + ...filterDto, + }; // Parses customers list filter DTO. - const filter = this.parseCustomersListFilterDTO(filterDTO); + const filter = this.parseCustomersListFilterDTO(_filterDto); const dynamicList = await this.dynamicListService.dynamicList( this.customerModel(), diff --git a/packages/server/src/modules/DynamicListing/DynamicFilter/DynamicFilter.types.ts b/packages/server/src/modules/DynamicListing/DynamicFilter/DynamicFilter.types.ts index d175b0308..63e068bb0 100644 --- a/packages/server/src/modules/DynamicListing/DynamicFilter/DynamicFilter.types.ts +++ b/packages/server/src/modules/DynamicListing/DynamicFilter/DynamicFilter.types.ts @@ -1,6 +1,9 @@ import { BaseModel } from '@/models/Model'; -export type ISortOrder = 'DESC' | 'ASC'; +export enum ISortOrder { + DESC = 'DESC', + ASC = 'ASC' +} export interface IDynamicFilter { setModel(model: typeof BaseModel): void; @@ -18,7 +21,7 @@ export interface IFilterRole { export interface IDynamicListFilter { customViewId?: number; filterRoles?: IFilterRole[]; - columnSortBy: ISortOrder; + columnSortBy: string; sortOrder: ISortOrder; stringifiedFilterRoles?: string; searchKeyword?: string; diff --git a/packages/server/src/modules/DynamicListing/DynamicList.service.ts b/packages/server/src/modules/DynamicListing/DynamicList.service.ts index 9e6e8062c..7c4947b7c 100644 --- a/packages/server/src/modules/DynamicListing/DynamicList.service.ts +++ b/packages/server/src/modules/DynamicListing/DynamicList.service.ts @@ -1,9 +1,9 @@ import { castArray, isEmpty } from 'lodash'; +import { Injectable } from '@nestjs/common'; import { IDynamicListFilter } from './DynamicFilter/DynamicFilter.types'; import { DynamicListSortBy } from './DynamicListSortBy.service'; import { DynamicListSearch } from './DynamicListSearch.service'; import { DynamicListCustomView } from './DynamicListCustomView.service'; -import { Injectable } from '@nestjs/common'; import { DynamicListFilterRoles } from './DynamicListFilterRoles.service'; import { DynamicFilter } from './DynamicFilter'; import { MetableModel } from './types/DynamicList.types'; diff --git a/packages/server/src/modules/DynamicListing/DynamicListSortBy.service.ts b/packages/server/src/modules/DynamicListing/DynamicListSortBy.service.ts index 9069b3b94..38d506a32 100644 --- a/packages/server/src/modules/DynamicListing/DynamicListSortBy.service.ts +++ b/packages/server/src/modules/DynamicListing/DynamicListSortBy.service.ts @@ -3,7 +3,6 @@ import { ISortOrder } from './DynamicFilter/DynamicFilter.types'; import { ERRORS } from './constants'; import { DynamicFilterSortBy } from './DynamicFilter'; import { ServiceError } from '../Items/ServiceError'; -import { BaseModel } from '@/models/Model'; import { DynamicFilterAbstractor } from './DynamicFilter/DynamicFilterAbstractor'; import { MetableModel } from './types/DynamicList.types'; diff --git a/packages/server/src/modules/EventsTracker/events/TransactionsLockingEventsTracker.ts b/packages/server/src/modules/EventsTracker/events/TransactionsLockingEventsTracker.ts index 25630bf47..a81c6a128 100644 --- a/packages/server/src/modules/EventsTracker/events/TransactionsLockingEventsTracker.ts +++ b/packages/server/src/modules/EventsTracker/events/TransactionsLockingEventsTracker.ts @@ -8,8 +8,8 @@ import { import { OnEvent } from '@nestjs/event-emitter'; import { Injectable } from '@nestjs/common'; import { EventTrackerService } from '../EventTracker.service'; - import { events } from '@/common/events/events'; + @Injectable() export class TransactionsLockingEventsTracker { constructor(public readonly posthog: EventTrackerService) {} diff --git a/packages/server/src/modules/Expenses/ExpensesApplication.service.ts b/packages/server/src/modules/Expenses/ExpensesApplication.service.ts index 57b920d9d..18e611655 100644 --- a/packages/server/src/modules/Expenses/ExpensesApplication.service.ts +++ b/packages/server/src/modules/Expenses/ExpensesApplication.service.ts @@ -69,7 +69,7 @@ export class ExpensesApplication { * Retrieve expenses paginated list. * @param {IExpensesFilter} expensesFilter */ - public getExpenses(filterDTO: IExpensesFilter) { + public getExpenses(filterDTO: Partial) { return this.getExpensesService.getExpensesList(filterDTO); } } diff --git a/packages/server/src/modules/Expenses/queries/GetExpenses.service.ts b/packages/server/src/modules/Expenses/queries/GetExpenses.service.ts index 35209389f..81170e5f8 100644 --- a/packages/server/src/modules/Expenses/queries/GetExpenses.service.ts +++ b/packages/server/src/modules/Expenses/queries/GetExpenses.service.ts @@ -23,13 +23,20 @@ export class GetExpensesService { * @param {IExpensesFilter} expensesFilter * @return {IExpense[]} */ - public async getExpensesList(filterDTO: IExpensesFilter): Promise<{ + public async getExpensesList(filterDto: Partial): Promise<{ expenses: Expense[]; pagination: IPaginationMeta; filterMeta: IFilterMeta; }> { + const _filterDto = { + sortOrder: 'desc', + columnSortBy: 'created_at', + page: 1, + pageSize: 12, + ...filterDto, + }; // Parses list filter DTO. - const filter = this.parseListFilterDTO(filterDTO); + const filter = this.parseListFilterDTO(_filterDto); // Dynamic list service. const dynamicList = await this.dynamicListService.dynamicList( @@ -44,7 +51,7 @@ export class GetExpensesService { builder.withGraphFetched('categories.expenseAccount'); dynamicList.buildQuery()(builder); - filterDTO?.filterQuery && filterDTO?.filterQuery(builder); + _filterDto?.filterQuery && _filterDto?.filterQuery(builder); }) .pagination(filter.page - 1, filter.pageSize); diff --git a/packages/server/src/modules/ItemCategories/ItemCategory.application.ts b/packages/server/src/modules/ItemCategories/ItemCategory.application.ts index 09b54789d..f9fab9582 100644 --- a/packages/server/src/modules/ItemCategories/ItemCategory.application.ts +++ b/packages/server/src/modules/ItemCategories/ItemCategory.application.ts @@ -78,7 +78,7 @@ export class ItemCategoryApplication { * @param {IItemCategoriesFilter} filterDTO - The item categories filter DTO. * @returns {Promise} */ - public getItemCategories(filterDTO: IItemCategoriesFilter) { + public getItemCategories(filterDTO: Partial) { return this.getItemCategoriesService.getItemCategories(filterDTO); } } diff --git a/packages/server/src/modules/ItemCategories/ItemCategory.controller.ts b/packages/server/src/modules/ItemCategories/ItemCategory.controller.ts index 7d0bfa326..ad54acec9 100644 --- a/packages/server/src/modules/ItemCategories/ItemCategory.controller.ts +++ b/packages/server/src/modules/ItemCategories/ItemCategory.controller.ts @@ -35,7 +35,7 @@ export class ItemCategoryController { @Get() @ApiOperation({ summary: 'Retrieves the item categories.' }) async getItemCategories( - @Query() filterDTO: IItemCategoriesFilter, + @Query() filterDTO: Partial, ): Promise { return this.itemCategoryApplication.getItemCategories(filterDTO); } diff --git a/packages/server/src/modules/ItemCategories/queries/GetItemCategories.service.ts b/packages/server/src/modules/ItemCategories/queries/GetItemCategories.service.ts index daff24be3..b8575b7c3 100644 --- a/packages/server/src/modules/ItemCategories/queries/GetItemCategories.service.ts +++ b/packages/server/src/modules/ItemCategories/queries/GetItemCategories.service.ts @@ -7,6 +7,7 @@ import { IItemCategoriesFilter, } from '../ItemCategory.interfaces'; import { TenantModelProxy } from '@/modules/System/models/TenantBaseModel'; +import { ISortOrder } from '@/modules/DynamicListing/DynamicFilter/DynamicFilter.types'; export class GetItemCategoriesService { constructor( @@ -34,16 +35,21 @@ export class GetItemCategoriesService { * @returns {Promise} */ public async getItemCategories( - filterDTO: IItemCategoriesFilter, + filterDto: Partial, ): Promise { + const _filterDto = { + sortOrder: ISortOrder.ASC, + columnSortBy: 'created_at', + ...filterDto, + }; // Parses list filter DTO. - const filter = this.parsesListFilterDTO(filterDTO); + const filter = this.parsesListFilterDTO(_filterDto); // Dynamic list service. - // const dynamicList = await this.dynamicListService.dynamicList( - // this.itemCategoryModel(), - // filter, - // ); + const dynamicList = await this.dynamicListService.dynamicList( + this.itemCategoryModel(), + filter, + ); // Items categories. const itemCategories = await this.itemCategoryModel() .query() @@ -53,8 +59,7 @@ export class GetItemCategoriesService { '*', this.itemCategoryModel().relatedQuery('items').count().as('count'), ); - - // dynamicList.buildQuery()(query); + dynamicList.buildQuery()(query); }); return { itemCategories }; diff --git a/packages/server/src/modules/Items/GetItems.service.ts b/packages/server/src/modules/Items/GetItems.service.ts index 7d0d31b2e..d714471fe 100644 --- a/packages/server/src/modules/Items/GetItems.service.ts +++ b/packages/server/src/modules/Items/GetItems.service.ts @@ -6,12 +6,14 @@ import { Item } from './models/Item'; import { IItemsFilter } from './types/Items.types'; import { ItemTransformer } from './Item.transformer'; import { TenantModelProxy } from '../System/models/TenantBaseModel'; +import { ISortOrder } from '../DynamicListing/DynamicFilter/DynamicFilter.types'; @Injectable() export class GetItemsService { constructor( private readonly dynamicListService: DynamicListService, private readonly transformer: TransformerInjectable, + @Inject(Item.name) private readonly itemModel: TenantModelProxy, ) {} @@ -30,9 +32,17 @@ export class GetItemsService { * Retrieves items datatable list. * @param {IItemsFilter} itemsFilter - Items filter. */ - public async getItems(filterDTO: IItemsFilter) { + public async getItems(filterDto: Partial) { + const _filterDto = { + sortOrder: ISortOrder.DESC, + columnSortBy: 'created_at', + page: 1, + pageSize: 12, + inactiveMode: false, + ...filterDto, + }; // Parses items list filter DTO. - const filter = this.parseItemsListFilterDTO(filterDTO); + const filter = this.parseItemsListFilterDTO(_filterDto); // Dynamic list service. const dynamicFilter = await this.dynamicListService.dynamicList( diff --git a/packages/server/src/modules/Items/ItemsApplication.service.ts b/packages/server/src/modules/Items/ItemsApplication.service.ts index 0bd822714..bb2ed9448 100644 --- a/packages/server/src/modules/Items/ItemsApplication.service.ts +++ b/packages/server/src/modules/Items/ItemsApplication.service.ts @@ -92,10 +92,10 @@ export class ItemsApplicationService { /** * Retrieves the paginated filterable items list. - * @param {IItemsFilter} filterDTO + * @param {Partial} filterDTO */ - async getItems(filterDTO: IItemsFilter) { - return this.getItemsService.getItems(filterDTO) + async getItems(filterDTO: Partial) { + return this.getItemsService.getItems(filterDTO); } /** diff --git a/packages/server/src/modules/Items/models/Item.meta.ts b/packages/server/src/modules/Items/models/Item.meta.ts index d2aefb23e..e4021d8fb 100644 --- a/packages/server/src/modules/Items/models/Item.meta.ts +++ b/packages/server/src/modules/Items/models/Item.meta.ts @@ -1,3 +1,4 @@ + export const ItemMeta = { importable: true, exportable: true, diff --git a/packages/server/src/modules/ManualJournals/ManualJournals.controller.ts b/packages/server/src/modules/ManualJournals/ManualJournals.controller.ts index 4a1d57405..69c979caa 100644 --- a/packages/server/src/modules/ManualJournals/ManualJournals.controller.ts +++ b/packages/server/src/modules/ManualJournals/ManualJournals.controller.ts @@ -6,6 +6,7 @@ import { Param, Post, Put, + Query, } from '@nestjs/common'; import { ManualJournalsApplication } from './ManualJournalsApplication.service'; import { ApiOperation, ApiParam, ApiResponse, ApiTags } from '@nestjs/swagger'; @@ -13,6 +14,7 @@ import { CreateManualJournalDto, EditManualJournalDto, } from './dtos/ManualJournal.dto'; +import { IManualJournalsFilter } from './types/ManualJournals.types'; @Controller('manual-journals') @ApiTags('manual-journals') @@ -98,4 +100,19 @@ export class ManualJournalsController { public getManualJournal(@Param('id') manualJournalId: number) { return this.manualJournalsApplication.getManualJournal(manualJournalId); } + + @Get() + @ApiOperation({ summary: 'Retrieves the manual journals paginated list.' }) + @ApiResponse({ + status: 200, + description: 'The manual journal details have been successfully retrieved.', + }) + @ApiResponse({ status: 404, description: 'The manual journal not found.' }) + public getManualJournals( + @Query() filterDto: Partial + ) { + return this.manualJournalsApplication.getManualJournals(filterDto); + } + + } diff --git a/packages/server/src/modules/ManualJournals/ManualJournalsApplication.service.ts b/packages/server/src/modules/ManualJournals/ManualJournalsApplication.service.ts index a19a8f153..9fdba3557 100644 --- a/packages/server/src/modules/ManualJournals/ManualJournalsApplication.service.ts +++ b/packages/server/src/modules/ManualJournals/ManualJournalsApplication.service.ts @@ -79,7 +79,7 @@ export class ManualJournalsApplication { * Retrieves the paginated manual journals. * @param {IManualJournalsFilter} filterDTO */ - public getManualJournals = (filterDTO: IManualJournalsFilter) => { + public getManualJournals = (filterDTO: Partial) => { return this.getManualJournalsService.getManualJournals(filterDTO); }; } diff --git a/packages/server/src/modules/ManualJournals/queries/GetManualJournals.service.ts b/packages/server/src/modules/ManualJournals/queries/GetManualJournals.service.ts index 603c772b9..e540f2280 100644 --- a/packages/server/src/modules/ManualJournals/queries/GetManualJournals.service.ts +++ b/packages/server/src/modules/ManualJournals/queries/GetManualJournals.service.ts @@ -31,14 +31,21 @@ export class GetManualJournals { * @param {IManualJournalsFilter} filter - */ public getManualJournals = async ( - filterDTO: IManualJournalsFilter, + filterDTO: Partial, ): Promise<{ manualJournals: ManualJournal[]; pagination: IPaginationMeta; filterMeta: IFilterMeta; }> => { + const _filterDto = { + sortOrder: 'desc', + columnSortBy: 'created_at', + page: 1, + pageSize: 12, + ...filterDTO, + }; // Parses filter DTO. - const filter = this.parseListFilterDTO(filterDTO); + const filter = this.parseListFilterDTO(_filterDto); // Dynamic service. const dynamicService = await this.dynamicListService.dynamicList( diff --git a/packages/server/src/modules/PaymentReceived/PaymentReceived.application.ts b/packages/server/src/modules/PaymentReceived/PaymentReceived.application.ts index 62151eb44..a706837b2 100644 --- a/packages/server/src/modules/PaymentReceived/PaymentReceived.application.ts +++ b/packages/server/src/modules/PaymentReceived/PaymentReceived.application.ts @@ -77,7 +77,7 @@ export class PaymentReceivesApplication { * @param {IPaymentsReceivedFilter} filterDTO * @returns */ - public async getPaymentsReceived(filterDTO: IPaymentsReceivedFilter) { + public async getPaymentsReceived(filterDTO: Partial) { return this.getPaymentsReceivedService.getPaymentReceives(filterDTO); } diff --git a/packages/server/src/modules/PaymentReceived/PaymentsReceived.controller.ts b/packages/server/src/modules/PaymentReceived/PaymentsReceived.controller.ts index 17be37e58..f72b83514 100644 --- a/packages/server/src/modules/PaymentReceived/PaymentsReceived.controller.ts +++ b/packages/server/src/modules/PaymentReceived/PaymentsReceived.controller.ts @@ -1,3 +1,4 @@ +import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; import { Body, Controller, @@ -17,7 +18,6 @@ import { IPaymentsReceivedFilter, PaymentReceiveMailOptsDTO, } from './types/PaymentReceived.types'; -import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; @Controller('payments-received') @ApiTags('payments-received') @@ -88,7 +88,7 @@ export class PaymentReceivesController { @Get() @ApiOperation({ summary: 'Retrieves the payment received list.' }) - public getPaymentsReceived(@Query() filterDTO: IPaymentsReceivedFilter) { + public getPaymentsReceived(@Query() filterDTO: Partial) { return this.paymentReceivesApplication.getPaymentsReceived(filterDTO); } diff --git a/packages/server/src/modules/PaymentReceived/queries/GetPaymentsReceived.service.ts b/packages/server/src/modules/PaymentReceived/queries/GetPaymentsReceived.service.ts index efe2e8e7d..11d5f51ac 100644 --- a/packages/server/src/modules/PaymentReceived/queries/GetPaymentsReceived.service.ts +++ b/packages/server/src/modules/PaymentReceived/queries/GetPaymentsReceived.service.ts @@ -24,13 +24,22 @@ export class GetPaymentsReceivedService { * Retrieve payment receives paginated and filterable list. * @param {IPaymentsReceivedFilter} filterDTO */ - public async getPaymentReceives(filterDTO: IPaymentsReceivedFilter): Promise<{ + public async getPaymentReceives( + filterDTO: Partial, + ): Promise<{ paymentReceives: PaymentReceived[]; pagination: IPaginationMeta; filterMeta: IFilterMeta; }> { + const _filterDto = { + sortOrder: 'desc', + columnSortBy: 'created_at', + page: 1, + pageSize: 12, + ...filterDTO, + }; // Parses filter DTO. - const filter = this.parseListFilterDTO(filterDTO); + const filter = this.parseListFilterDTO(_filterDto); // Dynamic list service. const dynamicList = await this.dynamicListService.dynamicList( @@ -44,7 +53,7 @@ export class GetPaymentsReceivedService { builder.withGraphFetched('depositAccount'); dynamicList.buildQuery()(builder); - filterDTO?.filterQuery && filterDTO.filterQuery(builder as any); + _filterDto?.filterQuery && _filterDto.filterQuery(builder as any); }) .pagination(filter.page - 1, filter.pageSize); diff --git a/packages/server/src/modules/SaleEstimates/SaleEstimates.application.ts b/packages/server/src/modules/SaleEstimates/SaleEstimates.application.ts index 9ab18930a..ba06863c9 100644 --- a/packages/server/src/modules/SaleEstimates/SaleEstimates.application.ts +++ b/packages/server/src/modules/SaleEstimates/SaleEstimates.application.ts @@ -79,7 +79,7 @@ export class SaleEstimatesApplication { * @param {ISalesEstimatesFilter} filterDTO - Sales estimates filter DTO. * @returns */ - public getSaleEstimates(filterDTO: ISalesEstimatesFilter) { + public getSaleEstimates(filterDTO: Partial) { return this.getSaleEstimatesService.getEstimates(filterDTO); } diff --git a/packages/server/src/modules/SaleEstimates/queries/GetSaleEstimates.service.ts b/packages/server/src/modules/SaleEstimates/queries/GetSaleEstimates.service.ts index e0cecf679..fb23c5f04 100644 --- a/packages/server/src/modules/SaleEstimates/queries/GetSaleEstimates.service.ts +++ b/packages/server/src/modules/SaleEstimates/queries/GetSaleEstimates.service.ts @@ -22,13 +22,22 @@ export class GetSaleEstimatesService { * Retrieves estimates filterable and paginated list. * @param {IEstimatesFilter} estimatesFilter - */ - public async getEstimates(filterDTO: ISalesEstimatesFilter): Promise<{ + public async getEstimates( + filterDTO: Partial, + ): Promise<{ salesEstimates: SaleEstimate[]; pagination: IPaginationMeta; filterMeta: IFilterMeta; }> { + const _filterDto = { + sortOrder: 'desc', + columnSortBy: 'created_at', + page: 1, + pageSize: 12, + ...filterDTO, + }; // Parses filter DTO. - const filter = this.parseListFilterDTO(filterDTO); + const filter = this.parseListFilterDTO(_filterDto); // Dynamic list service. const dynamicFilter = await this.dynamicListService.dynamicList( @@ -43,7 +52,7 @@ export class GetSaleEstimatesService { builder.withGraphFetched('entries.item'); dynamicFilter.buildQuery()(builder); - filterDTO?.filterQuery && filterDTO?.filterQuery(builder); + _filterDto?.filterQuery && _filterDto?.filterQuery(builder); }) .pagination(filter.page - 1, filter.pageSize); diff --git a/packages/server/src/modules/SaleInvoices/SaleInvoices.application.ts b/packages/server/src/modules/SaleInvoices/SaleInvoices.application.ts index ba3d172a8..d9a761ea3 100644 --- a/packages/server/src/modules/SaleInvoices/SaleInvoices.application.ts +++ b/packages/server/src/modules/SaleInvoices/SaleInvoices.application.ts @@ -81,7 +81,7 @@ export class SaleInvoiceApplication { * @param {ISalesInvoicesFilter} filterDTO * @returns {Promise<{ salesInvoices: SaleInvoice[]; pagination: IPaginationMeta; filterMeta: IFilterMeta; }>} */ - public getSaleInvoices(filterDTO: ISalesInvoicesFilter) { + public getSaleInvoices(filterDTO: Partial) { return this.getSaleInvoicesService.getSaleInvoices(filterDTO); } diff --git a/packages/server/src/modules/SaleInvoices/SaleInvoices.controller.ts b/packages/server/src/modules/SaleInvoices/SaleInvoices.controller.ts index 5589ebdf5..d9afd0649 100644 --- a/packages/server/src/modules/SaleInvoices/SaleInvoices.controller.ts +++ b/packages/server/src/modules/SaleInvoices/SaleInvoices.controller.ts @@ -117,7 +117,7 @@ export class SaleInvoicesController { status: 200, description: 'The sale invoices have been successfully retrieved.', }) - getSaleInvoices(@Query() filterDTO: ISalesInvoicesFilter) { + getSaleInvoices(@Query() filterDTO: Partial) { return this.saleInvoiceApplication.getSaleInvoices(filterDTO); } diff --git a/packages/server/src/modules/SaleInvoices/queries/GetSaleInvoices.ts b/packages/server/src/modules/SaleInvoices/queries/GetSaleInvoices.ts index 1552df05f..4777ce281 100644 --- a/packages/server/src/modules/SaleInvoices/queries/GetSaleInvoices.ts +++ b/packages/server/src/modules/SaleInvoices/queries/GetSaleInvoices.ts @@ -24,13 +24,22 @@ export class GetSaleInvoicesService { * @param {ISalesInvoicesFilter} filterDTO - * @returns {Promise<{ salesInvoices: SaleInvoice[]; pagination: IPaginationMeta; filterMeta: IFilterMeta; }>} */ - public async getSaleInvoices(filterDTO: ISalesInvoicesFilter): Promise<{ + public async getSaleInvoices( + filterDTO: Partial, + ): Promise<{ salesInvoices: SaleInvoice[]; pagination: IPaginationMeta; filterMeta: IFilterMeta; }> { + const _filterDto = { + sortOrder: 'desc', + columnSortBy: 'created_at', + page: 1, + pageSize: 12, + ...filterDTO, + }; // Parses stringified filter roles. - const filter = this.parseListFilterDTO(filterDTO); + const filter = this.parseListFilterDTO(_filterDto); // Dynamic list service. const dynamicFilter = await this.dynamicListService.dynamicList( @@ -44,7 +53,7 @@ export class GetSaleInvoicesService { builder.withGraphFetched('customer'); dynamicFilter.buildQuery()(builder); - filterDTO?.filterQuery?.(builder as any); + _filterDto?.filterQuery?.(builder as any); }) .pagination(filter.page - 1, filter.pageSize); diff --git a/packages/server/src/modules/SaleReceipts/queries/SaleReceiptBrandingTemplate.service.ts b/packages/server/src/modules/SaleReceipts/queries/SaleReceiptBrandingTemplate.service.ts index 81a5de2ba..7b4b349e7 100644 --- a/packages/server/src/modules/SaleReceipts/queries/SaleReceiptBrandingTemplate.service.ts +++ b/packages/server/src/modules/SaleReceipts/queries/SaleReceiptBrandingTemplate.service.ts @@ -23,9 +23,10 @@ export class SaleReceiptBrandingTemplate { public async getSaleReceiptBrandingTemplate(templateId: number) { const template = await this.getPdfTemplateService.getPdfTemplate(templateId); + // Retrieves the organization branding attributes. const commonOrgBrandingAttrs = - await this.getOrgBrandingAttributes.getOrganizationBrandingAttributes(); + await this.getOrgBrandingAttributes.execute(); // Merges the default branding attributes with organization common branding attrs. const organizationBrandingAttrs = { diff --git a/packages/server/src/modules/Vendors/Vendors.controller.ts b/packages/server/src/modules/Vendors/Vendors.controller.ts index 2c56d2fd3..c21486f3f 100644 --- a/packages/server/src/modules/Vendors/Vendors.controller.ts +++ b/packages/server/src/modules/Vendors/Vendors.controller.ts @@ -24,7 +24,7 @@ export class VendorsController { @Get() @ApiOperation({ summary: 'Retrieves the vendors.' }) - getVendors(@Query() filterDTO: IVendorsFilter) { + getVendors(@Query() filterDTO: Partial) { return this.vendorsApplication.getVendors(filterDTO); } diff --git a/packages/server/src/modules/Vendors/VendorsApplication.service.ts b/packages/server/src/modules/Vendors/VendorsApplication.service.ts index 1508c1352..1fb854cdd 100644 --- a/packages/server/src/modules/Vendors/VendorsApplication.service.ts +++ b/packages/server/src/modules/Vendors/VendorsApplication.service.ts @@ -79,10 +79,10 @@ export class VendorsApplication { /** * Retrieves the vendors paginated list. - * @param {IVendorsFilter} filterDTO + * @param {Partial} filterDTO * @returns {Promise<{ vendors: Vendor[], pagination: IPaginationMeta, filterMeta: IFilterMeta }>>} */ - public getVendors(filterDTO: IVendorsFilter) { + public getVendors(filterDTO: Partial) { return this.getVendorsService.getVendorsList(filterDTO); } } diff --git a/packages/server/src/modules/Vendors/queries/GetVendors.service.ts b/packages/server/src/modules/Vendors/queries/GetVendors.service.ts index c1f32c58a..b9c4bd31b 100644 --- a/packages/server/src/modules/Vendors/queries/GetVendors.service.ts +++ b/packages/server/src/modules/Vendors/queries/GetVendors.service.ts @@ -28,10 +28,18 @@ export class GetVendorsService { * @returns {Promise} */ public async getVendorsList( - filterDTO: IVendorsFilter, + filterDto: Partial, ): Promise { + const _filterDto = { + inactiveMode: false, + sortOrder: 'desc', + columnSortBy: 'created_at', + page: 1, + pageSize: 12, + ...filterDto, + }; // Parses vendors list filter DTO. - const filter = this.parseVendorsListFilterDTO(filterDTO); + const filter = this.parseVendorsListFilterDTO(_filterDto); // Dynamic list service. const dynamicList = await this.dynamicListService.dynamicList(