@hed-hog/finance 0.0.224 → 0.0.225

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 (43) hide show
  1. package/dist/dto/create-financial-title.dto.d.ts +19 -0
  2. package/dist/dto/create-financial-title.dto.d.ts.map +1 -0
  3. package/dist/dto/create-financial-title.dto.js +128 -0
  4. package/dist/dto/create-financial-title.dto.js.map +1 -0
  5. package/dist/finance.controller.d.ts +276 -0
  6. package/dist/finance.controller.d.ts.map +1 -0
  7. package/dist/finance.controller.js +110 -0
  8. package/dist/finance.controller.js.map +1 -0
  9. package/dist/finance.module.d.ts.map +1 -1
  10. package/dist/finance.module.js +8 -3
  11. package/dist/finance.module.js.map +1 -1
  12. package/dist/finance.service.d.ts +295 -0
  13. package/dist/finance.service.d.ts.map +1 -0
  14. package/dist/finance.service.js +416 -0
  15. package/dist/finance.service.js.map +1 -0
  16. package/dist/index.d.ts +3 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +3 -0
  19. package/dist/index.js.map +1 -1
  20. package/hedhog/data/menu.yaml +72 -25
  21. package/hedhog/data/route.yaml +55 -1
  22. package/hedhog/frontend/app/accounts-payable/approvals/page.tsx.ejs +69 -44
  23. package/hedhog/frontend/app/accounts-payable/installments/[id]/page.tsx.ejs +68 -46
  24. package/hedhog/frontend/app/accounts-payable/installments/page.tsx.ejs +87 -63
  25. package/hedhog/frontend/app/accounts-receivable/collections-default/page.tsx.ejs +94 -59
  26. package/hedhog/frontend/app/accounts-receivable/installments/[id]/page.tsx.ejs +78 -52
  27. package/hedhog/frontend/app/accounts-receivable/installments/page.tsx.ejs +89 -68
  28. package/hedhog/frontend/app/cash-and-banks/bank-accounts/page.tsx.ejs +69 -47
  29. package/hedhog/frontend/app/cash-and-banks/bank-reconciliation/page.tsx.ejs +79 -53
  30. package/hedhog/frontend/app/cash-and-banks/statements/page.tsx.ejs +43 -36
  31. package/hedhog/frontend/app/cash-and-banks/transfers/page.tsx.ejs +47 -38
  32. package/hedhog/frontend/app/page.tsx.ejs +54 -31
  33. package/hedhog/frontend/app/planning/cash-flow-forecast/page.tsx.ejs +51 -38
  34. package/hedhog/frontend/app/planning/receivables-calendar/page.tsx.ejs +63 -33
  35. package/hedhog/frontend/app/planning/scenarios/page.tsx.ejs +50 -33
  36. package/hedhog/frontend/messages/en.json +776 -0
  37. package/hedhog/frontend/messages/pt.json +776 -0
  38. package/package.json +3 -3
  39. package/src/dto/create-financial-title.dto.ts +142 -0
  40. package/src/finance.controller.ts +89 -0
  41. package/src/finance.module.ts +8 -3
  42. package/src/finance.service.ts +529 -0
  43. package/src/index.ts +4 -0
