feat: enhance transaction calculations in CouchService and SalesPriceFormulaDataService
parent
94baf956dd
commit
928e2e7648
|
@ -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);
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue