@hed-hog/finance 0.0.279 → 0.0.285

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/dto/finance-report-query.dto.d.ts +16 -0
  2. package/dist/dto/finance-report-query.dto.d.ts.map +1 -0
  3. package/dist/dto/finance-report-query.dto.js +59 -0
  4. package/dist/dto/finance-report-query.dto.js.map +1 -0
  5. package/dist/finance-reports.controller.d.ts +71 -0
  6. package/dist/finance-reports.controller.d.ts.map +1 -0
  7. package/dist/finance-reports.controller.js +61 -0
  8. package/dist/finance-reports.controller.js.map +1 -0
  9. package/dist/finance.module.d.ts.map +1 -1
  10. package/dist/finance.module.js +2 -0
  11. package/dist/finance.module.js.map +1 -1
  12. package/dist/finance.service.d.ts +93 -0
  13. package/dist/finance.service.d.ts.map +1 -1
  14. package/dist/finance.service.js +456 -0
  15. package/dist/finance.service.js.map +1 -1
  16. package/dist/index.d.ts +1 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +1 -0
  19. package/dist/index.js.map +1 -1
  20. package/hedhog/data/route.yaml +27 -0
  21. package/hedhog/frontend/app/accounts-payable/installments/page.tsx.ejs +158 -125
  22. package/hedhog/frontend/app/accounts-receivable/collections-default/page.tsx.ejs +102 -88
  23. package/hedhog/frontend/app/cash-and-banks/statements/page.tsx.ejs +113 -89
  24. package/hedhog/frontend/app/reports/_lib/use-finance-reports.ts.ejs +233 -0
  25. package/hedhog/frontend/app/reports/overview-results/page.tsx.ejs +96 -78
  26. package/hedhog/frontend/app/reports/top-customers/page.tsx.ejs +247 -130
  27. package/hedhog/frontend/app/reports/top-operational-expenses/page.tsx.ejs +250 -135
  28. package/hedhog/frontend/messages/en.json +33 -2
  29. package/hedhog/frontend/messages/pt.json +33 -2
  30. package/package.json +6 -6
  31. package/src/dto/finance-report-query.dto.ts +49 -0
  32. package/src/finance-reports.controller.ts +28 -0
  33. package/src/finance.module.ts +2 -0
  34. package/src/finance.service.ts +645 -10
  35. package/src/index.ts +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hed-hog/finance",
3
- "version": "0.0.279",
3
+ "version": "0.0.285",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "dependencies": {
@@ -9,14 +9,14 @@
9
9
  "@nestjs/core": "^11",
10
10
  "@nestjs/jwt": "^11",
11
11
  "@nestjs/mapped-types": "*",
12
- "@hed-hog/tag": "0.0.279",
13
- "@hed-hog/contact": "0.0.279",
14
12
  "@hed-hog/api-prisma": "0.0.5",
15
13
  "@hed-hog/api": "0.0.4",
16
- "@hed-hog/api-locale": "0.0.13",
17
- "@hed-hog/core": "0.0.279",
18
14
  "@hed-hog/api-types": "0.0.1",
19
- "@hed-hog/api-pagination": "0.0.6"
15
+ "@hed-hog/core": "0.0.285",
16
+ "@hed-hog/contact": "0.0.285",
17
+ "@hed-hog/api-locale": "0.0.13",
18
+ "@hed-hog/api-pagination": "0.0.6",
19
+ "@hed-hog/tag": "0.0.285"
20
20
  },
21
21
  "exports": {
22
22
  ".": {
@@ -0,0 +1,49 @@
1
+ import { Transform, Type } from 'class-transformer';
2
+ import {
3
+ IsDateString,
4
+ IsEnum,
5
+ IsInt,
6
+ IsOptional,
7
+ IsString,
8
+ Max,
9
+ Min,
10
+ } from 'class-validator';
11
+
12
+ export enum FinanceReportGroupBy {
13
+ day = 'day',
14
+ week = 'week',
15
+ month = 'month',
16
+ year = 'year',
17
+ }
18
+
19
+ export class FinanceReportQueryDto {
20
+ @IsOptional()
21
+ @IsDateString({}, { message: 'from must be a valid date' })
22
+ from?: string;
23
+
24
+ @IsOptional()
25
+ @IsDateString({}, { message: 'to must be a valid date' })
26
+ to?: string;
27
+
28
+ @IsOptional()
29
+ @IsEnum(FinanceReportGroupBy, {
30
+ message: 'groupBy must be one of: day, week, month, year',
31
+ })
32
+ groupBy?: FinanceReportGroupBy;
33
+ }
34
+
35
+ export class FinanceRankingReportQueryDto extends FinanceReportQueryDto {
36
+ @IsOptional()
37
+ @Type(() => Number)
38
+ @IsInt({ message: 'topN must be an integer number' })
39
+ @Min(1, { message: 'topN must be greater than zero' })
40
+ @Max(100, { message: 'topN must be less than or equal to 100' })
41
+ topN?: number;
42
+
43
+ @IsOptional()
44
+ @Transform(({ value }) =>
45
+ typeof value === 'string' ? value.trim() : value,
46
+ )
47
+ @IsString({ message: 'search must be a string' })
48
+ search?: string;
49
+ }
@@ -0,0 +1,28 @@
1
+ import { Role } from '@hed-hog/api';
2
+ import { Controller, Get, Query } from '@nestjs/common';
3
+ import {
4
+ FinanceRankingReportQueryDto,
5
+ FinanceReportQueryDto,
6
+ } from './dto/finance-report-query.dto';
7
+ import { FinanceService } from './finance.service';
8
+
9
+ @Role()
10
+ @Controller('finance')
11
+ export class FinanceReportsController {
12
+ constructor(private readonly financeService: FinanceService) {}
13
+
14
+ @Get('reports/overview-results')
15
+ async getOverviewResults(@Query() query: FinanceReportQueryDto) {
16
+ return this.financeService.getOverviewResultsReport(query);
17
+ }
18
+
19
+ @Get('reports/top-customers')
20
+ async getTopCustomers(@Query() query: FinanceRankingReportQueryDto) {
21
+ return this.financeService.getTopCustomersReport(query);
22
+ }
23
+
24
+ @Get('reports/top-operational-expenses')
25
+ async getTopOperationalExpenses(@Query() query: FinanceRankingReportQueryDto) {
26
+ return this.financeService.getTopOperationalExpensesReport(query);
27
+ }
28
+ }
@@ -12,6 +12,7 @@ import { FinanceCostCentersController } from './finance-cost-centers.controller'
12
12
  import { FinanceDataController } from './finance-data.controller';
13
13
  import { FinanceInstallmentsController } from './finance-installments.controller';
14
14
  import { FinancePeriodCloseController } from './finance-period-close.controller';
15
+ import { FinanceReportsController } from './finance-reports.controller';
15
16
  import { FinanceStatementsController } from './finance-statements.controller';
16
17
  import { FinanceTransfersController } from './finance-transfers.controller';
17
18
  import { FinanceService } from './finance.service';
@@ -29,6 +30,7 @@ import { FinanceService } from './finance.service';
29
30
  FinanceAuditLogsController,
30
31
  FinanceDataController,
31
32
  FinanceInstallmentsController,
33
+ FinanceReportsController,
32
34
  FinanceBankAccountsController,
33
35
  FinanceCategoriesController,
34
36
  FinanceCollectionsController,