@orbe-agro/client-core 5.6.289 → 5.6.291

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 (69) hide show
  1. package/dist/@ecme/components/template/Footer.js +1 -1
  2. package/dist/@types/base/@types/api/response/originacao/TRelatorioDinamicoResponse.d.ts +67 -0
  3. package/dist/@types/base/@types/api/response/originacao/TRelatorioDinamicoResponse.d.ts.map +1 -0
  4. package/dist/@types/base/@types/models/compras/Dashboard.d.ts +0 -4
  5. package/dist/@types/base/@types/models/compras/Dashboard.d.ts.map +1 -1
  6. package/dist/@types/base/configs/endpoints.config/compras/compras.d.ts +12 -12
  7. package/dist/@types/base/configs/endpoints.config/compras/config/dashboard.d.ts +12 -0
  8. package/dist/@types/base/configs/endpoints.config/compras/config/dashboard.d.ts.map +1 -1
  9. package/dist/@types/base/configs/endpoints.config/compras/config/requisicaoCompra.d.ts +0 -12
  10. package/dist/@types/base/configs/endpoints.config/compras/config/requisicaoCompra.d.ts.map +1 -1
  11. package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts +21 -12
  12. package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts.map +1 -1
  13. package/dist/@types/base/configs/endpoints.config/originacao/config/relatoriosDinamicos.d.ts +11 -0
  14. package/dist/@types/base/configs/endpoints.config/originacao/config/relatoriosDinamicos.d.ts.map +1 -0
  15. package/dist/@types/base/configs/endpoints.config/originacao/originacao.d.ts +9 -0
  16. package/dist/@types/base/configs/endpoints.config/originacao/originacao.d.ts.map +1 -1
  17. package/dist/@types/base/configs/navigation.config/modules.submenu/originacao/relatoriosDinamicos/submenu.relatoriosDinamicos.d.ts +4 -0
  18. package/dist/@types/base/configs/navigation.config/modules.submenu/originacao/relatoriosDinamicos/submenu.relatoriosDinamicos.d.ts.map +1 -0
  19. package/dist/@types/base/configs/navigation.config/submenu/originacao/relatorios.submenu.d.ts.map +1 -1
  20. package/dist/@types/base/services/modules/compras/dashboard/DashboardService.d.ts +4 -1
  21. package/dist/@types/base/services/modules/compras/dashboard/DashboardService.d.ts.map +1 -1
  22. package/dist/@types/base/services/modules/compras/requisicaoCompra/RequisicaoCompraService.d.ts +0 -4
  23. package/dist/@types/base/services/modules/compras/requisicaoCompra/RequisicaoCompraService.d.ts.map +1 -1
  24. package/dist/@types/base/services/modules/originacao/index.d.ts +1 -0
  25. package/dist/@types/base/services/modules/originacao/index.d.ts.map +1 -1
  26. package/dist/@types/base/services/modules/originacao/relatoriosDinamicos/relatoriosDinamicosService.d.ts +14 -0
  27. package/dist/@types/base/services/modules/originacao/relatoriosDinamicos/relatoriosDinamicosService.d.ts.map +1 -0
  28. package/dist/base/@types/api/response/originacao/TRelatorioDinamicoResponse.js +2 -0
  29. package/dist/base/@types/api/response/originacao/TRelatorioDinamicoResponse.js.map +1 -0
  30. package/dist/base/configs/endpoints.config/compras/config/dashboard.js +3 -0
  31. package/dist/base/configs/endpoints.config/compras/config/dashboard.js.map +1 -1
  32. package/dist/base/configs/endpoints.config/compras/config/requisicaoCompra.js +1 -4
  33. package/dist/base/configs/endpoints.config/compras/config/requisicaoCompra.js.map +1 -1
  34. package/dist/base/configs/endpoints.config/originacao/config/relatoriosDinamicos.js +14 -0
  35. package/dist/base/configs/endpoints.config/originacao/config/relatoriosDinamicos.js.map +1 -0
  36. package/dist/base/configs/endpoints.config/originacao/originacao.js +2 -0
  37. package/dist/base/configs/endpoints.config/originacao/originacao.js.map +1 -1
  38. package/dist/base/configs/navigation.config/modules.submenu/originacao/relatoriosDinamicos/submenu.relatoriosDinamicos.js +15 -0
  39. package/dist/base/configs/navigation.config/modules.submenu/originacao/relatoriosDinamicos/submenu.relatoriosDinamicos.js.map +1 -0
  40. package/dist/base/configs/navigation.config/submenu/originacao/relatorios.submenu.js +3 -1
  41. package/dist/base/configs/navigation.config/submenu/originacao/relatorios.submenu.js.map +1 -1
  42. package/dist/base/index.js +14 -5
  43. package/dist/base/index.js.map +1 -1
  44. package/dist/base/services/index.js +14 -5
  45. package/dist/base/services/index.js.map +1 -1
  46. package/dist/base/services/modules/compras/dashboard/DashboardService.js +25 -1
  47. package/dist/base/services/modules/compras/dashboard/DashboardService.js.map +1 -1
  48. package/dist/base/services/modules/compras/index.js +5 -5
  49. package/dist/base/services/modules/compras/requisicaoCompra/RequisicaoCompraService.js +0 -24
  50. package/dist/base/services/modules/compras/requisicaoCompra/RequisicaoCompraService.js.map +1 -1
  51. package/dist/base/services/modules/index.js +14 -5
  52. package/dist/base/services/modules/index.js.map +1 -1
  53. package/dist/base/services/modules/originacao/index.js +9 -0
  54. package/dist/base/services/modules/originacao/index.js.map +1 -1
  55. package/dist/base/services/modules/originacao/relatoriosDinamicos/relatoriosDinamicosService.js +91 -0
  56. package/dist/base/services/modules/originacao/relatoriosDinamicos/relatoriosDinamicosService.js.map +1 -0
  57. package/lib/base/@types/api/response/originacao/TRelatorioDinamicoResponse.ts +74 -0
  58. package/lib/base/@types/models/compras/Dashboard.ts +0 -4
  59. package/lib/base/configs/endpoints.config/compras/config/dashboard.ts +3 -0
  60. package/lib/base/configs/endpoints.config/compras/config/requisicaoCompra.ts +1 -4
  61. package/lib/base/configs/endpoints.config/originacao/config/relatoriosDinamicos.ts +11 -0
  62. package/lib/base/configs/endpoints.config/originacao/originacao.ts +2 -0
  63. package/lib/base/configs/navigation.config/modules.submenu/originacao/relatoriosDinamicos/submenu.relatoriosDinamicos.ts +13 -0
  64. package/lib/base/configs/navigation.config/submenu/originacao/relatorios.submenu.ts +2 -0
  65. package/lib/base/services/modules/compras/dashboard/DashboardService.ts +30 -1
  66. package/lib/base/services/modules/compras/requisicaoCompra/RequisicaoCompraService.ts +0 -32
  67. package/lib/base/services/modules/originacao/index.ts +1 -0
  68. package/lib/base/services/modules/originacao/relatoriosDinamicos/relatoriosDinamicosService.ts +120 -0
  69. package/package.json +1 -1
