Merge pull request 'feat: enhance transaction calculations in CouchService and SalesPriceFormulaDataService' (#134) from development-local into development

Reviewed-on: #134
pull/135/head
irfan 2025-05-09 22:59:35 +00:00
commit b18a834129
2 changed files with 20 additions and 9 deletions

View File

@ -100,7 +100,7 @@ export class CouchService {
public async totalTodayTransactions(database = 'transaction') { public async totalTodayTransactions(database = 'transaction') {
try { try {
const nano = this.nanoInstance; const nano = this.nanoInstance;
const db = nano.use(database); const db = nano.use<any>(database);
// Get today's start timestamp (midnight) // Get today's start timestamp (midnight)
const today = new Date(); const today = new Date();
@ -116,10 +116,14 @@ export class CouchService {
const result = await db.find({ const result = await db.find({
selector: selector, 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) { } catch (error) {
console.log(error); console.log(error);
apm.captureError(error); apm.captureError(error);

View File

@ -14,12 +14,13 @@ import {
TransactionSettingModel, TransactionSettingModel,
} from '../models/sales-price-formula.model'; } from '../models/sales-price-formula.model';
import { CONNECTION_NAME } from 'src/core/strings/constants/base.constants'; import { CONNECTION_NAME } from 'src/core/strings/constants/base.constants';
import { MoreThan, Repository } from 'typeorm'; import { Repository } from 'typeorm';
import { FormulaType } from '../../constants'; import { FormulaType } from '../../constants';
import { TaxModel } from 'src/modules/transaction/tax/data/models/tax.model'; import { TaxModel } from 'src/modules/transaction/tax/data/models/tax.model';
import { ItemModel } from 'src/modules/item-related/item/data/models/item.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 { TransactionModel } from 'src/modules/transaction/transaction/data/models/transaction.model';
import { CouchService } from 'src/modules/configuration/couch/data/services/couch.service'; import { CouchService } from 'src/modules/configuration/couch/data/services/couch.service';
import { TransactionType } from 'src/modules/transaction/transaction/constants';
@Injectable() @Injectable()
export class SalesPriceFormulaDataService extends BaseDataService<SalesPriceFormulaEntity> { export class SalesPriceFormulaDataService extends BaseDataService<SalesPriceFormulaEntity> {
@ -67,11 +68,17 @@ export class SalesPriceFormulaDataService extends BaseDataService<SalesPriceForm
const todayTimestamp = today.getTime(); const todayTimestamp = today.getTime();
const totalTransactions = await this.transaction.count({ const totalTransactions = parseInt(
where: { await this.transaction
created_at: MoreThan(todayTimestamp), .createQueryBuilder('transaction')
}, .select('SUM(transaction.payment_total_pay)', 'sum')
}); .where('transaction.created_at > :timestamp', {
timestamp: todayTimestamp,
})
.andWhere('transaction.type = :type', { type: TransactionType.COUNTER })
.getRawOne()
.then((result) => result.sum || 0),
);
const couchTransaction = await this.couchService.totalTodayTransactions(); const couchTransaction = await this.couchService.totalTodayTransactions();