@@ -0,0 +1,416 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.FinanceService = void 0;
13
+ const api_locale_1 = require("@hed-hog/api-locale");
14
+ const api_pagination_1 = require("@hed-hog/api-pagination");
15
+ const api_prisma_1 = require("@hed-hog/api-prisma");
16
+ const common_1 = require("@nestjs/common");
17
+ let FinanceService = class FinanceService {
18
+ constructor(prisma, paginationService) {
19
+ this.prisma = prisma;
20
+ this.paginationService = paginationService;
21
+ }
22
+ async getData() {
23
+ const [payables, receivables, people, categories, costCenters, bankAccounts, tags, auditLogs,] = await Promise.all([
24
+ this.loadTitles('payable'),
25
+ this.loadTitles('receivable'),
26
+ this.loadPeople(),
27
+ this.loadCategories(),
28
+ this.loadCostCenters(),
29
+ this.loadBankAccounts(),
30
+ this.loadTags(),
31
+ this.loadAuditLogs(),
32
+ ]);
33
+ return {
34
+ kpis: {
35
+ saldoCaixa: 0,
36
+ aPagar30dias: 0,
37
+ aPagar7dias: 0,
38
+ aReceber30dias: 0,
39
+ aReceber7dias: 0,
40
+ inadimplencia: 0,
41
+ },
42
+ fluxoCaixaPrevisto: [],
43
+ titulosPagar: payables,
44
+ titulosReceber: receivables,
45
+ extratos: [],
46
+ contasBancarias: bankAccounts,
47
+ pessoas: people,
48
+ categorias: categories,
49
+ centrosCusto: costCenters,
50
+ aprovacoesPendentes: [],
51
+ agingInadimplencia: [],
52
+ cenarios: [],
53
+ transferencias: [],
54
+ tags,
55
+ logsAuditoria: auditLogs,
56
+ recebiveis: [],
57
+ adquirentes: [],
58
+ historicoContatos: [],
59
+ entradasPrevistas: [],
60
+ saidasPrevistas: [],
61
+ };
62
+ }
63
+ async listAccountsPayableInstallments(paginationParams, status) {
64
+ return this.listTitles('payable', paginationParams, status);
65
+ }
66
+ async listAccountsReceivableInstallments(paginationParams, status) {
67
+ return this.listTitles('receivable', paginationParams, status);
68
+ }
69
+ async getAccountsPayableInstallment(id, locale) {
70
+ const title = await this.getTitleById(id, 'payable', locale);
71
+ return this.mapTitleToFront(title);
72
+ }
73
+ async getAccountsReceivableInstallment(id, locale) {
74
+ const title = await this.getTitleById(id, 'receivable', locale);
75
+ return this.mapTitleToFront(title);
76
+ }
77
+ async createAccountsPayableTitle(data, locale, userId) {
78
+ return this.createTitle(data, 'payable', locale, userId);
79
+ }
80
+ async createAccountsReceivableTitle(data, locale, userId) {
81
+ return this.createTitle(data, 'receivable', locale, userId);
82
+ }
83
+ async listTitles(titleType, paginationParams, status) {
84
+ const prismaStatus = this.mapStatusFromPt(status);
85
+ const where = {
86
+ title_type: titleType,
87
+ };
88
+ if (prismaStatus) {
89
+ where.status = prismaStatus;
90
+ }
91
+ return this.paginationService.paginate(this.prisma.financial_title, paginationParams, {
92
+ where,
93
+ include: this.defaultTitleInclude(),
94
+ orderBy: { created_at: 'desc' },
95
+ });
96
+ }
97
+ async getTitleById(id, titleType, locale) {
98
+ const title = await this.prisma.financial_title.findFirst({
99
+ where: {
100
+ id,
101
+ title_type: titleType,
102
+ },
103
+ include: this.defaultTitleInclude(),
104
+ });
105
+ if (!title) {
106
+ throw new common_1.NotFoundException((0, api_locale_1.getLocaleText)('itemNotFound', locale, `Financial title with ID ${id} not found`).replace('{{item}}', 'Financial title'));
107
+ }
108
+ return title;
109
+ }
110
+ async createTitle(data, titleType, locale, userId) {
111
+ const person = await this.prisma.person.findUnique({
112
+ where: { id: data.person_id },
113
+ select: { id: true },
114
+ });
115
+ if (!person) {
116
+ throw new common_1.BadRequestException((0, api_locale_1.getLocaleText)('personNotFound', locale, 'Person not found'));
117
+ }
118
+ if (data.finance_category_id) {
119
+ const category = await this.prisma.finance_category.findUnique({
120
+ where: { id: data.finance_category_id },
121
+ select: { id: true },
122
+ });
123
+ if (!category) {
124
+ throw new common_1.BadRequestException((0, api_locale_1.getLocaleText)('categoryNotFound', locale, 'Category not found'));
125
+ }
126
+ }
127
+ if (data.cost_center_id) {
128
+ const costCenter = await this.prisma.cost_center.findUnique({
129
+ where: { id: data.cost_center_id },
130
+ select: { id: true },
131
+ });
132
+ if (!costCenter) {
133
+ throw new common_1.BadRequestException((0, api_locale_1.getLocaleText)('costCenterNotFound', locale, 'Cost center not found'));
134
+ }
135
+ }
136
+ const installments = data.installments && data.installments.length > 0
137
+ ? data.installments
138
+ : [
139
+ {
140
+ installment_number: 1,
141
+ due_date: data.due_date,
142
+ amount: data.total_amount,
143
+ },
144
+ ];
145
+ const title = await this.prisma.financial_title.create({
146
+ data: {
147
+ person_id: data.person_id,
148
+ title_type: titleType,
149
+ status: 'open',
150
+ document_number: data.document_number,
151
+ description: data.description,
152
+ competence_date: data.competence_date
153
+ ? new Date(data.competence_date)
154
+ : null,
155
+ issue_date: data.issue_date ? new Date(data.issue_date) : null,
156
+ total_amount_cents: this.toCents(data.total_amount),
157
+ finance_category_id: data.finance_category_id,
158
+ created_by_user_id: userId,
159
+ },
160
+ });
161
+ for (let index = 0; index < installments.length; index++) {
162
+ const installment = installments[index];
163
+ const amountCents = this.toCents(installment.amount);
164
+ const createdInstallment = await this.prisma.financial_installment.create({
165
+ data: {
166
+ title_id: title.id,
167
+ installment_number: installment.installment_number || index + 1,
168
+ competence_date: data.competence_date
169
+ ? new Date(data.competence_date)
170
+ : new Date(installment.due_date),
171
+ due_date: new Date(installment.due_date),
172
+ amount_cents: amountCents,
173
+ open_amount_cents: amountCents,
174
+ status: 'open',
175
+ notes: data.description,
176
+ },
177
+ });
178
+ if (data.cost_center_id) {
179
+ await this.prisma.installment_allocation.create({
180
+ data: {
181
+ installment_id: createdInstallment.id,
182
+ cost_center_id: data.cost_center_id,
183
+ allocated_amount_cents: amountCents,
184
+ },
185
+ });
186
+ }
187
+ }
188
+ const createdTitle = await this.getTitleById(title.id, titleType, locale);
189
+ return this.mapTitleToFront(createdTitle, data.payment_channel);
190
+ }
191
+ async loadTitles(type) {
192
+ const titles = await this.prisma.financial_title.findMany({
193
+ where: { title_type: type },
194
+ include: this.defaultTitleInclude(),
195
+ orderBy: { created_at: 'desc' },
196
+ });
197
+ return titles.map((title) => this.mapTitleToFront(title));
198
+ }
199
+ async loadPeople() {
200
+ const people = await this.prisma.person.findMany({
201
+ include: {
202
+ document: {
203
+ select: {
204
+ value: true,
205
+ },
206
+ take: 1,
207
+ },
208
+ },
209
+ orderBy: { name: 'asc' },
210
+ });
211
+ return people.map((person) => {
212
+ var _a;
213
+ return ({
214
+ id: String(person.id),
215
+ nome: person.name,
216
+ tipo: 'ambos',
217
+ documento: ((_a = person.document[0]) === null || _a === void 0 ? void 0 : _a.value) || '',
218
+ });
219
+ });
220
+ }
221
+ async loadCategories() {
222
+ const categories = await this.prisma.finance_category.findMany({
223
+ orderBy: [{ code: 'asc' }, { name: 'asc' }],
224
+ });
225
+ return categories.map((category) => ({
226
+ id: String(category.id),
227
+ codigo: category.code,
228
+ nome: category.name,
229
+ natureza: category.kind === 'revenue'
230
+ ? 'receita'
231
+ : category.kind === 'expense'
232
+ ? 'despesa'
233
+ : category.kind,
234
+ status: category.status,
235
+ }));
236
+ }
237
+ async loadCostCenters() {
238
+ const costCenters = await this.prisma.cost_center.findMany({
239
+ orderBy: [{ code: 'asc' }, { name: 'asc' }],
240
+ });
241
+ return costCenters.map((costCenter) => ({
242
+ id: String(costCenter.id),
243
+ codigo: costCenter.code,
244
+ nome: costCenter.name,
245
+ status: costCenter.status,
246
+ }));
247
+ }
248
+ async loadBankAccounts() {
249
+ const bankAccounts = await this.prisma.bank_account.findMany({
250
+ orderBy: [{ code: 'asc' }, { name: 'asc' }],
251
+ });
252
+ return bankAccounts.map((bankAccount) => ({
253
+ id: String(bankAccount.id),
254
+ codigo: bankAccount.code,
255
+ descricao: bankAccount.name,
256
+ banco: bankAccount.bank_name,
257
+ agencia: bankAccount.agency,
258
+ conta: bankAccount.account_number,
259
+ ativo: bankAccount.status === 'active',
260
+ }));
261
+ }
262
+ async loadTags() {
263
+ const tags = await this.prisma.tag.findMany({
264
+ orderBy: { slug: 'asc' },
265
+ });
266
+ return tags.map((tag) => ({
267
+ id: String(tag.id),
268
+ nome: tag.slug,
269
+ cor: tag.color,
270
+ }));
271
+ }
272
+ async loadAuditLogs() {
273
+ const logs = await this.prisma.audit_log.findMany({
274
+ orderBy: { created_at: 'desc' },
275
+ take: 500,
276
+ });
277
+ return logs.map((log) => ({
278
+ id: String(log.id),
279
+ entidade: log.entity_table === 'financial_title' ? 'TituloPagar' : log.entity_table,
280
+ entidadeId: log.entity_id,
281
+ usuarioId: log.actor_user_id ? String(log.actor_user_id) : null,
282
+ acao: log.action,
283
+ detalhes: log.summary,
284
+ antes: log.before_data,
285
+ depois: log.after_data,
286
+ data: log.created_at.toISOString(),
287
+ }));
288
+ }
289
+ mapTitleToFront(title, paymentChannelOverride) {
290
+ var _a;
291
+ const allocations = title.financial_installment.flatMap((installment) => installment.installment_allocation);
292
+ const firstCostCenter = (_a = allocations[0]) === null || _a === void 0 ? void 0 : _a.cost_center_id;
293
+ const tags = [
294
+ ...new Set(title.financial_installment
295
+ .flatMap((installment) => installment.financial_installment_tag)
296
+ .map((tagRelation) => String(tagRelation.tag_id))),
297
+ ];
298
+ const channelFromSettlement = title.financial_installment
299
+ .flatMap((installment) => installment.settlement_allocation)
300
+ .map((allocation) => { var _a, _b; return (_b = (_a = allocation.settlement) === null || _a === void 0 ? void 0 : _a.payment_method) === null || _b === void 0 ? void 0 : _b.type; })
301
+ .find(Boolean);
302
+ const mappedInstallments = title.financial_installment.map((installment) => {
303
+ var _a, _b, _c;
304
+ return ({
305
+ id: String(installment.id),
306
+ numero: installment.installment_number,
307
+ vencimento: installment.due_date.toISOString(),
308
+ valor: this.fromCents(installment.amount_cents),
309
+ status: this.mapStatusToPt(installment.status),
310
+ metodoPagamento: this.mapPaymentMethodToPt((_c = (_b = (_a = installment.settlement_allocation[0]) === null || _a === void 0 ? void 0 : _a.settlement) === null || _b === void 0 ? void 0 : _b.payment_method) === null || _c === void 0 ? void 0 : _c.type) || paymentChannelOverride || 'transferencia',
311
+ liquidacoes: installment.settlement_allocation.map((allocation) => {
312
+ var _a, _b, _c, _d, _e;
313
+ return ({
314
+ id: String(allocation.id),
315
+ data: (_b = (_a = allocation.settlement) === null || _a === void 0 ? void 0 : _a.settled_at) === null || _b === void 0 ? void 0 : _b.toISOString(),
316
+ valor: this.fromCents(allocation.allocated_amount_cents),
317
+ juros: this.fromCents(allocation.interest_cents || 0),
318
+ desconto: this.fromCents(allocation.discount_cents || 0),
319
+ multa: this.fromCents(allocation.penalty_cents || 0),
320
+ contaBancariaId: ((_c = allocation.settlement) === null || _c === void 0 ? void 0 : _c.bank_account_id)
321
+ ? String(allocation.settlement.bank_account_id)
322
+ : null,
323
+ metodo: this.mapPaymentMethodToPt((_e = (_d = allocation.settlement) === null || _d === void 0 ? void 0 : _d.payment_method) === null || _e === void 0 ? void 0 : _e.type) || 'transferencia',
324
+ });
325
+ }),
326
+ });
327
+ });
328
+ return Object.assign({ id: String(title.id), documento: title.document_number || `TIT-${title.id}`, descricao: title.description || '', competencia: title.competence_date
329
+ ? title.competence_date.toISOString().slice(0, 7)
330
+ : '', valorTotal: this.fromCents(title.total_amount_cents), status: this.mapStatusToPt(title.status), criadoEm: title.created_at.toISOString(), categoriaId: title.finance_category_id ? String(title.finance_category_id) : null, centroCustoId: firstCostCenter ? String(firstCostCenter) : null, anexos: title.financial_title_attachment.map((attachment) => { var _a, _b; return ((_a = attachment.file) === null || _a === void 0 ? void 0 : _a.filename) || ((_b = attachment.file) === null || _b === void 0 ? void 0 : _b.path); }), tags, parcelas: mappedInstallments, canal: this.mapPaymentMethodToPt(channelFromSettlement) ||
331
+ paymentChannelOverride ||
332
+ 'transferencia' }, (title.title_type === 'payable'
333
+ ? { fornecedorId: String(title.person_id) }
334
+ : { clienteId: String(title.person_id) }));
335
+ }
336
+ defaultTitleInclude() {
337
+ return {
338
+ person: true,
339
+ financial_title_attachment: {
340
+ include: {
341
+ file: true,
342
+ },
343
+ },
344
+ financial_installment: {
345
+ include: {
346
+ installment_allocation: true,
347
+ financial_installment_tag: true,
348
+ settlement_allocation: {
349
+ include: {
350
+ settlement: {
351
+ include: {
352
+ payment_method: true,
353
+ },
354
+ },
355
+ },
356
+ },
357
+ },
358
+ orderBy: {
359
+ installment_number: 'asc',
360
+ },
361
+ },
362
+ };
363
+ }
364
+ mapStatusToPt(status) {
365
+ const statusMap = {
366
+ draft: 'rascunho',
367
+ approved: 'aprovado',
368
+ open: 'aberto',
369
+ partial: 'parcial',
370
+ settled: 'liquidado',
371
+ canceled: 'cancelado',
372
+ overdue: 'vencido',
373
+ };
374
+ return statusMap[status] || 'aberto';
375
+ }
376
+ mapStatusFromPt(status) {
377
+ if (!status || status === 'all') {
378
+ return undefined;
379
+ }
380
+ const statusMap = {
381
+ rascunho: 'draft',
382
+ aprovado: 'approved',
383
+ aberto: 'open',
384
+ parcial: 'partial',
385
+ liquidado: 'settled',
386
+ cancelado: 'canceled',
387
+ vencido: 'overdue',
388
+ };
389
+ return statusMap[status];
390
+ }
391
+ mapPaymentMethodToPt(paymentMethodType) {
392
+ const paymentMethodMap = {
393
+ boleto: 'boleto',
394
+ pix: 'pix',
395
+ ted: 'transferencia',
396
+ doc: 'transferencia',
397
+ card: 'cartao',
398
+ cash: 'dinheiro',
399
+ other: 'transferencia',
400
+ };
401
+ return paymentMethodMap[paymentMethodType] || undefined;
402
+ }
403
+ toCents(value) {
404
+ return Math.round(value * 100);
405
+ }
406
+ fromCents(value) {
407
+ return Number((value / 100).toFixed(2));
408
+ }
409
+ };
410
+ exports.FinanceService = FinanceService;
411
+ exports.FinanceService = FinanceService = __decorate([
412
+ (0, common_1.Injectable)(),
413
+ __metadata("design:paramtypes", [api_prisma_1.PrismaService,
414
+ api_pagination_1.PaginationService])
415
+ ], FinanceService);
416
+ //# sourceMappingURL=finance.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finance.service.js","sourceRoot":"","sources":["../src/finance.service.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,5 @@
1
+ export * from './dto/create-financial-title.dto';
2
+ export * from './finance.controller';
1
3
  export * from './finance.module';
4
+ export * from './finance.service';
2
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -14,5 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./dto/create-financial-title.dto"), exports);
18
+ __exportStar(require("./finance.controller"), exports);
17
19
  __exportStar(require("./finance.module"), exports);
20
+ __exportStar(require("./finance.service"), exports);
18
21
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mEAAiD;AACjD,uDAAqC;AACrC,mDAAiC;AACjC,oDAAkC"}
@@ -1,8 +1,7 @@
1
- - url: /finance
2
- icon: chart-no-axes-combined
1
+ - icon: chart-no-axes-combined
3
2
  name:
4
3
  en: Finance
5
- pt: Finanças
4
+ pt: Financeiro
6
5
  slug: /finance
7
6
  order: 100
8
7
  relations:
@@ -12,12 +11,32 @@
12
11
  - where:
13
12
  slug: admin-finance
14
13
 
15
- - icon: credit-card
14
+ - menu_id:
15
+ where:
16
+ slug: /finance
17
+ icon: chart-no-axes-combined
18
+ url: /finance/overview
19
+ name:
20
+ en: Overview
21
+ pt: Visão geral
22
+ slug: /finance/overview
23
+ order: 101
24
+ relations:
25
+ role:
26
+ - where:
27
+ slug: admin
28
+ - where:
29
+ slug: admin-finance
30
+
31
+ - menu_id:
32
+ where:
33
+ slug: /finance
34
+ icon: credit-card
16
35
  name:
17
36
  en: Payable Bills
18
37
  pt: Contas a Pagar
19
38
  slug: /finance/accounts-payable
20
- order: 101
39
+ order: 102
21
40
  relations:
22
41
  role:
23
42
  - where:
@@ -55,12 +74,15 @@
55
74
  - where:
56
75
  slug: admin-finance
57
76
 
58
- - icon: hand-coins
77
+ - menu_id:
78
+ where:
79
+ slug: /finance
80
+ icon: hand-coins
59
81
  name:
60
82
  en: Receivable Bills
61
83
  pt: Contas a Receber
62
84
  slug: /finance/accounts-receivable
63
- order: 102
85
+ order: 103
64
86
  relations:
65
87
  role:
66
88
  - where:
@@ -98,12 +120,15 @@
98
120
  - where:
99
121
  slug: admin-finance
100
122
 
101
- - icon: building-2
123
+ - menu_id:
124
+ where:
125
+ slug: /finance
126
+ icon: building-2
102
127
  name:
103
128
  en: Cash and Banks
104
129
  pt: Caixa e Bancos
105
130
  slug: /finance/cash-and-banks
106
- order: 103
131
+ order: 104
107
132
  relations:
108
133
  role:
109
134
  - where:
@@ -171,12 +196,15 @@
171
196
  - where:
172
197
  slug: admin-finance
173
198
 
174
- - icon: chart-line
199
+ - menu_id:
200
+ where:
201
+ slug: /finance
202
+ icon: chart-line
175
203
  name:
176
204
  en: Planning
177
205
  pt: Planejamento
178
206
  slug: /finance/planning
179
- order: 104
207
+ order: 105
180
208
  relations:
181
209
  role:
182
210
  - where:
@@ -229,12 +257,15 @@
229
257
  - where:
230
258
  slug: admin-finance
231
259
 
232
- - icon: file-text
260
+ - menu_id:
261
+ where:
262
+ slug: /finance
263
+ icon: file-text
233
264
  name:
234
265
  en: Reports
235
266
  pt: Relatórios
236
267
  slug: /finance/reports
237
- order: 105
268
+ order: 106
238
269
  relations:
239
270
  role:
240
271
  - where:
@@ -289,13 +320,29 @@
289
320
 
290
321
  - menu_id:
291
322
  where:
292
- slug: /core/management
323
+ slug: /finance
324
+ icon: settings
325
+ name:
326
+ en: Administration
327
+ pt: Administração
328
+ slug: /finance/administration
329
+ order: 107
330
+ relations:
331
+ role:
332
+ - where:
333
+ slug: admin
334
+ - where:
335
+ slug: admin-finance
336
+
337
+ - menu_id:
338
+ where:
339
+ slug: /finance/administration
293
340
  icon: clipboard-list
