From 928e2e7648e2aa8b41d5949630c79f2de94e696a Mon Sep 17 00:00:00 2001 From: shancheas Date: Fri, 9 May 2025 17:56:30 +0700 Subject: [PATCH] feat: enhance transaction calculations in CouchService and SalesPriceFormulaDataService --- .../couch/data/services/couch.service.ts | 10 +++++++--- .../sales-price-formula-data.service.ts | 19 +++++++++++++------ 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/modules/configuration/couch/data/services/couch.service.ts b/src/modules/configuration/couch/data/services/couch.service.ts index c92a38b..2efb2db 100644 --- a/src/modules/configuration/couch/data/services/couch.service.ts +++ b/src/modules/configuration/couch/data/services/couch.service.ts @@ -100,7 +100,7 @@ export class CouchService { public async totalTodayTransactions(database = 'transaction') { try { const nano = this.nanoInstance; - const db = nano.use(database); + const db = nano.use(database); // Get today's start timestamp (midnight) const today = new Date(); @@ -116,10 +116,14 @@ export class CouchService { const result = await db.find({ selector: selector, - fields: ['_id'], + fields: ['_id', 'payment_total_pay'], + limit: 10000, }); - return result.docs.length; + return result.docs.reduce( + (sum, doc) => sum + (doc.payment_total_pay || 0), + 0, + ); } catch (error) { console.log(error); apm.captureError(error); diff --git a/src/modules/transaction/sales-price-formula/data/services/sales-price-formula-data.service.ts b/src/modules/transaction/sales-price-formula/data/services/sales-price-formula-data.service.ts index c38bc82..66f0fa9 100644 --- a/src/modules/transaction/sales-price-formula/data/services/sales-price-formula-data.service.ts +++ b/src/modules/transaction/sales-price-formula/data/services/sales-price-formula-data.service.ts @@ -14,12 +14,13 @@ import { TransactionSettingModel, } from '../models/sales-price-formula.model'; import { CONNECTION_NAME } from 'src/core/strings/constants/base.constants'; -import { MoreThan, Repository } from 'typeorm'; +import { Repository } from 'typeorm'; import { FormulaType } from '../../constants'; import { TaxModel } from 'src/modules/transaction/tax/data/models/tax.model'; import { ItemModel } from 'src/modules/item-related/item/data/models/item.model'; import { TransactionModel } from 'src/modules/transaction/transaction/data/models/transaction.model'; import { CouchService } from 'src/modules/configuration/couch/data/services/couch.service'; +import { TransactionType } from 'src/modules/transaction/transaction/constants'; @Injectable() export class SalesPriceFormulaDataService extends BaseDataService { @@ -67,11 +68,17 @@ export class SalesPriceFormulaDataService extends BaseDataService :timestamp', { + timestamp: todayTimestamp, + }) + .andWhere('transaction.type = :type', { type: TransactionType.COUNTER }) + .getRawOne() + .then((result) => result.sum || 0), + ); const couchTransaction = await this.couchService.totalTodayTransactions(); -- 2.40.1