@@ -0,0 +1,74 @@
1
+ import type { IFilterFieldDescriptor } from '@base/@types/filters'
2
+
3
+ export type TBaseRelatorioDinamico =
4
+ | 'CONTRATO_COMPRA_GRAOS'
5
+ | 'LIQUIDACAO'
6
+ | 'SALDO_TICKET'
7
+ | 'TICKET'
8
+ | 'ENTREGA_BAYER'
9
+ export type TVisibilidadeRelatorioDinamico = 'PESSOAL' | 'COMPARTILHADO'
10
+ export type TColunaRelatorioDinamico = {
11
+ chave: string
12
+ rotulo: string
13
+ origem: string
14
+ tipo:
15
+ | 'IDENTIFICADOR'
16
+ | 'TEXTO'
17
+ | 'INTEIRO'
18
+ | 'DECIMAL'
19
+ | 'DATA'
20
+ | 'DATA_HORA'
21
+ | 'BOOLEANO'
22
+ }
23
+ export type TFiltroRelatorioDinamico = {
24
+ chave: string
25
+ rotulo: string
26
+ campos: IFilterFieldDescriptor[]
27
+ }
28
+ export type TCatalogoRelatorioDinamico = {
29
+ bases: { codigo: TBaseRelatorioDinamico; descricao: string }[]
30
+ base: TBaseRelatorioDinamico | null
31
+ colunas: TColunaRelatorioDinamico[]
32
+ filtros: TFiltroRelatorioDinamico[]
33
+ }
34
+ export type TRelatorioDinamicoResponse = {
35
+ id: number
36
+ nome: string
37
+ base: TBaseRelatorioDinamico
38
+ visibilidade: TVisibilidadeRelatorioDinamico
39
+ criadorId: number
40
+ colunas: string[]
41
+ filtros: string[]
42
+ dataCriacao: string
43
+ dataAtualizacao: string
44
+ }
45
+ export type TEditarRelatorioDinamicoRequest = {
46
+ nome: string
47
+ visibilidade: TVisibilidadeRelatorioDinamico
48
+ colunas: string[]
49
+ filtros: string[]
50
+ }
51
+ export type TCriarRelatorioDinamicoRequest = TEditarRelatorioDinamicoRequest & {
52
+ base: TBaseRelatorioDinamico
53
+ }
54
+ export type TOrdenacaoRelatorioDinamico = {
55
+ campo: string
56
+ direcao: 'ASC' | 'DESC'
57
+ }
58
+ export type TExportarRelatorioDinamicoRequest = {
59
+ filtros: Record<string, unknown>
60
+ ordenacao: TOrdenacaoRelatorioDinamico[]
61
+ }
62
+ export type TConsultarRelatorioDinamicoRequest =
63
+ TExportarRelatorioDinamicoRequest & { pagina: number; tamanho: number }
64
+ export type TValorRelatorioDinamico = string | number | boolean | null
65
+ export type TResultadoRelatorioDinamico = {
66
+ colunas: TColunaRelatorioDinamico[]
67
+ linhas: Record<string, TValorRelatorioDinamico>[]
68
+ paginacao: {
69
+ number: number
70
+ size: number
71
+ totalElements: number
72
+ totalPages: number
73
+ }
74
+ }
@@ -26,13 +26,9 @@ export type TDashboardRequisicaoCompraResponse = {
26
26
  requisicoesAtendidas: number
27
27
  requisicoesUrgentes: number
28
28
  requisicoesNormais: number
29
- /** BigDecimal no backend: o Jackson manda número, mas pode vir string se configurado assim. */
30
29
  valorTotalCompras: number | string | null
31
- /** Itens cotados com 2+ fornecedores e um deles escolhido. */
32
30
  itensNegociados: number
33
- /** BigDecimal, em R$: média das cotações − valor escolhido. Vai no card "Economia total". */
34
31
  mediaEconomiaPorItem: number | string | null
35
- /** BigDecimal, já de 0 a 100: SUM(economia) / SUM(média das cotações). */
36
32
  percentualEconomiaGeral: number | string | null
37
33
  }
38
34
 
@@ -1,6 +1,9 @@
1
1
  const DASHBOARD_BASE_URL = '/compras/api/dashboard'
2
2
 
3
3
  const dashboard = {
4
+ comprasRequisicoes: { endpoint: DASHBOARD_BASE_URL, httpMethod: 'post' },
5
+ rankings: { endpoint: `${DASHBOARD_BASE_URL}/rankings`, httpMethod: 'post' },
6
+ comprasDiretas: { endpoint: `${DASHBOARD_BASE_URL}/compras-diretas`, httpMethod: 'post' },
4
7
  pedidosPendentes: { endpoint: `${DASHBOARD_BASE_URL}/pedidos-pendentes`, httpMethod: 'post' },
5
8
  opcoesFiltro: { endpoint: `${DASHBOARD_BASE_URL}/opcoes-filtro`, httpMethod: 'get' },
6
9
  }
@@ -9,10 +9,7 @@ const requisicaoCompra = {
9
9
  findHistoricosMovimentacao: { endpoint: `${REQUISICAO_COMPRA_BASE_URL}/{id}/find-historicos-movimentacao-itens`, httpMethod: 'get' },
10
10
  findDetalheItemRequisicaoCompraMonitor: { endpoint: `${REQUISICAO_COMPRA_BASE_URL}/{id}/detalhes-itens`, httpMethod: 'get' },
11
11
  adicionarObservacao: { endpoint: `${REQUISICAO_COMPRA_BASE_URL}/{id}/observacao`, httpMethod: 'post' },
12
- lock: { endpoint: `${REQUISICAO_COMPRA_BASE_URL}/lock`, httpMethod: 'post' },
13
- dashboard: { endpoint: `${REQUISICAO_COMPRA_BASE_URL}/dashboard`, httpMethod: 'post' },
14
- dashboardRankings: { endpoint: `${REQUISICAO_COMPRA_BASE_URL}/dashboard/rankings`, httpMethod: 'post' },
15
- dashboardComprasDiretas: { endpoint: `${REQUISICAO_COMPRA_BASE_URL}/dashboard/compras-diretas`, httpMethod: 'post' }
12
+ lock: { endpoint: `${REQUISICAO_COMPRA_BASE_URL}/lock`, httpMethod: 'post' }
16
13
  }
17
14
 
18
15
  export default requisicaoCompra
@@ -0,0 +1,11 @@
1
+ const root = '/originacao/api/relatorios-dinamicos'
2
+ const relatoriosDinamicos = {
3
+ catalogo: (base?: string) => `${root}/catalogo${base ? `?base=${encodeURIComponent(base)}` : ''}`,
4
+ findAll: (params?: string) => `${root}${params ? `?${params}` : ''}`,
5
+ add: root,
6
+ findOne: (id: number | string) => `${root}/${id}`,
7
+ editarCompartilhado: (id: number | string) => `${root}/${id}/compartilhado`,
8
+ consultar: (id: number | string) => `${root}/${id}/consultar`,
9
+ exportar: (id: number | string) => `${root}/${id}/exportar`,
10
+ }
11
+ export default relatoriosDinamicos
@@ -36,8 +36,10 @@ import tarefaLiquidacao from "./config/tarefaLiquidacao";
36
36
  import campoFixo from "./config/campoFixo";
37
37
  import relatorioAuditoriaMensal from "./config/relatorios/relatorioAuditoriaMensal";
38
38
  import alteracaoTransgenia from "./config/alteracaoTransgenia";
39
+ import relatoriosDinamicos from "./config/relatoriosDinamicos";
39
40
 
40
41
  const originacao = {
42
+ relatoriosDinamicos,
41
43
  alteracaoTransgenia,
42
44
  preContrato,
43
45
  contrato,
@@ -0,0 +1,13 @@
1
+ import type { NavigationTree } from '@/@types/navigation'
2
+ const subMenuRelatoriosDinamicos: NavigationTree = {
3
+ key: 'originacao.relatoriosDinamicos',
4
+ path: '/originacao/relatorios-dinamicos',
5
+ title: 'Relatórios dinâmicos',
6
+ translateKey: 'modules.originacao.relatoriosDinamicos.title',
7
+ icon: 'form',
8
+ type: 'item',
9
+ authority: [],
10
+ subMenu: [],
11
+ forceShowTitle: true,
12
+ }
13
+ export default subMenuRelatoriosDinamicos
@@ -1,8 +1,10 @@
1
1
  import { NavigationTree } from "@/@types/navigation"
2
2
  import relatorioAuditoriaMensalSubmenu from "./config/relatorioAuditoriaMensal.submenu"
3
+ import subMenuRelatoriosDinamicos from '../../modules.submenu/originacao/relatoriosDinamicos/submenu.relatoriosDinamicos'
3
4
 
4
5
  const relatorioSubmenu: NavigationTree[] = [
5
6
  relatorioAuditoriaMensalSubmenu,
7
+ subMenuRelatoriosDinamicos,
6
8
  ]
7
9
 
8
10
  export default relatorioSubmenu
@@ -1,14 +1,43 @@
1
1
  import ApiService from "@/services/ApiService";
2
2
  import endpointConfig from "@base/configs/endpoints.config/endpoints.navigation";
3
3
  import {
4
+ TDashboardComprasDiretasPayload,
5
+ TDashboardComprasDiretasResponse,
4
6
  TDashboardOpcoesFiltro,
5
7
  TDashboardPedidosPendentesPayload,
6
8
  TDashboardPedidosPendentesResponse,
9
+ TDashboardRankingsPayload,
10
+ TDashboardRankingsResponse,
11
+ TDashboardRequisicaoCompraPayload,
12
+ TDashboardRequisicaoCompraResponse,
7
13
  } from "@base/@types/models/compras/Dashboard";
8
14
 
9
- // compras e requisições e compras diretas usam /requisicao-compra/dashboard/* (RequisicaoCompraService)
10
15
  const DASHBOARD_ENDPOINT = endpointConfig.compras.dashboard;
11
16
 
17
+ export async function apiGetDashboardComprasRequisicoes(data: TDashboardRequisicaoCompraPayload) {
18
+ return ApiService.fetchDataWithAxios<TDashboardRequisicaoCompraResponse>({
19
+ url: DASHBOARD_ENDPOINT.comprasRequisicoes.endpoint,
20
+ method: DASHBOARD_ENDPOINT.comprasRequisicoes.httpMethod,
21
+ data,
22
+ })
23
+ }
24
+
25
+ export async function apiGetDashboardRankings(data: TDashboardRankingsPayload) {
26
+ return ApiService.fetchDataWithAxios<TDashboardRankingsResponse>({
27
+ url: DASHBOARD_ENDPOINT.rankings.endpoint,
28
+ method: DASHBOARD_ENDPOINT.rankings.httpMethod,
29
+ data,
30
+ })
31
+ }
32
+
33
+ export async function apiGetDashboardComprasDiretas(data: TDashboardComprasDiretasPayload) {
34
+ return ApiService.fetchDataWithAxios<TDashboardComprasDiretasResponse>({
35
+ url: DASHBOARD_ENDPOINT.comprasDiretas.endpoint,
36
+ method: DASHBOARD_ENDPOINT.comprasDiretas.httpMethod,
37
+ data,
38
+ })
39
+ }
40
+
12
41
  export async function apiGetDashboardPedidosPendentes(data: TDashboardPedidosPendentesPayload) {
13
42
  return ApiService.fetchDataWithAxios<TDashboardPedidosPendentesResponse>({
14
43
  url: DASHBOARD_ENDPOINT.pedidosPendentes.endpoint,
@@ -2,14 +2,6 @@ import ApiService from "@/services/ApiService";
2
2
  import { IFilterParams, TQueryResponse } from "@base/@types/api";
3
3
  import endpointConfig from "@base/configs/endpoints.config/endpoints.navigation";
4
4
  import { TObservacaoRequisicaoCompra } from "@base/@types/models/compras/RequisicaoCompra";
5
- import {
6
- TDashboardComprasDiretasPayload,
7
- TDashboardComprasDiretasResponse,
8
- TDashboardRankingsPayload,
9
- TDashboardRankingsResponse,
10
- TDashboardRequisicaoCompraPayload,
11
- TDashboardRequisicaoCompraResponse,
12
- } from "@base/@types/models/compras/Dashboard";
13
5
 
14
6
  const REQUISICAO_COMPRA_ENDPOINT = endpointConfig.compras.requisicaoCompra;
15
7
 
@@ -80,28 +72,4 @@ export async function apiSetRequisicaoCompraLock(idRequisicaoCompra: number, loc
80
72
  method: REQUISICAO_COMPRA_ENDPOINT.lock.httpMethod,
81
73
  params: { idRequisicaoCompra, lock }
82
74
  })
83
- }
84
-
85
- export async function apiDashboardRequisicaoCompra(data: TDashboardRequisicaoCompraPayload) {
86
- return ApiService.fetchDataWithAxios<TDashboardRequisicaoCompraResponse>({
87
- url: REQUISICAO_COMPRA_ENDPOINT.dashboard.endpoint,
88
- method: REQUISICAO_COMPRA_ENDPOINT.dashboard.httpMethod,
89
- data
90
- })
91
- }
92
-
93
- export async function apiDashboardRankingsRequisicaoCompra(data: TDashboardRankingsPayload) {
94
- return ApiService.fetchDataWithAxios<TDashboardRankingsResponse>({
95
- url: REQUISICAO_COMPRA_ENDPOINT.dashboardRankings.endpoint,
96
- method: REQUISICAO_COMPRA_ENDPOINT.dashboardRankings.httpMethod,
97
- data
98
- })
99
- }
100
-
101
- export async function apiDashboardComprasDiretasRequisicaoCompra(data: TDashboardComprasDiretasPayload) {
102
- return ApiService.fetchDataWithAxios<TDashboardComprasDiretasResponse>({
103
- url: REQUISICAO_COMPRA_ENDPOINT.dashboardComprasDiretas.endpoint,
104
- method: REQUISICAO_COMPRA_ENDPOINT.dashboardComprasDiretas.httpMethod,
105
- data
106
- })
107
75
  }
@@ -21,3 +21,4 @@ export * from './vinculoOperacaoLiquidacao/vinculoOperacaoLiquidacaoService';
21
21
  export * from './alteracaoTransgenia/alteracaoTransgeniaService';
22
22
  export * from './tarefaLiquidacao/tarefaLiquidacaoService';
23
23
  export * from './campoFixo/campoFixoService';
24
+ export * from './relatoriosDinamicos/relatoriosDinamicosService';
@@ -0,0 +1,120 @@
1
+ import ApiService from '@/services/ApiService'
2
+ import { isAxiosError } from 'axios'
3
+ import AxiosBase from '@/services/axios/AxiosBase'
4
+ import endpointNavigationConfig from '@base/configs/endpoints.config/endpoints.navigation'
5
+ import type { TQueryResponse } from '@base/@types/api'
6
+ import type {
7
+ TBaseRelatorioDinamico,
8
+ TCatalogoRelatorioDinamico,
9
+ TRelatorioDinamicoResponse,
10
+ TCriarRelatorioDinamicoRequest,
11
+ TEditarRelatorioDinamicoRequest,
12
+ TConsultarRelatorioDinamicoRequest,
13
+ TExportarRelatorioDinamicoRequest,
14
+ TResultadoRelatorioDinamico,
15
+ } from '@base/@types/api/response/originacao/TRelatorioDinamicoResponse'
16
+
17
+ const endpoints = endpointNavigationConfig.originacao.relatoriosDinamicos
18
+ export const apiCatalogoRelatorioDinamico = (base?: TBaseRelatorioDinamico) =>
19
+ ApiService.fetchDataWithAxios<TCatalogoRelatorioDinamico>({
20
+ url: endpoints.catalogo(base),
21
+ method: 'get',
22
+ })
23
+ export const apiListarRelatoriosDinamicos = (params?: string) =>
24
+ ApiService.fetchDataWithAxios<TQueryResponse<TRelatorioDinamicoResponse>>({
25
+ url: endpoints.findAll(params),
26
+ method: 'get',
27
+ })
28
+ export const apiObterRelatorioDinamico = (id: string | number) =>
29
+ ApiService.fetchDataWithAxios<TRelatorioDinamicoResponse>({
30
+ url: endpoints.findOne(id),
31
+ method: 'get',
32
+ })
33
+ export const apiCriarRelatorioDinamico = (
34
+ data: TCriarRelatorioDinamicoRequest,
35
+ ) =>
36
+ ApiService.fetchDataWithAxios<TRelatorioDinamicoResponse>({
37
+ url: endpoints.add,
38
+ method: 'post',
39
+ data,
40
+ })
41
+ export const apiEditarRelatorioDinamico = (
42
+ id: string | number,
43
+ data: TEditarRelatorioDinamicoRequest,
44
+ compartilhado: boolean,
45
+ ) =>
46
+ ApiService.fetchDataWithAxios<TRelatorioDinamicoResponse>({
47
+ url: compartilhado
48
+ ? endpoints.editarCompartilhado(id)
49
+ : endpoints.findOne(id),
50
+ method: 'put',
51
+ data,
52
+ })
53
+ export const apiExcluirRelatorioDinamico = (id: string | number) =>
54
+ ApiService.fetchDataWithAxios<void>({
55
+ url: endpoints.findOne(id),
56
+ method: 'delete',
57
+ })
58
+ export const apiConsultarRelatorioDinamico = (
59
+ id: string | number,
60
+ data: TConsultarRelatorioDinamicoRequest,
61
+ ) =>
62
+ ApiService.fetchDataWithAxios<TResultadoRelatorioDinamico>({
63
+ url: endpoints.consultar(id),
64
+ method: 'post',
65
+ data,
66
+ })
67
+
68
+ export async function apiExportarRelatorioDinamico(
69
+ id: string | number,
70
+ data: TExportarRelatorioDinamicoRequest,
71
+ ): Promise<{ arquivo: Blob; nome: string }> {
72
+ try {
73
+ const response = await AxiosBase<Blob>({
74
+ url: endpoints.exportar(id),
75
+ method: 'post',
76
+ data,
77
+ responseType: 'blob',
78
+ })
79
+ const disposition = String(
80
+ response.headers['content-disposition'] ?? '',
81
+ )
82
+ const encoded = /filename\*=UTF-8''([^;]+)/i.exec(disposition)?.[1]
83
+ const plain = /filename="?([^";]+)"?/i.exec(disposition)?.[1]
84
+ let nome = plain ?? `relatorio-${id}.xlsx`
85
+ if (encoded) {
86
+ try {
87
+ nome = decodeURIComponent(encoded)
88
+ } catch {
89
+ nome = `relatorio-${id}.xlsx`
90
+ }
91
+ }
92
+ return { arquivo: response.data, nome: nome.replace(/[\\/]/g, '_') }
93
+ } catch (error: unknown) {
94
+ const response = isAxiosError(error) ? error.response : undefined
95
+ if (response?.data instanceof Blob) {
96
+ const text = await response.data.text()
97
+ let message = 'Não foi possível exportar o relatório.'
98
+ try {
99
+ const problem: unknown = JSON.parse(text)
100
+ if (problem && typeof problem === 'object') {
101
+ if (
102
+ 'detail' in problem &&
103
+ typeof problem.detail === 'string'
104
+ )
105
+ message = problem.detail
106
+ else if (
107
+ 'title' in problem &&
108
+ typeof problem.title === 'string'
109
+ )
110
+ message = problem.title
111
+ }
112
+ } catch {
113
+ if (text && text.length < 500 && !text.includes('<html'))
114
+ message = text
115
+ }
116
+ throw new Error(message)
117
+ }
118
+ throw error
119
+ }
120
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbe-agro/client-core",
3
- "version": "5.6.289",
3
+ "version": "5.6.291",
4
4
  "description": "Biblioteca principal de componentes e utilidades para os microfrontends do Orbe Agro.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",