Skip to content

Commit

Permalink
Merge pull request #101 from RJ-SMTR/develop
Browse files Browse the repository at this point in the history
Develop to prd
  • Loading branch information
rivailruiz committed Nov 17, 2023
2 parents 96008fc + da9afed commit 793f6dd
Show file tree
Hide file tree
Showing 7 changed files with 77 additions and 22 deletions.
10 changes: 7 additions & 3 deletions src/bank-statements/bank-statements.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,13 @@ export class BankStatementsService {
const amountSum = Number(
treatedData.reduce((sum, item) => sum + item.amount, 0).toFixed(2),
);
const ticketCount = insertedData.countSum;

return {
amountSum,
todaySum,
count: treatedData.length,
ticketCount,
data: treatedData,
};
}
Expand All @@ -85,6 +87,7 @@ export class BankStatementsService {
statements: ICoreBankStatements[];
todaySum: number;
allSum: number;
countSum: number;
}> {
const statementsDates = getPaymentDates(
'ticket-revenues',
Expand All @@ -106,7 +109,7 @@ export class BankStatementsService {
);

const todaySum = revenuesResponse.todaySum;
let sumAll = 0;
let allSum = 0;
const newStatements: ICoreBankStatements[] = [];

// for each week in month (bank-statements)
Expand All @@ -130,9 +133,10 @@ export class BankStatementsService {
...statement,
amount: newAmount,
});
sumAll += newAmount;
allSum += newAmount;
}
return { todaySum, allSum: sumAll, statements: newStatements };
const countSum = revenuesResponse.ticketCount;
return { todaySum, allSum, countSum, statements: newStatements };
}

//#endregion mockData
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ export interface IBankStatementsResponse {
amountSum: number;
todaySum: number;
count: number;
ticketCount: number;
data: ICoreBankStatements[];
}
5 changes: 1 addition & 4 deletions src/core-bank/data/core-bank-data.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,7 @@ export class CoreBankDataService implements OnModuleInit {
const { paymentWeekday, nextPaymentWeekday } = this.bankStatementsArgs;
for (const profile of this.getProfiles()) {
let id = 1;
if (
now.getUTCDay() !== paymentWeekday &&
nextPaymentWeekday(now) <= lastDayOfMonth(now)
) {
if (nextPaymentWeekday(now) <= lastDayOfMonth(now)) {
bankStatements.push(
this.generateBankStatement({
id: id,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ export interface ITicketRevenuesGroupedResponse {
amountSum: number;
todaySum: number;
count: number;
ticketCount: number;
data: ITicketRevenuesGroup[];
}
20 changes: 18 additions & 2 deletions src/ticket-revenues/ticket-revenues.service.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { HttpException, HttpStatus, Injectable, Logger } from '@nestjs/common';
import { isToday, startOfDay } from 'date-fns';
import { endOfDay, isToday, startOfDay } from 'date-fns';
import {
BigqueryService,
BigqueryServiceInstances,
Expand Down Expand Up @@ -75,6 +75,15 @@ export class TicketRevenuesService {
return new TicketRevenuesGroup().toInterface();
}
const ticketRevenuesGroupSum = this.getGroupSum(ticketRevenuesResponse);
console.log({
message: 'GET GROUPED',
groupSum: ticketRevenuesGroupSum.transactionValueSum,
individualSum: Number(
ticketRevenuesResponse
.reduce((sum, i) => sum + (i?.transactionValue || 0), 0)
.toFixed(2),
),
});

return ticketRevenuesGroupSum;
}
Expand Down Expand Up @@ -117,6 +126,7 @@ export class TicketRevenuesService {
amountSum: 0,
todaySum: 0,
count: 0,
ticketCount: 0,
data: [],
};
}
Expand Down Expand Up @@ -144,7 +154,7 @@ export class TicketRevenuesService {
const mostRecentResponseDate = startOfDay(
new Date(ticketRevenuesResponse[0].partitionDate),
);
if (GET_TODAY && mostRecentResponseDate > startOfDay(endDate)) {
if (GET_TODAY && mostRecentResponseDate > endOfDay(endDate)) {
ticketRevenuesResponse = this.removeTicketRevenueToday(
ticketRevenuesResponse,
) as ITicketRevenue[];
Expand All @@ -159,10 +169,16 @@ export class TicketRevenuesService {
.toFixed(2),
);

const ticketCount = ticketRevenuesGroups.reduce(
(sum, i) => sum + i.count,
0,
);

return {
amountSum,
todaySum: transactionValueLastDay,
count: ticketRevenuesGroups.length,
ticketCount,
data: ticketRevenuesGroups,
};
}
Expand Down
13 changes: 6 additions & 7 deletions src/utils/payment-date-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -138,15 +138,14 @@ export function getPaymentMonth(
endDate: endOfMonth(fridayDate),
};
} else {
// get first and last friday of month
// if ticket-revenues
// get first friday of month and friday
let startDate = startOfMonth(new Date(fridayDate));
if (!isFriday(startDate)) {
startDate = nextFriday(startDate);
}
let endDate = endOfMonth(new Date(fridayDate));
if (!isFriday(endDate) && isSameMonth(endDate, nextFriday(endDate))) {
startDate = nextFriday(startDate);
let endDate = new Date(fridayDate);
if (isSameMonth(endDate, nextFriday(endDate))) {
endDate = nextFriday(endDate);
} else if (!isFriday(endDate)) {
} else {
endDate = previousFriday(endDate);
}

Expand Down
49 changes: 43 additions & 6 deletions test/bank-statements/bank-statements.e2e-spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { isFriday, nextFriday } from 'date-fns';
import { isFriday, isSameMonth, nextFriday, previousFriday } from 'date-fns';
import * as request from 'supertest';
import { getDateYMDString } from '../../src/utils/date-utils';
import { configE2E } from '../utils/config';
Expand Down Expand Up @@ -119,10 +119,11 @@ describe('Bank statements (e2e)', () => {
it('Should match amountSum in /bank-statements with /ticket-revenues/me in the same week', async () => {
// Arrange
let friday = new Date();
if (!isFriday(friday)) {
if (isSameMonth(friday, nextFriday(friday))) {
friday = nextFriday(friday);
} else {
friday = previousFriday(friday);
}
friday.setDate(friday.getDate() - 7);
const fridayStr = getDateYMDString(friday);

// Act
Expand Down Expand Up @@ -156,13 +157,14 @@ describe('Bank statements (e2e)', () => {
});

// Assert
const bsFriday = bankStatements.data.filter(
const bankStatementsFriday = bankStatements.data.filter(
(i: any) => i.date === fridayStr,
)?.[0];
expect(bsFriday.amount).toEqual(ticketRevenuesMe.amountSum);
expect(bankStatements.data[0].date).toEqual(fridayStr);
expect(bankStatementsFriday.amount).toEqual(ticketRevenuesMe.amountSum);
}, 60000);

it('Should match amountSum in /bank-statements with transactionValueSum in ticket-revenues/grouped/me', async () => {
it('Should match amountSum in /bank-statements/me with transactionValueSum in ticket-revenues/grouped/me', async () => {
// Arrange
const requestArgs = {
timeInterval: 'lastMonth',
Expand Down Expand Up @@ -198,4 +200,39 @@ describe('Bank statements (e2e)', () => {
revenuesMeGrouped.transactionValueSum,
);
}, 60000);

it('Should match ticketCounts in /bank-statements with counts in ticket-revenues/grouped/me', async () => {
// Arrange
const requestArgs = {
timeInterval: 'lastMonth',
};

// Act
let bankStatements;
await request(app)
.get('/api/v1/bank-statements/me')
.auth(apiToken, {
type: 'bearer',
})
.query(requestArgs)
.expect(200)
.then(({ body }) => {
bankStatements = body;
});

let revenuesMeGrouped;
await request(app)
.get('/api/v1/ticket-revenues/me/grouped')
.auth(apiToken, {
type: 'bearer',
})
.query(requestArgs)
.expect(200)
.then(({ body }) => {
revenuesMeGrouped = body;
});

// Assert
expect(bankStatements.ticketCount).toEqual(revenuesMeGrouped.count);
}, 60000);
});

0 comments on commit 793f6dd

Please sign in to comment.