From 7f5ffb8da159c7bcced46d50f0631f0ba4143b37 Mon Sep 17 00:00:00 2001 From: Ahmed Bouhuolia Date: Sun, 1 Sep 2024 15:00:51 +0200 Subject: [PATCH] fix: Add the missing columns to the payment received and made models --- .../server/src/interfaces/PaymentReceive.ts | 1 + .../server/src/models/BillPayment.Settings.ts | 32 +++++++++++++++++- .../src/models/PaymentReceive.Settings.ts | 33 ++++++++++++++++++- .../src/models/SaleEstimate.Settings.ts | 3 +- .../server/src/models/SaleInvoice.Settings.ts | 1 + .../BillPayments/BillPaymentExportable.ts | 4 +++ .../Purchases/BillPayments/GetBillPayments.ts | 1 + .../PaymentReceived/GetPaymentsReceived.ts | 2 ++ .../PaymentsReceivedExportable.ts | 5 +++ 9 files changed, 79 insertions(+), 3 deletions(-) diff --git a/packages/server/src/interfaces/PaymentReceive.ts b/packages/server/src/interfaces/PaymentReceive.ts index b7c216abd..43897a16f 100644 --- a/packages/server/src/interfaces/PaymentReceive.ts +++ b/packages/server/src/interfaces/PaymentReceive.ts @@ -74,6 +74,7 @@ export interface IPaymentReceivedEntryDTO { export interface IPaymentsReceivedFilter extends IDynamicListFilterDTO { stringifiedFilterRoles?: string; + filterQuery?: (trx: Knex.Transaction) => void; } export interface IPaymentReceivePageEntry { diff --git a/packages/server/src/models/BillPayment.Settings.ts b/packages/server/src/models/BillPayment.Settings.ts index d255ac3d2..6baf2efad 100644 --- a/packages/server/src/models/BillPayment.Settings.ts +++ b/packages/server/src/models/BillPayment.Settings.ts @@ -5,6 +5,8 @@ export default { sortField: 'bill_date', }, exportable: true, + exportFlattenOn: 'entries', + importable: true, importAggregator: 'group', importAggregateOn: 'entries', @@ -77,7 +79,7 @@ export default { paymentDate: { name: 'bill_payment.field.payment_date', type: 'date', - accessor: 'formattedPaymentDate' + accessor: 'formattedPaymentDate', }, paymentNumber: { name: 'bill_payment.field.payment_number', @@ -111,6 +113,34 @@ export default { name: 'bill_payment.field.reference', type: 'text', }, + entries: { + name: 'Entries', + accessor: 'entries', + type: 'collection', + collectionOf: 'object', + columns: { + date: { + name: 'Bill date', + accessor: 'bill.formattedBillDate', + }, + billNo: { + name: 'Bill No.', + accessor: 'bill.billNo', + }, + billRefNo: { + name: 'Bill Reference No.', + accessor: 'bill.referenceNo', + }, + billAmount: { + name: 'Bill Amount', + accessor: 'bill.totalFormatted', + }, + paidAmount: { + name: 'Paid Amount', + accessor: 'paymentAmountFormatted', + }, + }, + }, }, fields2: { vendorId: { diff --git a/packages/server/src/models/PaymentReceive.Settings.ts b/packages/server/src/models/PaymentReceive.Settings.ts index 15d287d66..c862a3506 100644 --- a/packages/server/src/models/PaymentReceive.Settings.ts +++ b/packages/server/src/models/PaymentReceive.Settings.ts @@ -1,6 +1,9 @@ export default { importable: true, + exportable: true, + exportFlattenOn: 'entries', + importAggregator: 'group', importAggregateOn: 'entries', importAggregateBy: 'paymentReceiveNo', @@ -72,7 +75,7 @@ export default { amount: { name: 'payment_receive.field.amount', type: 'number', - accessor: 'formattedAmount' + accessor: 'formattedAmount', }, referenceNo: { name: 'payment_receive.field.reference_no', @@ -92,6 +95,34 @@ export default { type: 'text', printable: false, }, + entries: { + name: 'Entries', + accessor: 'entries', + type: 'collection', + collectionOf: 'object', + columns: { + date: { + name: 'Invoice date', + accessor: 'invoice.invoiceDateFormatted', + }, + invoiceNo: { + name: 'Invoice No.', + accessor: 'invoice.invoiceNo', + }, + invoiceRefNo: { + name: 'Invoice Reference No.', + accessor: 'invoice.referenceNo', + }, + invoiceAmount: { + name: 'Invoice Amount', + accessor: 'invoice.totalFormatted', + }, + paidAmount: { + name: 'Paid Amount', + accessor: 'paymentAmountFormatted', + }, + }, + }, created_at: { name: 'payment_receive.field.created_at', type: 'date', diff --git a/packages/server/src/models/SaleEstimate.Settings.ts b/packages/server/src/models/SaleEstimate.Settings.ts index 5462e9717..88224fdd1 100644 --- a/packages/server/src/models/SaleEstimate.Settings.ts +++ b/packages/server/src/models/SaleEstimate.Settings.ts @@ -13,7 +13,7 @@ export default { importAggregateBy: 'estimateNumber', print: { - pageTitle: 'Sale Estimates' + pageTitle: 'Sale Estimates', }, fields: { @@ -142,6 +142,7 @@ export default { delivered: { name: 'Delivered', type: 'boolean', + accessor: 'isDelivered', exportable: true, printable: false, }, diff --git a/packages/server/src/models/SaleInvoice.Settings.ts b/packages/server/src/models/SaleInvoice.Settings.ts index da6719ba2..9f7cbfe8b 100644 --- a/packages/server/src/models/SaleInvoice.Settings.ts +++ b/packages/server/src/models/SaleInvoice.Settings.ts @@ -155,6 +155,7 @@ export default { name: 'invoice.field.delivered', type: 'boolean', printable: false, + accessor: 'isDelivered', }, entries: { name: 'Entries', diff --git a/packages/server/src/services/Purchases/BillPayments/BillPaymentExportable.ts b/packages/server/src/services/Purchases/BillPayments/BillPaymentExportable.ts index 6905327dc..95978fdb4 100644 --- a/packages/server/src/services/Purchases/BillPayments/BillPaymentExportable.ts +++ b/packages/server/src/services/Purchases/BillPayments/BillPaymentExportable.ts @@ -14,12 +14,16 @@ export class BillPaymentExportable extends Exportable { * @returns */ public exportable(tenantId: number, query: any) { + const filterQuery = (builder) => { + builder.withGraphFetched('entries.bill'); + }; const parsedQuery = { sortOrder: 'desc', columnSortBy: 'created_at', ...query, page: 1, pageSize: EXPORT_SIZE_LIMIT, + filterQuery } as any; return this.billPaymentsApplication diff --git a/packages/server/src/services/Purchases/BillPayments/GetBillPayments.ts b/packages/server/src/services/Purchases/BillPayments/GetBillPayments.ts index 9c4464403..518e90b4f 100644 --- a/packages/server/src/services/Purchases/BillPayments/GetBillPayments.ts +++ b/packages/server/src/services/Purchases/BillPayments/GetBillPayments.ts @@ -52,6 +52,7 @@ export class GetBillPayments { builder.withGraphFetched('paymentAccount'); dynamicList.buildQuery()(builder); + filter?.filterQuery && filter?.filterQuery(builder); }) .pagination(filter.page - 1, filter.pageSize); diff --git a/packages/server/src/services/Sales/PaymentReceived/GetPaymentsReceived.ts b/packages/server/src/services/Sales/PaymentReceived/GetPaymentsReceived.ts index 4ff97f7ed..daa20a6d0 100644 --- a/packages/server/src/services/Sales/PaymentReceived/GetPaymentsReceived.ts +++ b/packages/server/src/services/Sales/PaymentReceived/GetPaymentsReceived.ts @@ -50,7 +50,9 @@ export class GetPaymentReceives { .onBuild((builder) => { builder.withGraphFetched('customer'); builder.withGraphFetched('depositAccount'); + dynamicList.buildQuery()(builder); + filterDTO?.filterQuery && filterDTO.filterQuery(builder); }) .pagination(filter.page - 1, filter.pageSize); diff --git a/packages/server/src/services/Sales/PaymentReceived/PaymentsReceivedExportable.ts b/packages/server/src/services/Sales/PaymentReceived/PaymentsReceivedExportable.ts index d86028d39..20319ccfb 100644 --- a/packages/server/src/services/Sales/PaymentReceived/PaymentsReceivedExportable.ts +++ b/packages/server/src/services/Sales/PaymentReceived/PaymentsReceivedExportable.ts @@ -16,6 +16,10 @@ export class PaymentsReceivedExportable extends Exportable { * @returns */ public exportable(tenantId: number, query: IPaymentsReceivedFilter) { + const filterQuery = (builder) => { + builder.withGraphFetched('entries.invoice'); + }; + const parsedQuery = { sortOrder: 'desc', columnSortBy: 'created_at', @@ -24,6 +28,7 @@ export class PaymentsReceivedExportable extends Exportable { structure: IAccountsStructureType.Flat, page: 1, pageSize: EXPORT_SIZE_LIMIT, + filterQuery, } as IPaymentsReceivedFilter; return this.paymentReceivedApp