294
- url: /core/management/audit-logs
341
+ url: /finance/administration/audit-logs
295
342
  name:
296
343
  en: Audit and Logs
297
344
  pt: Auditoria e Logs
298
- slug: /core/management/audit-logs
345
+ slug: /finance/administration/audit-logs
299
346
  relations:
300
347
  role:
301
348
  - where:
@@ -304,13 +351,13 @@
304
351
  slug: admin-finance
305
352
  - menu_id:
306
353
  where:
307
- slug: /core/management
354
+ slug: /finance/administration
308
355
  icon: calendar-check-2
309
- url: /core/management/period-close
356
+ url: /finance/administration/period-close
310
357
  name:
311
358
  en: Period Close
312
359
  pt: Fechamento de Período
313
- slug: /core/management/period-close
360
+ slug: /finance/administration/period-close
314
361
  relations:
315
362
  role:
316
363
  - where:
@@ -319,13 +366,13 @@
319
366
  slug: admin-finance
320
367
  - menu_id:
321
368
  where:
322
- slug: /core/management
369
+ slug: /finance/administration
323
370
  icon: folder-tree
324
- url: /core/management/categories
371
+ url: /finance/administration/categories
325
372
  name:
326
373
  en: Categories
327
374
  pt: Categorias
328
- slug: /core/management/categories
375
+ slug: /finance/administration/categories
329
376
  relations:
330
377
  role:
331
378
  - where:
@@ -334,13 +381,13 @@
334
381
  slug: admin-finance
335
382
  - menu_id:
336
383
  where:
337
- slug: /core/management
384
+ slug: /finance/administration
338
385
  icon: pie-chart
339
- url: /core/management/cost-centers
386
+ url: /finance/administration/cost-centers
340
387
  name:
341
388
  en: Cost Centers
342
389
  pt: Centros de Custo
343
- slug: /core/management/cost-centers
390
+ slug: /finance/administration/cost-centers
344
391
  relations:
345
392
  role:
346
393
  - where: