From df46a60b813dae8e8cbea625faa00e8b735c947b Mon Sep 17 00:00:00 2001 From: Keven Date: Mon, 8 Dec 2025 16:32:37 -0300 Subject: [PATCH] =?UTF-8?q?fix(Prettier):=20Fix=20autom=C3=A1tico=20do=20c?= =?UTF-8?q?=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .code-workspace | 49 +- .../administrativo/cartorio/page.tsx | 6 +- .../administrativo/censec/page.tsx | 6 +- .../financeiro/calculo-rapido/page.tsx | 10 +- .../[emolumentoPeriodoId]/itens/page.tsx | 24 +- .../financeiro/emolumentos/page.tsx | 10 +- .../financeiro/periodos/page.tsx | 10 +- .../administrativo/gramatica/page.tsx | 10 +- .../administrativo/imoveis/dashboard/page.tsx | 6 +- .../administrativo/pessoas/dashboard/page.tsx | 6 +- .../administrativo/selos/grupos/page.tsx | 10 +- .../administrativo/tipos-servicos/page.tsx | 10 +- .../valores-de-servicos/page.tsx | 12 +- src/app/(protected)/layout.tsx | 5 +- .../detalhes/[servicoPedidoId]/page.tsx | 17 +- src/app/(protected)/servicos/balcao/page.tsx | 8 +- .../balcao/pedido/[servicoPedidoId]/page.tsx | 17 +- .../servicos/balcao/pedido/page.tsx | 8 +- .../(protected)/servicos/dashboard/page.tsx | 8 +- src/app/globals.css | 139 ++- src/components/app-sidebar.tsx | 34 +- src/components/login-form.tsx | 1 - src/components/nav-user.tsx | 32 +- src/components/theme-provider.tsx | 26 +- src/components/ui/badge.tsx | 41 +- src/components/ui/button-group.tsx | 47 +- src/components/ui/button.tsx | 52 +- src/components/ui/card.tsx | 67 +- src/components/ui/chart.tsx | 86 +- src/components/ui/input.tsx | 18 +- src/components/ui/item.tsx | 133 +- src/components/ui/progress.tsx | 17 +- src/components/ui/scroll-area.tsx | 28 +- src/components/ui/select.tsx | 89 +- src/components/ui/separator.tsx | 18 +- src/components/ui/sidebar.tsx | 5 +- .../components/GCalculo/GCalculoColumns.tsx | 2 - .../components/GCalculo/GCalculoForm.tsx | 26 +- .../components/GCalculo/GCalculoIndex.tsx | 11 +- .../components/GCalculo/GCalculoTable.tsx | 3 - .../components/GCartorio/GCartorioForm.tsx | 1 - .../components/GCartorio/GCartorioIndex.tsx | 2 - .../GEmolumento/GEmolumentoColumns.tsx | 6 +- .../GEmolumento/GEmolumentoForm.tsx | 10 +- .../GEmolumento/GEmolumentoIndex.tsx | 1 - .../GEmolumento/GEmolumentoServicoSelect.tsx | 233 ++-- .../GEmolumento/GEmolumentoTable.tsx | 14 +- .../GEmolumentoItem/GEmolumentoItemForm.tsx | 10 +- .../GEmolumentoItem/GEmolumentoItemIndex.tsx | 14 +- .../GEmolumentoItem/GEmolumentoItemTable.tsx | 6 +- .../GEmolumentoPeriodoForm.tsx | 5 +- .../GEmolumentoPeriodoIndex.tsx | 8 +- .../GEmolumentoPeriodoSelect.tsx | 176 +-- .../GEmolumentoPeriodoTable.tsx | 6 +- .../components/GGramatica/GGramaticaForm.tsx | 31 +- .../components/GGramatica/GGramaticaIndex.tsx | 2 - .../GNaturezaTitulo/GNaturezaTituloIndex.tsx | 7 +- .../GNaturezaTitulo/GNaturezaTituloTable.tsx | 6 +- .../components/GSeloGrupo/GSeloGrupoForm.tsx | 20 +- .../components/GSeloGrupo/GSeloGrupoIndex.tsx | 2 - .../components/GUsuario/GUsuarioSelect.tsx | 172 ++- .../components/TImovel/TImovelDashboard.tsx | 693 ++++++----- .../components/TPessoa/TPessoaDashboard.tsx | 1069 ++++++++++------- .../TPessoaFisica/TPessoaFisicaForm.tsx | 21 +- .../TPessoa/TPessoaTableFormColumnsDialog.tsx | 5 +- .../TPessoa/TPessoaTableFormDialog.tsx | 36 +- .../TPessoa/TPessoaTableFormSubview.tsx | 199 ++- .../TServicoTipo/TServicoTipoColumns.tsx | 5 +- .../TServicoTipo/TServicoTipoForm.tsx | 8 +- .../TServicoTipo/TServicoTipoIndex.tsx | 5 - .../TServicoTipo/TServicoTipoSelect.tsx | 223 ++-- .../TServicoTipo/TServicoTipoTable.tsx | 3 +- .../TTBReconhecimentoTipoForm.tsx | 4 +- .../TTBReconhecimentoTipoIndex.tsx | 6 +- .../CCaixaServico/CCaixaServicoIndexData.ts | 1 - .../data/GCalculo/GCalculoCalcularData.ts | 1 - .../data/GCalculo/GCalculoServicoData.ts | 1 - .../data/GEmolumento/GEmolumentoDeleteData.ts | 5 +- .../data/GEmolumento/GEmolumentoIndexData.ts | 7 +- .../data/GEmolumento/GEmolumentoSaveData.ts | 5 +- .../GEmolumentoItemDeleteData.ts | 5 +- .../GEmolumentoItemIndexData.ts | 7 +- .../GEmolumentoItemSaveData.ts | 5 +- .../GEmolumentoPeriodoDeleteData.ts | 8 +- .../GEmolumentoPeriodoIndexData.ts | 4 +- .../GEmolumentoPeriodoSaveData.ts | 4 +- .../data/GGramatica/GGramaticaDeleteData.ts | 4 +- .../GNaturezaTituloDeleteData.ts | 4 +- .../GNaturezaTituloIndexData.ts | 4 +- .../GNaturezaTituloSaveData.ts | 4 +- .../data/GSeloGrupo/GSeloGrupoDeleteData.ts | 4 +- .../data/GUsuario/GUsuarioIndexData.ts | 1 - .../TServicoTipo/TServicoTipoIndexData.ts | 3 - .../TTBReconhecimentoTipoIndexData.ts | 3 +- .../hooks/GCalculo/useGCalculoDeleteHook.ts | 4 +- .../hooks/GCalculo/useGCalculoFormHook.ts | 11 +- .../hooks/GCalculo/useGCalculoIndexHook.ts | 4 +- .../hooks/GCalculo/useGCalculoSaveHook.ts | 7 +- .../GEmolumento/useGEmolumentoFormHook.ts | 9 +- .../GEmolumento/useGEmolumentoReadHook.ts | 2 - .../useGEmolumentoItemDeleteHook.ts | 1 - .../useGEmolumentoItemIndexHook.ts | 1 - .../useGEmolumentoItemSaveHook.ts | 1 - .../useGEmolumentoPeriodoFormHook.ts | 5 +- .../useGNaturezaTituloFormHook.ts | 5 +- .../hooks/GUsuario/useGUsuarioIndexHook.ts | 2 - .../useTPessoaFisicaIndexHook.ts | 2 +- .../TServicoTipo/useTServicoTipoFormHook.ts | 15 +- .../TServicoTipo/useTServicoTipoReadHook.ts | 1 - .../useTTBReconhecimentoTipoReadHook.ts | 1 - .../GCartorio/GCartorioInterface.ts | 2 +- .../GEmolumento/GEmolumentoSelectInterface.ts | 8 +- .../GEmolumento/GEmolumentoTableInterface.ts | 2 +- .../GEmolumentoItemIndexInterface.ts | 8 +- .../GEmolumentoPeriodoInterface.ts | 10 +- .../GGramatica/GGramaticaInterface.ts | 16 +- .../GNaturezaTituloInterface.ts | 22 +- .../GUsuario/GUsuarioIndexInterface.ts | 4 +- .../TPessoaTableDetailSubviewInterface.ts | 12 +- .../TPessoa/TPessoaTableFormInterface.ts | 1 - .../TPessoaTableFormSubviewInterface.ts | 16 +- .../TServicoTipo/TServicoTipoFormInterface.ts | 10 +- .../TServicoTipo/TServicoTipoIndexInteface.ts | 2 +- .../TServicoTipo/TServicoTipoInterface.ts | 4 +- .../TServicoTipoSelectInterface.ts | 6 +- .../TServicoTipoTableInterface.ts | 2 +- .../TTBReconhecimentoTipoInterface.ts | 2 +- .../schemas/GCalculo/GCalculoSchema.ts | 2 +- .../schemas/GCartorio/GCartorioSchema.ts | 4 +- .../schemas/GEmolumento/GEmolumentoSchema.ts | 4 +- .../GEmolumentoItem/GEmolumentoItemSchema.ts | 2 +- .../GEmolumentoPeriodoSchema.ts | 4 +- .../schemas/GGramatica/GGramaticaSchema.ts | 4 +- .../GNaturezaTitulo/GNaturezaTituloSchema.ts | 8 +- .../schemas/GSeloGrupo/GSeloGrupoSchema.ts | 2 +- .../TServicoTipo/TServicoTipoSchema.ts | 6 +- .../GCalculo/GCalculoCalcularService.ts | 1 - .../GCalculo/GCalculoServicoService.ts | 35 +- .../GCartorio/GCartorioDeleteService.ts | 2 - .../GEmolumento/GEmolumentoDeleteService.ts | 2 - .../GEmolumento/GEmolumentoIndexService.ts | 2 - .../GEmolumentoItemDeleteService.ts | 7 +- .../GEmolumentoItemIndexService.ts | 9 +- .../GEmolumentoItemSaveService.ts | 1 - .../GEmolumentoPeriodoDeleteService.ts | 6 +- .../GEmolumentoPeriodoIndexService.ts | 4 +- .../GEmolumentoPeriodoSaveService.ts | 4 +- .../GGramatica/GGramaticaDeleteService.ts | 2 - .../GNaturezaTituloDeleteService.ts | 4 +- .../GNaturezaTituloIndexService.ts | 4 +- .../TServicoPedido/HandleAddItemAction.ts | 23 +- .../HandleSelectTServicoTipoAction.ts | 40 +- .../HandleSelectTServicoTipoInterface.ts | 12 +- .../TServicoPedidoItemPreparePayload.ts | 46 +- .../TPessoaCartao/TPessoaCartaoForm.tsx | 162 ++- .../TServicoItemPedidoFormTable.tsx | 54 +- .../TServicoItemPedidoList.tsx | 367 +++--- .../TServicoItemPedidoResumo.tsx | 127 +- .../TServicoPedido/TServicoPedidoColumns.tsx | 18 +- .../TServicoPedidoDashboard.tsx | 555 +++++---- .../TServicoPedido/TServicoPedidoDetails.tsx | 194 ++- .../TServicoPedidoDetailsPagamento.tsx | 15 +- .../TServicoPedido/TServicoPedidoForm.tsx | 371 +++--- .../TServicoPedido/TServicoPedidoIndex.tsx | 7 +- .../TServicoPedido/TServicoPedidoTable.tsx | 6 +- .../TServicoItemPedidoAtivarData.ts | 13 +- .../TServicoItemPedidoCancelarData.ts | 12 +- .../TServicoItemPedidoDeleteData.ts | 8 +- .../TServicoItemPedidoIndexData.ts | 9 +- .../TServicoItemPedidoSaveData.ts | 4 +- .../TServicoItemPedidoShowData.ts | 5 +- .../TServicoPedidoAtivarData.ts | 6 +- .../TServicoPedidoCancelarData.ts | 6 +- .../TServicoPedidoDeleteData.ts | 4 +- .../TServicoPedidoLoadParamsData.ts | 4 +- .../TServicoPedido/TServicoPedidoSaveData.ts | 4 +- .../TServicoPedido/TServicoPedidoShowData.ts | 5 +- .../useTServicoItemPedidoAtivarHook.ts | 10 +- .../useTServicoItemPedidoCalculoHook.ts | 4 +- .../useTServicoItemPedidoCancelarHook.ts | 9 +- .../useTServicoItemPedidoFormHook.ts | 5 +- .../useTServicoItemPedidoIndexHook.ts | 10 +- .../useTServicoItemPedidoLocalAddHook.ts | 6 +- .../useTServicoItemPedidoSaveHook.ts | 4 +- .../useTServicoItemPedidoShowHook.ts | 7 +- .../useTServicoPedidoAtivarHook.ts | 3 - .../useTServicoPedidoCancelarHook.ts | 3 - .../useTServicoPedidoFormHook.ts | 17 +- .../useTServicoPedidoLoadParamsHook.ts | 1 - .../useTServicoPedidoSaveHook.ts | 3 - .../useTServicoPedidoShowHook.ts | 8 +- .../TPessoaCartaoFormInterface.ts | 10 +- .../interfaces/TServico/TServicoInterface.ts | 4 +- .../TServicoItemPedidoSubviewInterface.ts | 8 +- .../TServicoItemPedidoAddInterface.ts | 42 +- ...rvicoItemPedidoCalculoResponseInterface.ts | 42 +- .../TServicoItemPedidoFormTableInterface.ts | 17 +- .../TServicoItemPedidoIntefarce.ts | 160 +-- .../TServicoItemPedidoListInterface.ts | 8 +- .../TServicoItemPedidoTableInterface.ts | 2 +- .../TServicoPedidoDetailsInterface.ts | 4 +- ...TServicoPedidoDetailsPagamentoInterface.ts | 10 +- .../TServicoPedidoFormInterface.ts | 2 +- .../TServicoPedido/TServicoPedidoInterface.ts | 106 +- .../TServicoItemPedidoSchema.ts | 140 +-- .../TServicoPedidoFormSchema.ts | 66 +- .../TServicoPedido/TServicoPedidoSchema.ts | 53 +- .../TServicoItemPedidoAtivarService.ts | 7 +- .../TServicoItemPedidoCancelarService.ts | 6 +- .../TServicoItemPedidoDeleteService.ts | 6 +- .../TServicoItemPedidoIndexService.ts | 9 +- .../TServicoItemPedidoSaveService.ts | 5 +- .../TServicoItemPedidoShowService.ts | 10 +- .../TServicoPedidoAtivarService.ts | 5 +- .../TServicoPedidoCancelarService.ts | 4 +- .../TServicoPedidoDeleteService.ts | 6 +- .../TServicoPedidoLoadParamsService.ts | 4 +- .../TServicoPedidoShowService.ts | 2 - src/shared/actions/CPF/FormatCPFCNPJForm.ts | 34 +- src/shared/actions/CPF/UnmaskCPFCNPJForm.ts | 4 +- src/shared/actions/data/ToMoney.ts | 6 +- src/shared/actions/money/FormatMoney.ts | 8 +- src/shared/components/dataTable/DataTable.tsx | 72 +- .../loadingButton/LoadingButton.tsx | 2 +- .../ServicosPedidosSituacoesBadge.tsx | 32 +- .../components/sistemas/SistemasSelect.tsx | 4 +- src/shared/components/step/stepNavigator.tsx | 380 +++--- src/shared/components/webcam/WebCamDialog.tsx | 100 +- src/shared/components/webcam/webcam.tsx | 357 +++--- .../data/fingertech/FingerTechCaptureData.ts | 25 +- .../data/fingertech/FingerTechEnrollData.ts | 31 +- .../data/fingertech/FingerTechMatchData.ts | 27 +- .../FingerTech/useFingerTechCaptureHook.ts | 23 +- .../FingerTech/useFingerTechEnrollHook.ts | 25 +- .../FingerTech/useFingerTechMatchHook.ts | 25 +- src/shared/hooks/sound/useSoundHook.ts | 21 +- src/shared/hooks/useRunOnceByKey.ts | 17 +- src/shared/interfaces/GConfigInterface.ts | 24 +- .../interfaces/WebCamDialogInterface.ts | 8 +- .../FingerTech/FingerTechCaptureService.ts | 4 +- .../FingerTech/FingerTechEnrollService.ts | 4 +- .../FingerTech/FingerTechMatchService.ts | 4 +- 242 files changed, 4240 insertions(+), 4415 deletions(-) diff --git a/.code-workspace b/.code-workspace index 0ea3642..4dd6ebb 100644 --- a/.code-workspace +++ b/.code-workspace @@ -1,13 +1,11 @@ { - "folders": [ - { "path": "D:/IIS/Orius/app" } - ], + "folders": [{ "path": "D:/IIS/Orius/app" }], "settings": { // === GERAL === "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll": "explicit", - "source.organizeImports": "explicit" + "source.organizeImports": "explicit", }, "editor.formatOnPaste": false, "editor.formatOnType": false, @@ -23,53 +21,48 @@ "**/dist/**": true, "**/build/**": true, "**/.next/**": true, - "**/.git/**": true + "**/.git/**": true, }, "search.exclude": { "**/node_modules": true, "**/dist": true, "**/.next": true, - "**/.git": true + "**/.git": true, }, // === FRONTEND === "editor.defaultFormatter": "esbenp.prettier-vscode", - "eslint.validate": [ - "javascript", - "javascriptreact", - "typescript", - "typescriptreact" - ], + "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"], "[typescript]": { - "editor.defaultFormatter": "vscode.typescript-language-features" + "editor.defaultFormatter": "vscode.typescript-language-features", }, "[typescriptreact]": { - "editor.defaultFormatter": "vscode.typescript-language-features" + "editor.defaultFormatter": "vscode.typescript-language-features", }, // === TAILWIND === "files.associations": { - "*.css": "tailwindcss" + "*.css": "tailwindcss", }, "tailwindCSS.includeLanguages": { "plaintext": "html", "javascript": "javascript", - "typescriptreact": "typescriptreact" + "typescriptreact": "typescriptreact", }, // === TERMINAIS === "terminal.integrated.profiles.windows": { "Next.js Dev": { "path": "cmd.exe", - "args": ["/k", "cd D:\\IIS\\Orius\\app && npm run dev"] + "args": ["/k", "cd D:\\IIS\\Orius\\app && npm run dev"], }, "Build & Preview": { "path": "cmd.exe", - "args": ["/k", "cd D:\\IIS\\Orius\\app && npm run build && npm run start"] + "args": ["/k", "cd D:\\IIS\\Orius\\app && npm run build && npm run start"], }, "Git Bash": { - "path": "C:\\Program Files\\Git\\bin\\bash.exe" - } + "path": "C:\\Program Files\\Git\\bin\\bash.exe", + }, }, "terminal.integrated.defaultProfile.windows": "Git Bash", @@ -88,8 +81,8 @@ // === MISC === "files.exclude": { "**/.DS_Store": true, - "**/*.log": true - } + "**/*.log": true, + }, }, "launch": { "version": "0.2.0", @@ -101,9 +94,9 @@ "runtimeExecutable": "npm", "runtimeArgs": ["run", "dev"], "cwd": "${workspaceFolder}", - "port": 9229 - } - ] + "port": 9229, + }, + ], }, "extensions": { "recommendations": [ @@ -118,7 +111,7 @@ "streetsidesoftware.code-spell-checker", "eamodio.gitlens", "mhutchie.git-graph", - "donjayamanne.githistory" - ] - } + "donjayamanne.githistory", + ], + }, } diff --git a/src/app/(protected)/(administrativo)/administrativo/cartorio/page.tsx b/src/app/(protected)/(administrativo)/administrativo/cartorio/page.tsx index 082fc3f..2f99685 100644 --- a/src/app/(protected)/(administrativo)/administrativo/cartorio/page.tsx +++ b/src/app/(protected)/(administrativo)/administrativo/cartorio/page.tsx @@ -1,9 +1,7 @@ 'use client'; -import GCartorioIndex from "@/packages/administrativo/components/GCartorio/GCartorioIndex"; +import GCartorioIndex from '@/packages/administrativo/components/GCartorio/GCartorioIndex'; export default function GCartorioPage() { - return ( - < GCartorioIndex /> - ); + return ; } diff --git a/src/app/(protected)/(administrativo)/administrativo/censec/page.tsx b/src/app/(protected)/(administrativo)/administrativo/censec/page.tsx index d5077cc..24a0eba 100644 --- a/src/app/(protected)/(administrativo)/administrativo/censec/page.tsx +++ b/src/app/(protected)/(administrativo)/administrativo/censec/page.tsx @@ -1,5 +1,3 @@ export default function TCensecPage() { - return ( -
- ); -} \ No newline at end of file + return
; +} diff --git a/src/app/(protected)/(administrativo)/administrativo/financeiro/calculo-rapido/page.tsx b/src/app/(protected)/(administrativo)/administrativo/financeiro/calculo-rapido/page.tsx index 5c952d6..e6a7383 100644 --- a/src/app/(protected)/(administrativo)/administrativo/financeiro/calculo-rapido/page.tsx +++ b/src/app/(protected)/(administrativo)/administrativo/financeiro/calculo-rapido/page.tsx @@ -1,9 +1,5 @@ -import GCalculoIndex from "@/packages/administrativo/components/GCalculo/GCalculoIndex"; +import GCalculoIndex from '@/packages/administrativo/components/GCalculo/GCalculoIndex'; export default function GEmolumentoPeriodoPage() { - - return ( - - ); - -} \ No newline at end of file + return ; +} diff --git a/src/app/(protected)/(administrativo)/administrativo/financeiro/emolumentos/[emolumentoId]/[emolumentoPeriodoId]/itens/page.tsx b/src/app/(protected)/(administrativo)/administrativo/financeiro/emolumentos/[emolumentoId]/[emolumentoPeriodoId]/itens/page.tsx index 66406ff..5e8788d 100644 --- a/src/app/(protected)/(administrativo)/administrativo/financeiro/emolumentos/[emolumentoId]/[emolumentoPeriodoId]/itens/page.tsx +++ b/src/app/(protected)/(administrativo)/administrativo/financeiro/emolumentos/[emolumentoId]/[emolumentoPeriodoId]/itens/page.tsx @@ -1,18 +1,16 @@ -'use client' +'use client'; -import { useParams } from "next/navigation"; +import { useParams } from 'next/navigation'; -import GEmolumentoItemIndex from "@/packages/administrativo/components/GEmolumentoItem/GEmolumentoItemIndex"; +import GEmolumentoItemIndex from '@/packages/administrativo/components/GEmolumentoItem/GEmolumentoItemIndex'; export default function GGramaticaPage() { + const params = useParams(); - const params = useParams(); - - return ( - - ); - -} \ No newline at end of file + return ( + + ); +} diff --git a/src/app/(protected)/(administrativo)/administrativo/financeiro/emolumentos/page.tsx b/src/app/(protected)/(administrativo)/administrativo/financeiro/emolumentos/page.tsx index 6f93b1d..a0d1419 100644 --- a/src/app/(protected)/(administrativo)/administrativo/financeiro/emolumentos/page.tsx +++ b/src/app/(protected)/(administrativo)/administrativo/financeiro/emolumentos/page.tsx @@ -1,9 +1,5 @@ -import GEmolumentoIndex from "@/packages/administrativo/components/GEmolumento/GEmolumentoIndex"; +import GEmolumentoIndex from '@/packages/administrativo/components/GEmolumento/GEmolumentoIndex'; export default function GEmolumentoPeriodoPage() { - - return ( - - ); - -} \ No newline at end of file + return ; +} diff --git a/src/app/(protected)/(administrativo)/administrativo/financeiro/periodos/page.tsx b/src/app/(protected)/(administrativo)/administrativo/financeiro/periodos/page.tsx index 3efdeff..4ddb196 100644 --- a/src/app/(protected)/(administrativo)/administrativo/financeiro/periodos/page.tsx +++ b/src/app/(protected)/(administrativo)/administrativo/financeiro/periodos/page.tsx @@ -1,9 +1,5 @@ -import GEmolumentoPeriodoIndex from "@/packages/administrativo/components/GEmolumentoPeriodo/GEmolumentoPeriodoIndex"; +import GEmolumentoPeriodoIndex from '@/packages/administrativo/components/GEmolumentoPeriodo/GEmolumentoPeriodoIndex'; export default function GEmolumentoPeriodoPage() { - - return ( - - ); - -} \ No newline at end of file + return ; +} diff --git a/src/app/(protected)/(administrativo)/administrativo/gramatica/page.tsx b/src/app/(protected)/(administrativo)/administrativo/gramatica/page.tsx index 990e90a..7c49a6f 100644 --- a/src/app/(protected)/(administrativo)/administrativo/gramatica/page.tsx +++ b/src/app/(protected)/(administrativo)/administrativo/gramatica/page.tsx @@ -1,9 +1,5 @@ -import GGramaticaIndex from "@/packages/administrativo/components/GGramatica/GGramaticaIndex"; +import GGramaticaIndex from '@/packages/administrativo/components/GGramatica/GGramaticaIndex'; export default function GGramaticaPage() { - - return ( - - ); - -} \ No newline at end of file + return ; +} diff --git a/src/app/(protected)/(administrativo)/administrativo/imoveis/dashboard/page.tsx b/src/app/(protected)/(administrativo)/administrativo/imoveis/dashboard/page.tsx index 13011a1..bcff2e5 100644 --- a/src/app/(protected)/(administrativo)/administrativo/imoveis/dashboard/page.tsx +++ b/src/app/(protected)/(administrativo)/administrativo/imoveis/dashboard/page.tsx @@ -1,9 +1,7 @@ 'use client'; -import TImovelDashboard from "@/packages/administrativo/components/TImovel/TImovelDashboard"; +import TImovelDashboard from '@/packages/administrativo/components/TImovel/TImovelDashboard'; export default function TImovelDashboardPage() { - return ( - - ); + return ; } diff --git a/src/app/(protected)/(administrativo)/administrativo/pessoas/dashboard/page.tsx b/src/app/(protected)/(administrativo)/administrativo/pessoas/dashboard/page.tsx index f95fe9f..9ff3036 100644 --- a/src/app/(protected)/(administrativo)/administrativo/pessoas/dashboard/page.tsx +++ b/src/app/(protected)/(administrativo)/administrativo/pessoas/dashboard/page.tsx @@ -1,9 +1,7 @@ 'use client'; -import TPessoaDashboard from "@/packages/administrativo/components/TPessoa/TPessoaDashboard"; +import TPessoaDashboard from '@/packages/administrativo/components/TPessoa/TPessoaDashboard'; export default function TPessoaDashboardPage() { - return ( - - ); + return ; } diff --git a/src/app/(protected)/(administrativo)/administrativo/selos/grupos/page.tsx b/src/app/(protected)/(administrativo)/administrativo/selos/grupos/page.tsx index a3b664f..edb7ba5 100644 --- a/src/app/(protected)/(administrativo)/administrativo/selos/grupos/page.tsx +++ b/src/app/(protected)/(administrativo)/administrativo/selos/grupos/page.tsx @@ -1,9 +1,5 @@ -import GSeloGrupoIndex from "@/packages/administrativo/components/GSeloGrupo/GSeloGrupoIndex"; +import GSeloGrupoIndex from '@/packages/administrativo/components/GSeloGrupo/GSeloGrupoIndex'; export default function GSeloGrupoPage() { - - return ( - - ); - -} \ No newline at end of file + return ; +} diff --git a/src/app/(protected)/(administrativo)/administrativo/tipos-servicos/page.tsx b/src/app/(protected)/(administrativo)/administrativo/tipos-servicos/page.tsx index 6caf1cd..81e391f 100644 --- a/src/app/(protected)/(administrativo)/administrativo/tipos-servicos/page.tsx +++ b/src/app/(protected)/(administrativo)/administrativo/tipos-servicos/page.tsx @@ -1,9 +1,5 @@ -import TServicoTipoIndex from "@/packages/administrativo/components/TServicoTipo/TServicoTipoIndex"; +import TServicoTipoIndex from '@/packages/administrativo/components/TServicoTipo/TServicoTipoIndex'; export default function TServicoTipoPage() { - - return ( - - ); - -} \ No newline at end of file + return ; +} diff --git a/src/app/(protected)/(administrativo)/administrativo/valores-de-servicos/page.tsx b/src/app/(protected)/(administrativo)/administrativo/valores-de-servicos/page.tsx index ea03050..53edd7a 100644 --- a/src/app/(protected)/(administrativo)/administrativo/valores-de-servicos/page.tsx +++ b/src/app/(protected)/(administrativo)/administrativo/valores-de-servicos/page.tsx @@ -1,11 +1,5 @@ -import GNaturezaTituloIndex from "@/packages/administrativo/components/GNaturezaTitulo/GNaturezaTituloIndex"; +import GNaturezaTituloIndex from '@/packages/administrativo/components/GNaturezaTitulo/GNaturezaTituloIndex'; export default function GNaturezaPage() { - - return ( - - ); - -} \ No newline at end of file + return ; +} diff --git a/src/app/(protected)/layout.tsx b/src/app/(protected)/layout.tsx index 9943bc3..ea28012 100644 --- a/src/app/(protected)/layout.tsx +++ b/src/app/(protected)/layout.tsx @@ -19,7 +19,6 @@ import { Toaster } from '@/components/ui/sonner'; import Response from '../../shared/components/response/response'; import { ResponseProvider } from '../../shared/components/response/ResponseContext'; - const geistSans = Geist({ variable: '--font-geist-sans', subsets: ['latin'], @@ -57,9 +56,7 @@ export default function RootLayout({ children }: { children: React.ReactNode }) - - Building Your Application - + Building Your Application diff --git a/src/app/(protected)/servicos/balcao/detalhes/[servicoPedidoId]/page.tsx b/src/app/(protected)/servicos/balcao/detalhes/[servicoPedidoId]/page.tsx index a69a920..19def5f 100644 --- a/src/app/(protected)/servicos/balcao/detalhes/[servicoPedidoId]/page.tsx +++ b/src/app/(protected)/servicos/balcao/detalhes/[servicoPedidoId]/page.tsx @@ -1,16 +1,11 @@ -'use client' +'use client'; -import { useParams } from "next/navigation"; +import { useParams } from 'next/navigation'; -import TServicoPedidoDetails from "@/packages/servicos/components/TServicoPedido/TServicoPedidoDetails"; +import TServicoPedidoDetails from '@/packages/servicos/components/TServicoPedido/TServicoPedidoDetails'; export default function TServicoPedidoDetailsPage() { + const params = useParams(); - const params = useParams(); - - return ( - - ) -} \ No newline at end of file + return ; +} diff --git a/src/app/(protected)/servicos/balcao/page.tsx b/src/app/(protected)/servicos/balcao/page.tsx index cc3187a..a1e7645 100644 --- a/src/app/(protected)/servicos/balcao/page.tsx +++ b/src/app/(protected)/servicos/balcao/page.tsx @@ -1,7 +1,5 @@ -import TServicoPedidoIndex from "@/packages/servicos/components/TServicoPedido/TServicoPedidoIndex"; +import TServicoPedidoIndex from '@/packages/servicos/components/TServicoPedido/TServicoPedidoIndex'; export default function TServicoPedidoPage() { - return ( - - ) -} \ No newline at end of file + return ; +} diff --git a/src/app/(protected)/servicos/balcao/pedido/[servicoPedidoId]/page.tsx b/src/app/(protected)/servicos/balcao/pedido/[servicoPedidoId]/page.tsx index d830198..ad4c574 100644 --- a/src/app/(protected)/servicos/balcao/pedido/[servicoPedidoId]/page.tsx +++ b/src/app/(protected)/servicos/balcao/pedido/[servicoPedidoId]/page.tsx @@ -1,16 +1,11 @@ -'use client' +'use client'; -import { useParams } from "next/navigation"; +import { useParams } from 'next/navigation'; -import TServicoPedidoForm from "@/packages/servicos/components/TServicoPedido/TServicoPedidoForm"; +import TServicoPedidoForm from '@/packages/servicos/components/TServicoPedido/TServicoPedidoForm'; export default function TServicoPedidoPage() { + const params = useParams(); - const params = useParams(); - - return ( - - ) -} \ No newline at end of file + return ; +} diff --git a/src/app/(protected)/servicos/balcao/pedido/page.tsx b/src/app/(protected)/servicos/balcao/pedido/page.tsx index ceb16b2..8b9e22b 100644 --- a/src/app/(protected)/servicos/balcao/pedido/page.tsx +++ b/src/app/(protected)/servicos/balcao/pedido/page.tsx @@ -1,7 +1,5 @@ -import TServicoPedidoForm from "@/packages/servicos/components/TServicoPedido/TServicoPedidoForm" +import TServicoPedidoForm from '@/packages/servicos/components/TServicoPedido/TServicoPedidoForm'; export default function TServicoPedidoPage() { - return ( - - ) -} \ No newline at end of file + return ; +} diff --git a/src/app/(protected)/servicos/dashboard/page.tsx b/src/app/(protected)/servicos/dashboard/page.tsx index df1548f..641a676 100644 --- a/src/app/(protected)/servicos/dashboard/page.tsx +++ b/src/app/(protected)/servicos/dashboard/page.tsx @@ -1,7 +1,5 @@ -import TServicoPedidoDashboard from "@/packages/servicos/components/TServicoPedido/TServicoPedidoDashboard"; +import TServicoPedidoDashboard from '@/packages/servicos/components/TServicoPedido/TServicoPedidoDashboard'; export default function TServicoPedidoPage() { - return ( - - ) -} \ No newline at end of file + return ; +} diff --git a/src/app/globals.css b/src/app/globals.css index 14d7db0..42e5787 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -6,39 +6,44 @@ :root { --background: oklch(0.9911 0 0); --foreground: oklch(0.2988 0.0123 222.4429); - --card: oklch(1.0000 0 0); + --card: oklch(1 0 0); --card-foreground: oklch(0.2988 0.0123 222.4429); --popover: oklch(0.9881 0 0); --popover-foreground: oklch(0.2988 0.0123 222.4429); - --primary: oklch(0.7210 0.1873 47.5640); - --primary-foreground: oklch(1.0000 0 0); + --primary: oklch(0.721 0.1873 47.564); + --primary-foreground: oklch(1 0 0); --secondary: oklch(0.2988 0.0123 222.4429); - --secondary-foreground: oklch(1.0000 0 0); - --muted: oklch(0.9700 0 0); - --muted-foreground: oklch(0.5560 0 0); + --secondary-foreground: oklch(1 0 0); + --muted: oklch(0.97 0 0); + --muted-foreground: oklch(0.556 0 0); --accent: oklch(0.9551 0 0); --accent-foreground: oklch(0.2988 0.0123 222.4429); - --destructive: oklch(0.5770 0.2450 27.3250); + --destructive: oklch(0.577 0.245 27.325); --destructive-foreground: oklch(1 0 0); - --border: oklch(0.9220 0 0); - --input: oklch(0.9220 0 0); - --ring: oklch(0.7080 0 0); - --chart-1: oklch(0.8100 0.1000 252); - --chart-2: oklch(0.6200 0.1900 260); - --chart-3: oklch(0.5500 0.2200 263); - --chart-4: oklch(0.4900 0.2200 264); - --chart-5: oklch(0.4200 0.1800 266); - --sidebar: oklch(1.0000 0 0); + --border: oklch(0.922 0 0); + --input: oklch(0.922 0 0); + --ring: oklch(0.708 0 0); + --chart-1: oklch(0.81 0.1 252); + --chart-2: oklch(0.62 0.19 260); + --chart-3: oklch(0.55 0.22 263); + --chart-4: oklch(0.49 0.22 264); + --chart-5: oklch(0.42 0.18 266); + --sidebar: oklch(1 0 0); --sidebar-foreground: oklch(0.2988 0.0123 222.4429); --sidebar-primary: oklch(0.2364 0.0083 240.2365); - --sidebar-primary-foreground: oklch(0.9850 0 0); - --sidebar-accent: oklch(0.9700 0 0); - --sidebar-accent-foreground: oklch(0.2050 0 0); - --sidebar-border: oklch(0.9220 0 0); - --sidebar-ring: oklch(0.7080 0 0); - --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; - --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; - --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.97 0 0); + --sidebar-accent-foreground: oklch(0.205 0 0); + --sidebar-border: oklch(0.922 0 0); + --sidebar-ring: oklch(0.708 0 0); + --font-sans: + ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, + 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', + 'Segoe UI Symbol', 'Noto Color Emoji'; + --font-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif; + --font-mono: + ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', + monospace; --radius: 0.625rem; --shadow-x: 0; --shadow-y: 1px; @@ -48,11 +53,11 @@ --shadow-color: oklch(0 0 0); --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); - --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 2px 4px -1px hsl(0 0% 0% / 0.10); - --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 4px 6px -1px hsl(0 0% 0% / 0.10); - --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 8px 10px -1px hsl(0 0% 0% / 0.10); + --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1); + --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1); + --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 2px 4px -1px hsl(0 0% 0% / 0.1); + --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 4px 6px -1px hsl(0 0% 0% / 0.1); + --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 8px 10px -1px hsl(0 0% 0% / 0.1); --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25); --tracking-normal: 0em; --spacing: 0.25rem; @@ -68,35 +73,40 @@ --card-foreground: oklch(0.9881 0 0); --popover: oklch(0.2988 0.0123 222.4429); --popover-foreground: oklch(0.9881 0 0); - --primary: oklch(0.7210 0.1873 47.5640); + --primary: oklch(0.721 0.1873 47.564); --primary-foreground: oklch(0.2988 0.0123 222.4429); --secondary: oklch(0.2988 0.0123 222.4429); - --secondary-foreground: oklch(1.0000 0 0); - --muted: oklch(0.2690 0 0); - --muted-foreground: oklch(0.7080 0 0); + --secondary-foreground: oklch(1 0 0); + --muted: oklch(0.269 0 0); + --muted-foreground: oklch(0.708 0 0); --accent: oklch(0.2988 0.0123 222.4429); - --accent-foreground: oklch(1.0000 0 0); - --destructive: oklch(0.7040 0.1910 22.2160); - --destructive-foreground: oklch(0.9850 0 0); - --border: oklch(0.2750 0 0); - --input: oklch(0.3250 0 0); - --ring: oklch(0.5560 0 0); - --chart-1: oklch(0.8100 0.1000 252); - --chart-2: oklch(0.6200 0.1900 260); - --chart-3: oklch(0.5500 0.2200 263); - --chart-4: oklch(0.4900 0.2200 264); - --chart-5: oklch(0.4200 0.1800 266); + --accent-foreground: oklch(1 0 0); + --destructive: oklch(0.704 0.191 22.216); + --destructive-foreground: oklch(0.985 0 0); + --border: oklch(0.275 0 0); + --input: oklch(0.325 0 0); + --ring: oklch(0.556 0 0); + --chart-1: oklch(0.81 0.1 252); + --chart-2: oklch(0.62 0.19 260); + --chart-3: oklch(0.55 0.22 263); + --chart-4: oklch(0.49 0.22 264); + --chart-5: oklch(0.42 0.18 266); --sidebar: oklch(0.2364 0.0083 240.2365); --sidebar-foreground: oklch(0.9881 0 0); - --sidebar-primary: oklch(0.4880 0.2430 264.3760); - --sidebar-primary-foreground: oklch(0.9850 0 0); - --sidebar-accent: oklch(0.2690 0 0); - --sidebar-accent-foreground: oklch(0.9850 0 0); - --sidebar-border: oklch(0.2750 0 0); - --sidebar-ring: oklch(0.4390 0 0); - --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; - --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; - --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --sidebar-primary: oklch(0.488 0.243 264.376); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.269 0 0); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(0.275 0 0); + --sidebar-ring: oklch(0.439 0 0); + --font-sans: + ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, + 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', + 'Segoe UI Symbol', 'Noto Color Emoji'; + --font-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif; + --font-mono: + ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', + monospace; --radius: 0.625rem; --shadow-x: 0; --shadow-y: 1px; @@ -106,11 +116,11 @@ --shadow-color: oklch(0 0 0); --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05); - --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10); - --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 2px 4px -1px hsl(0 0% 0% / 0.10); - --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 4px 6px -1px hsl(0 0% 0% / 0.10); - --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 8px 10px -1px hsl(0 0% 0% / 0.10); + --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1); + --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1); + --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 2px 4px -1px hsl(0 0% 0% / 0.1); + --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 4px 6px -1px hsl(0 0% 0% / 0.1); + --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 8px 10px -1px hsl(0 0% 0% / 0.1); --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25); --shadow-offset-x: 0; --shadow-offset-y: 1px; @@ -152,9 +162,14 @@ --color-sidebar-border: var(--sidebar-border); --color-sidebar-ring: var(--sidebar-ring); - --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; - --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; + --font-sans: + ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, + 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', + 'Segoe UI Symbol', 'Noto Color Emoji'; + --font-mono: + ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', + monospace; + --font-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif; --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); @@ -197,4 +212,4 @@ .bg-brand { background-color: #1a292f; } -} \ No newline at end of file +} diff --git a/src/components/app-sidebar.tsx b/src/components/app-sidebar.tsx index da03eea..67322d9 100644 --- a/src/components/app-sidebar.tsx +++ b/src/components/app-sidebar.tsx @@ -7,7 +7,7 @@ import { HouseIcon, SquareMousePointer, SquareTerminal, - UsersIcon + UsersIcon, } from 'lucide-react'; import Image from 'next/image'; import * as React from 'react'; @@ -27,8 +27,6 @@ import { } from '@/components/ui/sidebar'; import useGUsuarioGetJWTHook from '@/shared/hooks/auth/useGUsuarioGetJWTHook'; - - // This is sample data. const data = { teams: [], @@ -179,33 +177,33 @@ const data = { url: '/administrativo/atos/partes-tipos', }, { - title: "Valores de Serviços", - url: "/administrativo/valores-de-servicos", + title: 'Valores de Serviços', + url: '/administrativo/valores-de-servicos', }, { - title: "Gramatica", - url: "/administrativo/gramatica", + title: 'Gramatica', + url: '/administrativo/gramatica', }, { - title: "Cartório", - url: "/administrativo/cartorio", + title: 'Cartório', + url: '/administrativo/cartorio', }, { - title: "Financeiro/Periodo", - url: "/administrativo/financeiro/periodos", + title: 'Financeiro/Periodo', + url: '/administrativo/financeiro/periodos', }, { - title: "Financeiro/Emolumentos", - url: "/administrativo/financeiro/emolumentos", + title: 'Financeiro/Emolumentos', + url: '/administrativo/financeiro/emolumentos', }, { - title: "Selos/Grupos", - url: "/administrativo/selos/grupos", + title: 'Selos/Grupos', + url: '/administrativo/selos/grupos', }, { - title: "Financeiro/Cálculo Rápido", - url: "/administrativo/financeiro/calculo-rapido", - } + title: 'Financeiro/Cálculo Rápido', + url: '/administrativo/financeiro/calculo-rapido', + }, ], }, ], diff --git a/src/components/login-form.tsx b/src/components/login-form.tsx index c699a03..1a9c6be 100644 --- a/src/components/login-form.tsx +++ b/src/components/login-form.tsx @@ -16,7 +16,6 @@ import LoadingButton from '@/shared/components/loadingButton/LoadingButton'; import { Button } from './ui/button'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from './ui/form'; - type FormValues = z.infer; export function LoginForm({ className, ...props }: React.ComponentProps<'div'>) { diff --git a/src/components/nav-user.tsx b/src/components/nav-user.tsx index 3ba16be..613a798 100644 --- a/src/components/nav-user.tsx +++ b/src/components/nav-user.tsx @@ -1,12 +1,6 @@ 'use client'; -import { - ChevronsUpDown, - LogOut, - Moon, - Sparkles, - Sun, -} from 'lucide-react'; +import { ChevronsUpDown, LogOut, Moon, Sparkles, Sun } from 'lucide-react'; import { useTheme } from 'next-themes'; import { useCallback, useState } from 'react'; @@ -75,9 +69,7 @@ export function NavUser({ user }: { user: GUsuarioAuthenticatedInterface }) { > - - {user.sigla} - + {user.sigla}
@@ -99,9 +91,7 @@ export function NavUser({ user }: { user: GUsuarioAuthenticatedInterface }) {
- - {user.sigla} - + {user.sigla}
@@ -115,15 +105,8 @@ export function NavUser({ user }: { user: GUsuarioAuthenticatedInterface }) { {/* Alternância de tema */} - - {isDark ? ( - - ) : ( - - )} + + {isDark ? : } {isDark ? 'Modo claro' : 'Modo escuro'} @@ -135,10 +118,7 @@ export function NavUser({ user }: { user: GUsuarioAuthenticatedInterface }) { - + Log out diff --git a/src/components/theme-provider.tsx b/src/components/theme-provider.tsx index 58eee5b..7aecdb6 100644 --- a/src/components/theme-provider.tsx +++ b/src/components/theme-provider.tsx @@ -1,17 +1,17 @@ -"use client"; +'use client'; -import { ThemeProvider as NextThemesProvider } from "next-themes"; -import * as React from "react"; +import { ThemeProvider as NextThemesProvider } from 'next-themes'; +import * as React from 'react'; export function ThemeProvider({ children }: { children: React.ReactNode }) { - return ( - - {children} - - ); + return ( + + {children} + + ); } diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx index 25d3788..53790bb 100644 --- a/src/components/ui/badge.tsx +++ b/src/components/ui/badge.tsx @@ -1,46 +1,39 @@ -import { Slot } from "@radix-ui/react-slot" -import { cva, type VariantProps } from "class-variance-authority" -import * as React from "react" +import { Slot } from '@radix-ui/react-slot'; +import { cva, type VariantProps } from 'class-variance-authority'; +import * as React from 'react'; -import { cn } from "@/lib/utils" +import { cn } from '@/lib/utils'; const badgeVariants = cva( - "inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden", + 'inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden', { variants: { variant: { - default: - "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90", + default: 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90', secondary: - "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90", + 'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90', destructive: - "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", - outline: - "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground", + 'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60', + outline: 'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground', }, }, defaultVariants: { - variant: "default", + variant: 'default', }, - } -) + }, +); function Badge({ className, variant, asChild = false, ...props -}: React.ComponentProps<"span"> & - VariantProps & { asChild?: boolean }) { - const Comp = asChild ? Slot : "span" +}: React.ComponentProps<'span'> & VariantProps & { asChild?: boolean }) { + const Comp = asChild ? Slot : 'span'; return ( - - ) + + ); } -export { Badge, badgeVariants } +export { Badge, badgeVariants }; diff --git a/src/components/ui/button-group.tsx b/src/components/ui/button-group.tsx index 91f1a76..f237b82 100644 --- a/src/components/ui/button-group.tsx +++ b/src/components/ui/button-group.tsx @@ -1,8 +1,8 @@ -import { Slot } from "@radix-ui/react-slot" -import { cva, type VariantProps } from "class-variance-authority" +import { Slot } from '@radix-ui/react-slot'; +import { cva, type VariantProps } from 'class-variance-authority'; -import { Separator } from "@/components/ui/separator" -import { cn } from "@/lib/utils" +import { Separator } from '@/components/ui/separator'; +import { cn } from '@/lib/utils'; const buttonGroupVariants = cva( "flex w-fit items-stretch [&>*]:focus-visible:z-10 [&>*]:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md has-[>[data-slot=button-group]]:gap-2", @@ -10,22 +10,22 @@ const buttonGroupVariants = cva( variants: { orientation: { horizontal: - "[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none", + '[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none', vertical: - "flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none", + 'flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none', }, }, defaultVariants: { - orientation: "horizontal", + orientation: 'horizontal', }, - } -) + }, +); function ButtonGroup({ className, orientation, ...props -}: React.ComponentProps<"div"> & VariantProps) { +}: React.ComponentProps<'div'> & VariantProps) { return (
- ) + ); } function ButtonGroupText({ className, asChild = false, ...props -}: React.ComponentProps<"div"> & { - asChild?: boolean +}: React.ComponentProps<'div'> & { + asChild?: boolean; }) { - const Comp = asChild ? Slot : "div" + const Comp = asChild ? Slot : 'div'; return ( - ) + ); } function ButtonGroupSeparator({ className, - orientation = "vertical", + orientation = 'vertical', ...props }: React.ComponentProps) { return ( @@ -67,17 +67,12 @@ function ButtonGroupSeparator({ data-slot="button-group-separator" orientation={orientation} className={cn( - "bg-input relative !m-0 self-stretch data-[orientation=vertical]:h-auto", - className + 'bg-input relative !m-0 self-stretch data-[orientation=vertical]:h-auto', + className, )} {...props} /> - ) + ); } -export { - ButtonGroup, - ButtonGroupSeparator, - ButtonGroupText, - buttonGroupVariants, -} +export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants }; diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx index c7adf97..43969d8 100644 --- a/src/components/ui/button.tsx +++ b/src/components/ui/button.tsx @@ -1,40 +1,38 @@ -import { Slot } from "@radix-ui/react-slot" -import { cva, type VariantProps } from "class-variance-authority" -import * as React from "react" +import { Slot } from '@radix-ui/react-slot'; +import { cva, type VariantProps } from 'class-variance-authority'; +import * as React from 'react'; -import { cn } from "@/lib/utils" +import { cn } from '@/lib/utils'; const buttonVariants = cva( "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", { variants: { variant: { - default: "bg-primary text-primary-foreground hover:bg-primary/90", + default: 'bg-primary text-primary-foreground hover:bg-primary/90', destructive: - "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", + 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60', outline: - "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50", - secondary: - "bg-secondary text-secondary-foreground hover:bg-secondary/80", - ghost: - "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", - link: "text-primary underline-offset-4 hover:underline", + 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50', + secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80', + ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50', + link: 'text-primary underline-offset-4 hover:underline', }, size: { - default: "h-9 px-4 py-2 has-[>svg]:px-3", - sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5", - lg: "h-10 rounded-md px-6 has-[>svg]:px-4", - icon: "size-9", - "icon-sm": "size-8", - "icon-lg": "size-10", + default: 'h-9 px-4 py-2 has-[>svg]:px-3', + sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5', + lg: 'h-10 rounded-md px-6 has-[>svg]:px-4', + icon: 'size-9', + 'icon-sm': 'size-8', + 'icon-lg': 'size-10', }, }, defaultVariants: { - variant: "default", - size: "default", + variant: 'default', + size: 'default', }, - } -) + }, +); function Button({ className, @@ -42,11 +40,11 @@ function Button({ size, asChild = false, ...props -}: React.ComponentProps<"button"> & +}: React.ComponentProps<'button'> & VariantProps & { - asChild?: boolean + asChild?: boolean; }) { - const Comp = asChild ? Slot : "button" + const Comp = asChild ? Slot : 'button'; return ( - ) + ); } -export { Button, buttonVariants } +export { Button, buttonVariants }; diff --git a/src/components/ui/card.tsx b/src/components/ui/card.tsx index 681ad98..78a3afb 100644 --- a/src/components/ui/card.tsx +++ b/src/components/ui/card.tsx @@ -1,92 +1,75 @@ -import * as React from "react" +import * as React from 'react'; -import { cn } from "@/lib/utils" +import { cn } from '@/lib/utils'; -function Card({ className, ...props }: React.ComponentProps<"div">) { +function Card({ className, ...props }: React.ComponentProps<'div'>) { return (
- ) + ); } -function CardHeader({ className, ...props }: React.ComponentProps<"div">) { +function CardHeader({ className, ...props }: React.ComponentProps<'div'>) { return (
- ) + ); } -function CardTitle({ className, ...props }: React.ComponentProps<"div">) { +function CardTitle({ className, ...props }: React.ComponentProps<'div'>) { return (
- ) + ); } -function CardDescription({ className, ...props }: React.ComponentProps<"div">) { +function CardDescription({ className, ...props }: React.ComponentProps<'div'>) { return (
- ) + ); } -function CardAction({ className, ...props }: React.ComponentProps<"div">) { +function CardAction({ className, ...props }: React.ComponentProps<'div'>) { return (
- ) + ); } -function CardContent({ className, ...props }: React.ComponentProps<"div">) { - return ( -
- ) +function CardContent({ className, ...props }: React.ComponentProps<'div'>) { + return
; } -function CardFooter({ className, ...props }: React.ComponentProps<"div">) { +function CardFooter({ className, ...props }: React.ComponentProps<'div'>) { return (
- ) + ); } -export { - Card, - CardHeader, - CardFooter, - CardTitle, - CardAction, - CardDescription, - CardContent, -} +export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent }; diff --git a/src/components/ui/chart.tsx b/src/components/ui/chart.tsx index c18bbd6..17b9c7b 100644 --- a/src/components/ui/chart.tsx +++ b/src/components/ui/chart.tsx @@ -1,11 +1,11 @@ -const ChartTooltip = RechartsPrimitive.Tooltip +const ChartTooltip = RechartsPrimitive.Tooltip; function ChartTooltipContent(props: any) { const { active, payload, className, - indicator = "dot", + indicator = 'dot', hideLabel = false, hideIndicator = false, label, @@ -15,74 +15,64 @@ function ChartTooltipContent(props: any) { color, nameKey, labelKey, - } = props + } = props; - const { config } = useChart() + const { config } = useChart(); const tooltipLabel = React.useMemo(() => { if (hideLabel || !payload?.length) { - return null + return null; } - const [item] = payload - const key = `${labelKey || item?.dataKey || item?.name || "value"}` - const itemConfig = getPayloadConfigFromPayload(config, item, key) + const [item] = payload; + const key = `${labelKey || item?.dataKey || item?.name || 'value'}`; + const itemConfig = getPayloadConfigFromPayload(config, item, key); const value = - !labelKey && typeof label === "string" + !labelKey && typeof label === 'string' ? config[label as keyof typeof config]?.label || label - : itemConfig?.label + : itemConfig?.label; if (labelFormatter) { return ( -
- {labelFormatter(value, payload)} -
- ) +
{labelFormatter(value, payload)}
+ ); } if (!value) { - return null + return null; } - return
{value}
- }, [ - label, - labelFormatter, - payload, - hideLabel, - labelClassName, - config, - labelKey, - ]) + return
{value}
; + }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]); if (!active || !payload?.length) { - return null + return null; } - const nestLabel = payload.length === 1 && indicator !== "dot" + const nestLabel = payload.length === 1 && indicator !== 'dot'; return (
{!nestLabel ? tooltipLabel : null}
{payload - .filter((item: any) => item.type !== "none") + .filter((item: any) => item.type !== 'none') .map((item: any, index: number) => { - const key = `${nameKey || item.name || item.dataKey || "value"}` - const itemConfig = getPayloadConfigFromPayload(config, item, key) - const indicatorColor = color || item.payload?.fill || item.color + const key = `${nameKey || item.name || item.dataKey || 'value'}`; + const itemConfig = getPayloadConfigFromPayload(config, item, key); + const indicatorColor = color || item.payload?.fill || item.color; return (
svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5", - indicator === "dot" && "items-center" + '[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5', + indicator === 'dot' && 'items-center', )} > {formatter && item?.value !== undefined && item.name ? ( @@ -95,19 +85,19 @@ function ChartTooltipContent(props: any) { !hideIndicator && (
@@ -115,8 +105,8 @@ function ChartTooltipContent(props: any) { )}
@@ -134,9 +124,9 @@ function ChartTooltipContent(props: any) { )}
- ) + ); })}
- ) + ); } diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx index 8916905..33b3936 100644 --- a/src/components/ui/input.tsx +++ b/src/components/ui/input.tsx @@ -1,21 +1,21 @@ -import * as React from "react" +import * as React from 'react'; -import { cn } from "@/lib/utils" +import { cn } from '@/lib/utils'; -function Input({ className, type, ...props }: React.ComponentProps<"input">) { +function Input({ className, type, ...props }: React.ComponentProps<'input'>) { return ( - ) + ); } -export { Input } +export { Input }; diff --git a/src/components/ui/item.tsx b/src/components/ui/item.tsx index f67b448..613e309 100644 --- a/src/components/ui/item.tsx +++ b/src/components/ui/item.tsx @@ -1,65 +1,61 @@ -import { Slot } from "@radix-ui/react-slot" -import { cva, type VariantProps } from "class-variance-authority" -import * as React from "react" +import { Slot } from '@radix-ui/react-slot'; +import { cva, type VariantProps } from 'class-variance-authority'; +import * as React from 'react'; -import { Separator } from "@/components/ui/separator" -import { cn } from "@/lib/utils" +import { Separator } from '@/components/ui/separator'; +import { cn } from '@/lib/utils'; -function ItemGroup({ className, ...props }: React.ComponentProps<"div">) { +function ItemGroup({ className, ...props }: React.ComponentProps<'div'>) { return (
- ) + ); } -function ItemSeparator({ - className, - ...props -}: React.ComponentProps) { +function ItemSeparator({ className, ...props }: React.ComponentProps) { return ( - ) + ); } const itemVariants = cva( - "group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", + 'group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]', { variants: { variant: { - default: "bg-transparent", - outline: "border-border", - muted: "bg-muted/50", + default: 'bg-transparent', + outline: 'border-border', + muted: 'bg-muted/50', }, size: { - default: "p-4 gap-4 ", - sm: "py-3 px-4 gap-2.5", + default: 'p-4 gap-4 ', + sm: 'py-3 px-4 gap-2.5', }, }, defaultVariants: { - variant: "default", - size: "default", + variant: 'default', + size: 'default', }, - } -) + }, +); function Item({ className, - variant = "default", - size = "default", + variant = 'default', + size = 'default', asChild = false, ...props -}: React.ComponentProps<"div"> & - VariantProps & { asChild?: boolean }) { - const Comp = asChild ? Slot : "div" +}: React.ComponentProps<'div'> & VariantProps & { asChild?: boolean }) { + const Comp = asChild ? Slot : 'div'; return ( - ) + ); } const itemMediaVariants = cva( - "flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5", + 'flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5', { variants: { variant: { - default: "bg-transparent", + default: 'bg-transparent', icon: "size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4", - image: - "size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover", + image: 'size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover', }, }, defaultVariants: { - variant: "default", + variant: 'default', }, - } -) + }, +); function ItemMedia({ className, - variant = "default", + variant = 'default', ...props -}: React.ComponentProps<"div"> & VariantProps) { +}: React.ComponentProps<'div'> & VariantProps) { return (
- ) + ); } -function ItemContent({ className, ...props }: React.ComponentProps<"div">) { +function ItemContent({ className, ...props }: React.ComponentProps<'div'>) { return (
- ) + ); } -function ItemTitle({ className, ...props }: React.ComponentProps<"div">) { +function ItemTitle({ className, ...props }: React.ComponentProps<'div'>) { return (
- ) + ); } -function ItemDescription({ className, ...props }: React.ComponentProps<"p">) { +function ItemDescription({ className, ...props }: React.ComponentProps<'p'>) { return (

a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4", - className + 'text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance', + '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4', + className, )} {...props} /> - ) + ); } -function ItemActions({ className, ...props }: React.ComponentProps<"div">) { +function ItemActions({ className, ...props }: React.ComponentProps<'div'>) { return ( -

- ) +
+ ); } -function ItemHeader({ className, ...props }: React.ComponentProps<"div">) { +function ItemHeader({ className, ...props }: React.ComponentProps<'div'>) { return (
- ) + ); } -function ItemFooter({ className, ...props }: React.ComponentProps<"div">) { +function ItemFooter({ className, ...props }: React.ComponentProps<'div'>) { return (
- ) + ); } export { @@ -190,4 +169,4 @@ export { ItemDescription, ItemHeader, ItemFooter, -} +}; diff --git a/src/components/ui/progress.tsx b/src/components/ui/progress.tsx index 64c4095..ea0b1ee 100644 --- a/src/components/ui/progress.tsx +++ b/src/components/ui/progress.tsx @@ -1,9 +1,9 @@ -"use client" +'use client'; -import * as ProgressPrimitive from "@radix-ui/react-progress" -import * as React from "react" +import * as ProgressPrimitive from '@radix-ui/react-progress'; +import * as React from 'react'; -import { cn } from "@/lib/utils" +import { cn } from '@/lib/utils'; function Progress({ className, @@ -13,10 +13,7 @@ function Progress({ return ( - ) + ); } -export { Progress } +export { Progress }; diff --git a/src/components/ui/scroll-area.tsx b/src/components/ui/scroll-area.tsx index a342f38..180eb71 100644 --- a/src/components/ui/scroll-area.tsx +++ b/src/components/ui/scroll-area.tsx @@ -1,9 +1,9 @@ -"use client" +'use client'; -import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area" -import * as React from "react" +import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'; +import * as React from 'react'; -import { cn } from "@/lib/utils" +import { cn } from '@/lib/utils'; function ScrollArea({ className, @@ -13,7 +13,7 @@ function ScrollArea({ return ( - ) + ); } function ScrollBar({ className, - orientation = "vertical", + orientation = 'vertical', ...props }: React.ComponentProps) { return ( @@ -38,12 +38,10 @@ function ScrollBar({ data-slot="scroll-area-scrollbar" orientation={orientation} className={cn( - "flex touch-none p-px transition-colors select-none", - orientation === "vertical" && - "h-full w-2.5 border-l border-l-transparent", - orientation === "horizontal" && - "h-2.5 flex-col border-t border-t-transparent", - className + 'flex touch-none p-px transition-colors select-none', + orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent', + orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent', + className, )} {...props} > @@ -52,7 +50,7 @@ function ScrollBar({ className="bg-border relative flex-1 rounded-full" /> - ) + ); } -export { ScrollArea, ScrollBar } +export { ScrollArea, ScrollBar }; diff --git a/src/components/ui/select.tsx b/src/components/ui/select.tsx index ca2a8d5..50861a4 100644 --- a/src/components/ui/select.tsx +++ b/src/components/ui/select.tsx @@ -1,36 +1,30 @@ -"use client" +'use client'; -import * as SelectPrimitive from "@radix-ui/react-select" -import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react" -import * as React from "react" +import * as SelectPrimitive from '@radix-ui/react-select'; +import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react'; +import * as React from 'react'; -import { cn } from "@/lib/utils" +import { cn } from '@/lib/utils'; -function Select({ - ...props -}: React.ComponentProps) { - return +function Select({ ...props }: React.ComponentProps) { + return ; } -function SelectGroup({ - ...props -}: React.ComponentProps) { - return +function SelectGroup({ ...props }: React.ComponentProps) { + return ; } -function SelectValue({ - ...props -}: React.ComponentProps) { - return +function SelectValue({ ...props }: React.ComponentProps) { + return ; } function SelectTrigger({ className, - size = "default", + size = 'default', children, ...props }: React.ComponentProps & { - size?: "sm" | "default" + size?: 'sm' | 'default'; }) { return ( @@ -47,14 +41,14 @@ function SelectTrigger({ - ) + ); } function SelectContent({ className, children, - position = "popper", - align = "center", + position = 'popper', + align = 'center', ...props }: React.ComponentProps) { return ( @@ -62,10 +56,10 @@ function SelectContent({ {children} @@ -84,20 +78,17 @@ function SelectContent({ - ) + ); } -function SelectLabel({ - className, - ...props -}: React.ComponentProps) { +function SelectLabel({ className, ...props }: React.ComponentProps) { return ( - ) + ); } function SelectItem({ @@ -110,7 +101,7 @@ function SelectItem({ data-slot="select-item" className={cn( "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", - className + className, )} {...props} > @@ -121,7 +112,7 @@ function SelectItem({ {children} - ) + ); } function SelectSeparator({ @@ -131,10 +122,10 @@ function SelectSeparator({ return ( - ) + ); } function SelectScrollUpButton({ @@ -144,15 +135,12 @@ function SelectScrollUpButton({ return ( - ) + ); } function SelectScrollDownButton({ @@ -162,15 +150,12 @@ function SelectScrollDownButton({ return ( - ) + ); } export { @@ -184,4 +169,4 @@ export { SelectSeparator, SelectTrigger, SelectValue, -} +}; diff --git a/src/components/ui/separator.tsx b/src/components/ui/separator.tsx index 9e9e35d..86a5e88 100644 --- a/src/components/ui/separator.tsx +++ b/src/components/ui/separator.tsx @@ -1,13 +1,13 @@ -"use client" +'use client'; -import * as SeparatorPrimitive from "@radix-ui/react-separator" -import * as React from "react" +import * as SeparatorPrimitive from '@radix-ui/react-separator'; +import * as React from 'react'; -import { cn } from "@/lib/utils" +import { cn } from '@/lib/utils'; function Separator({ className, - orientation = "horizontal", + orientation = 'horizontal', decorative = true, ...props }: React.ComponentProps) { @@ -17,12 +17,12 @@ function Separator({ decorative={decorative} orientation={orientation} className={cn( - "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px", - className + 'bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px', + className, )} {...props} /> - ) + ); } -export { Separator } +export { Separator }; diff --git a/src/components/ui/sidebar.tsx b/src/components/ui/sidebar.tsx index 79449af..fe23444 100644 --- a/src/components/ui/sidebar.tsx +++ b/src/components/ui/sidebar.tsx @@ -548,7 +548,7 @@ function SidebarMenuAction({ 'peer-data-[size=lg]/menu-button:top-2.5', 'group-data-[collapsible=icon]:hidden', showOnHover && - 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0', + 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0', className, )} {...props} @@ -690,6 +690,5 @@ export { SidebarRail, SidebarSeparator, SidebarTrigger, - useSidebar + useSidebar, }; - diff --git a/src/packages/administrativo/components/GCalculo/GCalculoColumns.tsx b/src/packages/administrativo/components/GCalculo/GCalculoColumns.tsx index 3f5dd33..cff0a26 100644 --- a/src/packages/administrativo/components/GCalculo/GCalculoColumns.tsx +++ b/src/packages/administrativo/components/GCalculo/GCalculoColumns.tsx @@ -14,13 +14,11 @@ import GCalculoInterface from '@/packages/administrativo/interfaces/GCalculo/GCa import GetCapitalize from '@/shared/actions/text/GetCapitalize'; import { SortableHeader } from '@/shared/components/dataTable/SortableHeader'; - export default function GCalculoColumns( onEdit: (item: GCalculoInterface, isEditingFormStatus: boolean) => void, onDelete: (item: GCalculoInterface, isEditingFormStatus: boolean) => void, ): ColumnDef[] { return [ - // Descrição { accessorKey: 'apresentante', diff --git a/src/packages/administrativo/components/GCalculo/GCalculoForm.tsx b/src/packages/administrativo/components/GCalculo/GCalculoForm.tsx index 83236cc..c4d3328 100644 --- a/src/packages/administrativo/components/GCalculo/GCalculoForm.tsx +++ b/src/packages/administrativo/components/GCalculo/GCalculoForm.tsx @@ -38,7 +38,6 @@ export default function GCalculoForm({ onSave, buttonIsLoading, }: GCalculoFormInterface) { - const form = useGCalculoFormHook({}); // Atualiza o formulário quando recebe dados para edição @@ -78,10 +77,7 @@ export default function GCalculoForm({ Apresentante - + @@ -97,10 +93,7 @@ export default function GCalculoForm({ Observação - + @@ -115,10 +108,7 @@ export default function GCalculoForm({ render={({ field }) => ( Emolumento - + )} @@ -133,10 +123,7 @@ export default function GCalculoForm({ Valor Documento - + @@ -152,10 +139,7 @@ export default function GCalculoForm({ Quantidade - + diff --git a/src/packages/administrativo/components/GCalculo/GCalculoIndex.tsx b/src/packages/administrativo/components/GCalculo/GCalculoIndex.tsx index 1831325..d02cfa7 100644 --- a/src/packages/administrativo/components/GCalculo/GCalculoIndex.tsx +++ b/src/packages/administrativo/components/GCalculo/GCalculoIndex.tsx @@ -2,7 +2,6 @@ import { useCallback, useState } from 'react'; - import { useGCalculoDeleteHook } from '@/packages/administrativo/hooks/GCalculo/useGCalculoDeleteHook'; import { useGCalculoIndexHook } from '@/packages/administrativo/hooks/GCalculo/useGCalculoIndexHook'; import { useGCalculoSaveHook } from '@/packages/administrativo/hooks/GCalculo/useGCalculoSaveHook'; @@ -15,7 +14,6 @@ import GCalculoForm from './GCalculoForm'; import GCalculoTable from './GCalculoTable'; export default function GCalculoIndex() { - // Controle de estado do botão const [buttonIsLoading, setButtonIsLoading] = useState(false); @@ -96,9 +94,7 @@ export default function GCalculoIndex() { await deleteGCalculo(itemToDelete); // Atualiza a lista de cálculos em memória, removendo o item pelo índice - setGCalculo((prev) => - prev.filter((_, index) => index !== itemToDelete.index) - ); + setGCalculo((prev) => prev.filter((_, index) => index !== itemToDelete.index)); // Limpa o item selecionado para exclusão setItemToDelete(null); @@ -119,10 +115,7 @@ export default function GCalculoIndex() { }} /> {/* Tabela de andamentos */} - + {/* Modal de confirmação */} {isConfirmOpen && (
- ); } diff --git a/src/packages/administrativo/components/GCartorio/GCartorioForm.tsx b/src/packages/administrativo/components/GCartorio/GCartorioForm.tsx index cf56d1b..e2d4fc4 100644 --- a/src/packages/administrativo/components/GCartorio/GCartorioForm.tsx +++ b/src/packages/administrativo/components/GCartorio/GCartorioForm.tsx @@ -409,7 +409,6 @@ export default function GCartorioForm({ - ); } diff --git a/src/packages/administrativo/components/GCartorio/GCartorioIndex.tsx b/src/packages/administrativo/components/GCartorio/GCartorioIndex.tsx index 6bb6b59..f7c761e 100644 --- a/src/packages/administrativo/components/GCartorio/GCartorioIndex.tsx +++ b/src/packages/administrativo/components/GCartorio/GCartorioIndex.tsx @@ -2,7 +2,6 @@ import { useEffect, useState, useCallback } from 'react'; - import { useGCartorioDeleteHook } from '@/packages/administrativo/hooks/GCartorio/useGCartorioDeleteHook'; import { useGCartorioIndexHook } from '@/packages/administrativo/hooks/GCartorio/useGCartorioIndexHook'; import { useGCartorioSaveHook } from '@/packages/administrativo/hooks/GCartorio/useGCartorioSaveHook'; @@ -16,7 +15,6 @@ import GCartorioForm from './GCartorioForm'; import GCartorioTable from './GCartorioTable'; export default function GCartorioIndex() { - // Controle de estado do botão const [buttonIsLoading, setButtonIsLoading] = useState(false); diff --git a/src/packages/administrativo/components/GEmolumento/GEmolumentoColumns.tsx b/src/packages/administrativo/components/GEmolumento/GEmolumentoColumns.tsx index ffd8300..f1ceee0 100644 --- a/src/packages/administrativo/components/GEmolumento/GEmolumentoColumns.tsx +++ b/src/packages/administrativo/components/GEmolumento/GEmolumentoColumns.tsx @@ -21,9 +21,7 @@ export default function GEmolumentoColumns( onDelete: (item: GEmolumentoInterface, isEditingFormStatus: boolean) => void, emolumentoPeriodoId: number, ): ColumnDef[] { - return [ - // ID { accessorKey: 'emolumento_id', @@ -60,7 +58,9 @@ export default function GEmolumentoColumns( - + Itens diff --git a/src/packages/administrativo/components/GEmolumento/GEmolumentoForm.tsx b/src/packages/administrativo/components/GEmolumento/GEmolumentoForm.tsx index fd28ab2..2a81af6 100644 --- a/src/packages/administrativo/components/GEmolumento/GEmolumentoForm.tsx +++ b/src/packages/administrativo/components/GEmolumento/GEmolumentoForm.tsx @@ -140,7 +140,7 @@ export default function GEmolumentoForm({ control={form.control} name="selo_grupo_id" render={({ field }) => ( - + Selo Grupo @@ -155,7 +155,7 @@ export default function GEmolumentoForm({ control={form.control} name="reg_averb" render={({ field }) => ( - + Registro/Averbação @@ -218,7 +218,8 @@ export default function GEmolumentoForm({ Código Nota - field.onChange(parseNumberInput(e))} @@ -271,7 +272,8 @@ export default function GEmolumentoForm({ Valor Máximo Certidão - field.onChange(parseNumberInput(e))} diff --git a/src/packages/administrativo/components/GEmolumento/GEmolumentoIndex.tsx b/src/packages/administrativo/components/GEmolumento/GEmolumentoIndex.tsx index e3994e3..1ccf3b2 100644 --- a/src/packages/administrativo/components/GEmolumento/GEmolumentoIndex.tsx +++ b/src/packages/administrativo/components/GEmolumento/GEmolumentoIndex.tsx @@ -15,7 +15,6 @@ import GEmolumentoForm from './GEmolumentoForm'; import GEmolumentoTable from './GEmolumentoTable'; export default function GEmolumentoIndex() { - // Controle de estado do botão const [buttonIsLoading, setButtonIsLoading] = useState(false); diff --git a/src/packages/administrativo/components/GEmolumento/GEmolumentoServicoSelect.tsx b/src/packages/administrativo/components/GEmolumento/GEmolumentoServicoSelect.tsx index 11f3347..d1ac230 100644 --- a/src/packages/administrativo/components/GEmolumento/GEmolumentoServicoSelect.tsx +++ b/src/packages/administrativo/components/GEmolumento/GEmolumentoServicoSelect.tsx @@ -5,12 +5,12 @@ import { useCallback, useEffect, useMemo, useState } from 'react'; import { Button } from '@/components/ui/button'; import { - Command, - CommandEmpty, - CommandGroup, - CommandInput, - CommandItem, - CommandList, + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, } from '@/components/ui/command'; import { FormControl } from '@/components/ui/form'; import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'; @@ -21,131 +21,130 @@ import GetCapitalize from '@/shared/actions/text/GetCapitalize'; // Tipagem das props do componente interface GEmolumentoSelectProps { - sistema_id: number; - field: any; - onSelectChange?: (emolumento: { emolumento_id: number; descricao: string }) => void; - className?: string; + sistema_id: number; + field: any; + onSelectChange?: (emolumento: { emolumento_id: number; descricao: string }) => void; + className?: string; } // Componente principal do select de emolumentos export default function GEmolumentoServicoSelect({ - sistema_id, - field, - onSelectChange, - className, + sistema_id, + field, + onSelectChange, + className, }: GEmolumentoSelectProps) { - const [open, setOpen] = useState(false); - const [isLoading, setIsLoading] = useState(false); + const [open, setOpen] = useState(false); + const [isLoading, setIsLoading] = useState(false); - // Define parâmetros de leitura para o hook que busca os emolumentos - const gEmolumentoReadParams: GEmolumentoReadInterface = { sistema_id, urlParams: { situacao: 'A' } }; - const { gEmolumento = [], fetchGEmolumento } = useGEmolumentoReadHook(); + // Define parâmetros de leitura para o hook que busca os emolumentos + const gEmolumentoReadParams: GEmolumentoReadInterface = { + sistema_id, + urlParams: { situacao: 'A' }, + }; + const { gEmolumento = [], fetchGEmolumento } = useGEmolumentoReadHook(); - /** - * Efeito para buscar os dados apenas uma vez. - */ - const loadData = useCallback(async () => { - if (gEmolumento.length) return; - setIsLoading(true); - await fetchGEmolumento(gEmolumentoReadParams); - setIsLoading(false); - }, [gEmolumento.length, fetchGEmolumento, gEmolumentoReadParams]); + /** + * Efeito para buscar os dados apenas uma vez. + */ + const loadData = useCallback(async () => { + if (gEmolumento.length) return; + setIsLoading(true); + await fetchGEmolumento(gEmolumentoReadParams); + setIsLoading(false); + }, [gEmolumento.length, fetchGEmolumento, gEmolumentoReadParams]); - useEffect(() => { - loadData(); - }, [loadData]); + useEffect(() => { + loadData(); + }, [loadData]); - /** - * Memoriza o item selecionado para evitar reprocessamentos. - */ - const selected = useMemo( - () => - gEmolumento.find( - (item) => String(item.emolumento_id) === String(field?.value?.id ?? ''), - ), - [gEmolumento, field?.value], - ); + /** + * Memoriza o item selecionado para evitar reprocessamentos. + */ + const selected = useMemo( + () => gEmolumento.find((item) => String(item.emolumento_id) === String(field?.value?.id ?? '')), + [gEmolumento, field?.value], + ); - /** - * Manipulador de seleção com verificação segura. - */ - const handleSelect = useCallback( - (item: any) => { - if (!field?.onChange) return; + /** + * Manipulador de seleção com verificação segura. + */ + const handleSelect = useCallback( + (item: any) => { + if (!field?.onChange) return; - const selectedValue = { - emolumento_id: Number(item.emolumento_id), - descricao: item.descricao, - sistema_id: item.sistema_id, - }; + const selectedValue = { + emolumento_id: Number(item.emolumento_id), + descricao: item.descricao, + sistema_id: item.sistema_id, + }; - field.onChange(selectedValue); + field.onChange(selectedValue); - if (onSelectChange) onSelectChange(selectedValue); + if (onSelectChange) onSelectChange(selectedValue); - setOpen(false); - }, - [field, onSelectChange], - ); + setOpen(false); + }, + [field, onSelectChange], + ); - return ( - - - - - - + return ( + + + + + + - - - - - - {isLoading ? 'Carregando...' : 'Nenhum resultado encontrado.'} - - - {gEmolumento.map((item) => ( - handleSelect(item)} - > - - {GetCapitalize(item.descricao ?? '')} - - ))} - - - - - - ); + + + + + + {isLoading ? 'Carregando...' : 'Nenhum resultado encontrado.'} + + + {gEmolumento.map((item) => ( + handleSelect(item)} + > + + {GetCapitalize(item.descricao ?? '')} + + ))} + + + + + + ); } diff --git a/src/packages/administrativo/components/GEmolumento/GEmolumentoTable.tsx b/src/packages/administrativo/components/GEmolumento/GEmolumentoTable.tsx index 2288c01..ead6c6b 100644 --- a/src/packages/administrativo/components/GEmolumento/GEmolumentoTable.tsx +++ b/src/packages/administrativo/components/GEmolumento/GEmolumentoTable.tsx @@ -9,13 +9,17 @@ import GEmolumentoPeriodoSelect from '../GEmolumentoPeriodo/GEmolumentoPeriodoSe /** * Componente principal da tabela de Naturezas */ -export default function GEmolumentoTable({ data, onEdit, onDelete, onSelectedEmolumentoPeriodo, emolumentoPeriodoId }: GEmolumentoTableInterface) { +export default function GEmolumentoTable({ + data, + onEdit, + onDelete, + onSelectedEmolumentoPeriodo, + emolumentoPeriodoId, +}: GEmolumentoTableInterface) { const columns = GEmolumentoColumns(onEdit, onDelete, emolumentoPeriodoId); return (
- +
); -} \ No newline at end of file +} diff --git a/src/packages/administrativo/components/GEmolumentoItem/GEmolumentoItemForm.tsx b/src/packages/administrativo/components/GEmolumentoItem/GEmolumentoItemForm.tsx index e2c2846..4edef89 100644 --- a/src/packages/administrativo/components/GEmolumentoItem/GEmolumentoItemForm.tsx +++ b/src/packages/administrativo/components/GEmolumentoItem/GEmolumentoItemForm.tsx @@ -37,7 +37,6 @@ export default function GEmolumentoItemForm({ onSave, buttonIsLoading, }: GEmolumentoItemFormInterface) { - // Inicializa o formulário const form = useGEmolumentoItemFormHook({}); @@ -86,7 +85,8 @@ export default function GEmolumentoItemForm({ Valor Início - field.onChange(parseNumberInput(e))} /> @@ -104,7 +104,8 @@ export default function GEmolumentoItemForm({ Valor Fim - field.onChange(parseNumberInput(e))} /> @@ -122,7 +123,8 @@ export default function GEmolumentoItemForm({ Valor Taxa Judiciária - field.onChange(parseNumberInput(e))} /> diff --git a/src/packages/administrativo/components/GEmolumentoItem/GEmolumentoItemIndex.tsx b/src/packages/administrativo/components/GEmolumentoItem/GEmolumentoItemIndex.tsx index 140247c..d46d33a 100644 --- a/src/packages/administrativo/components/GEmolumentoItem/GEmolumentoItemIndex.tsx +++ b/src/packages/administrativo/components/GEmolumentoItem/GEmolumentoItemIndex.tsx @@ -12,16 +12,17 @@ import { useConfirmDialog } from '@/shared/components/confirmDialog/useConfirmDi import Loading from '@/shared/components/loading/loading'; import Header from '@/shared/components/structure/Header'; - import GEmolumentoItemForm from './GEmolumentoItemForm'; import GEmolumentoItemTable from './GEmolumentoItemTable'; -export default function GEmolumentoItemIndex({ emolumento_id, emolumento_periodo_id }: GEmolumentoItemIndexInterface) { - +export default function GEmolumentoItemIndex({ + emolumento_id, + emolumento_periodo_id, +}: GEmolumentoItemIndexInterface) { const gEmolumentoItemParams = { emolumento_id: emolumento_id, - emolumento_periodo_id: emolumento_periodo_id - } + emolumento_periodo_id: emolumento_periodo_id, + }; // Controle de estado do botão const [buttonIsLoading, setButtonIsLoading] = useState(false); @@ -48,7 +49,8 @@ export default function GEmolumentoItemIndex({ emolumento_id, emolumento_periodo */ const handleOpenForm = useCallback((data: GEmolumentoItemInterface | null) => { // Se não houver dados (criação), cria um objeto inicial com imovel_id - const initialData: GEmolumentoItemInterface = data ?? ({ emolumento_id, emolumento_periodo_id } as GEmolumentoItemInterface); + const initialData: GEmolumentoItemInterface = + data ?? ({ emolumento_id, emolumento_periodo_id } as GEmolumentoItemInterface); setSelectedData(initialData); setIsFormOpen(true); }, []); diff --git a/src/packages/administrativo/components/GEmolumentoItem/GEmolumentoItemTable.tsx b/src/packages/administrativo/components/GEmolumentoItem/GEmolumentoItemTable.tsx index 9c0961d..0e0899b 100644 --- a/src/packages/administrativo/components/GEmolumentoItem/GEmolumentoItemTable.tsx +++ b/src/packages/administrativo/components/GEmolumentoItem/GEmolumentoItemTable.tsx @@ -8,7 +8,11 @@ import GEmolumentoItemColumns from './GEmolumentoItemColumns'; /** * Componente principal da tabela de Naturezas */ -export default function GEmolumentoItemTable({ data, onEdit, onDelete }: GEmolumentoItemTableInterface) { +export default function GEmolumentoItemTable({ + data, + onEdit, + onDelete, +}: GEmolumentoItemTableInterface) { const columns = GEmolumentoItemColumns(onEdit, onDelete); return (
diff --git a/src/packages/administrativo/components/GEmolumentoPeriodo/GEmolumentoPeriodoForm.tsx b/src/packages/administrativo/components/GEmolumentoPeriodo/GEmolumentoPeriodoForm.tsx index 351b4e1..c73783b 100644 --- a/src/packages/administrativo/components/GEmolumentoPeriodo/GEmolumentoPeriodoForm.tsx +++ b/src/packages/administrativo/components/GEmolumentoPeriodo/GEmolumentoPeriodoForm.tsx @@ -77,10 +77,7 @@ export default function GEmolumentoPeriodoForm({ Palavra - + diff --git a/src/packages/administrativo/components/GEmolumentoPeriodo/GEmolumentoPeriodoIndex.tsx b/src/packages/administrativo/components/GEmolumentoPeriodo/GEmolumentoPeriodoIndex.tsx index 66f0c28..e09bdca 100644 --- a/src/packages/administrativo/components/GEmolumentoPeriodo/GEmolumentoPeriodoIndex.tsx +++ b/src/packages/administrativo/components/GEmolumentoPeriodo/GEmolumentoPeriodoIndex.tsx @@ -2,7 +2,6 @@ import { useEffect, useState, useCallback } from 'react'; - import { useGEmolumentoPeriodoDeleteHook } from '@/packages/administrativo/hooks/GEmolumentoPeriodo/useGEmolumentoPeriodoDeleteHook'; import { useGEmolumentoPeriodoIndexHook } from '@/packages/administrativo/hooks/GEmolumentoPeriodo/useGEmolumentoPeriodoIndexHook'; import { useGEmolumentoPeriodoSaveHook } from '@/packages/administrativo/hooks/GEmolumentoPeriodo/useGEmolumentoPeriodoSaveHook'; @@ -16,7 +15,6 @@ import GEmolumentoPeriodoForm from './GEmolumentoPeriodoForm'; import GEmolumentoPeriodoTable from './GEmolumentoPeriodoTable'; export default function GEmolumentoPeriodoIndex() { - // Controle de estado do botão const [buttonIsLoading, setButtonIsLoading] = useState(false); @@ -132,7 +130,11 @@ export default function GEmolumentoPeriodoIndex() { }} /> {/* Tabela de andamentos */} - + {/* Modal de confirmação */} {isConfirmOpen && ( (null); - const [open, setOpen] = useState(false); - const [isLoading, setIsLoading] = useState(false); - const [selectedId, setSelectedId] = useState(null); + const { gEmolumentoPeriodo, indexGEmolumentoPeriodo } = useGEmolumentoPeriodoIndexHook(); - const { gEmolumentoPeriodo, indexGEmolumentoPeriodo } = useGEmolumentoPeriodoIndexHook(); + // --------------------------------------------------------------------------- + // Carrega os períodos apenas uma vez + // --------------------------------------------------------------------------- + const loadData = useCallback(async () => { + if (gEmolumentoPeriodo.length) return; + setIsLoading(true); + await indexGEmolumentoPeriodo(); + setIsLoading(false); + }, [gEmolumentoPeriodo.length, indexGEmolumentoPeriodo]); - // --------------------------------------------------------------------------- - // Carrega os períodos apenas uma vez - // --------------------------------------------------------------------------- - const loadData = useCallback(async () => { - if (gEmolumentoPeriodo.length) return; - setIsLoading(true); - await indexGEmolumentoPeriodo(); - setIsLoading(false); - }, [gEmolumentoPeriodo.length, indexGEmolumentoPeriodo]); + useEffect(() => { + loadData(); + }, [loadData]); - useEffect(() => { - loadData(); - }, [loadData]); + // --------------------------------------------------------------------------- + // Item selecionado + // --------------------------------------------------------------------------- + const selected = useMemo( + () => + gEmolumentoPeriodo.find((b) => String(b.emolumento_periodo_id) === String(selectedId ?? '')), + [gEmolumentoPeriodo, selectedId], + ); - // --------------------------------------------------------------------------- - // Item selecionado - // --------------------------------------------------------------------------- - const selected = useMemo( - () => gEmolumentoPeriodo.find((b) => String(b.emolumento_periodo_id) === String(selectedId ?? '')), - [gEmolumentoPeriodo, selectedId] - ); + // --------------------------------------------------------------------------- + // Ao selecionar um item → dispara novo hook + // --------------------------------------------------------------------------- + const handleSelect = async (id: number) => { + setSelectedId(id); + setOpen(false); + onSelectedEmolumentoPeriodo(id); + }; - // --------------------------------------------------------------------------- - // Ao selecionar um item → dispara novo hook - // --------------------------------------------------------------------------- - const handleSelect = async (id: number) => { - setSelectedId(id); - setOpen(false); - onSelectedEmolumentoPeriodo(id); - }; - - return ( - - - + + + + + + + {isLoading ? 'Carregando...' : 'Nenhum resultado encontrado.'} + + + {gEmolumentoPeriodo.map((item) => ( + handleSelect(Number(item.emolumento_periodo_id))} > - {isLoading - ? 'Carregando...' - : selected - ? GetCapitalize(selected.descricao) - : 'Selecione...'} - - - - - - - - - {isLoading ? 'Carregando...' : 'Nenhum resultado encontrado.'} - - - {gEmolumentoPeriodo.map((item) => ( - handleSelect(Number(item.emolumento_periodo_id))} - > - - {GetCapitalize(item.descricao ?? '')} - - ))} - - - - - - ); + + {GetCapitalize(item.descricao ?? '')} + + ))} + + + + + + ); } diff --git a/src/packages/administrativo/components/GEmolumentoPeriodo/GEmolumentoPeriodoTable.tsx b/src/packages/administrativo/components/GEmolumentoPeriodo/GEmolumentoPeriodoTable.tsx index b00e957..8a5eb28 100644 --- a/src/packages/administrativo/components/GEmolumentoPeriodo/GEmolumentoPeriodoTable.tsx +++ b/src/packages/administrativo/components/GEmolumentoPeriodo/GEmolumentoPeriodoTable.tsx @@ -8,7 +8,11 @@ import GEmolumentoPeriodoTableInterface from '../../interfaces/GEmolumentoPeriod /** * Componente principal da tabela de Naturezas */ -export default function GEmolumentoPeriodoTable({ data, onEdit, onDelete }: GEmolumentoPeriodoTableInterface) { +export default function GEmolumentoPeriodoTable({ + data, + onEdit, + onDelete, +}: GEmolumentoPeriodoTableInterface) { const columns = GEmolumentoPeriodoColumns(onEdit, onDelete); return (
diff --git a/src/packages/administrativo/components/GGramatica/GGramaticaForm.tsx b/src/packages/administrativo/components/GGramatica/GGramaticaForm.tsx index 0edda15..a94e3db 100644 --- a/src/packages/administrativo/components/GGramatica/GGramaticaForm.tsx +++ b/src/packages/administrativo/components/GGramatica/GGramaticaForm.tsx @@ -38,7 +38,6 @@ export default function GGramaticaForm({ onSave, buttonIsLoading, }: GGramaticaFormInterface) { - const form = useGGramaticaFormHook({}); // Atualiza o formulário quando recebe dados para edição @@ -78,10 +77,7 @@ export default function GGramaticaForm({ Palavra - + @@ -97,10 +93,7 @@ export default function GGramaticaForm({ Prefixo - + @@ -116,10 +109,7 @@ export default function GGramaticaForm({ Sufixo Masculino Singular - + @@ -135,10 +125,7 @@ export default function GGramaticaForm({ Sufixo Masculino Plural - + @@ -154,10 +141,7 @@ export default function GGramaticaForm({ Sufixo Feminino Singular - + @@ -173,10 +157,7 @@ export default function GGramaticaForm({ Sufixo Feminino Plural - + diff --git a/src/packages/administrativo/components/GGramatica/GGramaticaIndex.tsx b/src/packages/administrativo/components/GGramatica/GGramaticaIndex.tsx index e4be82b..0b6e6cb 100644 --- a/src/packages/administrativo/components/GGramatica/GGramaticaIndex.tsx +++ b/src/packages/administrativo/components/GGramatica/GGramaticaIndex.tsx @@ -2,7 +2,6 @@ import { useCallback, useEffect, useState } from 'react'; - import { useGGramaticaDeleteHook } from '@/packages/administrativo/hooks/GGramatica/useGGramaticaDeleteHook'; import { useGGramaticaIndexHook } from '@/packages/administrativo/hooks/GGramatica/useGGramaticaIndexHook'; import { useGGramaticaSaveHook } from '@/packages/administrativo/hooks/GGramatica/useGGramaticaSaveHook'; @@ -16,7 +15,6 @@ import GGramaticaForm from './GGramaticaForm'; import GGramaticaTable from './GGramaticaTable'; export default function GGramaticaIndex() { - // Controle de estado do botão const [buttonIsLoading, setButtonIsLoading] = useState(false); diff --git a/src/packages/administrativo/components/GNaturezaTitulo/GNaturezaTituloIndex.tsx b/src/packages/administrativo/components/GNaturezaTitulo/GNaturezaTituloIndex.tsx index 5df1f9e..886d4cc 100644 --- a/src/packages/administrativo/components/GNaturezaTitulo/GNaturezaTituloIndex.tsx +++ b/src/packages/administrativo/components/GNaturezaTitulo/GNaturezaTituloIndex.tsx @@ -2,7 +2,6 @@ import { useEffect, useState, useCallback } from 'react'; - import { useGNaturezaTituloDeleteHook } from '@/packages/administrativo/hooks/GNaturezaTitulo/useGNaturezaTituloDeleteHook'; import { useGNaturezaTituloIndexHook } from '@/packages/administrativo/hooks/GNaturezaTitulo/useGNaturezaTituloIndexHook'; import { useGNaturezaTituloSaveHook } from '@/packages/administrativo/hooks/GNaturezaTitulo/useGNaturezaTituloSaveHook'; @@ -139,7 +138,11 @@ export default function GNaturezaTituloIndex({ sistema_id }: GNaturezaTituloInde }} /> {/* Tabela de andamentos */} - + {/* Modal de confirmação */} {isConfirmOpen && ( diff --git a/src/packages/administrativo/components/GSeloGrupo/GSeloGrupoForm.tsx b/src/packages/administrativo/components/GSeloGrupo/GSeloGrupoForm.tsx index 8f6892d..de27fb3 100644 --- a/src/packages/administrativo/components/GSeloGrupo/GSeloGrupoForm.tsx +++ b/src/packages/administrativo/components/GSeloGrupo/GSeloGrupoForm.tsx @@ -81,10 +81,7 @@ export default function GSeloGrupoForm({ Código - + @@ -114,10 +111,7 @@ export default function GSeloGrupoForm({ Descrição - + @@ -133,10 +127,7 @@ export default function GSeloGrupoForm({ Descrição Completa - + @@ -226,10 +217,7 @@ export default function GSeloGrupoForm({ Grupos Principal - + diff --git a/src/packages/administrativo/components/GSeloGrupo/GSeloGrupoIndex.tsx b/src/packages/administrativo/components/GSeloGrupo/GSeloGrupoIndex.tsx index 039e593..c870459 100644 --- a/src/packages/administrativo/components/GSeloGrupo/GSeloGrupoIndex.tsx +++ b/src/packages/administrativo/components/GSeloGrupo/GSeloGrupoIndex.tsx @@ -2,7 +2,6 @@ import { useEffect, useState, useCallback } from 'react'; - import { useGSeloGrupoDeleteHook } from '@/packages/administrativo/hooks/GSeloGrupo/useGSeloGrupoDeleteHook'; import { useGSeloGrupoIndexHook } from '@/packages/administrativo/hooks/GSeloGrupo/useGSeloGrupoIndexHook'; import { useGSeloGrupoSaveHook } from '@/packages/administrativo/hooks/GSeloGrupo/useGSeloGrupoSaveHook'; @@ -16,7 +15,6 @@ import GSeloGrupoForm from './GSeloGrupoForm'; import GSeloGrupoTable from './GSeloGrupoTable'; export default function GSeloGrupoIndex() { - // Controle de estado do botão const [buttonIsLoading, setButtonIsLoading] = useState(false); diff --git a/src/packages/administrativo/components/GUsuario/GUsuarioSelect.tsx b/src/packages/administrativo/components/GUsuario/GUsuarioSelect.tsx index 6d789ed..96a69d4 100644 --- a/src/packages/administrativo/components/GUsuario/GUsuarioSelect.tsx +++ b/src/packages/administrativo/components/GUsuario/GUsuarioSelect.tsx @@ -5,12 +5,12 @@ import { useCallback, useEffect, useMemo, useState } from 'react'; import { Button } from '@/components/ui/button'; import { - Command, - CommandEmpty, - CommandGroup, - CommandInput, - CommandItem, - CommandList, + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, } from '@/components/ui/command'; import { FormControl } from '@/components/ui/form'; import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'; @@ -21,93 +21,89 @@ import GUsuarioSelectInterface from '@/packages/administrativo/interfaces/GUsuar import GetCapitalize from '@/shared/actions/text/GetCapitalize'; export default function GUsuarioSelect({ field }: GUsuarioSelectInterface) { - const [open, setOpen] = useState(false); - const [isLoading, setIsLoading] = useState(false); - const { usuarios, fetchUsuarios } = useGUsuarioIndexHook(); + const [open, setOpen] = useState(false); + const [isLoading, setIsLoading] = useState(false); + const { usuarios, fetchUsuarios } = useGUsuarioIndexHook(); - const loadData = useCallback(async () => { - const urlParams = { assina: 'S', situacao: 'A' }; - const GUsuarioIndex: GUsuarioIndexInterface = { urlParams }; + const loadData = useCallback(async () => { + const urlParams = { assina: 'S', situacao: 'A' }; + const GUsuarioIndex: GUsuarioIndexInterface = { urlParams }; - if (usuarios?.length) return; - setIsLoading(true); - await fetchUsuarios(GUsuarioIndex); - setIsLoading(false); - }, [usuarios?.length, fetchUsuarios]); + if (usuarios?.length) return; + setIsLoading(true); + await fetchUsuarios(GUsuarioIndex); + setIsLoading(false); + }, [usuarios?.length, fetchUsuarios]); - useEffect(() => { - loadData(); - }, [loadData]); + useEffect(() => { + loadData(); + }, [loadData]); - const selected = useMemo( - () => usuarios?.find((b) => String(b.usuario_id) === String(field?.value ?? '')), - [usuarios, field?.value], - ); + const selected = useMemo( + () => usuarios?.find((b) => String(b.usuario_id) === String(field?.value ?? '')), + [usuarios, field?.value], + ); - const handleSelect = useCallback( - (bairroId: string | number) => { - if (!field?.onChange) return; - field.onChange(bairroId); - setOpen(false); - }, - [field], - ); + const handleSelect = useCallback( + (bairroId: string | number) => { + if (!field?.onChange) return; + field.onChange(bairroId); + setOpen(false); + }, + [field], + ); - return ( - - - - - - + return ( + + + + + + - - - - - - {isLoading ? 'Carregando...' : 'Nenhum resultado encontrado.'} - - - {usuarios?.map((item) => ( - handleSelect(item.usuario_id)} - className="w-full" - > - - {GetCapitalize(item.nome_completo ?? '')} - - ))} - - - - - - ); + + + + + + {isLoading ? 'Carregando...' : 'Nenhum resultado encontrado.'} + + + {usuarios?.map((item) => ( + handleSelect(item.usuario_id)} + className="w-full" + > + + {GetCapitalize(item.nome_completo ?? '')} + + ))} + + + + + + ); } diff --git a/src/packages/administrativo/components/TImovel/TImovelDashboard.tsx b/src/packages/administrativo/components/TImovel/TImovelDashboard.tsx index 1f28cd3..8eca7e3 100644 --- a/src/packages/administrativo/components/TImovel/TImovelDashboard.tsx +++ b/src/packages/administrativo/components/TImovel/TImovelDashboard.tsx @@ -1,165 +1,157 @@ -'use client' +'use client'; -import { motion } from 'framer-motion' +import { motion } from 'framer-motion'; +import { AlertTriangle, Building2, CheckCircle2, Home, Layers3, MapPin, Ruler } from 'lucide-react'; +import React, { useEffect, useState } from 'react'; import { - AlertTriangle, - Building2, - CheckCircle2, - Home, - Layers3, - MapPin, - Ruler -} from 'lucide-react' -import React, { useEffect, useState } from 'react' -import { - Area, - AreaChart, - Bar, - BarChart, - CartesianGrid, - Cell, - ResponsiveContainer, - Tooltip, - XAxis, - YAxis -} from 'recharts' + Area, + AreaChart, + Bar, + BarChart, + CartesianGrid, + Cell, + ResponsiveContainer, + Tooltip, + XAxis, + YAxis, +} from 'recharts'; -import { Badge } from '@/components/ui/badge' -import { Button } from '@/components/ui/button' +import { Badge } from '@/components/ui/badge'; +import { Button } from '@/components/ui/button'; +import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; +import { Progress } from '@/components/ui/progress'; import { - Card, - CardContent, - CardHeader, - CardTitle -} from '@/components/ui/card' -import { Progress } from '@/components/ui/progress' -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select' - + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; // ===================== // Types // ===================== type Kpis = { - totalImoveis: number - totalUnidades: number - mediaPorImovel: number - geoReferenciados: number - semArea: number - novosMes: number - tendenciaMes: number -} + totalImoveis: number; + totalUnidades: number; + mediaPorImovel: number; + geoReferenciados: number; + semArea: number; + novosMes: number; + tendenciaMes: number; +}; type AreaStats = { - media: number - minima: number - maxima: number -} + media: number; + minima: number; + maxima: number; +}; -type Distribuicao = { label: string; total: number } +type Distribuicao = { label: string; total: number }; type Qualidade = { - geoReferenciadoPct: number - areaPreenchidaPct: number - enderecoCompletoPct: number - inconsistencias: number -} + geoReferenciadoPct: number; + areaPreenchidaPct: number; + enderecoCompletoPct: number; + inconsistencias: number; +}; type ApiResponse = { - kpis: Kpis - area: AreaStats - tiposClasse: Distribuicao[] - tiposRegistro: Distribuicao[] - distribuicaoUF: Distribuicao[] - distribuicaoCidade: Distribuicao[] - auditoria: Distribuicao[] - evolucao: { mes: string; total: number }[] - qualidade: Qualidade -} + kpis: Kpis; + area: AreaStats; + tiposClasse: Distribuicao[]; + tiposRegistro: Distribuicao[]; + distribuicaoUF: Distribuicao[]; + distribuicaoCidade: Distribuicao[]; + auditoria: Distribuicao[]; + evolucao: { mes: string; total: number }[]; + qualidade: Qualidade; +}; // ===================== // Mock de fallback // ===================== const MOCK: ApiResponse = { - kpis: { - totalImoveis: 1240, - totalUnidades: 8950, - mediaPorImovel: 7.2, - geoReferenciados: 5620, - semArea: 230, - novosMes: 110, - tendenciaMes: 5.8 - }, - area: { - media: 82.4, - minima: 30.5, - maxima: 250.0 - }, - tiposClasse: [ - { label: 'Urbano', total: 780 }, - { label: 'Rural', total: 420 }, - { label: 'Não informado', total: 40 } - ], - tiposRegistro: [ - { label: 'Matrícula', total: 900 }, - { label: 'Transcrição', total: 280 }, - { label: 'Outros', total: 60 } - ], - distribuicaoUF: [ - { label: 'GO', total: 540 }, - { label: 'DF', total: 230 }, - { label: 'MT', total: 150 }, - { label: 'TO', total: 120 } - ], - distribuicaoCidade: [ - { label: 'Goiânia', total: 320 }, - { label: 'Anápolis', total: 220 }, - { label: 'Aparecida de Goiânia', total: 210 }, - { label: 'Trindade', total: 180 }, - { label: 'Formosa', total: 160 }, - { label: 'Catalão', total: 140 }, - { label: 'Luziânia', total: 120 }, - { label: 'Rio Verde', total: 110 }, - { label: 'Itumbiara', total: 90 }, - { label: 'Jataí', total: 80 } - ], - auditoria: [ - { label: 'Unidades sem área', total: 230 }, - { label: 'Imóveis sem UF', total: 15 }, - { label: 'Sem logradouro', total: 48 } - ], - evolucao: Array.from({ length: 12 }, (_, i) => ({ - mes: new Date(2025, i).toLocaleString('pt-BR', { month: 'short' }), - total: 100 + i * 25 + (i % 2 === 0 ? 40 : 0) - })), - qualidade: { - geoReferenciadoPct: 72.5, - areaPreenchidaPct: 88.2, - enderecoCompletoPct: 93.4, - inconsistencias: 48 - } -} + kpis: { + totalImoveis: 1240, + totalUnidades: 8950, + mediaPorImovel: 7.2, + geoReferenciados: 5620, + semArea: 230, + novosMes: 110, + tendenciaMes: 5.8, + }, + area: { + media: 82.4, + minima: 30.5, + maxima: 250.0, + }, + tiposClasse: [ + { label: 'Urbano', total: 780 }, + { label: 'Rural', total: 420 }, + { label: 'Não informado', total: 40 }, + ], + tiposRegistro: [ + { label: 'Matrícula', total: 900 }, + { label: 'Transcrição', total: 280 }, + { label: 'Outros', total: 60 }, + ], + distribuicaoUF: [ + { label: 'GO', total: 540 }, + { label: 'DF', total: 230 }, + { label: 'MT', total: 150 }, + { label: 'TO', total: 120 }, + ], + distribuicaoCidade: [ + { label: 'Goiânia', total: 320 }, + { label: 'Anápolis', total: 220 }, + { label: 'Aparecida de Goiânia', total: 210 }, + { label: 'Trindade', total: 180 }, + { label: 'Formosa', total: 160 }, + { label: 'Catalão', total: 140 }, + { label: 'Luziânia', total: 120 }, + { label: 'Rio Verde', total: 110 }, + { label: 'Itumbiara', total: 90 }, + { label: 'Jataí', total: 80 }, + ], + auditoria: [ + { label: 'Unidades sem área', total: 230 }, + { label: 'Imóveis sem UF', total: 15 }, + { label: 'Sem logradouro', total: 48 }, + ], + evolucao: Array.from({ length: 12 }, (_, i) => ({ + mes: new Date(2025, i).toLocaleString('pt-BR', { month: 'short' }), + total: 100 + i * 25 + (i % 2 === 0 ? 40 : 0), + })), + qualidade: { + geoReferenciadoPct: 72.5, + areaPreenchidaPct: 88.2, + enderecoCompletoPct: 93.4, + inconsistencias: 48, + }, +}; // ===================== // Função de fetch (com fallback) // ===================== async function fetchApi(periodo: string, uf: string | null): Promise { - const params = new URLSearchParams() - params.set('periodo', periodo) - if (uf) params.set('uf', uf) + const params = new URLSearchParams(); + params.set('periodo', periodo); + if (uf) params.set('uf', uf); - try { - const ctrl = new AbortController() - const timeout = setTimeout(() => ctrl.abort(), 6000) - const res = await fetch(`/api/dashboard/imoveis?${params.toString()}`, { signal: ctrl.signal }) - clearTimeout(timeout) - if (!res.ok) throw new Error('Erro HTTP') - return await res.json() - } catch { - return MOCK - } + try { + const ctrl = new AbortController(); + const timeout = setTimeout(() => ctrl.abort(), 6000); + const res = await fetch(`/api/dashboard/imoveis?${params.toString()}`, { signal: ctrl.signal }); + clearTimeout(timeout); + if (!res.ok) throw new Error('Erro HTTP'); + return await res.json(); + } catch { + return MOCK; + } } // ===================== @@ -167,53 +159,62 @@ async function fetchApi(periodo: string, uf: string | null): Promise 0 ? 'text-emerald-600' : trend < 0 ? 'text-rose-600' : 'text-muted-foreground' - const prefix = trend != null && trend > 0 ? '+' : '' - return ( - - - {label} - - - -
{value}
-

- {hint && {hint}} - {trend != null && ( - {prefix}{trend.toFixed(1)}% - )} -

-
-
- ) + const trendColor = + trend == null + ? '' + : trend > 0 + ? 'text-emerald-600' + : trend < 0 + ? 'text-rose-600' + : 'text-muted-foreground'; + const prefix = trend != null && trend > 0 ? '+' : ''; + return ( + + + {label} + + + +
{value}
+

+ {hint && {hint}} + {trend != null && ( + + {prefix} + {trend.toFixed(1)}% + + )} +

+
+
+ ); } function DataProgress({ label, value, goal }: { label: string; value: number; goal: number }) { - const color = value >= goal ? 'text-emerald-600' : 'text-amber-600' - return ( -
-
- {label} - - {value.toFixed(1)}% (meta {goal}%) - -
- -
- ) + const color = value >= goal ? 'text-emerald-600' : 'text-amber-600'; + return ( +
+
+ {label} + + {value.toFixed(1)}% (meta {goal}%) + +
+ +
+ ); } // ===================== @@ -221,158 +222,202 @@ function DataProgress({ label, value, goal }: { label: string; value: number; go // ===================== export default function DashboardImoveis() { - const [periodo, setPeriodo] = useState('12m') - const [uf, setUf] = useState(null) - const [data, setData] = useState(null) - const [loading, setLoading] = useState(true) + const [periodo, setPeriodo] = useState('12m'); + const [uf, setUf] = useState(null); + const [data, setData] = useState(null); + const [loading, setLoading] = useState(true); - useEffect(() => { - setLoading(true) - fetchApi(periodo, uf).then((d) => { - setData(d) - setLoading(false) - }) - }, [periodo, uf]) + useEffect(() => { + setLoading(true); + fetchApi(periodo, uf).then((d) => { + setData(d); + setLoading(false); + }); + }, [periodo, uf]); - const COLORS = ['#1A292F', '#8FB6C1', '#D1E6EA', '#F36F28', '#EAECEA'] + const COLORS = ['#1A292F', '#8FB6C1', '#D1E6EA', '#F36F28', '#EAECEA']; - return ( -
- {/* Header */} -
-
- - Painel de Imóveis e Unidades - -

Gestão cadastral, georreferenciamento e auditoria

-
- -
- - - - - -
-
- - {/* KPIs */} -
- - - - - -
- - {/* Evolução */} - - Evolução de Cadastros - - - - - - - - - - - - - - - - - - - - {/* Distribuição por UF e Cidades */} -
- - Imóveis por UF - - - - - - - - - {(data?.distribuicaoUF ?? []).map((_, i) => ( - - ))} - - - - - - - - Top 10 Cidades - - - - - - - - - {(data?.distribuicaoCidade ?? []).map((_, i) => ( - - ))} - - - - - -
- - {/* Qualidade de Dados */} - - Qualidade de Dados - -
- - - -
-
- -

Área média cadastrada

-

{data?.area.media.toFixed(1)} m²

-
-
- - - {data?.qualidade.inconsistencias ?? 0} inconsistências - -
-
-
- -

- Fonte: VIEW VW_T_IMOVEL_ANALYTICS — fallback automático para mock. -

+ return ( +
+ {/* Header */} +
+
+ + Painel de Imóveis e Unidades + +

+ Gestão cadastral, georreferenciamento e auditoria +

- ) + +
+ + + + + +
+
+ + {/* KPIs */} +
+ + + + + +
+ + {/* Evolução */} + + + Evolução de Cadastros + + + + + + + + + + + + + + + + + + + + + {/* Distribuição por UF e Cidades */} +
+ + + Imóveis por UF + + + + + + + + + + {(data?.distribuicaoUF ?? []).map((_, i) => ( + + ))} + + + + + + + + + Top 10 Cidades + + + + + + + + + + {(data?.distribuicaoCidade ?? []).map((_, i) => ( + + ))} + + + + + +
+ + {/* Qualidade de Dados */} + + + Qualidade de Dados + + +
+ + + +
+
+ +

Área média cadastrada

+

+ {data?.area.media.toFixed(1)} m² +

+
+
+ + + {data?.qualidade.inconsistencias ?? 0} inconsistências + +
+
+
+ +

+ Fonte: VIEW VW_T_IMOVEL_ANALYTICS — fallback automático para mock. +

+
+ ); } diff --git a/src/packages/administrativo/components/TPessoa/TPessoaDashboard.tsx b/src/packages/administrativo/components/TPessoa/TPessoaDashboard.tsx index c3128ca..ba7ce4e 100644 --- a/src/packages/administrativo/components/TPessoa/TPessoaDashboard.tsx +++ b/src/packages/administrativo/components/TPessoa/TPessoaDashboard.tsx @@ -1,36 +1,36 @@ -'use client' +'use client'; -import { motion } from "framer-motion"; -import { Building2, CalendarClock, Loader2, Mail, Users } from "lucide-react"; -import React, { useEffect, useMemo, useState } from "react"; +import { motion } from 'framer-motion'; +import { Building2, CalendarClock, Loader2, Mail, Users } from 'lucide-react'; +import React, { useEffect, useMemo, useState } from 'react'; import { - Area, - AreaChart, - Bar, - BarChart, - CartesianGrid, - Cell, - Legend, - Pie, - PieChart, - ResponsiveContainer, - Tooltip, - XAxis, - YAxis, -} from "recharts"; + Area, + AreaChart, + Bar, + BarChart, + CartesianGrid, + Cell, + Legend, + Pie, + PieChart, + ResponsiveContainer, + Tooltip, + XAxis, + YAxis, +} from 'recharts'; -import { Badge } from "@/components/ui/badge"; -import { Button } from "@/components/ui/button"; +import { Badge } from '@/components/ui/badge'; +import { Button } from '@/components/ui/button'; +import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; +import { Input } from '@/components/ui/input'; +import { Progress } from '@/components/ui/progress'; import { - Card, - CardContent, - CardHeader, - CardTitle, -} from "@/components/ui/card"; -import { Input } from "@/components/ui/input"; -import { Progress } from "@/components/ui/progress"; -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; - + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; // ===================== // Types @@ -43,33 +43,33 @@ type EvolucaoCadastro = { ano: number; mes: number; total: number }; type CategoriaValor = { label: string; total: number }; type Kpis = { - total: number; - fisicas: number; - juridicas: number; - mediaIdade: number | null; - pctCpfCnpjValidos: number; - pctEmailPreenchido: number; - novosMes: number; - tendenciaMes: number; // variação % em relação ao mês anterior + total: number; + fisicas: number; + juridicas: number; + mediaIdade: number | null; + pctCpfCnpjValidos: number; + pctEmailPreenchido: number; + novosMes: number; + tendenciaMes: number; // variação % em relação ao mês anterior }; type Qualidade = { - email: number; - enderecoCompleto: number; - telefoneValido: number; - cpfInvalido: number; // quantidade + email: number; + enderecoCompleto: number; + telefoneValido: number; + cpfInvalido: number; // quantidade }; type ApiResponse = { - kpis: Kpis; - sexo: SexoDistribuicao[]; - evolucao: EvolucaoCadastro[]; - estadoCivil: CategoriaValor[]; - faixasEtarias: CategoriaValor[]; - profissoesTop10: CategoriaValor[]; - ufDistribuicao: CategoriaValor[]; - cidadesTop10: CategoriaValor[]; - qualidade: Qualidade; + kpis: Kpis; + sexo: SexoDistribuicao[]; + evolucao: EvolucaoCadastro[]; + estadoCivil: CategoriaValor[]; + faixasEtarias: CategoriaValor[]; + profissoesTop10: CategoriaValor[]; + ufDistribuicao: CategoriaValor[]; + cidadesTop10: CategoriaValor[]; + qualidade: Qualidade; }; // ===================== @@ -77,152 +77,195 @@ type ApiResponse = { // ===================== const MOCK: ApiResponse = { - kpis: { - total: 12876, - fisicas: 11234, - juridicas: 1642, - mediaIdade: 39, - pctCpfCnpjValidos: 87.4, - pctEmailPreenchido: 91.2, - novosMes: 328, - tendenciaMes: 6.3, - }, - sexo: [ - { genero: "Masculino", total: 5840 }, - { genero: "Feminino", total: 5210 }, - { genero: "Não informado", total: 184 } - ], - evolucao: Array.from({ length: 12 }, (_, i) => ({ ano: 2025, mes: i + 1, total: 120 + i * 15 + (i % 2 === 0 ? 30 : 0) })), - estadoCivil: [ - { label: "Solteiro(a)", total: 4312 }, - { label: "Casado(a)", total: 5120 }, - { label: "Divorciado(a)", total: 812 }, - { label: "Viúvo(a)", total: 210 }, - ], - faixasEtarias: [ - { label: "<18", total: 420 }, - { label: "18-30", total: 3420 }, - { label: "31-45", total: 5180 }, - { label: "46-60", total: 2780 }, - { label: "60+", total: 1076 }, - ], - profissoesTop10: [ - { label: "Estudante", total: 780 }, - { label: "Comerciante", total: 620 }, - { label: "Professor(a)", total: 570 }, - { label: "Autônomo(a)", total: 510 }, - { label: "Servidor(a) Público(a)", total: 450 }, - { label: "Engenheiro(a)", total: 430 }, - { label: "Advogado(a)", total: 410 }, - { label: "Médico(a)", total: 385 }, - { label: "Enfermeiro(a)", total: 360 }, - { label: "Agricultor(a)", total: 350 }, - ], - ufDistribuicao: [ - { label: "GO", total: 5080 }, - { label: "DF", total: 1840 }, - { label: "MG", total: 980 }, - { label: "SP", total: 820 }, - { label: "BA", total: 740 }, - ], - cidadesTop10: [ - { label: "Goiânia", total: 2200 }, - { label: "Aparecida de Goiânia", total: 980 }, - { label: "Anápolis", total: 640 }, - { label: "Formosa", total: 510 }, - { label: "Trindade", total: 480 }, - { label: "Luziânia", total: 465 }, - { label: "Catalão", total: 430 }, - { label: "Rio Verde", total: 415 }, - { label: "Itumbiara", total: 400 }, - { label: "Jataí", total: 395 }, - ], - qualidade: { - email: 91.2, - enderecoCompleto: 83.4, - telefoneValido: 77.9, - cpfInvalido: 248, - }, + kpis: { + total: 12876, + fisicas: 11234, + juridicas: 1642, + mediaIdade: 39, + pctCpfCnpjValidos: 87.4, + pctEmailPreenchido: 91.2, + novosMes: 328, + tendenciaMes: 6.3, + }, + sexo: [ + { genero: 'Masculino', total: 5840 }, + { genero: 'Feminino', total: 5210 }, + { genero: 'Não informado', total: 184 }, + ], + evolucao: Array.from({ length: 12 }, (_, i) => ({ + ano: 2025, + mes: i + 1, + total: 120 + i * 15 + (i % 2 === 0 ? 30 : 0), + })), + estadoCivil: [ + { label: 'Solteiro(a)', total: 4312 }, + { label: 'Casado(a)', total: 5120 }, + { label: 'Divorciado(a)', total: 812 }, + { label: 'Viúvo(a)', total: 210 }, + ], + faixasEtarias: [ + { label: '<18', total: 420 }, + { label: '18-30', total: 3420 }, + { label: '31-45', total: 5180 }, + { label: '46-60', total: 2780 }, + { label: '60+', total: 1076 }, + ], + profissoesTop10: [ + { label: 'Estudante', total: 780 }, + { label: 'Comerciante', total: 620 }, + { label: 'Professor(a)', total: 570 }, + { label: 'Autônomo(a)', total: 510 }, + { label: 'Servidor(a) Público(a)', total: 450 }, + { label: 'Engenheiro(a)', total: 430 }, + { label: 'Advogado(a)', total: 410 }, + { label: 'Médico(a)', total: 385 }, + { label: 'Enfermeiro(a)', total: 360 }, + { label: 'Agricultor(a)', total: 350 }, + ], + ufDistribuicao: [ + { label: 'GO', total: 5080 }, + { label: 'DF', total: 1840 }, + { label: 'MG', total: 980 }, + { label: 'SP', total: 820 }, + { label: 'BA', total: 740 }, + ], + cidadesTop10: [ + { label: 'Goiânia', total: 2200 }, + { label: 'Aparecida de Goiânia', total: 980 }, + { label: 'Anápolis', total: 640 }, + { label: 'Formosa', total: 510 }, + { label: 'Trindade', total: 480 }, + { label: 'Luziânia', total: 465 }, + { label: 'Catalão', total: 430 }, + { label: 'Rio Verde', total: 415 }, + { label: 'Itumbiara', total: 400 }, + { label: 'Jataí', total: 395 }, + ], + qualidade: { + email: 91.2, + enderecoCompleto: 83.4, + telefoneValido: 77.9, + cpfInvalido: 248, + }, }; // ===================== // Helpers // ===================== -const monthName = (m: number) => new Date(2025, m - 1, 1).toLocaleDateString("pt-BR", { month: "short" }).replace(".", ""); +const monthName = (m: number) => + new Date(2025, m - 1, 1).toLocaleDateString('pt-BR', { month: 'short' }).replace('.', ''); -async function fetchApi(periodo: string, uf: string | null, cidade: string | null): Promise { - const params = new URLSearchParams(); - params.set("periodo", periodo); // ex: "12m", "24m", "ytd" - if (uf) params.set("uf", uf); - if (cidade) params.set("cidade", cidade); +async function fetchApi( + periodo: string, + uf: string | null, + cidade: string | null, +): Promise { + const params = new URLSearchParams(); + params.set('periodo', periodo); // ex: "12m", "24m", "ytd" + if (uf) params.set('uf', uf); + if (cidade) params.set('cidade', cidade); - try { - const ctrl = new AbortController(); - const to = setTimeout(() => ctrl.abort(), 6000); - const res = await fetch(`/api/dashboard/pessoas?${params.toString()}`, { signal: ctrl.signal }); - clearTimeout(to); - if (!res.ok) throw new Error("HTTP error"); - const data = (await res.json()) as ApiResponse; - return data; - } catch { - // fallback para mock - return MOCK; - } + try { + const ctrl = new AbortController(); + const to = setTimeout(() => ctrl.abort(), 6000); + const res = await fetch(`/api/dashboard/pessoas?${params.toString()}`, { signal: ctrl.signal }); + clearTimeout(to); + if (!res.ok) throw new Error('HTTP error'); + const data = (await res.json()) as ApiResponse; + return data; + } catch { + // fallback para mock + return MOCK; + } } // ===================== // Subcomponents // ===================== -function Kpi({ icon: Icon, label, value, hint, trend }: { icon: any; label: string; value: React.ReactNode; hint?: string; trend?: number }) { - const trendColor = trend == null ? "" : trend > 0 ? "text-emerald-600" : trend < 0 ? "text-rose-600" : "text-muted-foreground"; - const trendPrefix = trend == null ? "" : trend > 0 ? "+" : ""; - return ( - - - {label} - - - -
{value}
-

- {hint && {hint}} - {trend != null && ( - {trendPrefix}{trend.toFixed(1)}% - )} -

-
-
- ); +function Kpi({ + icon: Icon, + label, + value, + hint, + trend, +}: { + icon: any; + label: string; + value: React.ReactNode; + hint?: string; + trend?: number; +}) { + const trendColor = + trend == null + ? '' + : trend > 0 + ? 'text-emerald-600' + : trend < 0 + ? 'text-rose-600' + : 'text-muted-foreground'; + const trendPrefix = trend == null ? '' : trend > 0 ? '+' : ''; + return ( + + + {label} + + + +
{value}
+

+ {hint && {hint}} + {trend != null && ( + + {trendPrefix} + {trend.toFixed(1)}% + + )} +

+
+
+ ); } -function Section({ title, description, children, right = null }: { title: string; description?: string; children: React.ReactNode; right?: React.ReactNode | null }) { - return ( -
-
-
-

{title}

- {description &&

{description}

} -
- {right} -
-
{children}
-
- ); +function Section({ + title, + description, + children, + right = null, +}: { + title: string; + description?: string; + children: React.ReactNode; + right?: React.ReactNode | null; +}) { + return ( +
+
+
+

{title}

+ {description &&

{description}

} +
+ {right} +
+
{children}
+
+ ); } function DataProgress({ label, value, goal }: { label: string; value: number; goal: number }) { - const color = value >= goal ? "text-emerald-600" : "text-amber-600"; - return ( -
-
- {label} - {value.toFixed(1)}% (meta {goal}%) -
- -
- ); + const color = value >= goal ? 'text-emerald-600' : 'text-amber-600'; + return ( +
+
+ {label} + + {value.toFixed(1)}% (meta {goal}%) + +
+ +
+ ); } // ===================== @@ -230,277 +273,415 @@ function DataProgress({ label, value, goal }: { label: string; value: number; go // ===================== export default function TPessoaDashboard() { - const [periodo, setPeriodo] = useState("12m"); - const [uf, setUf] = useState(null); - const [cidade, setCidade] = useState(null); - const [data, setData] = useState(null); - const [loading, setLoading] = useState(true); + const [periodo, setPeriodo] = useState('12m'); + const [uf, setUf] = useState(null); + const [cidade, setCidade] = useState(null); + const [data, setData] = useState(null); + const [loading, setLoading] = useState(true); - useEffect(() => { - setLoading(true); - fetchApi(periodo, uf, cidade).then((d) => { - setData(d); - setLoading(false); - }); - }, [periodo, uf, cidade]); + useEffect(() => { + setLoading(true); + fetchApi(periodo, uf, cidade).then((d) => { + setData(d); + setLoading(false); + }); + }, [periodo, uf, cidade]); - const evolucaoFmt = useMemo(() => { - return (data?.evolucao ?? []).map((d) => ({ - mes: `${monthName(d.mes)}/${String(d.ano).slice(2)}`, - total: d.total, - })); - }, [data]); + const evolucaoFmt = useMemo(() => { + return (data?.evolucao ?? []).map((d) => ({ + mes: `${monthName(d.mes)}/${String(d.ano).slice(2)}`, + total: d.total, + })); + }, [data]); - const sexoFmt = useMemo(() => (data?.sexo ?? []).map((s) => ({ name: s.genero, value: s.total })), [data]); + const sexoFmt = useMemo( + () => (data?.sexo ?? []).map((s) => ({ name: s.genero, value: s.total })), + [data], + ); - const COLORS = ["#0ea5e9", "#22c55e", "#a3a3a3", "#a78bfa", "#fb7185", "#fbbf24"]; // não fixa cores globais, apenas define fallback estável + const COLORS = ['#0ea5e9', '#22c55e', '#a3a3a3', '#a78bfa', '#fb7185', '#fbbf24']; // não fixa cores globais, apenas define fallback estável - return ( -
- {/* Header */} -
-
- - Painel de Pessoas - -

Análise demográfica, documental e cadastral

-
-
- - - - - - setCidade(e.target.value || null)} /> - - -
-
- - {/* KPIs */} -
- : data?.kpis.total.toLocaleString("pt-BR")} hint={`${data?.kpis.novosMes ?? 0} novos no mês`} trend={data?.kpis.tendenciaMes} /> - : (data?.kpis.mediaIdade ?? 0)} hint="anos" /> - : `${data?.kpis.pctCpfCnpjValidos.toFixed(1)}%`} /> - : `${data?.kpis.pctEmailPreenchido.toFixed(1)}%`} /> -
- - {/* Evolução & Sexo */} -
- - - Evolução de Cadastros - - - - - - - - - - - - - - - - - - - - - - - Distribuição por Sexo - - - - - - - - {sexoFmt.map((entry, index) => ( - - ))} - - - - - -
- - {/* Estado Civil & Faixa etária */} -
- - - Estado Civil - - - - - - - - - - {(data?.estadoCivil ?? []).map((_, i) => ( - - ))} - - - - - - - - - Faixas Etárias - - - - - - - - - - {(data?.faixasEtarias ?? []).map((_, i) => ( - - ))} - - - - - -
- - {/* Geografia */} -
- - - Distribuição por UF - - - - - - - - - - {(data?.ufDistribuicao ?? []).map((_, i) => ( - - ))} - - - - - - - - - Top 10 Cidades - - - - - - - - - - {(data?.cidadesTop10 ?? []).map((_, i) => ( - - ))} - - - - - -
- - {/* Profissões */} -
- - - - - - - - - - {(data?.profissoesTop10 ?? []).map((_, i) => ( - - ))} - - - - - -
- - {/* Qualidade de Dados */} -
-
- - Cobertura - - - - - - - - - Indicadores - -
- % CPF/CNPJ válidos - {data?.kpis.pctCpfCnpjValidos.toFixed(1)}% -
-
- % E-mail preenchido - {data?.kpis.pctEmailPreenchido.toFixed(1)}% -
-
- Registros com CPF inconsistente - {data?.qualidade.cpfInvalido.toLocaleString("pt-BR")} -
-
-
- - - Ações rápidas - - - - - - -
-
- -

Fonte de dados: API /api/dashboard/pessoas — fallback automático para mock se indisponível.

+ return ( +
+ {/* Header */} +
+
+ + Painel de Pessoas + +

+ Análise demográfica, documental e cadastral +

- ); +
+ + + + + setCidade(e.target.value || null)} + /> + + +
+
+ + {/* KPIs */} +
+ + ) : ( + data?.kpis.total.toLocaleString('pt-BR') + ) + } + hint={`${data?.kpis.novosMes ?? 0} novos no mês`} + trend={data?.kpis.tendenciaMes} + /> + : (data?.kpis.mediaIdade ?? 0) + } + hint="anos" + /> + + ) : ( + `${data?.kpis.pctCpfCnpjValidos.toFixed(1)}%` + ) + } + /> + + ) : ( + `${data?.kpis.pctEmailPreenchido.toFixed(1)}%` + ) + } + /> +
+ + {/* Evolução & Sexo */} +
+ + + Evolução de Cadastros + + + + + + + + + + + + + + + + + + + + + + + Distribuição por Sexo + + + + + + + + {sexoFmt.map((entry, index) => ( + + ))} + + + + + +
+ + {/* Estado Civil & Faixa etária */} +
+ + + Estado Civil + + + + + + + + + + {(data?.estadoCivil ?? []).map((_, i) => ( + + ))} + + + + + + + + + Faixas Etárias + + + + + + + + + + {(data?.faixasEtarias ?? []).map((_, i) => ( + + ))} + + + + + +
+ + {/* Geografia */} +
+ + + Distribuição por UF + + + + + + + + + + {(data?.ufDistribuicao ?? []).map((_, i) => ( + + ))} + + + + + + + + + Top 10 Cidades + + + + + + + + + + {(data?.cidadesTop10 ?? []).map((_, i) => ( + + ))} + + + + + +
+ + {/* Profissões */} +
+ + + + + + + + + + {(data?.profissoesTop10 ?? []).map((_, i) => ( + + ))} + + + + + +
+ + {/* Qualidade de Dados */} +
+
+ + + Cobertura + + + + + + + + + + + Indicadores + + +
+ % CPF/CNPJ válidos + {data?.kpis.pctCpfCnpjValidos.toFixed(1)}% +
+
+ % E-mail preenchido + {data?.kpis.pctEmailPreenchido.toFixed(1)}% +
+
+ Registros com CPF inconsistente + + {data?.qualidade.cpfInvalido.toLocaleString('pt-BR')} + +
+
+
+ + + + Ações rápidas + + + + + + + +
+
+ +

+ Fonte de dados: API /api/dashboard/pessoas — fallback automático para mock se indisponível. +

+
+ ); } diff --git a/src/packages/administrativo/components/TPessoa/TPessoaFisica/TPessoaFisicaForm.tsx b/src/packages/administrativo/components/TPessoa/TPessoaFisica/TPessoaFisicaForm.tsx index 62bb52d..9f9ab23 100644 --- a/src/packages/administrativo/components/TPessoa/TPessoaFisica/TPessoaFisicaForm.tsx +++ b/src/packages/administrativo/components/TPessoa/TPessoaFisica/TPessoaFisicaForm.tsx @@ -45,7 +45,6 @@ import { Sexo } from '@/shared/enums/SexoEnum'; import { useGTBEstadoCivilReadHook } from '../../../hooks/GTBEstadoCivil/useGTBEstadoCivilReadHook'; import { useGTBRegimeComunhaoReadHook } from '../../../hooks/GTBRegimeComunhao/useGTBRegimeComunhaoReadHook'; - export default function TPessoaFisicaForm({ isOpen, data, @@ -290,9 +289,9 @@ export default function TPessoaFisicaForm({ > {field.value ? gTBEstadoCivil?.find( - (item) => - String(item.tb_estadocivil_id) === String(field.value), - )?.descricao + (item) => + String(item.tb_estadocivil_id) === String(field.value), + )?.descricao : 'Escolha o estado civil'} @@ -356,10 +355,10 @@ export default function TPessoaFisicaForm({ > {field.value ? gTBRegimeComunhao?.find( - (item) => - String(item.tb_regimecomunhao_id) === - String(field.value), - )?.descricao + (item) => + String(item.tb_regimecomunhao_id) === + String(field.value), + )?.descricao : 'Escolha o regime'} @@ -424,9 +423,9 @@ export default function TPessoaFisicaForm({ > {field.value ? gTBProfissao?.find( - (item) => - String(item.tb_profissao_id) === String(field.value), - )?.descricao + (item) => + String(item.tb_profissao_id) === String(field.value), + )?.descricao : 'Escolha a profissão'} diff --git a/src/packages/administrativo/components/TPessoa/TPessoaTableFormColumnsDialog.tsx b/src/packages/administrativo/components/TPessoa/TPessoaTableFormColumnsDialog.tsx index df9842b..4356aaf 100644 --- a/src/packages/administrativo/components/TPessoa/TPessoaTableFormColumnsDialog.tsx +++ b/src/packages/administrativo/components/TPessoa/TPessoaTableFormColumnsDialog.tsx @@ -14,7 +14,9 @@ import TPessoaInterface from '../../interfaces/TPessoa/TPessoaInterface'; /** * Função para criar a definição das colunas da tabela */ -export function TPessoaTableFormColumnsDialog(setSelectedTPessoa: React.Dispatch>): ColumnDef[] { +export function TPessoaTableFormColumnsDialog( + setSelectedTPessoa: React.Dispatch>, +): ColumnDef[] { return [ { id: 'select', @@ -156,6 +158,5 @@ export function TPessoaTableFormColumnsDialog(setSelectedTPessoa: React.Dispatch cell: ({ row }) => FormatDateTime(row.getValue('data_cadastro')), sortingFn: 'datetime', }, - ]; } diff --git a/src/packages/administrativo/components/TPessoa/TPessoaTableFormDialog.tsx b/src/packages/administrativo/components/TPessoa/TPessoaTableFormDialog.tsx index a318a2f..cc2a03f 100644 --- a/src/packages/administrativo/components/TPessoa/TPessoaTableFormDialog.tsx +++ b/src/packages/administrativo/components/TPessoa/TPessoaTableFormDialog.tsx @@ -10,7 +10,7 @@ import { DialogDescription, DialogFooter, DialogHeader, - DialogTitle + DialogTitle, } from '@/components/ui/dialog'; import { useTPessoaFisicaIndexHook } from '@/packages/administrativo/hooks/TPessoa/TPessoaFisica/useTPessoaFisicaIndexHook'; import { useTPessoaJuridicaIndexHook } from '@/packages/administrativo/hooks/TPessoa/TPessoaJuridica/useTPessoaJuridicaIndexHook'; @@ -28,56 +28,41 @@ export default function TPessoaTableFormDialog({ onSave, buttonIsLoading, }: TPessoaTableFormInterface) { - const { tPessoaFisica, fetchTPessoaFisica } = useTPessoaFisicaIndexHook(); const { tPessoaJuridica, fetchTPessoaJuridica } = useTPessoaJuridicaIndexHook(); - const [pessoas, setPessoas] = useState() + const [pessoas, setPessoas] = useState(); const [selectedTPessoa, setSelectedTPessoa] = useState(null); // Executa o Hook de Acordo com o tipo de pessoa informado const loadData = async (tipoPessoa: string) => { - switch (tipoPessoa) { - - case "F": - + case 'F': await fetchTPessoaFisica(); break; - case "J": - + case 'J': await fetchTPessoaJuridica(); break; - } - }; // Atualiza a variavel de pessoa quando tiver alteração na variavel de pessoas fisicas useEffect(() => { - - setPessoas(tPessoaFisica) - - }, [tPessoaFisica]) + setPessoas(tPessoaFisica); + }, [tPessoaFisica]); // Atualiza a variavel de pessoa quando tiver alteração na variavel de pessoas juridicas useEffect(() => { - - setPessoas(tPessoaJuridica) - - }, [tPessoaJuridica]) + setPessoas(tPessoaJuridica); + }, [tPessoaJuridica]); // Executa o hook correspondente ao tipo de pessoa, sempre que o tipo pessoa mudar useEffect(() => { - // Verifica se o tipo pessoa esta preenchido if (tipoPessoa) { - // Dispara o carregamento de informações loadData(tipoPessoa); - } - }, [tipoPessoa]); const columns = TPessoaTableFormColumnsDialog(setSelectedTPessoa); @@ -119,7 +104,10 @@ export default function TPessoaTableFormDialog({ textLoading="Aguarde..." loading={buttonIsLoading} type="button" - onClick={() => { onSave(selectedTPessoa); onClose(null, false); }} + onClick={() => { + onSave(selectedTPessoa); + onClose(null, false); + }} /> diff --git a/src/packages/administrativo/components/TPessoa/TPessoaTableFormSubview.tsx b/src/packages/administrativo/components/TPessoa/TPessoaTableFormSubview.tsx index 817999a..f352847 100644 --- a/src/packages/administrativo/components/TPessoa/TPessoaTableFormSubview.tsx +++ b/src/packages/administrativo/components/TPessoa/TPessoaTableFormSubview.tsx @@ -1,20 +1,15 @@ import { FingerprintIcon, WebcamIcon } from 'lucide-react'; -import { - memo, - useCallback, - useMemo, - useState -} from 'react'; +import { memo, useCallback, useMemo, useState } from 'react'; import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; import { Button } from '@/components/ui/button'; import { - Item, - ItemActions, - ItemContent, - ItemDescription, - ItemMedia, - ItemTitle + Item, + ItemActions, + ItemContent, + ItemDescription, + ItemMedia, + ItemTitle, } from '@/components/ui/item'; import TPessoaCartaoForm from '@/packages/servicos/components/TPessoaCartao/TPessoaCartaoForm'; import GetNameInitials from '@/shared/actions/text/GetNameInitials'; @@ -24,104 +19,98 @@ import { useFingerTechCaptureHook } from '@/shared/hooks/FingerTech/useFingerTec import TPessoaTableFormSubviewInterface from '../../interfaces/TPessoa/TPessoaTableFormSubviewInterface'; function TPessoaTableFormSubview({ - item_index, - data, - params, - form, + item_index, + data, + params, + form, }: TPessoaTableFormSubviewInterface) { + const [isWebCamOpenDialog, setIsWebCamOpenDialog] = useState(false); + const { base64, captureFingerTech } = useFingerTechCaptureHook(); - const [isWebCamOpenDialog, setIsWebCamOpenDialog] = useState(false) - const { base64, captureFingerTech } = useFingerTechCaptureHook(); + // Chama o leitor biométrico + const handleBiometria = useCallback(() => { + console.log(captureFingerTech()); + }, []); - // Chama o leitor biométrico - const handleBiometria = useCallback(() => { + const biometriaButtonClass = useMemo(() => { + const status = 1 as number; // força tipo number - console.log(captureFingerTech()) + switch (status) { + case 0: + return 'bg-amber-100 text-amber-700 border border-amber-300 hover:bg-amber-200 hover:text-amber-800'; + case 1: + return 'bg-green-100 text-green-700 border border-green-300 hover:bg-green-200 hover:text-green-800'; + case 2: + return 'bg-red-100 text-red-700 border border-red-300 hover:bg-red-200 hover:text-red-800'; + default: + return ''; + } + }, []); - }, []) - - const biometriaButtonClass = useMemo(() => { - const status = 1 as number; // força tipo number - - switch (status) { - case 0: - return 'bg-amber-100 text-amber-700 border border-amber-300 hover:bg-amber-200 hover:text-amber-800'; - case 1: - return 'bg-green-100 text-green-700 border border-green-300 hover:bg-green-200 hover:text-green-800'; - case 2: - return 'bg-red-100 text-red-700 border border-red-300 hover:bg-red-200 hover:text-red-800'; - default: - return ''; - } - }, []); - - return ( -
- - - - - - {GetNameInitials(data.pessoa?.nome)} - - - - - - {data.pessoa?.cpf_cnpj} - {data.pessoa?.nome} - - - {data.pessoa?.email || 'Email não informado'} - - {params - .filter((param) => Number(param.valor) === data.servico.servico_tipo_id) - .map((param) => ( - - ))} - - - - {data.servico.requer_biometria === 'S' && ( - - )} - {data.servico.requer_biometria && ( - - )} - - - {isWebCamOpenDialog && ( - { setIsWebCamOpenDialog(false) }} - onSave={() => { }} - key={item_index} - /> - )} -
- ); + return ( +
+ + + + + {GetNameInitials(data.pessoa?.nome)} + + + + + {data.pessoa?.cpf_cnpj} - {data.pessoa?.nome} + + {data.pessoa?.email || 'Email não informado'} + {params + .filter((param) => Number(param.valor) === data.servico.servico_tipo_id) + .map((param) => ( + + ))} + + + {data.servico.requer_biometria === 'S' && ( + + )} + {data.servico.requer_biometria && ( + + )} + + + {isWebCamOpenDialog && ( + { + setIsWebCamOpenDialog(false); + }} + onSave={() => {}} + key={item_index} + /> + )} +
+ ); } // Memo para evitar re-renderizações desnecessárias da subview -export default memo(TPessoaTableFormSubview); \ No newline at end of file +export default memo(TPessoaTableFormSubview); diff --git a/src/packages/administrativo/components/TServicoTipo/TServicoTipoColumns.tsx b/src/packages/administrativo/components/TServicoTipo/TServicoTipoColumns.tsx index 093b994..83f2fd3 100644 --- a/src/packages/administrativo/components/TServicoTipo/TServicoTipoColumns.tsx +++ b/src/packages/administrativo/components/TServicoTipo/TServicoTipoColumns.tsx @@ -14,7 +14,6 @@ import TServicoTipoInterface from '@/packages/administrativo/interfaces/TServico import GetCapitalize from '@/shared/actions/text/GetCapitalize'; import { SortableHeader } from '@/shared/components/dataTable/SortableHeader'; - export default function TServicoTipoColumns( onEdit: (item: TServicoTipoInterface, isEditingFormStatus: boolean) => void, onDelete: (item: TServicoTipoInterface, isEditingFormStatus: boolean) => void, @@ -55,9 +54,7 @@ export default function TServicoTipoColumns( Editar - onDelete(data, true)} - > + onDelete(data, true)}> Remover diff --git a/src/packages/administrativo/components/TServicoTipo/TServicoTipoForm.tsx b/src/packages/administrativo/components/TServicoTipo/TServicoTipoForm.tsx index e1632dc..111517f 100644 --- a/src/packages/administrativo/components/TServicoTipo/TServicoTipoForm.tsx +++ b/src/packages/administrativo/components/TServicoTipo/TServicoTipoForm.tsx @@ -432,15 +432,11 @@ export default function TServicoTipoForm({ className="cursor-pointer" checked={isChecked} onCheckedChange={(checked) => { - field.onChange( - checked ? SituacoesEnum.A : SituacoesEnum.I - ); + field.onChange(checked ? SituacoesEnum.A : SituacoesEnum.I); }} /> - - Ativo - + Ativo ); }} diff --git a/src/packages/administrativo/components/TServicoTipo/TServicoTipoIndex.tsx b/src/packages/administrativo/components/TServicoTipo/TServicoTipoIndex.tsx index ac15cf2..dd4a833 100644 --- a/src/packages/administrativo/components/TServicoTipo/TServicoTipoIndex.tsx +++ b/src/packages/administrativo/components/TServicoTipo/TServicoTipoIndex.tsx @@ -16,9 +16,7 @@ import Header from '@/shared/components/structure/Header'; import TServicoTipoForm from './TServicoTipoForm'; import TServicoTipoTable from './TServicoTipoTable'; - export default function TServicoTipoIndex() { - const { tServicoTipo, fetchTServicoTipo } = useTServicoTipoReadHook(); const { saveTServicoTipo } = useTServicoTipoSaveHook(); const { removeTServicoTipo } = useTServicoTipoRemoveHook(); @@ -89,7 +87,6 @@ export default function TServicoTipoIndex() { // Atualiza a lista de dados fetchTServicoTipo(); - }, [saveTServicoTipo, fetchTServicoTipo], ); @@ -139,9 +136,7 @@ export default function TServicoTipoIndex() { * Tela de loading enquanto carrega os dados */ if (!tServicoTipo) { - return ; - } return ( diff --git a/src/packages/administrativo/components/TServicoTipo/TServicoTipoSelect.tsx b/src/packages/administrativo/components/TServicoTipo/TServicoTipoSelect.tsx index d116091..9db4083 100644 --- a/src/packages/administrativo/components/TServicoTipo/TServicoTipoSelect.tsx +++ b/src/packages/administrativo/components/TServicoTipo/TServicoTipoSelect.tsx @@ -5,12 +5,12 @@ import { useCallback, useEffect, useState } from 'react'; import { Button } from '@/components/ui/button'; import { - Command, - CommandEmpty, - CommandGroup, - CommandInput, - CommandItem, - CommandList, + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, } from '@/components/ui/command'; import { FormControl } from '@/components/ui/form'; import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'; @@ -25,14 +25,14 @@ import { ConfirmacaoEnum } from '@/shared/enums/ConfirmacaoEnum'; * Estrutura mínima esperada de um tipo de serviço */ interface TServicoTipoItem { - servico_tipo_id?: number; - descricao?: string; - tipo_item?: string; - tipo_pessoa?: string; - requer_biometria?: ConfirmacaoEnum; - requer_cpf?: ConfirmacaoEnum; - servico_caixa_id?: number; - selar?: ConfirmacaoEnum; + servico_tipo_id?: number; + descricao?: string; + tipo_item?: string; + tipo_pessoa?: string; + requer_biometria?: ConfirmacaoEnum; + requer_cpf?: ConfirmacaoEnum; + servico_caixa_id?: number; + selar?: ConfirmacaoEnum; } /** @@ -40,117 +40,112 @@ interface TServicoTipoItem { * Compatível com react-hook-form e schemas com objetos completos. */ export default function TServicoTipoSelect({ field }: TServicoTipoSelectInterface) { - const [open, setOpen] = useState(false); - const [isLoading, setIsLoading] = useState(false); - const { tServicoTipo = [], fetchTServicoTipo } = useTServicoTipoReadHook(); + const [open, setOpen] = useState(false); + const [isLoading, setIsLoading] = useState(false); + const { tServicoTipo = [], fetchTServicoTipo } = useTServicoTipoReadHook(); - /** - * Busca inicial de dados - */ - const loadData = useCallback(async () => { - if (tServicoTipo.length) return; + /** + * Busca inicial de dados + */ + const loadData = useCallback(async () => { + if (tServicoTipo.length) return; - const params: TServicoTipoIndexInteface = { - urlParams: { situacao: 'A' }, - }; + const params: TServicoTipoIndexInteface = { + urlParams: { situacao: 'A' }, + }; - setIsLoading(true); - await fetchTServicoTipo(params); - setIsLoading(false); - }, [tServicoTipo.length, fetchTServicoTipo]); + setIsLoading(true); + await fetchTServicoTipo(params); + setIsLoading(false); + }, [tServicoTipo.length, fetchTServicoTipo]); - useEffect(() => { - loadData(); - }, [loadData]); + useEffect(() => { + loadData(); + }, [loadData]); - /** - * Manipula a seleção de um item - */ - const handleSelect = useCallback( - (item: TServicoTipoItem) => { - if (!field?.onChange) return; + /** + * Manipula a seleção de um item + */ + const handleSelect = useCallback( + (item: TServicoTipoItem) => { + if (!field?.onChange) return; - const selected: TServicoTipoItem = { - servico_tipo_id: Number(item.servico_tipo_id ?? 0), - descricao: String(item.descricao ?? ''), - tipo_item: String(item.tipo_item ?? ''), - tipo_pessoa: String(item.tipo_pessoa ?? ''), - requer_biometria: (item.requer_biometria as ConfirmacaoEnum) ?? ConfirmacaoEnum.N, - requer_cpf: (item.requer_cpf as ConfirmacaoEnum) ?? ConfirmacaoEnum.N, - servico_caixa_id: Number(item.servico_caixa_id ?? 0), - selar: (item.selar as ConfirmacaoEnum) ?? ConfirmacaoEnum.N, - }; + const selected: TServicoTipoItem = { + servico_tipo_id: Number(item.servico_tipo_id ?? 0), + descricao: String(item.descricao ?? ''), + tipo_item: String(item.tipo_item ?? ''), + tipo_pessoa: String(item.tipo_pessoa ?? ''), + requer_biometria: (item.requer_biometria as ConfirmacaoEnum) ?? ConfirmacaoEnum.N, + requer_cpf: (item.requer_cpf as ConfirmacaoEnum) ?? ConfirmacaoEnum.N, + servico_caixa_id: Number(item.servico_caixa_id ?? 0), + selar: (item.selar as ConfirmacaoEnum) ?? ConfirmacaoEnum.N, + }; - field.onChange(selected); - setOpen(false); - }, - [field], - ); + field.onChange(selected); + setOpen(false); + }, + [field], + ); - /** - * Determina o valor exibido no botão principal - */ - const value = field?.value as TServicoTipoItem | undefined; + /** + * Determina o valor exibido no botão principal + */ + const value = field?.value as TServicoTipoItem | undefined; - const selectedLabel = - value?.descricao && typeof value.descricao === 'string' - ? GetCapitalize(value.descricao) - : 'Selecione...'; + const selectedLabel = + value?.descricao && typeof value.descricao === 'string' + ? GetCapitalize(value.descricao) + : 'Selecione...'; - const selectedId = - typeof value?.servico_tipo_id === 'number' - ? String(value.servico_tipo_id) - : ''; + const selectedId = + typeof value?.servico_tipo_id === 'number' ? String(value.servico_tipo_id) : ''; - return ( - - - - - - + return ( + + + + + + - - - - - - {isLoading ? 'Carregando...' : 'Nenhum resultado encontrado.'} - - - {tServicoTipo.map((item) => { - const itemId = String(item.servico_tipo_id ?? ''); - const isSelected = selectedId === itemId; + + + + + + {isLoading ? 'Carregando...' : 'Nenhum resultado encontrado.'} + + + {tServicoTipo.map((item) => { + const itemId = String(item.servico_tipo_id ?? ''); + const isSelected = selectedId === itemId; - return ( - handleSelect(item)} - > - - {GetCapitalize(item.descricao ?? '')} - - ); - })} - - - - - - ); + return ( + handleSelect(item)} + > + + {GetCapitalize(item.descricao ?? '')} + + ); + })} + + + + + + ); } diff --git a/src/packages/administrativo/components/TServicoTipo/TServicoTipoTable.tsx b/src/packages/administrativo/components/TServicoTipo/TServicoTipoTable.tsx index 00928ca..c5c14d7 100644 --- a/src/packages/administrativo/components/TServicoTipo/TServicoTipoTable.tsx +++ b/src/packages/administrativo/components/TServicoTipo/TServicoTipoTable.tsx @@ -5,7 +5,6 @@ import { DataTable } from '@/shared/components/dataTable/DataTable'; import TServicoTipoColumns from './TServicoTipoColumns'; - /** * Componente principal da tabela de Naturezas */ @@ -21,4 +20,4 @@ export default function TServicoTipoTable({ data, onEdit, onDelete }: TServicoTi />
); -} \ No newline at end of file +} diff --git a/src/packages/administrativo/components/TTBReconhecimentoTipo/TTBReconhecimentoTipoForm.tsx b/src/packages/administrativo/components/TTBReconhecimentoTipo/TTBReconhecimentoTipoForm.tsx index 88d65eb..dc65160 100644 --- a/src/packages/administrativo/components/TTBReconhecimentoTipo/TTBReconhecimentoTipoForm.tsx +++ b/src/packages/administrativo/components/TTBReconhecimentoTipo/TTBReconhecimentoTipoForm.tsx @@ -99,9 +99,7 @@ export default function TTBReconhecimentoTipoForm({ - field.onChange( - checked ? SituacoesEnum.A : SituacoesEnum.I, - ) + field.onChange(checked ? SituacoesEnum.A : SituacoesEnum.I) } /> diff --git a/src/packages/administrativo/components/TTBReconhecimentoTipo/TTBReconhecimentoTipoIndex.tsx b/src/packages/administrativo/components/TTBReconhecimentoTipo/TTBReconhecimentoTipoIndex.tsx index 54f77b8..e9fc85f 100644 --- a/src/packages/administrativo/components/TTBReconhecimentoTipo/TTBReconhecimentoTipoIndex.tsx +++ b/src/packages/administrativo/components/TTBReconhecimentoTipo/TTBReconhecimentoTipoIndex.tsx @@ -32,11 +32,7 @@ export default function TTBReconhecimentoTipoIndex() { /** * Hook do modal de confirmação */ - const { - isOpen: isConfirmOpen, - openDialog: openConfirmDialog, - handleCancel, - } = useConfirmDialog(); + const { isOpen: isConfirmOpen, openDialog: openConfirmDialog, handleCancel } = useConfirmDialog(); /** * Abre o formulário no modo de edição ou criação diff --git a/src/packages/administrativo/data/CCaixaServico/CCaixaServicoIndexData.ts b/src/packages/administrativo/data/CCaixaServico/CCaixaServicoIndexData.ts index da556bf..44007bd 100644 --- a/src/packages/administrativo/data/CCaixaServico/CCaixaServicoIndexData.ts +++ b/src/packages/administrativo/data/CCaixaServico/CCaixaServicoIndexData.ts @@ -22,7 +22,6 @@ async function executeCCaixaServicoIndexData(data: CCaixaServicoReadInterface) { method: Methods.GET, endpoint: endpoint, }); - } // Exporta a função encapsulada pelo handler de erro, garantindo tratamento uniforme em caso de falhas diff --git a/src/packages/administrativo/data/GCalculo/GCalculoCalcularData.ts b/src/packages/administrativo/data/GCalculo/GCalculoCalcularData.ts index d109b1e..d20ab7d 100644 --- a/src/packages/administrativo/data/GCalculo/GCalculoCalcularData.ts +++ b/src/packages/administrativo/data/GCalculo/GCalculoCalcularData.ts @@ -4,7 +4,6 @@ import API from '@/shared/services/api/Api'; import { Methods } from '@/shared/services/api/enums/ApiMethodEnum'; import ApiResponseInterface from '@/shared/services/api/interfaces/ApiResponseInterface'; - async function executeGCalculoCalcularData(data: GCalculoInterface): Promise { const api = new API(); return api.send({ diff --git a/src/packages/administrativo/data/GCalculo/GCalculoServicoData.ts b/src/packages/administrativo/data/GCalculo/GCalculoServicoData.ts index fe803f7..8b32232 100644 --- a/src/packages/administrativo/data/GCalculo/GCalculoServicoData.ts +++ b/src/packages/administrativo/data/GCalculo/GCalculoServicoData.ts @@ -4,7 +4,6 @@ import API from '@/shared/services/api/Api'; import { Methods } from '@/shared/services/api/enums/ApiMethodEnum'; import ApiResponseInterface from '@/shared/services/api/interfaces/ApiResponseInterface'; - async function executeGCalculoCalcularData(data: GCalculoInterface): Promise { const api = new API(); return api.send({ diff --git a/src/packages/administrativo/data/GEmolumento/GEmolumentoDeleteData.ts b/src/packages/administrativo/data/GEmolumento/GEmolumentoDeleteData.ts index 8ae4953..ae98c59 100644 --- a/src/packages/administrativo/data/GEmolumento/GEmolumentoDeleteData.ts +++ b/src/packages/administrativo/data/GEmolumento/GEmolumentoDeleteData.ts @@ -4,8 +4,9 @@ import API from '@/shared/services/api/Api'; import { Methods } from '@/shared/services/api/enums/ApiMethodEnum'; import ApiResponseInterface from '@/shared/services/api/interfaces/ApiResponseInterface'; - -async function executeGEmolumentoDeleteData(data: GEmolumentoInterface): Promise { +async function executeGEmolumentoDeleteData( + data: GEmolumentoInterface, +): Promise { const api = new API(); return api.send({ diff --git a/src/packages/administrativo/data/GEmolumento/GEmolumentoIndexData.ts b/src/packages/administrativo/data/GEmolumento/GEmolumentoIndexData.ts index 9f19a82..45a388d 100644 --- a/src/packages/administrativo/data/GEmolumento/GEmolumentoIndexData.ts +++ b/src/packages/administrativo/data/GEmolumento/GEmolumentoIndexData.ts @@ -5,10 +5,11 @@ import API from '@/shared/services/api/Api'; import { Methods } from '@/shared/services/api/enums/ApiMethodEnum'; async function executeGEmolumentoIndexData(data?: GEmolumentoReadInterface) { - const api = new API(); - const queryString = data?.urlParams ? new URLSearchParams(data.urlParams as Record).toString() : ''; + const queryString = data?.urlParams + ? new URLSearchParams(data.urlParams as Record).toString() + : ''; return await api.send({ method: Methods.GET, @@ -16,4 +17,4 @@ async function executeGEmolumentoIndexData(data?: GEmolumentoReadInterface) { }); } -export const GEmolumentoIndexData = withClientErrorHandler(executeGEmolumentoIndexData); \ No newline at end of file +export const GEmolumentoIndexData = withClientErrorHandler(executeGEmolumentoIndexData); diff --git a/src/packages/administrativo/data/GEmolumento/GEmolumentoSaveData.ts b/src/packages/administrativo/data/GEmolumento/GEmolumentoSaveData.ts index c061e4c..79ab5bb 100644 --- a/src/packages/administrativo/data/GEmolumento/GEmolumentoSaveData.ts +++ b/src/packages/administrativo/data/GEmolumento/GEmolumentoSaveData.ts @@ -4,8 +4,9 @@ import API from '@/shared/services/api/Api'; import { Methods } from '@/shared/services/api/enums/ApiMethodEnum'; import ApiResponseInterface from '@/shared/services/api/interfaces/ApiResponseInterface'; - -async function executeGEmolumentoSaveData(data: GEmolumentoInterface): Promise { +async function executeGEmolumentoSaveData( + data: GEmolumentoInterface, +): Promise { // Verifica se existe ID para decidir se é atualização (PUT) ou criação (POST) const isUpdate = Boolean(data.emolumento_id); diff --git a/src/packages/administrativo/data/GEmolumentoItem/GEmolumentoItemDeleteData.ts b/src/packages/administrativo/data/GEmolumentoItem/GEmolumentoItemDeleteData.ts index 67c4020..7a4e296 100644 --- a/src/packages/administrativo/data/GEmolumentoItem/GEmolumentoItemDeleteData.ts +++ b/src/packages/administrativo/data/GEmolumentoItem/GEmolumentoItemDeleteData.ts @@ -4,8 +4,9 @@ import API from '@/shared/services/api/Api'; import { Methods } from '@/shared/services/api/enums/ApiMethodEnum'; import ApiResponseInterface from '@/shared/services/api/interfaces/ApiResponseInterface'; - -async function executeGEmolumentoItemDeleteData(data: GEmolumentoItemInterface): Promise { +async function executeGEmolumentoItemDeleteData( + data: GEmolumentoItemInterface, +): Promise { const api = new API(); return api.send({ diff --git a/src/packages/administrativo/data/GEmolumentoItem/GEmolumentoItemIndexData.ts b/src/packages/administrativo/data/GEmolumentoItem/GEmolumentoItemIndexData.ts index dbf3d3a..0e87a8d 100644 --- a/src/packages/administrativo/data/GEmolumentoItem/GEmolumentoItemIndexData.ts +++ b/src/packages/administrativo/data/GEmolumentoItem/GEmolumentoItemIndexData.ts @@ -4,8 +4,9 @@ import API from '@/shared/services/api/Api'; import { Methods } from '@/shared/services/api/enums/ApiMethodEnum'; import ApiResponseInterface from '@/shared/services/api/interfaces/ApiResponseInterface'; - -async function executeGEmolumentoItemIndexData(data: GEmolumentoItemIndexInterface): Promise { +async function executeGEmolumentoItemIndexData( + data: GEmolumentoItemIndexInterface, +): Promise { const api = new API(); return api.send({ method: Methods.GET, @@ -13,4 +14,4 @@ async function executeGEmolumentoItemIndexData(data: GEmolumentoItemIndexInterfa }); } -export const GEmolumentoItemIndexData = withClientErrorHandler(executeGEmolumentoItemIndexData); \ No newline at end of file +export const GEmolumentoItemIndexData = withClientErrorHandler(executeGEmolumentoItemIndexData); diff --git a/src/packages/administrativo/data/GEmolumentoItem/GEmolumentoItemSaveData.ts b/src/packages/administrativo/data/GEmolumentoItem/GEmolumentoItemSaveData.ts index 69f58ae..3d53dd8 100644 --- a/src/packages/administrativo/data/GEmolumentoItem/GEmolumentoItemSaveData.ts +++ b/src/packages/administrativo/data/GEmolumentoItem/GEmolumentoItemSaveData.ts @@ -4,8 +4,9 @@ import API from '@/shared/services/api/Api'; import { Methods } from '@/shared/services/api/enums/ApiMethodEnum'; import ApiResponseInterface from '@/shared/services/api/interfaces/ApiResponseInterface'; - -async function executeGEmolumentoItemSaveData(data: GEmolumentoItemInterface): Promise { +async function executeGEmolumentoItemSaveData( + data: GEmolumentoItemInterface, +): Promise { // Verifica se existe ID para decidir se é atualização (PUT) ou criação (POST) const isUpdate = Boolean(data.emolumento_item_id); diff --git a/src/packages/administrativo/data/GEmolumentoPeriodo/GEmolumentoPeriodoDeleteData.ts b/src/packages/administrativo/data/GEmolumentoPeriodo/GEmolumentoPeriodoDeleteData.ts index 59ebdb2..5d8e501 100644 --- a/src/packages/administrativo/data/GEmolumentoPeriodo/GEmolumentoPeriodoDeleteData.ts +++ b/src/packages/administrativo/data/GEmolumentoPeriodo/GEmolumentoPeriodoDeleteData.ts @@ -5,7 +5,9 @@ import ApiResponseInterface from '@/shared/services/api/interfaces/ApiResponseIn import GEmolumentoPeriodoInterface from '../../interfaces/GEmolumentoPeriodo/GEmolumentoPeriodoInterface'; -async function executeGEmolumentoPeriodoDeleteData(data: GEmolumentoPeriodoInterface): Promise { +async function executeGEmolumentoPeriodoDeleteData( + data: GEmolumentoPeriodoInterface, +): Promise { const api = new API(); return api.send({ @@ -14,4 +16,6 @@ async function executeGEmolumentoPeriodoDeleteData(data: GEmolumentoPeriodoInter }); } -export const GEmolumentoPeriodoDeleteData = withClientErrorHandler(executeGEmolumentoPeriodoDeleteData); +export const GEmolumentoPeriodoDeleteData = withClientErrorHandler( + executeGEmolumentoPeriodoDeleteData, +); diff --git a/src/packages/administrativo/data/GEmolumentoPeriodo/GEmolumentoPeriodoIndexData.ts b/src/packages/administrativo/data/GEmolumentoPeriodo/GEmolumentoPeriodoIndexData.ts index caa1669..f6dadb3 100644 --- a/src/packages/administrativo/data/GEmolumentoPeriodo/GEmolumentoPeriodoIndexData.ts +++ b/src/packages/administrativo/data/GEmolumentoPeriodo/GEmolumentoPeriodoIndexData.ts @@ -12,4 +12,6 @@ async function executeGEmolumentoPeriodoIndexData(): Promise { +async function executeGEmolumentoPeriodoSaveData( + data: GEmolumentoPeriodoInterface, +): Promise { // Verifica se existe ID para decidir se é atualização (PUT) ou criação (POST) const isUpdate = Boolean(data.emolumento_periodo_id); diff --git a/src/packages/administrativo/data/GGramatica/GGramaticaDeleteData.ts b/src/packages/administrativo/data/GGramatica/GGramaticaDeleteData.ts index d8cd6b3..8781658 100644 --- a/src/packages/administrativo/data/GGramatica/GGramaticaDeleteData.ts +++ b/src/packages/administrativo/data/GGramatica/GGramaticaDeleteData.ts @@ -5,7 +5,9 @@ import ApiResponseInterface from '@/shared/services/api/interfaces/ApiResponseIn import GGramaticaInterface from '../../interfaces/GGramatica/GGramaticaInterface'; -async function executeGGramaticaDeleteData(data: GGramaticaInterface): Promise { +async function executeGGramaticaDeleteData( + data: GGramaticaInterface, +): Promise { const api = new API(); return api.send({ diff --git a/src/packages/administrativo/data/GNaturezaTitulo/GNaturezaTituloDeleteData.ts b/src/packages/administrativo/data/GNaturezaTitulo/GNaturezaTituloDeleteData.ts index d2b0252..322cbd7 100644 --- a/src/packages/administrativo/data/GNaturezaTitulo/GNaturezaTituloDeleteData.ts +++ b/src/packages/administrativo/data/GNaturezaTitulo/GNaturezaTituloDeleteData.ts @@ -5,7 +5,9 @@ import ApiResponseInterface from '@/shared/services/api/interfaces/ApiResponseIn import GNaturezaTituloInterface from '../../interfaces/GNaturezaTitulo/GNaturezaTituloInterface'; -async function executeGNaturezaTituloDeleteData(data: GNaturezaTituloInterface): Promise { +async function executeGNaturezaTituloDeleteData( + data: GNaturezaTituloInterface, +): Promise { const api = new API(); return api.send({ diff --git a/src/packages/administrativo/data/GNaturezaTitulo/GNaturezaTituloIndexData.ts b/src/packages/administrativo/data/GNaturezaTitulo/GNaturezaTituloIndexData.ts index bae199f..89ec75a 100644 --- a/src/packages/administrativo/data/GNaturezaTitulo/GNaturezaTituloIndexData.ts +++ b/src/packages/administrativo/data/GNaturezaTitulo/GNaturezaTituloIndexData.ts @@ -5,7 +5,9 @@ import ApiResponseInterface from '@/shared/services/api/interfaces/ApiResponseIn import GNaturezaTituloInterface from '../../interfaces/GNaturezaTitulo/GNaturezaTituloInterface'; -async function executeGNaturezaTituloIndexData(data: GNaturezaTituloInterface): Promise { +async function executeGNaturezaTituloIndexData( + data: GNaturezaTituloInterface, +): Promise { const api = new API(); return api.send({ diff --git a/src/packages/administrativo/data/GNaturezaTitulo/GNaturezaTituloSaveData.ts b/src/packages/administrativo/data/GNaturezaTitulo/GNaturezaTituloSaveData.ts index c985672..aa80231 100644 --- a/src/packages/administrativo/data/GNaturezaTitulo/GNaturezaTituloSaveData.ts +++ b/src/packages/administrativo/data/GNaturezaTitulo/GNaturezaTituloSaveData.ts @@ -5,7 +5,9 @@ import ApiResponseInterface from '@/shared/services/api/interfaces/ApiResponseIn import GNaturezaTituloInterface from '../../interfaces/GNaturezaTitulo/GNaturezaTituloInterface'; -async function executeGNaturezaTituloSaveData(data: GNaturezaTituloInterface): Promise { +async function executeGNaturezaTituloSaveData( + data: GNaturezaTituloInterface, +): Promise { // Verifica se existe ID para decidir se é atualização (PUT) ou criação (POST) const isUpdate = Boolean(data.natureza_titulo_id); diff --git a/src/packages/administrativo/data/GSeloGrupo/GSeloGrupoDeleteData.ts b/src/packages/administrativo/data/GSeloGrupo/GSeloGrupoDeleteData.ts index 91dd758..e4cc4f5 100644 --- a/src/packages/administrativo/data/GSeloGrupo/GSeloGrupoDeleteData.ts +++ b/src/packages/administrativo/data/GSeloGrupo/GSeloGrupoDeleteData.ts @@ -5,7 +5,9 @@ import ApiResponseInterface from '@/shared/services/api/interfaces/ApiResponseIn import GSeloGrupoInterface from '../../interfaces/GSeloGrupo/GSeloGrupoInterface'; -async function executeGSeloGrupoDeleteData(data: GSeloGrupoInterface): Promise { +async function executeGSeloGrupoDeleteData( + data: GSeloGrupoInterface, +): Promise { const api = new API(); return api.send({ diff --git a/src/packages/administrativo/data/GUsuario/GUsuarioIndexData.ts b/src/packages/administrativo/data/GUsuario/GUsuarioIndexData.ts index 8d4ab26..031f3dd 100644 --- a/src/packages/administrativo/data/GUsuario/GUsuarioIndexData.ts +++ b/src/packages/administrativo/data/GUsuario/GUsuarioIndexData.ts @@ -5,7 +5,6 @@ import API from '@/shared/services/api/Api'; import { Methods } from '@/shared/services/api/enums/ApiMethodEnum'; export default async function GUsuarioIndexData(data?: GUsuarioIndexInterface) { - const api = new API(); const response = await api.send({ diff --git a/src/packages/administrativo/data/TServicoTipo/TServicoTipoIndexData.ts b/src/packages/administrativo/data/TServicoTipo/TServicoTipoIndexData.ts index a7285c7..5de5bd5 100644 --- a/src/packages/administrativo/data/TServicoTipo/TServicoTipoIndexData.ts +++ b/src/packages/administrativo/data/TServicoTipo/TServicoTipoIndexData.ts @@ -3,10 +3,7 @@ import { withClientErrorHandler } from '@/shared/actions/withClientErrorHandler/ import API from '@/shared/services/api/Api'; import { Methods } from '@/shared/services/api/enums/ApiMethodEnum'; - - async function executeTServicoTipoIndexData(data?: TServicoTipoIndexInteface) { - const api = new API(); return await api.send({ diff --git a/src/packages/administrativo/data/TTBReconhecimentoTipo/TTBReconhecimentoTipoIndexData.ts b/src/packages/administrativo/data/TTBReconhecimentoTipo/TTBReconhecimentoTipoIndexData.ts index 3414502..cafdcc8 100644 --- a/src/packages/administrativo/data/TTBReconhecimentoTipo/TTBReconhecimentoTipoIndexData.ts +++ b/src/packages/administrativo/data/TTBReconhecimentoTipo/TTBReconhecimentoTipoIndexData.ts @@ -3,7 +3,6 @@ import { withClientErrorHandler } from '@/shared/actions/withClientErrorHandler/ import API from '@/shared/services/api/Api'; import { Methods } from '@/shared/services/api/enums/ApiMethodEnum'; - // Função assíncrona responsável por executar a requisição para listar os tipos de marcação async function executeTTBReconhecimentoTipoIndexData(data?: TTBReconhecimentoTipoReadInterface) { // Cria uma nova instância da classe API para enviar a requisição @@ -12,7 +11,7 @@ async function executeTTBReconhecimentoTipoIndexData(data?: TTBReconhecimentoTip // Envia uma requisição GET para o endpoint 'administrativo/g_marcacao_tipo/' return await api.send({ method: Methods.GET, - endpoint: `administrativo/t_tb_reconhecimentotipo/${new URLSearchParams(data?.urlParams).toString()}` + endpoint: `administrativo/t_tb_reconhecimentotipo/${new URLSearchParams(data?.urlParams).toString()}`, }); } diff --git a/src/packages/administrativo/hooks/GCalculo/useGCalculoDeleteHook.ts b/src/packages/administrativo/hooks/GCalculo/useGCalculoDeleteHook.ts index 1e53997..7300a3a 100644 --- a/src/packages/administrativo/hooks/GCalculo/useGCalculoDeleteHook.ts +++ b/src/packages/administrativo/hooks/GCalculo/useGCalculoDeleteHook.ts @@ -9,9 +9,7 @@ export const useGCalculoDeleteHook = () => { const [gGramatica, setGCalculo] = useState(); - const deleteGCalculo = async (data: GCalculoInterface) => { - - }; + const deleteGCalculo = async (data: GCalculoInterface) => {}; return { gGramatica, deleteGCalculo }; }; diff --git a/src/packages/administrativo/hooks/GCalculo/useGCalculoFormHook.ts b/src/packages/administrativo/hooks/GCalculo/useGCalculoFormHook.ts index b4e3d54..4c4e86d 100644 --- a/src/packages/administrativo/hooks/GCalculo/useGCalculoFormHook.ts +++ b/src/packages/administrativo/hooks/GCalculo/useGCalculoFormHook.ts @@ -1,12 +1,15 @@ -import { zodResolver } from "@hookform/resolvers/zod"; -import { Resolver, useForm } from "react-hook-form"; +import { zodResolver } from '@hookform/resolvers/zod'; +import { Resolver, useForm } from 'react-hook-form'; -import { GCalculoFormValues, GCalculoSchema } from "@/packages/administrativo/schemas/GCalculo/GCalculoSchema"; +import { + GCalculoFormValues, + GCalculoSchema, +} from '@/packages/administrativo/schemas/GCalculo/GCalculoSchema'; export function useGCalculoFormHook(defaults?: Partial) { return useForm({ resolver: zodResolver(GCalculoSchema) as Resolver, defaultValues: defaults as GCalculoFormValues, - mode: "onChange", + mode: 'onChange', }); } diff --git a/src/packages/administrativo/hooks/GCalculo/useGCalculoIndexHook.ts b/src/packages/administrativo/hooks/GCalculo/useGCalculoIndexHook.ts index a82af06..dd10252 100644 --- a/src/packages/administrativo/hooks/GCalculo/useGCalculoIndexHook.ts +++ b/src/packages/administrativo/hooks/GCalculo/useGCalculoIndexHook.ts @@ -4,13 +4,11 @@ import { useState } from 'react'; import GCalculoInterface from '@/packages/administrativo/interfaces/GCalculo/GCalculoInterface'; - export const useGCalculoIndexHook = () => { - const [gCalculo, setGCalculo] = useState([]); const indexGCalculo = async () => { - setGCalculo([]) + setGCalculo([]); }; return { diff --git a/src/packages/administrativo/hooks/GCalculo/useGCalculoSaveHook.ts b/src/packages/administrativo/hooks/GCalculo/useGCalculoSaveHook.ts index cd672ed..ac77665 100644 --- a/src/packages/administrativo/hooks/GCalculo/useGCalculoSaveHook.ts +++ b/src/packages/administrativo/hooks/GCalculo/useGCalculoSaveHook.ts @@ -6,8 +6,9 @@ import GCalculoInterface from '@/packages/administrativo/interfaces/GCalculo/GCa import { GCalculoCalcularService } from '@/packages/administrativo/services/GCalculo/GCalculoCalcularService'; import { useResponse } from '@/shared/components/response/ResponseContext'; - -export const useGCalculoSaveHook = (setGCalculo?: React.Dispatch>) => { +export const useGCalculoSaveHook = ( + setGCalculo?: React.Dispatch>, +) => { const { setResponse } = useResponse(); const [GCalculo, setGCalculoItem] = useState(null); const [isOpen, setIsOpen] = useState(false); @@ -22,4 +23,4 @@ export const useGCalculoSaveHook = (setGCalculo?: React.Dispatch) { return useForm({ resolver: zodResolver(GEmolumentoSchema) as Resolver, defaultValues: defaults as GEmolumentoFormValues, - mode: "onChange", + mode: 'onChange', }); -} \ No newline at end of file +} diff --git a/src/packages/administrativo/hooks/GEmolumento/useGEmolumentoReadHook.ts b/src/packages/administrativo/hooks/GEmolumento/useGEmolumentoReadHook.ts index ffc3bcf..c90f6fc 100644 --- a/src/packages/administrativo/hooks/GEmolumento/useGEmolumentoReadHook.ts +++ b/src/packages/administrativo/hooks/GEmolumento/useGEmolumentoReadHook.ts @@ -6,13 +6,11 @@ import { GEmolumentoIndexService } from '@/packages/administrativo/services/GEmo import { useResponse } from '@/shared/components/response/ResponseContext'; export const useGEmolumentoReadHook = () => { - const { setResponse } = useResponse(); const [gEmolumento, setGEmolumento] = useState([]); const fetchGEmolumento = async (data?: GEmolumentoReadInterface) => { - const response = await GEmolumentoIndexService(data as any); setGEmolumento(response.data); diff --git a/src/packages/administrativo/hooks/GEmolumentoItem/useGEmolumentoItemDeleteHook.ts b/src/packages/administrativo/hooks/GEmolumentoItem/useGEmolumentoItemDeleteHook.ts index e78ed85..fef36a4 100644 --- a/src/packages/administrativo/hooks/GEmolumentoItem/useGEmolumentoItemDeleteHook.ts +++ b/src/packages/administrativo/hooks/GEmolumentoItem/useGEmolumentoItemDeleteHook.ts @@ -1,6 +1,5 @@ import { useState } from 'react'; - import GEmolumentoItemInterface from '@/packages/administrativo/interfaces/GEmolumentoItem/GEmolumentoItemInterface'; import { GEmolumentoItemDeleteService } from '@/packages/administrativo/services/GEmolumentoItem/GEmolumentoItemDeleteService'; import { useResponse } from '@/shared/components/response/ResponseContext'; diff --git a/src/packages/administrativo/hooks/GEmolumentoItem/useGEmolumentoItemIndexHook.ts b/src/packages/administrativo/hooks/GEmolumentoItem/useGEmolumentoItemIndexHook.ts index 4440012..dbab428 100644 --- a/src/packages/administrativo/hooks/GEmolumentoItem/useGEmolumentoItemIndexHook.ts +++ b/src/packages/administrativo/hooks/GEmolumentoItem/useGEmolumentoItemIndexHook.ts @@ -2,7 +2,6 @@ import { useState } from 'react'; - import GEmolumentoItemIndexInterface from '@/packages/administrativo/interfaces/GEmolumentoItem/GEmolumentoItemIndexInterface'; import GEmolumentoItemInterface from '@/packages/administrativo/interfaces/GEmolumentoItem/GEmolumentoItemInterface'; import { GEmolumentoItemIndexService } from '@/packages/administrativo/services/GEmolumentoItem/GEmolumentoItemIndexService'; diff --git a/src/packages/administrativo/hooks/GEmolumentoItem/useGEmolumentoItemSaveHook.ts b/src/packages/administrativo/hooks/GEmolumentoItem/useGEmolumentoItemSaveHook.ts index f1e501e..b39e16e 100644 --- a/src/packages/administrativo/hooks/GEmolumentoItem/useGEmolumentoItemSaveHook.ts +++ b/src/packages/administrativo/hooks/GEmolumentoItem/useGEmolumentoItemSaveHook.ts @@ -2,7 +2,6 @@ import { useState } from 'react'; - import GEmolumentoItemInterface from '@/packages/administrativo/interfaces/GEmolumentoItem/GEmolumentoItemInterface'; import { GEmolumentoItemSaveService } from '@/packages/administrativo/services/GEmolumentoItem/GEmolumentoItemSaveService'; import { useResponse } from '@/shared/components/response/ResponseContext'; diff --git a/src/packages/administrativo/hooks/GEmolumentoPeriodo/useGEmolumentoPeriodoFormHook.ts b/src/packages/administrativo/hooks/GEmolumentoPeriodo/useGEmolumentoPeriodoFormHook.ts index c661fbb..f0ab701 100644 --- a/src/packages/administrativo/hooks/GEmolumentoPeriodo/useGEmolumentoPeriodoFormHook.ts +++ b/src/packages/administrativo/hooks/GEmolumentoPeriodo/useGEmolumentoPeriodoFormHook.ts @@ -1,7 +1,10 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; -import { GEmolumentoPeriodoFormValues, GEmolumentoPeriodoSchema } from '../../schemas/GEmolumentoPeriodo/GEmolumentoPeriodoSchema'; +import { + GEmolumentoPeriodoFormValues, + GEmolumentoPeriodoSchema, +} from '../../schemas/GEmolumentoPeriodo/GEmolumentoPeriodoSchema'; export function useGEmolumentoPeriodoFormHook(defaults?: Partial) { return useForm({ diff --git a/src/packages/administrativo/hooks/GNaturezaTitulo/useGNaturezaTituloFormHook.ts b/src/packages/administrativo/hooks/GNaturezaTitulo/useGNaturezaTituloFormHook.ts index 5ef45fc..5cc72e1 100644 --- a/src/packages/administrativo/hooks/GNaturezaTitulo/useGNaturezaTituloFormHook.ts +++ b/src/packages/administrativo/hooks/GNaturezaTitulo/useGNaturezaTituloFormHook.ts @@ -1,7 +1,10 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; -import { GNaturezaTituloFormValues, GNaturezaTituloSchema } from '../../schemas/GNaturezaTitulo/GNaturezaTituloSchema'; +import { + GNaturezaTituloFormValues, + GNaturezaTituloSchema, +} from '../../schemas/GNaturezaTitulo/GNaturezaTituloSchema'; export function useGNaturezaTituloFormHook(defaults?: Partial) { return useForm({ diff --git a/src/packages/administrativo/hooks/GUsuario/useGUsuarioIndexHook.ts b/src/packages/administrativo/hooks/GUsuario/useGUsuarioIndexHook.ts index b2f596f..aea71e9 100644 --- a/src/packages/administrativo/hooks/GUsuario/useGUsuarioIndexHook.ts +++ b/src/packages/administrativo/hooks/GUsuario/useGUsuarioIndexHook.ts @@ -8,14 +8,12 @@ import { useResponse } from '@/shared/components/response/ResponseContext'; import GUsuarioIndexInterface from '../../interfaces/GUsuario/GUsuarioIndexInterface'; import GUsuarioIndex from '../../services/GUsuario/GUsuarioIndex'; - export const useGUsuarioIndexHook = () => { const { setResponse } = useResponse(); const [usuarios, setUsuarios] = useState(null); const fetchUsuarios = async (data: GUsuarioIndexInterface) => { - const response = await GUsuarioIndex(data); setUsuarios(response.data); diff --git a/src/packages/administrativo/hooks/TPessoa/TPessoaFisica/useTPessoaFisicaIndexHook.ts b/src/packages/administrativo/hooks/TPessoa/TPessoaFisica/useTPessoaFisicaIndexHook.ts index 43d6c9b..f20800e 100644 --- a/src/packages/administrativo/hooks/TPessoa/TPessoaFisica/useTPessoaFisicaIndexHook.ts +++ b/src/packages/administrativo/hooks/TPessoa/TPessoaFisica/useTPessoaFisicaIndexHook.ts @@ -16,7 +16,7 @@ export const useTPessoaFisicaIndexHook = () => { setResponse(response); - return response.data + return response.data; }; return { tPessoaFisica, fetchTPessoaFisica }; diff --git a/src/packages/administrativo/hooks/TServicoTipo/useTServicoTipoFormHook.ts b/src/packages/administrativo/hooks/TServicoTipo/useTServicoTipoFormHook.ts index 789eb9f..9bc593b 100644 --- a/src/packages/administrativo/hooks/TServicoTipo/useTServicoTipoFormHook.ts +++ b/src/packages/administrativo/hooks/TServicoTipo/useTServicoTipoFormHook.ts @@ -1,9 +1,12 @@ -import { zodResolver } from "@hookform/resolvers/zod"; -import { useForm } from "react-hook-form"; +import { zodResolver } from '@hookform/resolvers/zod'; +import { useForm } from 'react-hook-form'; -import { TServicoTipoFormValues, TServicoTipoSchema } from "@/packages/administrativo/schemas/TServicoTipo/TServicoTipoSchema"; -import { ConfirmacaoEnum } from "@/shared/enums/ConfirmacaoEnum"; -import { SituacoesEnum } from "@/shared/enums/SituacoesEnum"; +import { + TServicoTipoFormValues, + TServicoTipoSchema, +} from '@/packages/administrativo/schemas/TServicoTipo/TServicoTipoSchema'; +import { ConfirmacaoEnum } from '@/shared/enums/ConfirmacaoEnum'; +import { SituacoesEnum } from '@/shared/enums/SituacoesEnum'; export function useTServicoTipoFormHook(defaults?: Partial) { return useForm({ @@ -20,7 +23,7 @@ export function useTServicoTipoFormHook(defaults?: Partial { - // Hook do contexto de resposta para feedback global (alertas, mensagens etc.) const { setResponse } = useResponse(); diff --git a/src/packages/administrativo/hooks/TTBReconhecimentoTipo/useTTBReconhecimentoTipoReadHook.ts b/src/packages/administrativo/hooks/TTBReconhecimentoTipo/useTTBReconhecimentoTipoReadHook.ts index f36bdff..e124c49 100644 --- a/src/packages/administrativo/hooks/TTBReconhecimentoTipo/useTTBReconhecimentoTipoReadHook.ts +++ b/src/packages/administrativo/hooks/TTBReconhecimentoTipo/useTTBReconhecimentoTipoReadHook.ts @@ -1,7 +1,6 @@ // Importa o hook responsável por gerenciar e exibir respostas globais (sucesso, erro, etc.) import { useMemo, useState } from 'react'; - // Importa hooks do React para gerenciamento de estado e memorização de valores // Importa a interface que define a estrutura dos dados de "TTBReconhecimentoTipo" diff --git a/src/packages/administrativo/interfaces/GCartorio/GCartorioInterface.ts b/src/packages/administrativo/interfaces/GCartorio/GCartorioInterface.ts index 80be0f2..8e0e7c8 100644 --- a/src/packages/administrativo/interfaces/GCartorio/GCartorioInterface.ts +++ b/src/packages/administrativo/interfaces/GCartorio/GCartorioInterface.ts @@ -46,4 +46,4 @@ export default interface GCartorioInterface { insc_estadual?: string; insc_municipal?: string; razao_social?: string; -} \ No newline at end of file +} diff --git a/src/packages/administrativo/interfaces/GEmolumento/GEmolumentoSelectInterface.ts b/src/packages/administrativo/interfaces/GEmolumento/GEmolumentoSelectInterface.ts index beb921b..5f3149b 100644 --- a/src/packages/administrativo/interfaces/GEmolumento/GEmolumentoSelectInterface.ts +++ b/src/packages/administrativo/interfaces/GEmolumento/GEmolumentoSelectInterface.ts @@ -1,6 +1,6 @@ export default interface GEmolumentoSelectInterface { - field?: { - value?: number | string; - onChange?: (value: string | number) => void; - }; + field?: { + value?: number | string; + onChange?: (value: string | number) => void; + }; } diff --git a/src/packages/administrativo/interfaces/GEmolumento/GEmolumentoTableInterface.ts b/src/packages/administrativo/interfaces/GEmolumento/GEmolumentoTableInterface.ts index 98e411a..3c652bb 100644 --- a/src/packages/administrativo/interfaces/GEmolumento/GEmolumentoTableInterface.ts +++ b/src/packages/administrativo/interfaces/GEmolumento/GEmolumentoTableInterface.ts @@ -6,4 +6,4 @@ export default interface GEmolumentoTableInterface { onDelete: (item: GEmolumentoInterface, isEditingFormStatus: boolean) => void; onSelectedEmolumentoPeriodo: (emolumentoPeriodId: number) => void; emolumentoPeriodoId: number; -} \ No newline at end of file +} diff --git a/src/packages/administrativo/interfaces/GEmolumentoItem/GEmolumentoItemIndexInterface.ts b/src/packages/administrativo/interfaces/GEmolumentoItem/GEmolumentoItemIndexInterface.ts index b45c530..031ceed 100644 --- a/src/packages/administrativo/interfaces/GEmolumentoItem/GEmolumentoItemIndexInterface.ts +++ b/src/packages/administrativo/interfaces/GEmolumentoItem/GEmolumentoItemIndexInterface.ts @@ -1,5 +1,5 @@ export default interface GEmolumentoItemIndexInterface { - emolumento_id: number; - emolumento_periodo_id?: number; - urlParams?: object -} \ No newline at end of file + emolumento_id: number; + emolumento_periodo_id?: number; + urlParams?: object; +} diff --git a/src/packages/administrativo/interfaces/GEmolumentoPeriodo/GEmolumentoPeriodoInterface.ts b/src/packages/administrativo/interfaces/GEmolumentoPeriodo/GEmolumentoPeriodoInterface.ts index 687cc11..78ba7bc 100644 --- a/src/packages/administrativo/interfaces/GEmolumentoPeriodo/GEmolumentoPeriodoInterface.ts +++ b/src/packages/administrativo/interfaces/GEmolumentoPeriodo/GEmolumentoPeriodoInterface.ts @@ -1,6 +1,6 @@ export default interface GEmolumentoPeriodoInterface { - emolumento_periodo_id?: number, - descricao?: string, - situacao?: string, - data_inicial?: string, -} \ No newline at end of file + emolumento_periodo_id?: number; + descricao?: string; + situacao?: string; + data_inicial?: string; +} diff --git a/src/packages/administrativo/interfaces/GGramatica/GGramaticaInterface.ts b/src/packages/administrativo/interfaces/GGramatica/GGramaticaInterface.ts index 1cff723..1942397 100644 --- a/src/packages/administrativo/interfaces/GGramatica/GGramaticaInterface.ts +++ b/src/packages/administrativo/interfaces/GGramatica/GGramaticaInterface.ts @@ -1,9 +1,9 @@ export default interface GGramaticaInterface { - gramatica_id?: number, - palavra?: string, - prefixo?: string, - sufixo_ms?: string, - sufixo_mp?: string, - sufixo_fs?: string, - sufixo_fp?: string, -} \ No newline at end of file + gramatica_id?: number; + palavra?: string; + prefixo?: string; + sufixo_ms?: string; + sufixo_mp?: string; + sufixo_fs?: string; + sufixo_fp?: string; +} diff --git a/src/packages/administrativo/interfaces/GNaturezaTitulo/GNaturezaTituloInterface.ts b/src/packages/administrativo/interfaces/GNaturezaTitulo/GNaturezaTituloInterface.ts index eb379c6..bdeb083 100644 --- a/src/packages/administrativo/interfaces/GNaturezaTitulo/GNaturezaTituloInterface.ts +++ b/src/packages/administrativo/interfaces/GNaturezaTitulo/GNaturezaTituloInterface.ts @@ -1,14 +1,14 @@ -import { ConfirmacaoEnum } from "@/shared/enums/ConfirmacaoEnum"; -import { SituacoesEnum } from "@/shared/enums/SituacoesEnum"; +import { ConfirmacaoEnum } from '@/shared/enums/ConfirmacaoEnum'; +import { SituacoesEnum } from '@/shared/enums/SituacoesEnum'; export default interface GNaturezaTituloInterface { - natureza_titulo_id?: number, - emolumento_id?: number, - descricao?: string, - situacao?: SituacoesEnum, - sistema_id?: number, - tipo_cobranca?: number, - possui_valor?: ConfirmacaoEnum, - pertence_registro_imovel?: ConfirmacaoEnum, - tipo_recibo?: number, + natureza_titulo_id?: number; + emolumento_id?: number; + descricao?: string; + situacao?: SituacoesEnum; + sistema_id?: number; + tipo_cobranca?: number; + possui_valor?: ConfirmacaoEnum; + pertence_registro_imovel?: ConfirmacaoEnum; + tipo_recibo?: number; } diff --git a/src/packages/administrativo/interfaces/GUsuario/GUsuarioIndexInterface.ts b/src/packages/administrativo/interfaces/GUsuario/GUsuarioIndexInterface.ts index 15c9c73..bbe59bd 100644 --- a/src/packages/administrativo/interfaces/GUsuario/GUsuarioIndexInterface.ts +++ b/src/packages/administrativo/interfaces/GUsuario/GUsuarioIndexInterface.ts @@ -1,3 +1,3 @@ export default interface GUsuarioIndexInterface { - urlParams?: Record; -} \ No newline at end of file + urlParams?: Record; +} diff --git a/src/packages/administrativo/interfaces/TPessoa/TPessoaTableDetailSubviewInterface.ts b/src/packages/administrativo/interfaces/TPessoa/TPessoaTableDetailSubviewInterface.ts index b5dcd75..88c4abb 100644 --- a/src/packages/administrativo/interfaces/TPessoa/TPessoaTableDetailSubviewInterface.ts +++ b/src/packages/administrativo/interfaces/TPessoa/TPessoaTableDetailSubviewInterface.ts @@ -1,7 +1,7 @@ export default interface TPessoaTableFormSubviewInterface { - params: any; - servico: any; - selectedTPessoa: any; - form: any; - index: number -} \ No newline at end of file + params: any; + servico: any; + selectedTPessoa: any; + form: any; + index: number; +} diff --git a/src/packages/administrativo/interfaces/TPessoa/TPessoaTableFormInterface.ts b/src/packages/administrativo/interfaces/TPessoa/TPessoaTableFormInterface.ts index e542ae5..59e3d86 100644 --- a/src/packages/administrativo/interfaces/TPessoa/TPessoaTableFormInterface.ts +++ b/src/packages/administrativo/interfaces/TPessoa/TPessoaTableFormInterface.ts @@ -1,4 +1,3 @@ - export default interface TPessoaTableFormInterface { isOpen: boolean; tipoPessoa: string; diff --git a/src/packages/administrativo/interfaces/TPessoa/TPessoaTableFormSubviewInterface.ts b/src/packages/administrativo/interfaces/TPessoa/TPessoaTableFormSubviewInterface.ts index 7c44173..363a4f2 100644 --- a/src/packages/administrativo/interfaces/TPessoa/TPessoaTableFormSubviewInterface.ts +++ b/src/packages/administrativo/interfaces/TPessoa/TPessoaTableFormSubviewInterface.ts @@ -1,11 +1,11 @@ -import { UseFormReturn } from "react-hook-form"; +import { UseFormReturn } from 'react-hook-form'; -import { TServicoPedidoFormValues } from "@/packages/servicos/schemas/TServicoPedido/TServicoPedidoFormSchema"; -import GConfigInterface from "@/shared/interfaces/GConfigInterface"; +import { TServicoPedidoFormValues } from '@/packages/servicos/schemas/TServicoPedido/TServicoPedidoFormSchema'; +import GConfigInterface from '@/shared/interfaces/GConfigInterface'; export default interface TPessoaTableFormSubviewInterface { - item_index: number, - data: any, - params: GConfigInterface[], - form: UseFormReturn; -} \ No newline at end of file + item_index: number; + data: any; + params: GConfigInterface[]; + form: UseFormReturn; +} diff --git a/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoFormInterface.ts b/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoFormInterface.ts index ebefa00..3810455 100644 --- a/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoFormInterface.ts +++ b/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoFormInterface.ts @@ -1,8 +1,8 @@ -import { TServicoTipoFormValues } from "@/packages/administrativo/schemas/TServicoTipo/TServicoTipoSchema"; +import { TServicoTipoFormValues } from '@/packages/administrativo/schemas/TServicoTipo/TServicoTipoSchema'; export default interface TServicoTipoFormInterface { - isOpen: boolean; - data: TServicoTipoFormValues | null; - onClose: (item: null, isFormStatus: boolean) => void; - onSave: (data: TServicoTipoFormValues) => void; + isOpen: boolean; + data: TServicoTipoFormValues | null; + onClose: (item: null, isFormStatus: boolean) => void; + onSave: (data: TServicoTipoFormValues) => void; } diff --git a/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoIndexInteface.ts b/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoIndexInteface.ts index 1652a73..cc71b44 100644 --- a/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoIndexInteface.ts +++ b/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoIndexInteface.ts @@ -1,3 +1,3 @@ export default interface TServicoTipoIndexInteface { urlParams?: Record; -} \ No newline at end of file +} diff --git a/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoInterface.ts b/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoInterface.ts index 5b70082..b476878 100644 --- a/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoInterface.ts +++ b/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoInterface.ts @@ -1,5 +1,5 @@ -import { ConfirmacaoEnum } from "@/shared/enums/ConfirmacaoEnum"; -import { SituacoesEnum } from "@/shared/enums/SituacoesEnum"; +import { ConfirmacaoEnum } from '@/shared/enums/ConfirmacaoEnum'; +import { SituacoesEnum } from '@/shared/enums/SituacoesEnum'; export default interface TServicoTipoInterface { servico_tipo_id?: number; diff --git a/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoSelectInterface.ts b/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoSelectInterface.ts index 438b3ed..3e68f05 100644 --- a/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoSelectInterface.ts +++ b/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoSelectInterface.ts @@ -1,11 +1,11 @@ -import { ControllerRenderProps } from "react-hook-form"; +import { ControllerRenderProps } from 'react-hook-form'; -import { TServicoPedidoFormValues } from "@/packages/servicos/schemas/TServicoPedido/TServicoPedidoFormSchema"; +import { TServicoPedidoFormValues } from '@/packages/servicos/schemas/TServicoPedido/TServicoPedidoFormSchema'; /** * Interface para o componente TServicoTipoSelect. * Compatível com formulários que usam TServicoPedidoFormValues. */ export default interface TServicoTipoSelectInterface { - field: ControllerRenderProps; + field: ControllerRenderProps; } diff --git a/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoTableInterface.ts b/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoTableInterface.ts index f4efa26..9f8c4a0 100644 --- a/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoTableInterface.ts +++ b/src/packages/administrativo/interfaces/TServicoTipo/TServicoTipoTableInterface.ts @@ -1,4 +1,4 @@ -import TServicoTipoInterface from "./TServicoTipoInterface"; +import TServicoTipoInterface from './TServicoTipoInterface'; export default interface TServicoTipoTableInterface { data?: TServicoTipoInterface[]; diff --git a/src/packages/administrativo/interfaces/TTBREconhecimentoTipo/TTBReconhecimentoTipoInterface.ts b/src/packages/administrativo/interfaces/TTBREconhecimentoTipo/TTBReconhecimentoTipoInterface.ts index a78b270..fd99437 100644 --- a/src/packages/administrativo/interfaces/TTBREconhecimentoTipo/TTBReconhecimentoTipoInterface.ts +++ b/src/packages/administrativo/interfaces/TTBREconhecimentoTipo/TTBReconhecimentoTipoInterface.ts @@ -1,4 +1,4 @@ -import { SituacoesEnum } from "@/shared/enums/SituacoesEnum"; +import { SituacoesEnum } from '@/shared/enums/SituacoesEnum'; export default interface TTBReconhecimentoTipoInterface { tb_reconhecimentotipo_id?: number; diff --git a/src/packages/administrativo/schemas/GCalculo/GCalculoSchema.ts b/src/packages/administrativo/schemas/GCalculo/GCalculoSchema.ts index 11a05fe..07ecbcf 100644 --- a/src/packages/administrativo/schemas/GCalculo/GCalculoSchema.ts +++ b/src/packages/administrativo/schemas/GCalculo/GCalculoSchema.ts @@ -1,4 +1,4 @@ -import z from "zod"; +import z from 'zod'; export const GCalculoSchema = z.object({ index: z.coerce.number().min(0).optional(), diff --git a/src/packages/administrativo/schemas/GCartorio/GCartorioSchema.ts b/src/packages/administrativo/schemas/GCartorio/GCartorioSchema.ts index 9548bd9..d5235f3 100644 --- a/src/packages/administrativo/schemas/GCartorio/GCartorioSchema.ts +++ b/src/packages/administrativo/schemas/GCartorio/GCartorioSchema.ts @@ -1,4 +1,4 @@ -import z from "zod"; +import z from 'zod'; export const GCartorioSchema = z.object({ cartorio_id: z.number().optional(), @@ -37,4 +37,4 @@ export const GCartorioSchema = z.object({ razao_social: z.string().optional(), }); -export type GCartorioFormValues = z.infer; \ No newline at end of file +export type GCartorioFormValues = z.infer; diff --git a/src/packages/administrativo/schemas/GEmolumento/GEmolumentoSchema.ts b/src/packages/administrativo/schemas/GEmolumento/GEmolumentoSchema.ts index 558fc97..adb9395 100644 --- a/src/packages/administrativo/schemas/GEmolumento/GEmolumentoSchema.ts +++ b/src/packages/administrativo/schemas/GEmolumento/GEmolumentoSchema.ts @@ -1,4 +1,4 @@ -import z from "zod"; +import z from 'zod'; export const GEmolumentoSchema = z.object({ emolumento_id: z.coerce.number().min(0).optional(), @@ -20,4 +20,4 @@ export const GEmolumentoSchema = z.object({ item_df: z.string().optional(), }); -export type GEmolumentoFormValues = z.infer; \ No newline at end of file +export type GEmolumentoFormValues = z.infer; diff --git a/src/packages/administrativo/schemas/GEmolumentoItem/GEmolumentoItemSchema.ts b/src/packages/administrativo/schemas/GEmolumentoItem/GEmolumentoItemSchema.ts index 5f372a4..9174b17 100644 --- a/src/packages/administrativo/schemas/GEmolumentoItem/GEmolumentoItemSchema.ts +++ b/src/packages/administrativo/schemas/GEmolumentoItem/GEmolumentoItemSchema.ts @@ -1,4 +1,4 @@ -import z from "zod"; +import z from 'zod'; export const GEmolumentoItemSchema = z.object({ emolumento_item_id: z.coerce.number().optional(), diff --git a/src/packages/administrativo/schemas/GEmolumentoPeriodo/GEmolumentoPeriodoSchema.ts b/src/packages/administrativo/schemas/GEmolumentoPeriodo/GEmolumentoPeriodoSchema.ts index 425660e..da83805 100644 --- a/src/packages/administrativo/schemas/GEmolumentoPeriodo/GEmolumentoPeriodoSchema.ts +++ b/src/packages/administrativo/schemas/GEmolumentoPeriodo/GEmolumentoPeriodoSchema.ts @@ -1,4 +1,4 @@ -import z from "zod"; +import z from 'zod'; export const GEmolumentoPeriodoSchema = z.object({ emolumento_periodo_id: z.number().optional(), @@ -7,4 +7,4 @@ export const GEmolumentoPeriodoSchema = z.object({ data_inicial: z.string().optional(), }); -export type GEmolumentoPeriodoFormValues = z.infer; \ No newline at end of file +export type GEmolumentoPeriodoFormValues = z.infer; diff --git a/src/packages/administrativo/schemas/GGramatica/GGramaticaSchema.ts b/src/packages/administrativo/schemas/GGramatica/GGramaticaSchema.ts index 218ef63..78c07e1 100644 --- a/src/packages/administrativo/schemas/GGramatica/GGramaticaSchema.ts +++ b/src/packages/administrativo/schemas/GGramatica/GGramaticaSchema.ts @@ -1,4 +1,4 @@ -import z from "zod"; +import z from 'zod'; export const GGramaticaSchema = z.object({ gramatica_id: z.number().optional(), @@ -10,4 +10,4 @@ export const GGramaticaSchema = z.object({ sufixo_fp: z.string().optional(), }); -export type GGramaticaFormValues = z.infer; \ No newline at end of file +export type GGramaticaFormValues = z.infer; diff --git a/src/packages/administrativo/schemas/GNaturezaTitulo/GNaturezaTituloSchema.ts b/src/packages/administrativo/schemas/GNaturezaTitulo/GNaturezaTituloSchema.ts index a9f4655..48389d2 100644 --- a/src/packages/administrativo/schemas/GNaturezaTitulo/GNaturezaTituloSchema.ts +++ b/src/packages/administrativo/schemas/GNaturezaTitulo/GNaturezaTituloSchema.ts @@ -1,7 +1,7 @@ -import z from "zod"; +import z from 'zod'; -import { ConfirmacaoEnum } from "@/shared/enums/ConfirmacaoEnum"; -import { SituacoesEnum } from "@/shared/enums/SituacoesEnum"; +import { ConfirmacaoEnum } from '@/shared/enums/ConfirmacaoEnum'; +import { SituacoesEnum } from '@/shared/enums/SituacoesEnum'; export const GNaturezaTituloSchema = z.object({ natureza_titulo_id: z.number().optional(), @@ -15,4 +15,4 @@ export const GNaturezaTituloSchema = z.object({ tipo_recibo: z.number().optional(), }); -export type GNaturezaTituloFormValues = z.infer; \ No newline at end of file +export type GNaturezaTituloFormValues = z.infer; diff --git a/src/packages/administrativo/schemas/GSeloGrupo/GSeloGrupoSchema.ts b/src/packages/administrativo/schemas/GSeloGrupo/GSeloGrupoSchema.ts index 5fc837c..df90b39 100644 --- a/src/packages/administrativo/schemas/GSeloGrupo/GSeloGrupoSchema.ts +++ b/src/packages/administrativo/schemas/GSeloGrupo/GSeloGrupoSchema.ts @@ -1,4 +1,4 @@ -import { z } from "zod"; +import { z } from 'zod'; export const GSeloGrupoSchema = z.object({ selo_grupo_id: z.number().optional(), diff --git a/src/packages/administrativo/schemas/TServicoTipo/TServicoTipoSchema.ts b/src/packages/administrativo/schemas/TServicoTipo/TServicoTipoSchema.ts index d04f59b..abc698f 100644 --- a/src/packages/administrativo/schemas/TServicoTipo/TServicoTipoSchema.ts +++ b/src/packages/administrativo/schemas/TServicoTipo/TServicoTipoSchema.ts @@ -1,7 +1,7 @@ -import { z } from "zod"; +import { z } from 'zod'; -import { ConfirmacaoEnum } from "@/shared/enums/ConfirmacaoEnum"; -import { SituacoesEnum } from "@/shared/enums/SituacoesEnum"; +import { ConfirmacaoEnum } from '@/shared/enums/ConfirmacaoEnum'; +import { SituacoesEnum } from '@/shared/enums/SituacoesEnum'; // Tipos auxiliares const OneCharString = z.string().max(1).optional(); diff --git a/src/packages/administrativo/services/GCalculo/GCalculoCalcularService.ts b/src/packages/administrativo/services/GCalculo/GCalculoCalcularService.ts index ffde5f1..611c2b2 100644 --- a/src/packages/administrativo/services/GCalculo/GCalculoCalcularService.ts +++ b/src/packages/administrativo/services/GCalculo/GCalculoCalcularService.ts @@ -2,7 +2,6 @@ import { GCalculoCalcularData } from '@/packages/administrativo/data/GCalculo/GC import GCalculoInterface from '@/packages/administrativo/interfaces/GCalculo/GCalculoInterface'; import { withClientErrorHandler } from '@/shared/actions/withClientErrorHandler/withClientErrorHandler'; - async function executeGCalculoCalcularService(data: GCalculoInterface) { const response = await GCalculoCalcularData(data); return response; diff --git a/src/packages/administrativo/services/GCalculo/GCalculoServicoService.ts b/src/packages/administrativo/services/GCalculo/GCalculoServicoService.ts index 02d6395..adf47f8 100644 --- a/src/packages/administrativo/services/GCalculo/GCalculoServicoService.ts +++ b/src/packages/administrativo/services/GCalculo/GCalculoServicoService.ts @@ -1,32 +1,29 @@ -import { GCalculoServico } from "@/packages/administrativo/data/GCalculo/GCalculoServicoData"; -import GCalculoServicoInterface from "@/packages/administrativo/interfaces/GCalculo/GCalculoServicoInterface"; -import TServicoItemPedidoAddInterface from "@/packages/servicos/interfaces/TServicoItemPedido/TServicoItemPedidoAddInterface"; -import { withClientErrorHandler } from "@/shared/actions/withClientErrorHandler/withClientErrorHandler"; - - -async function executeGCalculoServicoService(payload: GCalculoServicoInterface, data: TServicoItemPedidoAddInterface) { +import { GCalculoServico } from '@/packages/administrativo/data/GCalculo/GCalculoServicoData'; +import GCalculoServicoInterface from '@/packages/administrativo/interfaces/GCalculo/GCalculoServicoInterface'; +import TServicoItemPedidoAddInterface from '@/packages/servicos/interfaces/TServicoItemPedido/TServicoItemPedidoAddInterface'; +import { withClientErrorHandler } from '@/shared/actions/withClientErrorHandler/withClientErrorHandler'; +async function executeGCalculoServicoService( + payload: GCalculoServicoInterface, + data: TServicoItemPedidoAddInterface, +) { const response = await GCalculoServico(payload); if (response.status == 404 || response.status == 400) { - return { - - 'status': response.status, - 'message': 'Erro ao processar dados' - + status: response.status, + message: 'Erro ao processar dados', }; - } const item = { emolumento_id: response.data.emolumento_id, emolumento_item_id: response.data.emolumento_item_id ?? null, servico_tipo_id: data.servico_tipo.servico_tipo_id ?? 0, - tipo_item: data.servico_tipo.tipo_item ?? "", - descricao: data.servico_tipo.descricao ?? "", - tabela: data.servico_tipo?.descricao ?? "", - situacao: "F", + tipo_item: data.servico_tipo.tipo_item ?? '', + descricao: data.servico_tipo.descricao ?? '', + tabela: data.servico_tipo?.descricao ?? '', + situacao: 'F', qtd: 1, valor: response.data.valor_total ?? 0, emolumento: response.data.valor_emolumento ?? 0, @@ -37,10 +34,10 @@ async function executeGCalculoServicoService(payload: GCalculoServicoInterface, subview: { servico: data.servico_tipo, pessoa: data.pessoa, - } + }, }; return item; } -export const GCalculoServicoService = withClientErrorHandler(executeGCalculoServicoService); \ No newline at end of file +export const GCalculoServicoService = withClientErrorHandler(executeGCalculoServicoService); diff --git a/src/packages/administrativo/services/GCartorio/GCartorioDeleteService.ts b/src/packages/administrativo/services/GCartorio/GCartorioDeleteService.ts index 2c44b6c..bf7f133 100644 --- a/src/packages/administrativo/services/GCartorio/GCartorioDeleteService.ts +++ b/src/packages/administrativo/services/GCartorio/GCartorioDeleteService.ts @@ -1,10 +1,8 @@ - import { withClientErrorHandler } from '@/shared/actions/withClientErrorHandler/withClientErrorHandler'; import { GCartorioDeleteData } from '../../data/GCartorio/GCartorioDeleteData'; import GCartorioInterface from '../../interfaces/GCartorio/GCartorioInterface'; - async function executeGCartorioDeleteService(data: GCartorioInterface) { const response = await GCartorioDeleteData(data); diff --git a/src/packages/administrativo/services/GEmolumento/GEmolumentoDeleteService.ts b/src/packages/administrativo/services/GEmolumento/GEmolumentoDeleteService.ts index 06b876f..f7dd1f8 100644 --- a/src/packages/administrativo/services/GEmolumento/GEmolumentoDeleteService.ts +++ b/src/packages/administrativo/services/GEmolumento/GEmolumentoDeleteService.ts @@ -1,10 +1,8 @@ - import { withClientErrorHandler } from '@/shared/actions/withClientErrorHandler/withClientErrorHandler'; import { GEmolumentoDeleteData } from '../../data/GEmolumento/GEmolumentoDeleteData'; import GEmolumentoInterface from '../../interfaces/GEmolumento/GEmolumentoInterface'; - async function executeGEmolumentoDeleteService(data: GEmolumentoInterface) { const response = await GEmolumentoDeleteData(data); diff --git a/src/packages/administrativo/services/GEmolumento/GEmolumentoIndexService.ts b/src/packages/administrativo/services/GEmolumento/GEmolumentoIndexService.ts index ca7f4f4..1fe7d69 100644 --- a/src/packages/administrativo/services/GEmolumento/GEmolumentoIndexService.ts +++ b/src/packages/administrativo/services/GEmolumento/GEmolumentoIndexService.ts @@ -3,10 +3,8 @@ import { GEmolumentoIndexData } from '@/packages/administrativo/data/GEmolumento import { GEmolumentoReadInterface } from '@/packages/administrativo/interfaces/GEmolumento/GEmolumentoReadInterface'; import { withClientErrorHandler } from '@/shared/actions/withClientErrorHandler/withClientErrorHandler'; - // Função assíncrona responsável por executar o serviço de listagem de tipos de marcação async function executeGEmolumentoIndexService(data?: GEmolumentoReadInterface) { - // Chama a função que realiza a requisição à API e aguarda a resposta const response = await GEmolumentoIndexData(data); diff --git a/src/packages/administrativo/services/GEmolumentoItem/GEmolumentoItemDeleteService.ts b/src/packages/administrativo/services/GEmolumentoItem/GEmolumentoItemDeleteService.ts index 7084a5c..0e66c3f 100644 --- a/src/packages/administrativo/services/GEmolumentoItem/GEmolumentoItemDeleteService.ts +++ b/src/packages/administrativo/services/GEmolumentoItem/GEmolumentoItemDeleteService.ts @@ -1,14 +1,13 @@ - - import { GEmolumentoItemDeleteData } from '@/packages/administrativo/data/GEmolumentoItem/GEmolumentoItemDeleteData'; import GEmolumentoItemInterface from '@/packages/administrativo/interfaces/GEmolumentoItem/GEmolumentoItemInterface'; import { withClientErrorHandler } from '@/shared/actions/withClientErrorHandler/withClientErrorHandler'; - async function executeGEmolumentoItemDeleteService(data: GEmolumentoItemInterface) { const response = await GEmolumentoItemDeleteData(data); return response; } -export const GEmolumentoItemDeleteService = withClientErrorHandler(executeGEmolumentoItemDeleteService); +export const GEmolumentoItemDeleteService = withClientErrorHandler( + executeGEmolumentoItemDeleteService, +); diff --git a/src/packages/administrativo/services/GEmolumentoItem/GEmolumentoItemIndexService.ts b/src/packages/administrativo/services/GEmolumentoItem/GEmolumentoItemIndexService.ts index 3f600ca..4520e1e 100644 --- a/src/packages/administrativo/services/GEmolumentoItem/GEmolumentoItemIndexService.ts +++ b/src/packages/administrativo/services/GEmolumentoItem/GEmolumentoItemIndexService.ts @@ -1,12 +1,15 @@ - import { GEmolumentoItemIndexData } from '@/packages/administrativo/data/GEmolumentoItem/GEmolumentoItemIndexData'; import GEmolumentoItemIndexInterface from '@/packages/administrativo/interfaces/GEmolumentoItem/GEmolumentoItemIndexInterface'; import { withClientErrorHandler } from '@/shared/actions/withClientErrorHandler/withClientErrorHandler'; -export default async function executeGEmolumentoItemIndexService(data: GEmolumentoItemIndexInterface) { +export default async function executeGEmolumentoItemIndexService( + data: GEmolumentoItemIndexInterface, +) { const response = await GEmolumentoItemIndexData(data); return response; } -export const GEmolumentoItemIndexService = withClientErrorHandler(executeGEmolumentoItemIndexService); +export const GEmolumentoItemIndexService = withClientErrorHandler( + executeGEmolumentoItemIndexService, +); diff --git a/src/packages/administrativo/services/GEmolumentoItem/GEmolumentoItemSaveService.ts b/src/packages/administrativo/services/GEmolumentoItem/GEmolumentoItemSaveService.ts index c9af545..218bd2b 100644 --- a/src/packages/administrativo/services/GEmolumentoItem/GEmolumentoItemSaveService.ts +++ b/src/packages/administrativo/services/GEmolumentoItem/GEmolumentoItemSaveService.ts @@ -1,4 +1,3 @@ - import { GEmolumentoItemSaveData } from '@/packages/administrativo/data/GEmolumentoItem/GEmolumentoItemSaveData'; import GEmolumentoItemInterface from '@/packages/administrativo/interfaces/GEmolumentoItem/GEmolumentoItemInterface'; import { withClientErrorHandler } from '@/shared/actions/withClientErrorHandler/withClientErrorHandler'; diff --git a/src/packages/administrativo/services/GEmolumentoPeriodo/GEmolumentoPeriodoDeleteService.ts b/src/packages/administrativo/services/GEmolumentoPeriodo/GEmolumentoPeriodoDeleteService.ts index 0530c79..61ca9b9 100644 --- a/src/packages/administrativo/services/GEmolumentoPeriodo/GEmolumentoPeriodoDeleteService.ts +++ b/src/packages/administrativo/services/GEmolumentoPeriodo/GEmolumentoPeriodoDeleteService.ts @@ -1,14 +1,14 @@ - import { withClientErrorHandler } from '@/shared/actions/withClientErrorHandler/withClientErrorHandler'; import { GEmolumentoPeriodoDeleteData } from '../../data/GEmolumentoPeriodo/GEmolumentoPeriodoDeleteData'; import GEmolumentoPeriodoInterface from '../../interfaces/GEmolumentoPeriodo/GEmolumentoPeriodoInterface'; - async function executeGEmolumentoPeriodoDeleteService(data: GEmolumentoPeriodoInterface) { const response = await GEmolumentoPeriodoDeleteData(data); return response; } -export const GEmolumentoPeriodoDeleteService = withClientErrorHandler(executeGEmolumentoPeriodoDeleteService); +export const GEmolumentoPeriodoDeleteService = withClientErrorHandler( + executeGEmolumentoPeriodoDeleteService, +); diff --git a/src/packages/administrativo/services/GEmolumentoPeriodo/GEmolumentoPeriodoIndexService.ts b/src/packages/administrativo/services/GEmolumentoPeriodo/GEmolumentoPeriodoIndexService.ts index 77706be..cf39660 100644 --- a/src/packages/administrativo/services/GEmolumentoPeriodo/GEmolumentoPeriodoIndexService.ts +++ b/src/packages/administrativo/services/GEmolumentoPeriodo/GEmolumentoPeriodoIndexService.ts @@ -8,4 +8,6 @@ export default async function executeGEmolumentoPeriodoIndexService() { return response; } -export const GEmolumentoPeriodoIndexService = withClientErrorHandler(executeGEmolumentoPeriodoIndexService); +export const GEmolumentoPeriodoIndexService = withClientErrorHandler( + executeGEmolumentoPeriodoIndexService, +); diff --git a/src/packages/administrativo/services/GEmolumentoPeriodo/GEmolumentoPeriodoSaveService.ts b/src/packages/administrativo/services/GEmolumentoPeriodo/GEmolumentoPeriodoSaveService.ts index dc84098..17911d0 100644 --- a/src/packages/administrativo/services/GEmolumentoPeriodo/GEmolumentoPeriodoSaveService.ts +++ b/src/packages/administrativo/services/GEmolumentoPeriodo/GEmolumentoPeriodoSaveService.ts @@ -9,4 +9,6 @@ async function executeGEmolumentoPeriodoSaveService(data: GEmolumentoPeriodoInte return response; } -export const GEmolumentoPeriodoSaveService = withClientErrorHandler(executeGEmolumentoPeriodoSaveService); +export const GEmolumentoPeriodoSaveService = withClientErrorHandler( + executeGEmolumentoPeriodoSaveService, +); diff --git a/src/packages/administrativo/services/GGramatica/GGramaticaDeleteService.ts b/src/packages/administrativo/services/GGramatica/GGramaticaDeleteService.ts index 18cdb38..50b0881 100644 --- a/src/packages/administrativo/services/GGramatica/GGramaticaDeleteService.ts +++ b/src/packages/administrativo/services/GGramatica/GGramaticaDeleteService.ts @@ -1,10 +1,8 @@ - import { withClientErrorHandler } from '@/shared/actions/withClientErrorHandler/withClientErrorHandler'; import { GGramaticaDeleteData } from '../../data/GGramatica/GGramaticaDeleteData'; import GGramaticaInterface from '../../interfaces/GGramatica/GGramaticaInterface'; - async function executeGGramaticaDeleteService(data: GGramaticaInterface) { const response = await GGramaticaDeleteData(data); diff --git a/src/packages/administrativo/services/GNaturezaTitulo/GNaturezaTituloDeleteService.ts b/src/packages/administrativo/services/GNaturezaTitulo/GNaturezaTituloDeleteService.ts index 5cc385d..33b8aa9 100644 --- a/src/packages/administrativo/services/GNaturezaTitulo/GNaturezaTituloDeleteService.ts +++ b/src/packages/administrativo/services/GNaturezaTitulo/GNaturezaTituloDeleteService.ts @@ -9,4 +9,6 @@ async function executeGNaturezaTituloDeleteService(data: GNaturezaTituloInterfac return response; } -export const GNaturezaTituloDeleteService = withClientErrorHandler(executeGNaturezaTituloDeleteService); +export const GNaturezaTituloDeleteService = withClientErrorHandler( + executeGNaturezaTituloDeleteService, +); diff --git a/src/packages/administrativo/services/GNaturezaTitulo/GNaturezaTituloIndexService.ts b/src/packages/administrativo/services/GNaturezaTitulo/GNaturezaTituloIndexService.ts index 698d9c2..73f4e55 100644 --- a/src/packages/administrativo/services/GNaturezaTitulo/GNaturezaTituloIndexService.ts +++ b/src/packages/administrativo/services/GNaturezaTitulo/GNaturezaTituloIndexService.ts @@ -9,4 +9,6 @@ export default async function executeGNaturezaTituloIndexService(data: GNatureza return response; } -export const GNaturezaTituloIndexService = withClientErrorHandler(executeGNaturezaTituloIndexService); +export const GNaturezaTituloIndexService = withClientErrorHandler( + executeGNaturezaTituloIndexService, +); diff --git a/src/packages/servicos/actions/TServicoPedido/HandleAddItemAction.ts b/src/packages/servicos/actions/TServicoPedido/HandleAddItemAction.ts index c642bca..b179bdd 100644 --- a/src/packages/servicos/actions/TServicoPedido/HandleAddItemAction.ts +++ b/src/packages/servicos/actions/TServicoPedido/HandleAddItemAction.ts @@ -1,15 +1,16 @@ - interface HandleAddItemInterface { - servicoSelecionado: any; - emolumentoSelecionado: any; + servicoSelecionado: any; + emolumentoSelecionado: any; } -export default async function HandleAddItemAction({ servicoSelecionado, emolumentoSelecionado }: HandleAddItemInterface) { +export default async function HandleAddItemAction({ + servicoSelecionado, + emolumentoSelecionado, +}: HandleAddItemInterface) { + if (!servicoSelecionado || !emolumentoSelecionado) return false; - if (!servicoSelecionado || !emolumentoSelecionado) return false; - - return { - servico_tipo: servicoSelecionado, - emolumento: emolumentoSelecionado, - }; -} \ No newline at end of file + return { + servico_tipo: servicoSelecionado, + emolumento: emolumentoSelecionado, + }; +} diff --git a/src/packages/servicos/actions/TServicoPedido/HandleSelectTServicoTipoAction.ts b/src/packages/servicos/actions/TServicoPedido/HandleSelectTServicoTipoAction.ts index 03f63e0..d217baf 100644 --- a/src/packages/servicos/actions/TServicoPedido/HandleSelectTServicoTipoAction.ts +++ b/src/packages/servicos/actions/TServicoPedido/HandleSelectTServicoTipoAction.ts @@ -1,25 +1,21 @@ -import HandleSelectTServicoTipoInterface from "./HandleSelectTServicoTipoInterface"; - - -export default function HandleSelectTServicoTipoAction({ servico, emolumento, onOpenPessoaForm, onAddItem }: HandleSelectTServicoTipoInterface) { - - if (!servico || !emolumento) { - - return { - 'status': 422, - 'detail': 'Serviço e emolumento devem ser selecionados' - }; +import HandleSelectTServicoTipoInterface from './HandleSelectTServicoTipoInterface'; +export default function HandleSelectTServicoTipoAction({ + servico, + emolumento, + onOpenPessoaForm, + onAddItem, +}: HandleSelectTServicoTipoInterface) { + if (!servico || !emolumento) { + return { + status: 422, + detail: 'Serviço e emolumento devem ser selecionados', }; + } - if (servico?.tipo_pessoa) { - - onOpenPessoaForm(servico.tipo_pessoa); - - } else { - - onAddItem(); - - } - -} \ No newline at end of file + if (servico?.tipo_pessoa) { + onOpenPessoaForm(servico.tipo_pessoa); + } else { + onAddItem(); + } +} diff --git a/src/packages/servicos/actions/TServicoPedido/HandleSelectTServicoTipoInterface.ts b/src/packages/servicos/actions/TServicoPedido/HandleSelectTServicoTipoInterface.ts index c7e626f..4447066 100644 --- a/src/packages/servicos/actions/TServicoPedido/HandleSelectTServicoTipoInterface.ts +++ b/src/packages/servicos/actions/TServicoPedido/HandleSelectTServicoTipoInterface.ts @@ -1,8 +1,6 @@ export default interface HandleSelectTServicoTipoInterface { - - servico: any; - emolumento: any; - onOpenPessoaForm: (tipoPessoa: string) => void, - onAddItem: () => void - -} \ No newline at end of file + servico: any; + emolumento: any; + onOpenPessoaForm: (tipoPessoa: string) => void; + onAddItem: () => void; +} diff --git a/src/packages/servicos/actions/TServicoPedidoItem/TServicoPedidoItemPreparePayload.ts b/src/packages/servicos/actions/TServicoPedidoItem/TServicoPedidoItemPreparePayload.ts index 34d6361..a7382f5 100644 --- a/src/packages/servicos/actions/TServicoPedidoItem/TServicoPedidoItemPreparePayload.ts +++ b/src/packages/servicos/actions/TServicoPedidoItem/TServicoPedidoItemPreparePayload.ts @@ -1,31 +1,29 @@ -import TServicoItemPedidoAddInterface from "@/packages/servicos/interfaces/TServicoItemPedido/TServicoItemPedidoAddInterface"; +import TServicoItemPedidoAddInterface from '@/packages/servicos/interfaces/TServicoItemPedido/TServicoItemPedidoAddInterface'; export default function TServicoPedidoItemPreparePayload(data: TServicoItemPedidoAddInterface) { + data.qtd = 1; + data.valor_documento = 0; - data.qtd = 1 - data.valor_documento = 0 - - // Verifica dados obrigatórios de serviço e emolumento - if (!data?.emolumento?.emolumento_id || !data?.servico_tipo?.servico_tipo_id) { - return { - status: 400, - message: 'Dados informados inválidos: serviço ou emolumento não informado.' - }; - } - - // Valida sistema_id (padrão 2, mas ainda assim precisa ser válido) - if (!data?.emolumento.sistema_id || data.servico_tipo.servico_tipo_id <= 0) { - return { - status: 400, - message: 'Sistema inválido ou não informado.' - }; - } - + // Verifica dados obrigatórios de serviço e emolumento + if (!data?.emolumento?.emolumento_id || !data?.servico_tipo?.servico_tipo_id) { return { - sistema_id: data.emolumento.sistema_id, - valor_documento: data.valor_documento, - quantidade: data.qtd, - emolumento_id: data.emolumento.emolumento_id, + status: 400, + message: 'Dados informados inválidos: serviço ou emolumento não informado.', }; + } + // Valida sistema_id (padrão 2, mas ainda assim precisa ser válido) + if (!data?.emolumento.sistema_id || data.servico_tipo.servico_tipo_id <= 0) { + return { + status: 400, + message: 'Sistema inválido ou não informado.', + }; + } + + return { + sistema_id: data.emolumento.sistema_id, + valor_documento: data.valor_documento, + quantidade: data.qtd, + emolumento_id: data.emolumento.emolumento_id, + }; } diff --git a/src/packages/servicos/components/TPessoaCartao/TPessoaCartaoForm.tsx b/src/packages/servicos/components/TPessoaCartao/TPessoaCartaoForm.tsx index a08ca8c..7338bb4 100644 --- a/src/packages/servicos/components/TPessoaCartao/TPessoaCartaoForm.tsx +++ b/src/packages/servicos/components/TPessoaCartao/TPessoaCartaoForm.tsx @@ -1,88 +1,84 @@ -import { useState } from "react"; - -import { FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form"; -import { Input } from "@/components/ui/input"; -import { Label } from "@/components/ui/label"; -import { Switch } from "@/components/ui/switch"; -import TPessoaCartaoFormInterface from "@/packages/servicos/interfaces/TPessoaCartao/TPessoaCartaoFormInterface"; -import { parseNumberInput } from "@/shared/actions/form/parseNumberInput"; -import ConfirmacaoSelect from "@/shared/components/confirmacao/ConfirmacaoSelect"; +import { useState } from 'react'; +import { FormControl, FormField, FormItem, FormLabel, FormMessage } from '@/components/ui/form'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Switch } from '@/components/ui/switch'; +import TPessoaCartaoFormInterface from '@/packages/servicos/interfaces/TPessoaCartao/TPessoaCartaoFormInterface'; +import { parseNumberInput } from '@/shared/actions/form/parseNumberInput'; +import ConfirmacaoSelect from '@/shared/components/confirmacao/ConfirmacaoSelect'; export default function TPessoaCartaoForm({ index, form }: TPessoaCartaoFormInterface) { + const [cartaoAutomatico, setCartaoAutomatico] = useState(true); - const [cartaoAutomatico, setCartaoAutomatico] = useState(true); - - return ( -
-
- { - setCartaoAutomatico(checked); - form.setValue(`itens.${index}.cartao_automatico`, checked); - }} - /> - -
- {!cartaoAutomatico && ( -
- {/* Gerar selo */} -
- ( - - Gerar Selo - - - - )} - /> -
- {/* Nº Cartão */} -
- ( - - Nº cartão - - field.onChange(parseNumberInput(e))} - defaultValue={field.value ?? ""} - /> - - - - )} - /> -
- {/* Data de Abertura */} -
- ( - - Data de Abertura - - - - - - )} - /> -
-
- )} + return ( +
+
+ { + setCartaoAutomatico(checked); + form.setValue(`itens.${index}.cartao_automatico`, checked); + }} + /> + +
+ {!cartaoAutomatico && ( +
+ {/* Gerar selo */} +
+ ( + + Gerar Selo + + + + )} + /> +
+ {/* Nº Cartão */} +
+ ( + + Nº cartão + + field.onChange(parseNumberInput(e))} + defaultValue={field.value ?? ''} + /> + + + + )} + /> +
+ {/* Data de Abertura */} +
+ ( + + Data de Abertura + + + + + + )} + /> +
- ) -} \ No newline at end of file + )} +
+ ); +} diff --git a/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoFormTable.tsx b/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoFormTable.tsx index 859465e..ecaf127 100644 --- a/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoFormTable.tsx +++ b/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoFormTable.tsx @@ -11,7 +11,7 @@ import { TableCell, TableHead, TableHeader, - TableRow + TableRow, } from '@/components/ui/table'; import TPessoaTableFormSubview from '@/packages/administrativo/components/TPessoa/TPessoaTableFormSubview'; import TServicoItemPedidoFormTableInterface from '@/packages/servicos/interfaces/TServicoItemPedido/TServicoItemPedidoFormTableInterface'; @@ -20,31 +20,19 @@ import GetCapitalize from '@/shared/actions/text/GetCapitalize'; function TServicoItemPedidoFormTableComponent({ data, form, - params + params, }: TServicoItemPedidoFormTableInterface) { return (
- - Serviço / Tabela - - - Emolumento - - - Tx. Judiciária - - - Fundesp 21% - - - ISS 5% - - - Total - + Serviço / Tabela + Emolumento + Tx. Judiciária + Fundesp 21% + ISS 5% + Total Qtd. @@ -61,9 +49,7 @@ function TServicoItemPedidoFormTableComponent({
{GetCapitalize(item.descricao)}
-
- {GetCapitalize(item.tabela)} -
+
{GetCapitalize(item.tabela)}
@@ -73,12 +59,22 @@ function TServicoItemPedidoFormTableComponent({ R$ {item.valor_iss ?? '---'}R$ {item.valor ?? '---'} -
- - -
@@ -102,7 +98,7 @@ function TServicoItemPedidoFormTableComponent({ }) ) : ( - + Nenhum item encontrado. @@ -113,4 +109,4 @@ function TServicoItemPedidoFormTableComponent({ ); } -export const TServicoItemPedidoFormTable = memo(TServicoItemPedidoFormTableComponent); \ No newline at end of file +export const TServicoItemPedidoFormTable = memo(TServicoItemPedidoFormTableComponent); diff --git a/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoList.tsx b/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoList.tsx index 269e1ae..0318179 100644 --- a/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoList.tsx +++ b/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoList.tsx @@ -1,24 +1,18 @@ 'use client'; -import { - BookmarkX, - IdCardIcon, - MoreHorizontalIcon, - RotateCcwIcon, - TicketIcon, -} from 'lucide-react'; +import { BookmarkX, IdCardIcon, MoreHorizontalIcon, RotateCcwIcon, TicketIcon } from 'lucide-react'; import { useCallback, useEffect, useState } from 'react'; import { Button } from '@/components/ui/button'; import { ButtonGroup } from '@/components/ui/button-group'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuGroup, - DropdownMenuItem, - DropdownMenuSeparator, - DropdownMenuTrigger, + DropdownMenu, + DropdownMenuContent, + DropdownMenuGroup, + DropdownMenuItem, + DropdownMenuSeparator, + DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { useTServicoItemPedidoAtivarHook } from '@/packages/servicos/hooks/TServicoItemPedido/useTServicoItemPedidoAtivarHook'; import { useTServicoItemPedidoCancelarHook } from '@/packages/servicos/hooks/TServicoItemPedido/useTServicoItemPedidoCancelarHook'; @@ -28,207 +22,176 @@ import FormatMoney from '@/shared/actions/money/FormatMoney'; import { useResponse } from '@/shared/components/response/ResponseContext'; import { ServicosPedidosSituacoesBadge } from '@/shared/components/servicosPedidosSituacoes/ServicosPedidosSituacoesBadge'; - export default function TServicoItemPedidoList({ - items, - openConfirmDialog, + items, + openConfirmDialog, }: TServicoItemPedidoListInterface) { + const { setResponse } = useResponse(); + const { cancelarTServicoItemPedido } = useTServicoItemPedidoCancelarHook(); + const { ativarTServicoItemPedido } = useTServicoItemPedidoAtivarHook(); - const { setResponse } = useResponse(); - const { cancelarTServicoItemPedido } = useTServicoItemPedidoCancelarHook(); - const { ativarTServicoItemPedido } = useTServicoItemPedidoAtivarHook(); + const [localItems, setLocalItems] = useState(items || []); - const [localItems, setLocalItems] = useState(items || []); + useEffect(() => { + setLocalItems(items || []); + }, [items]); - useEffect(() => { - setLocalItems(items || []); - }, [items]); + const handleSituacaoTServicoItemPedido = useCallback( + async (item: TServicoItemPedidoInterface) => { + const servicoItemPedido: TServicoItemPedidoInterface = { + servico_itempedido_id: item.servico_itempedido_id, + }; - const handleSituacaoTServicoItemPedido = useCallback( - async (item: TServicoItemPedidoInterface) => { - const servicoItemPedido: TServicoItemPedidoInterface = { - servico_itempedido_id: item.servico_itempedido_id, - }; + let response: any = null; - let response: any = null; + switch (item.situacao) { + case 'C': + response = await ativarTServicoItemPedido(servicoItemPedido); + break; - switch (item.situacao) { - case 'C': - response = await ativarTServicoItemPedido(servicoItemPedido); - break; + case 'F': + response = await cancelarTServicoItemPedido(servicoItemPedido); + break; - case 'F': - response = await cancelarTServicoItemPedido(servicoItemPedido); - break; + default: + setResponse({ + status: 422, + error: 'Situação', + detail: 'Situação não tratada', + }); + break; + } - default: - setResponse({ - status: 422, - error: 'Situação', - detail: 'Situação não tratada', - }); - break; - } + if (response) { + const situacao = (response as any)?.situacao; + setLocalItems((prev) => + prev.map((i) => + i.servico_itempedido_id === item.servico_itempedido_id ? { ...i, situacao } : i, + ), + ); + } + }, + [ativarTServicoItemPedido, cancelarTServicoItemPedido, setResponse], + ); - if (response) { - const situacao = (response as any)?.situacao; - setLocalItems((prev) => - prev.map((i) => - i.servico_itempedido_id === item.servico_itempedido_id - ? { ...i, situacao } - : i, - ), - ); - } - }, - [ativarTServicoItemPedido, cancelarTServicoItemPedido, setResponse], - ); + return ( + + + Itens: {localItems?.length} + + + {/* Altura máxima + scroll vertical */} +
+ {localItems?.map((item) => { + const isCancelado = item.situacao === 'C'; + const actionLabel = isCancelado ? 'Ativar Item' : 'Estornar Item'; + const confirmTitle = isCancelado ? 'Ativação de Item' : 'Estorno de Item'; + const confirmMessage = isCancelado + ? `Deseja realmente ativar o item #${item.servico_itempedido_id}?` + : `Deseja realmente estornar o item #${item.servico_itempedido_id}?`; + const confirmButton = isCancelado ? 'Sim, ativar item' : 'Sim, estornar item'; + const actionIcon = isCancelado ? : ; - return ( - - - - Itens: {localItems?.length} - - - - {/* Altura máxima + scroll vertical */} -
- {localItems?.map((item) => { - const isCancelado = item.situacao === 'C'; - const actionLabel = isCancelado ? 'Ativar Item' : 'Estornar Item'; - const confirmTitle = isCancelado - ? 'Ativação de Item' - : 'Estorno de Item'; - const confirmMessage = isCancelado - ? `Deseja realmente ativar o item #${item.servico_itempedido_id}?` - : `Deseja realmente estornar o item #${item.servico_itempedido_id}?`; - const confirmButton = isCancelado - ? 'Sim, ativar item' - : 'Sim, estornar item'; - const actionIcon = isCancelado ? : ; + return ( +
+ {/* Descrição */} +
+

+ {item.descricao} de {item.nome} -{' '} + +

- return ( -
- {/* Descrição */} -
-

- {item.descricao} de {item.nome} - {' '} - -

- -
- # {item.servico_itempedido_id} -
-
- - {/* Valores (grid compacto) */} -
-
-
- Emolumento -
-
- {FormatMoney(item.emolumento)} -
-
- -
-
- Tx. Judiciária -
-
- {FormatMoney(item.taxa_judiciaria)} -
-
- -
-
ISS
-
- {FormatMoney(item.valor_iss)} -
-
- -
-
- Fundesp -
-
- {FormatMoney(item.fundesp)} -
-
- -
-
Total
-
- {FormatMoney(item.valor)} -
-
- -
- - - - - - - - - - - Imprimir Etiqueta - - - - - - Imprimir Cartão - - - - - - openConfirmDialog({ - title: confirmTitle, - description: 'Confirmação necessária', - message: confirmMessage, - confirmText: confirmButton, - cancelText: 'Cancelar', - onConfirm: () => { - handleSituacaoTServicoItemPedido(item); - }, - }) - } - > - {actionIcon} {actionLabel} - - - - - -
-
-
- ); - })} +
+ # {item.servico_itempedido_id} +
- - - ); + + {/* Valores (grid compacto) */} +
+
+
Emolumento
+
{FormatMoney(item.emolumento)}
+
+ +
+
Tx. Judiciária
+
{FormatMoney(item.taxa_judiciaria)}
+
+ +
+
ISS
+
{FormatMoney(item.valor_iss)}
+
+ +
+
Fundesp
+
{FormatMoney(item.fundesp)}
+
+ +
+
Total
+
{FormatMoney(item.valor)}
+
+ +
+ + + + + + + + + + + Imprimir Etiqueta + + + + + + Imprimir Cartão + + + + + + openConfirmDialog({ + title: confirmTitle, + description: 'Confirmação necessária', + message: confirmMessage, + confirmText: confirmButton, + cancelText: 'Cancelar', + onConfirm: () => { + handleSituacaoTServicoItemPedido(item); + }, + }) + } + > + {actionIcon} {actionLabel} + + + + + +
+
+
+ ); + })} +
+
+
+ ); } diff --git a/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoResumo.tsx b/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoResumo.tsx index c5fd28d..544156f 100644 --- a/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoResumo.tsx +++ b/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoResumo.tsx @@ -1,27 +1,20 @@ 'use client'; - import { Badge } from '@/components/ui/badge'; -import { - Card, - CardContent, - CardFooter, - CardHeader, - CardTitle, -} from '@/components/ui/card'; +import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '@/components/ui/card'; import { ScrollArea } from '@/components/ui/scroll-area'; import { Separator } from '@/components/ui/separator'; interface PedidoItem { - id: number; - descricao: string; - valor: number; + id: number; + descricao: string; + valor: number; } interface PedidoResumoProps { - numeroPedido: number; - dataPedido: string; - itens: PedidoItem[]; + numeroPedido: number; + dataPedido: string; + itens: PedidoItem[]; } /** @@ -29,62 +22,62 @@ interface PedidoResumoProps { * Exibe número do pedido, data formatada, lista de itens e total. */ export default function TServicoItemPedidoResumo({ - numeroPedido, - dataPedido, - itens, + numeroPedido, + dataPedido, + itens, }: PedidoResumoProps) { - const total = itens.reduce((acc, item) => acc + item.valor, 0); + const total = itens.reduce((acc, item) => acc + item.valor, 0); - return ( - - {/* Cabeçalho */} - - - Pedido Nº {numeroPedido} - + return ( + + {/* Cabeçalho */} + + + Pedido Nº {numeroPedido} + - - {dataPedido} - - + + {dataPedido} + + - {/* Conteúdo - Lista de Itens */} - - - {itens.length > 0 ? ( - itens.map((item) => ( -
- - {item.descricao} - - - R$ {item.valor.toFixed(2).replace('.', ',')} - -
- )) - ) : ( -
- Nenhum item adicionado -
- )} -
-
- - - - {/* Rodapé - Total */} - - Total - - R$ {total.toFixed(2).replace('.', ',')} + {/* Conteúdo - Lista de Itens */} + + + {itens.length > 0 ? ( + itens.map((item) => ( +
+ + {item.descricao} - - - ); + + R$ {item.valor.toFixed(2).replace('.', ',')} + +
+ )) + ) : ( +
+ Nenhum item adicionado +
+ )} +
+
+ + + + {/* Rodapé - Total */} + + Total + + R$ {total.toFixed(2).replace('.', ',')} + + +
+ ); } diff --git a/src/packages/servicos/components/TServicoPedido/TServicoPedidoColumns.tsx b/src/packages/servicos/components/TServicoPedido/TServicoPedidoColumns.tsx index 0d0ea8a..b03b6d2 100644 --- a/src/packages/servicos/components/TServicoPedido/TServicoPedidoColumns.tsx +++ b/src/packages/servicos/components/TServicoPedido/TServicoPedidoColumns.tsx @@ -56,7 +56,9 @@ export default function TServicoPedidoColumns(
-
{data.apresentante || '-'}
+
+ {data.apresentante || '-'} +
{empty(data.cpfcnpj_apresentante) ? '---' : FormatCPF(data.cpfcnpj_apresentante)}
@@ -65,7 +67,9 @@ export default function TServicoPedidoColumns( ); }, sortingFn: (a, b) => - (a.original.apresentante?.toLowerCase() || '').localeCompare(b.original.apresentante?.toLowerCase() || ''), + (a.original.apresentante?.toLowerCase() || '').localeCompare( + b.original.apresentante?.toLowerCase() || '', + ), }, // Situação @@ -75,9 +79,9 @@ export default function TServicoPedidoColumns( cell: ({ row }) => { return ( - ) + ); }, }, @@ -86,11 +90,7 @@ export default function TServicoPedidoColumns( accessorKey: 'valor_pedido', header: ({ column }) => SortableHeader('Total', column), cell: ({ row }) => { - return ( -
- R$ {row.getValue('valor_pedido') || '---'} -
- ); + return
R$ {row.getValue('valor_pedido') || '---'}
; }, }, diff --git a/src/packages/servicos/components/TServicoPedido/TServicoPedidoDashboard.tsx b/src/packages/servicos/components/TServicoPedido/TServicoPedidoDashboard.tsx index c0605e9..e9c10e4 100644 --- a/src/packages/servicos/components/TServicoPedido/TServicoPedidoDashboard.tsx +++ b/src/packages/servicos/components/TServicoPedido/TServicoPedidoDashboard.tsx @@ -1,137 +1,132 @@ -'use client' +'use client'; -import { motion } from 'framer-motion' +import { motion } from 'framer-motion'; +import { Activity, AlertTriangle, DollarSign, FileText, Layers, Loader2 } from 'lucide-react'; +import { useEffect, useState } from 'react'; import { - Activity, - AlertTriangle, - DollarSign, - FileText, Layers, - Loader2 -} from 'lucide-react' -import { useEffect, useState } from 'react' -import { - Bar, - BarChart, - CartesianGrid, - Cell, - Legend, - Line, - LineChart, - Pie, - PieChart, - ResponsiveContainer, - Tooltip, - XAxis, YAxis -} from 'recharts' + Bar, + BarChart, + CartesianGrid, + Cell, + Legend, + Line, + LineChart, + Pie, + PieChart, + ResponsiveContainer, + Tooltip, + XAxis, + YAxis, +} from 'recharts'; -import { Badge } from '@/components/ui/badge' +import { Badge } from '@/components/ui/badge'; +import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; +import { Progress } from '@/components/ui/progress'; import { - Card, - CardContent, - CardHeader, - CardTitle -} from '@/components/ui/card' -import { Progress } from '@/components/ui/progress' -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select' - + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; // ======================== // Tipos // ======================== type Kpis = { - totalPedidos: number - totalItens: number - valorTotalPedidos: number - valorTotalPago: number - mediaDiferenca: number -} + totalPedidos: number; + totalItens: number; + valorTotalPedidos: number; + valorTotalPago: number; + mediaDiferenca: number; +}; -type Evolucao = { mes: string; totalPedidos: number; somaPedidos: number } +type Evolucao = { mes: string; totalPedidos: number; somaPedidos: number }; -type Situacao = { status: string; total: number } +type Situacao = { status: string; total: number }; -type ServicoTipo = { servico_tipo: string; total: number; valor_total: number } +type ServicoTipo = { servico_tipo: string; total: number; valor_total: number }; -type Receita = { tipo: string; valor: number } +type Receita = { tipo: string; valor: number }; -type Produtividade = { escrevente: string; totalPedidos: number; valorTotal: number } +type Produtividade = { escrevente: string; totalPedidos: number; valorTotal: number }; -type Qualidade = { itensSemValor: number; pedidosSemData: number; itensSemTipo: number } +type Qualidade = { itensSemValor: number; pedidosSemData: number; itensSemTipo: number }; type DashboardResponse = { - kpis: Kpis - evolucao: Evolucao[] - situacoes: Situacao[] - tiposServico: ServicoTipo[] - receitas: Receita[] - produtividade: Produtividade[] - certidoesPorMes: { mes: string; total: number }[] - qualidade: Qualidade -} + kpis: Kpis; + evolucao: Evolucao[]; + situacoes: Situacao[]; + tiposServico: ServicoTipo[]; + receitas: Receita[]; + produtividade: Produtividade[]; + certidoesPorMes: { mes: string; total: number }[]; + qualidade: Qualidade; +}; // ======================== // Mock (fallback) // ======================== const MOCK: DashboardResponse = { - kpis: { - totalPedidos: 1845, - totalItens: 5630, - valorTotalPedidos: 425000, - valorTotalPago: 413200, - mediaDiferenca: 6.3, - }, - evolucao: Array.from({ length: 12 }, (_, i) => ({ - mes: new Date(2025, i).toLocaleString('pt-BR', { month: 'short' }), - totalPedidos: 100 + i * 20, - somaPedidos: 25000 + i * 3000 - })), - situacoes: [ - { status: 'Ativo', total: 1240 }, - { status: 'Finalizado', total: 480 }, - { status: 'Cancelado', total: 125 }, - ], - tiposServico: [ - { servico_tipo: 'Certidão', total: 3100, valor_total: 135000 }, - { servico_tipo: 'Registro', total: 1800, valor_total: 98000 }, - { servico_tipo: 'Averbação', total: 730, valor_total: 46000 }, - { servico_tipo: 'Outros', total: 200, valor_total: 12000 }, - ], - receitas: [ - { tipo: 'Emolumentos', valor: 135000 }, - { tipo: 'Fundesp', valor: 28000 }, - { tipo: 'Taxa Judiciária', valor: 8000 }, - { tipo: 'ISS', valor: 12500 }, - ], - produtividade: [ - { escrevente: 'João Silva', totalPedidos: 420, valorTotal: 82000 }, - { escrevente: 'Maria Souza', totalPedidos: 380, valorTotal: 76000 }, - { escrevente: 'Carlos Lima', totalPedidos: 300, valorTotal: 69000 }, - ], - certidoesPorMes: Array.from({ length: 12 }, (_, i) => ({ - mes: new Date(2025, i).toLocaleString('pt-BR', { month: 'short' }), - total: 60 + i * 10 - })), - qualidade: { - itensSemValor: 14, - pedidosSemData: 9, - itensSemTipo: 6 - } -} + kpis: { + totalPedidos: 1845, + totalItens: 5630, + valorTotalPedidos: 425000, + valorTotalPago: 413200, + mediaDiferenca: 6.3, + }, + evolucao: Array.from({ length: 12 }, (_, i) => ({ + mes: new Date(2025, i).toLocaleString('pt-BR', { month: 'short' }), + totalPedidos: 100 + i * 20, + somaPedidos: 25000 + i * 3000, + })), + situacoes: [ + { status: 'Ativo', total: 1240 }, + { status: 'Finalizado', total: 480 }, + { status: 'Cancelado', total: 125 }, + ], + tiposServico: [ + { servico_tipo: 'Certidão', total: 3100, valor_total: 135000 }, + { servico_tipo: 'Registro', total: 1800, valor_total: 98000 }, + { servico_tipo: 'Averbação', total: 730, valor_total: 46000 }, + { servico_tipo: 'Outros', total: 200, valor_total: 12000 }, + ], + receitas: [ + { tipo: 'Emolumentos', valor: 135000 }, + { tipo: 'Fundesp', valor: 28000 }, + { tipo: 'Taxa Judiciária', valor: 8000 }, + { tipo: 'ISS', valor: 12500 }, + ], + produtividade: [ + { escrevente: 'João Silva', totalPedidos: 420, valorTotal: 82000 }, + { escrevente: 'Maria Souza', totalPedidos: 380, valorTotal: 76000 }, + { escrevente: 'Carlos Lima', totalPedidos: 300, valorTotal: 69000 }, + ], + certidoesPorMes: Array.from({ length: 12 }, (_, i) => ({ + mes: new Date(2025, i).toLocaleString('pt-BR', { month: 'short' }), + total: 60 + i * 10, + })), + qualidade: { + itensSemValor: 14, + pedidosSemData: 9, + itensSemTipo: 6, + }, +}; // ======================== // Helper (mock fetch) // ======================== async function fetchDashboard(): Promise { - try { - const res = await fetch('/api/dashboard/servicos') - if (!res.ok) throw new Error('Erro HTTP') - return await res.json() - } catch { - return MOCK - } + try { + const res = await fetch('/api/dashboard/servicos'); + if (!res.ok) throw new Error('Erro HTTP'); + return await res.json(); + } catch { + return MOCK; + } } // ======================== @@ -139,150 +134,182 @@ async function fetchDashboard(): Promise { // ======================== export default function TServicoPedidoDashboard() { - const [periodo, setPeriodo] = useState('12m') - const [data, setData] = useState(null) - const [loading, setLoading] = useState(true) + const [periodo, setPeriodo] = useState('12m'); + const [data, setData] = useState(null); + const [loading, setLoading] = useState(true); - useEffect(() => { - setLoading(true) - fetchDashboard().then((d) => { - setData(d) - setLoading(false) - }) - }, [periodo]) + useEffect(() => { + setLoading(true); + fetchDashboard().then((d) => { + setData(d); + setLoading(false); + }); + }, [periodo]); - const COLORS = ['#1A292F', '#8FB6C1', '#D1E6EA', '#F36F28', '#EAECEA'] + const COLORS = ['#1A292F', '#8FB6C1', '#D1E6EA', '#F36F28', '#EAECEA']; - return ( -
- {/* Header */} -
-
- - Dashboard — Serviços e Pedidos - -

Análise operacional, financeira e produtiva

-
- - -
- - {/* KPIs */} -
- - - - - -
- - {/* Evolução temporal */} - - Evolução de Pedidos - - - - - - - - - - - - - - - - {/* Situação */} - - Pedidos por Situação - - - - - - {(data?.situacoes ?? []).map((_, i) => ( - - ))} - - - - - - - {/* Tipos de serviço */} - - Distribuição por Tipo de Serviço - - - - - - - - - - - - - - {/* Receitas */} - - Receitas (Emolumentos e Taxas) - - - - - - - - - - - - - - {/* Produtividade */} - - Produtividade por Escrevente - - - - - - - - - - - - - - {/* Qualidade */} - - Qualidade de Dados - - - - - - - -

- Fonte: VIEW VW_T_SERVICO_ANALYTICS — fallback automático para mock. -

+ return ( +
+ {/* Header */} +
+
+ + Dashboard — Serviços e Pedidos + +

+ Análise operacional, financeira e produtiva +

- ) + + +
+ + {/* KPIs */} +
+ + + + + +
+ + {/* Evolução temporal */} + + + Evolução de Pedidos + + + + + + + + + + + + + + + + + {/* Situação */} + + + Pedidos por Situação + + + + + + + {(data?.situacoes ?? []).map((_, i) => ( + + ))} + + + + + + + {/* Tipos de serviço */} + + + Distribuição por Tipo de Serviço + + + + + + + + + + + + + + + {/* Receitas */} + + + Receitas (Emolumentos e Taxas) + + + + + + + + + + + + + + + {/* Produtividade */} + + + Produtividade por Escrevente + + + + + + + + + + + + + + + {/* Qualidade */} + + + Qualidade de Dados + + + + + + + + +

+ Fonte: VIEW VW_T_SERVICO_ANALYTICS — fallback automático para mock. +

+
+ ); } // ======================== @@ -290,29 +317,31 @@ export default function TServicoPedidoDashboard() { // ======================== function Kpi({ icon: Icon, label, value }: { icon: any; label: string; value: any }) { - return ( - - - {label} - - -
{value ?? }
-
- ) + return ( + + + {label} + + + +
{value ?? }
+
+
+ ); } function Quality({ label, value }: { label: string; value: number }) { - const pct = Math.min(100, (value / 50) * 100) - return ( -
-

{label}

- - 0 ? 'destructive' : 'outline'}>{value} -
- ) + const pct = Math.min(100, (value / 50) * 100); + return ( +
+

{label}

+ + 0 ? 'destructive' : 'outline'}>{value} +
+ ); } function formatCurrency(v?: number) { - if (!v) return 'R$ 0,00' - return v.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' }) + if (!v) return 'R$ 0,00'; + return v.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' }); } diff --git a/src/packages/servicos/components/TServicoPedido/TServicoPedidoDetails.tsx b/src/packages/servicos/components/TServicoPedido/TServicoPedidoDetails.tsx index 20f6d22..062efe5 100644 --- a/src/packages/servicos/components/TServicoPedido/TServicoPedidoDetails.tsx +++ b/src/packages/servicos/components/TServicoPedido/TServicoPedidoDetails.tsx @@ -1,6 +1,5 @@ 'use client'; - import { BookmarkX, CalendarIcon, ReceiptText, RotateCcwIcon } from 'lucide-react'; import { useCallback, useEffect, useState } from 'react'; @@ -22,68 +21,60 @@ import GetNameInitials from '@/shared/actions/text/GetNameInitials'; import ConfirmDialog from '@/shared/components/confirmDialog/ConfirmDialog'; import { useResponse } from '@/shared/components/response/ResponseContext'; - -export default function TServicoPedidoDetails({ servico_pedido_id }: TServicoPedidoDetailsInterface) { - +export default function TServicoPedidoDetails({ + servico_pedido_id, +}: TServicoPedidoDetailsInterface) { const { setResponse } = useResponse(); - const { ativarTServicoPedido } = useTServicoPedidoAtivarHook() - const { cancelarTServicoPedido } = useTServicoPedidoCancelarHook() + const { ativarTServicoPedido } = useTServicoPedidoAtivarHook(); + const { cancelarTServicoPedido } = useTServicoPedidoCancelarHook(); - const { TServicoItemPedido, indexTServicoItemPedido } = useTServicoItemPedidoIndexHook() - const { TServicoPedido, setTServicoPedido, showTServicoPedido } = useTServicoPedidoShowHook() + const { TServicoItemPedido, indexTServicoItemPedido } = useTServicoItemPedidoIndexHook(); + const { TServicoPedido, setTServicoPedido, showTServicoPedido } = useTServicoPedidoShowHook(); - const handleSituacaoTServicoPedido = useCallback(async (pedido: any) => { + const handleSituacaoTServicoPedido = useCallback( + async (pedido: any) => { + const servicoPedido: TServicoPedidoInterface = { + servico_pedido_id: pedido.servico_pedido_id, + }; - const servicoPedido: TServicoPedidoInterface = { + let response: any = null; - servico_pedido_id: pedido.servico_pedido_id + switch (pedido.situacao) { + case 'C': + response = await ativarTServicoPedido(servicoPedido); + break; - } + case 'F': + response = await cancelarTServicoPedido(servicoPedido); + break; - let response: any = null + default: + setResponse({ + status: 422, + error: 'Situação', + detail: 'Situação não tratada', + }); + break; + } - switch (pedido.situacao) { + if (response) { + pedido.situacao = response.situacao; - case 'C': - - response = await ativarTServicoPedido(servicoPedido) - break - - case 'F': - - response = await cancelarTServicoPedido(servicoPedido) - break - - default: - - setResponse({ - status: 422, - error: 'Situação', - detail: 'Situação não tratada' - }) - break - - } - - if (response) { - - pedido.situacao = response.situacao - - setTServicoPedido(pedido) - - } - - }, [cancelarTServicoPedido]) + setTServicoPedido(pedido); + } + }, + [cancelarTServicoPedido], + ); type ConfirmDialogParams = { - title: string - description: string - message: string - confirmText?: string - cancelText?: string - onConfirm?: () => void - onCancel?: () => void - } + title: string; + description: string; + message: string; + confirmText?: string; + cancelText?: string; + onConfirm?: () => void; + onCancel?: () => void; + }; const [confirmDialog, setConfirmDialog] = useState({ isOpen: false, @@ -92,9 +83,9 @@ export default function TServicoPedidoDetails({ servico_pedido_id }: TServicoPed message: '', confirmText: 'Confirmar', cancelText: 'Cancelar', - onConfirm: () => { }, - onCancel: () => { }, - }) + onConfirm: () => {}, + onCancel: () => {}, + }); // Função utilitária para abrir o dialog dinamicamente const openConfirmDialog = ({ @@ -114,52 +105,52 @@ export default function TServicoPedidoDetails({ servico_pedido_id }: TServicoPed confirmText, cancelText, onConfirm: () => { - onConfirm?.() - setConfirmDialog((prev) => ({ ...prev, isOpen: false })) + onConfirm?.(); + setConfirmDialog((prev) => ({ ...prev, isOpen: false })); }, onCancel: () => { - onCancel?.() - setConfirmDialog((prev) => ({ ...prev, isOpen: false })) + onCancel?.(); + setConfirmDialog((prev) => ({ ...prev, isOpen: false })); }, - }) - } + }); + }; const TServicoPedidoShowData = useCallback(async () => { const servicoPedido: TServicoPedidoInterface = { - servico_pedido_id: servico_pedido_id - } - const response = await showTServicoPedido(servicoPedido) + servico_pedido_id: servico_pedido_id, + }; + const response = await showTServicoPedido(servicoPedido); if (response.servico_pedido_id) { - TServicoPedidoItemIndexData(response.servico_pedido_id) + TServicoPedidoItemIndexData(response.servico_pedido_id); } - }, []) + }, []); - const TServicoPedidoItemIndexData = useCallback(async (servico_pedido_id: number) => { - await indexTServicoItemPedido({ servico_pedido_id }) - }, [indexTServicoItemPedido]) + const TServicoPedidoItemIndexData = useCallback( + async (servico_pedido_id: number) => { + await indexTServicoItemPedido({ servico_pedido_id }); + }, + [indexTServicoItemPedido], + ); useEffect(() => { - TServicoPedidoShowData() - }, []) + TServicoPedidoShowData(); + }, []); - const isCancelado = String(TServicoPedido?.situacao) === 'C' - const actionLabel = isCancelado ? 'Ativar Pedido' : 'Estornar Pedido' - const actionIcon = isCancelado ? : + const isCancelado = String(TServicoPedido?.situacao) === 'C'; + const actionLabel = isCancelado ? 'Ativar Pedido' : 'Estornar Pedido'; + const actionIcon = isCancelado ? : ; return ( -
-

- Pedido: #{TServicoPedido?.servico_pedido_id} -

+
+

Pedido: #{TServicoPedido?.servico_pedido_id}

{/* Main */}
-
+
{/* Left column */} -
+
{/* Right column (sidebar) */} -
+
- - Apresentante - + Apresentante {/* Header com avatar e link */} @@ -184,28 +173,24 @@ export default function TServicoPedidoDetails({ servico_pedido_id }: TServicoPed
-
+
{GetCapitalize(TServicoPedido?.apresentante)}
-
+
{FormatCPF(String(TServicoPedido?.cpfcnpj_apresentante))}
- - - {FormatDateTime(TServicoPedido?.data_pedido)} - + + {FormatDateTime(TServicoPedido?.data_pedido)}
- - Operador - + Operador
@@ -216,10 +201,8 @@ export default function TServicoPedidoDetails({ servico_pedido_id }: TServicoPed
-
- {GetCapitalize(TServicoPedido?.login)} -
-
+
{GetCapitalize(TServicoPedido?.login)}
+
{GetCapitalize(TServicoPedido?.funcao)}
@@ -228,9 +211,7 @@ export default function TServicoPedidoDetails({ servico_pedido_id }: TServicoPed - - Controles - + Controles
- ) -} \ No newline at end of file +
+ ); +} diff --git a/src/packages/servicos/components/TServicoPedido/TServicoPedidoDetailsPagamento.tsx b/src/packages/servicos/components/TServicoPedido/TServicoPedidoDetailsPagamento.tsx index b06a54e..aea72f2 100644 --- a/src/packages/servicos/components/TServicoPedido/TServicoPedidoDetailsPagamento.tsx +++ b/src/packages/servicos/components/TServicoPedido/TServicoPedidoDetailsPagamento.tsx @@ -13,30 +13,21 @@ export default function TServicoPedidoDetailsPagamento({ situacao, items, }: TServicoPedidoDetailsPagamentoInterface) { - // Somas por tipo de valor const { emolumento, taxa_judiciaria, valor_iss, fundesp } = React.useMemo(() => { - return (items ?? []).reduce( - (acc, item) => { - if (item.situacao === 'F') { - acc.emolumento += item.emolumento; acc.taxa_judiciaria += item.taxa_judiciaria; acc.valor_iss += item.valor_iss; acc.fundesp += item.fundesp; - } return acc; - }, - { emolumento: 0, taxa_judiciaria: 0, valor_iss: 0, fundesp: 0 } - + { emolumento: 0, taxa_judiciaria: 0, valor_iss: 0, fundesp: 0 }, ); - }, [items]); // Total exibido = soma dos quatro componentes @@ -46,7 +37,8 @@ export default function TServicoPedidoDetailsPagamento({ - Pagamento @@ -79,7 +71,6 @@ export default function TServicoPedidoDetailsPagamento({ Total {FormatMoney(total)}
-
diff --git a/src/packages/servicos/components/TServicoPedido/TServicoPedidoForm.tsx b/src/packages/servicos/components/TServicoPedido/TServicoPedidoForm.tsx index faafa96..f0c81a1 100644 --- a/src/packages/servicos/components/TServicoPedido/TServicoPedidoForm.tsx +++ b/src/packages/servicos/components/TServicoPedido/TServicoPedidoForm.tsx @@ -5,19 +5,14 @@ import { useRouter } from 'next/navigation'; import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { Button } from '@/components/ui/button'; -import { - Card, - CardContent, - CardHeader, - CardTitle -} from '@/components/ui/card'; +import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Form, FormControl, FormField, FormItem, FormLabel, - FormMessage + FormMessage, } from '@/components/ui/form'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; @@ -49,13 +44,12 @@ import { useResponse } from '@/shared/components/response/ResponseContext'; import { StepNavigator, StepNavigatorRef, - StepSection + StepSection, } from '@/shared/components/step/stepNavigator'; import TipoPagamentoSelect from '@/shared/components/tipoPagamento/TipoPagamentoSelect'; import { SituacoesEnum } from '@/shared/enums/SituacoesEnum'; export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedidoFormInterface) { - const router = useRouter(); const form = useTServicoPedidoFormHook({}); const { setValue, reset, watch } = form; @@ -64,9 +58,9 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido const [isAdding, setIsAdding] = useState(false); const [isPessoaFormOpen, setIsPessoaFormOpen] = useState(false); const [isSaveConfirmOpen, setIsSaveConfirmOpen] = useState(false); - const [isCancelDialogOpen, setIsCancelDialogOpen] = useState(false) + const [isCancelDialogOpen, setIsCancelDialogOpen] = useState(false); const [selectedPessoaTipo, setSelectedPessoaTipo] = useState(''); - const [shouldKeepFormOpen, setShouldKeepFormOpen] = useState(false) + const [shouldKeepFormOpen, setShouldKeepFormOpen] = useState(false); const ref = useRef(null); @@ -77,192 +71,168 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido // Hooks // const playSuccess = useSoundHook("/sounds/success.mp3"); - const { setResponse } = useResponse() + const { setResponse } = useResponse(); const { saveTServicoPedido } = useTServicoPedidoSaveHook(); const { showTServicoPedido } = useTServicoPedidoShowHook(); - const { TServicoItemPedidoLocal, localAddTServicoItemPedido, setLocalTServicoItemPedido } = useTServicoItemPedidoLocalAddHook(setValue); + const { TServicoItemPedidoLocal, localAddTServicoItemPedido, setLocalTServicoItemPedido } = + useTServicoItemPedidoLocalAddHook(setValue); const { addTServicoItemPedido } = useTServicoItemPedidoCalculoHook(setValue); const { indexTServicoItemPedido } = useTServicoItemPedidoIndexHook(); - const { TServicoPedidoParams, loadParamsTServicoPedido } = - useTServicoPedidoLoadParamsHook(); + const { TServicoPedidoParams, loadParamsTServicoPedido } = useTServicoPedidoLoadParamsHook(); // Acompanha as alterações, nos campos definidos const selectedServicoTipo = watch('servico_tipo'); const selectedEmolumento = watch('emolumento'); const handleFormError = useCallback((errors: any) => { - console.group("Erros de validação do formulário"); - console.log("Campos com erro:", errors); + console.group('Erros de validação do formulário'); + console.log('Campos com erro:', errors); console.groupEnd(); }, []); // Envia a requisição para a API - const handleSavePedido = useCallback(async (data: TServicoPedidoFormValues) => { + const handleSavePedido = useCallback( + async (data: TServicoPedidoFormValues) => { + // Ativa o botão de loading + setIsSaving(true); - // Ativa o botão de loading - setIsSaving(true); + // Converte o tipo do formulário (Zod) para o tipo da API (Interface) + const payload: TServicoPedidoInterface = { + ...data, + situacao: data.situacao as unknown as SituacoesEnum, + }; - // Converte o tipo do formulário (Zod) para o tipo da API (Interface) - const payload: TServicoPedidoInterface = { ...data, situacao: data.situacao as unknown as SituacoesEnum }; + const response = await saveTServicoPedido(payload); - const response = await saveTServicoPedido(payload); + setIsSaving(false); - setIsSaving(false); + // Desativa o botão de loading + setIsSaving(false); - // Desativa o botão de loading - setIsSaving(false); + // Verifica se devo redirecionar a pagina + if (response?.servico_pedido_id > 0) { + // Toca o som do sistema + // playSuccess() + } - // Verifica se devo redirecionar a pagina - if (response?.servico_pedido_id > 0) { - - // Toca o som do sistema - // playSuccess() - - } - - // Verifica se devo redirecionar a pagina - if (response?.servico_pedido_id > 0 && !shouldKeepFormOpen) { - - router.replace(`/servicos/balcao/detalhes/${response.servico_pedido_id}`); - - } - - }, [saveTServicoPedido, shouldKeepFormOpen]); + // Verifica se devo redirecionar a pagina + if (response?.servico_pedido_id > 0 && !shouldKeepFormOpen) { + router.replace(`/servicos/balcao/detalhes/${response.servico_pedido_id}`); + } + }, + [saveTServicoPedido, shouldKeepFormOpen], + ); // Modal de confirmação de serviço const handleSubmitWithConfirmation = useCallback(() => { - // Envia o formulário form.handleSubmit(handleSavePedido, handleFormError)(); - }, [form, handleSavePedido, handleFormError]); // Busca os itens do Pedido - const fetchPedidoItens = useCallback(async (id: number) => { + const fetchPedidoItens = useCallback( + async (id: number) => { + const pedidoItens = { + servico_pedido_id: id, + }; - const pedidoItens = { - servico_pedido_id: id - } + // Busca os itens do pedido + const response = await indexTServicoItemPedido(pedidoItens); - // Busca os itens do pedido - const response = await indexTServicoItemPedido(pedidoItens); + // Verifica se os dados foram localizados + if (response?.data?.length) { + // Atualiza os dados dos itens locais + setLocalTServicoItemPedido(response.data); - // Verifica se os dados foram localizados - if (response?.data?.length) { - - // Atualiza os dados dos itens locais - setLocalTServicoItemPedido(response.data); - - // Atualiza os itens do formulário - setValue('itens', response.data); - - } - }, [indexTServicoItemPedido, setValue, setLocalTServicoItemPedido]); + // Atualiza os itens do formulário + setValue('itens', response.data); + } + }, + [indexTServicoItemPedido, setValue, setLocalTServicoItemPedido], + ); // Busca o pedido Principal const fetchPedido = useCallback(async () => { - // Busca o pedido principal const response = await showTServicoPedido({ servico_pedido_id }); // Verifica se o pedido foi localizado if (response?.servico_pedido_id) { - // Atualiza os dados do formulário reset(response); // Carrega os itens do pedido fetchPedidoItens(response.servico_pedido_id); - } - }, [servico_pedido_id, showTServicoPedido, reset, fetchPedidoItens]); - const handleAddItemWithPessoa = useCallback(async (selectedTPessoa: TPessoaInterface) => { + const handleAddItemWithPessoa = useCallback( + async (selectedTPessoa: TPessoaInterface) => { + // Habilita o loading + setIsAdding(true); - // Habilita o loading - setIsAdding(true) + // Constroi um novo item + const newItem = await addTServicoItemPedido({ + servico_tipo: selectedServicoTipo, + emolumento: selectedEmolumento, + pessoa: selectedTPessoa, + }); - // Constroi um novo item - const newItem = await addTServicoItemPedido({ - servico_tipo: selectedServicoTipo, - emolumento: selectedEmolumento, - pessoa: selectedTPessoa - }); + // Verifica se existe um novo item + if (!newItem) return; - // Verifica se existe um novo item - if (!newItem) return; + // Obtem o indice atual + const index = TServicoItemPedidoLocal.length; - // Obtem o indice atual - const index = TServicoItemPedidoLocal.length; + // Define a posição do item + newItem.index = index; - // Define a posição do item - newItem.index = index + // Atualiza o estado + localAddTServicoItemPedido(newItem); - // Atualiza o estado - localAddTServicoItemPedido(newItem); + // Atualiza os itens do formulário + form.setValue(`itens.${index}`, newItem); - // Atualiza os itens do formulário - form.setValue(`itens.${index}`, newItem); - - // Desabilita o loading - setIsAdding(false) - - }, [ - addTServicoItemPedido, - selectedServicoTipo, - selectedEmolumento, - TServicoItemPedidoLocal.length, - localAddTServicoItemPedido, - form, - ]); + // Desabilita o loading + setIsAdding(false); + }, + [ + addTServicoItemPedido, + selectedServicoTipo, + selectedEmolumento, + TServicoItemPedidoLocal.length, + localAddTServicoItemPedido, + form, + ], + ); // Controla o formulário de cancelamento de pedido - const handleOpenCancelDialog = useCallback( - - async () => { - - // Fecha a confirmação - setIsCancelDialogOpen(true) - - }, [] - - ) + const handleOpenCancelDialog = useCallback(async () => { + // Fecha a confirmação + setIsCancelDialogOpen(true); + }, []); // Controle de redirecionamento - const handleConfirmCancel = useCallback( - - async () => { - - // Redireciona o usuário - router.replace(`/servicos/balcao/`); - - }, [] - - ) + const handleConfirmCancel = useCallback(async () => { + // Redireciona o usuário + router.replace(`/servicos/balcao/`); + }, []); // Controle do formulário de cancelamento do Pedido - const handleCloseCancelDialog = useCallback( - - async () => { - - // Fecha o formulário - setIsCancelDialogOpen(false) - - }, [] - - ) + const handleCloseCancelDialog = useCallback(async () => { + // Fecha o formulário + setIsCancelDialogOpen(false); + }, []); // Controle de itens const handleAddItemBasic = useCallback(async () => { - - setIsAdding(true) + setIsAdding(true); // Prepara e valida os dados de item do pedido const payload: TServicoItemPedidoAddInterface = { servico_tipo: selectedServicoTipo, - emolumento: selectedEmolumento - } + emolumento: selectedEmolumento, + }; // Verifica se os dados foram criados corretamente if (!payload) return; @@ -273,40 +243,35 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido // Se tiver um novo item, adiciona o mesmo na tela if (newItem) localAddTServicoItemPedido(newItem); - setIsAdding(false) - + setIsAdding(false); }, [addTServicoItemPedido, selectedServicoTipo, selectedEmolumento, localAddTServicoItemPedido]); // Habilita o formulário de pessoas const handleOpenPessoaForm = useCallback((tipoPessoa: string) => { - setSelectedPessoaTipo(tipoPessoa); setIsPessoaFormOpen(true); - }, []); // Adiciona o item a tabela e verifica se deve ou não montar a subview da linha da tabela const handleSelectServicoTipo = useCallback(() => { - const response = HandleSelectTServicoTipoAction({ servico: selectedServicoTipo, emolumento: selectedEmolumento, onOpenPessoaForm: handleOpenPessoaForm, - onAddItem: handleAddItemBasic - }) + onAddItem: handleAddItemBasic, + }); // Verifica se existem erros if (response?.status) { - setResponse(response) + setResponse(response); } - }, [selectedServicoTipo, selectedEmolumento, handleOpenPessoaForm, handleAddItemBasic]); // Cálculo automático dos totais const calcularTotais = useCallback(() => { if (!TServicoItemPedidoLocal || !TServicoItemPedidoLocal.length) { - setValue("valor_pedido", 0); - setValue("valor_pago", 0); + setValue('valor_pedido', 0); + setValue('valor_pago', 0); return; } @@ -315,36 +280,30 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido return acc + valor; }, 0); - setValue("valor_pedido", total, { shouldDirty: true }); + setValue('valor_pedido', total, { shouldDirty: true }); // opcional: manter valor pago igual ao pedido - const valorPagoAtual = watch("valor_pago"); + const valorPagoAtual = watch('valor_pago'); if (!valorPagoAtual || valorPagoAtual === 0) { - setValue("valor_pago", total, { shouldDirty: true }); + setValue('valor_pago', total, { shouldDirty: true }); } }, [TServicoItemPedidoLocal, setValue, watch]); // Dispara a busca do pedido useEffect(() => { - // Se existir pedido_id, busca o pedido if (servico_pedido_id) fetchPedido(); - }, [servico_pedido_id, fetchPedido]); // Dispara a busca de itens useEffect(() => { - // Dispara a busca dos itens setValue('itens', TServicoItemPedidoLocal, { shouldDirty: true }); - }, [TServicoItemPedidoLocal, setValue]); // Dispara a busca de parâmetros useEffect(() => { - loadParamsTServicoPedido(); - }, []); // Monitora mudanças na lista de itens @@ -353,44 +312,47 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido }, [TServicoItemPedidoLocal, calcularTotais]); // Memoriza os dados para não renderizar novamente - const sections: StepSection[] = useMemo(() => [ - { - key: 'pedido', - id: 'selectPedido', - icon: , - title: 'Pedido', - description: 'Dados gerais do pedido.' - }, - { - key: 'servicoPedidoItem', - id: 'selectServicoPedidoItem', - icon: , - title: 'Itens', - description: 'Itens/serviços do pedido.' - }, - { - key: 'payment', - id: 'selectPayment', - icon: , - title: 'Pagamento', - description: 'Forma e dados de pagamento.' - } - ], []); + const sections: StepSection[] = useMemo( + () => [ + { + key: 'pedido', + id: 'selectPedido', + icon: , + title: 'Pedido', + description: 'Dados gerais do pedido.', + }, + { + key: 'servicoPedidoItem', + id: 'selectServicoPedidoItem', + icon: , + title: 'Itens', + description: 'Itens/serviços do pedido.', + }, + { + key: 'payment', + id: 'selectPayment', + icon: , + title: 'Pagamento', + description: 'Forma e dados de pagamento.', + }, + ], + [], + ); return (
-

Pedido

+

Pedido

- {/* Seção1 */}
- -

Pedido

+ +

Pedido

+
@@ -417,7 +379,9 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido render={({ field }) => ( Apresentante - + + + )} @@ -432,7 +396,8 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido CPF/CNPJ - { @@ -455,7 +420,9 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido render={({ field }) => ( Pessoa Selo - + + + )} @@ -470,7 +437,8 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido CPF/CNPJ - { @@ -485,7 +453,6 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido )} />
-
@@ -493,7 +460,9 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido {/* Seção 2 */} -

Itens

+ +

Itens

+
@@ -535,7 +504,8 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido + data={TServicoItemPedidoLocal} + />
@@ -544,7 +514,9 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido {/* Seção 3 */} -

Pagamento

+ +

Pagamento

+
@@ -555,7 +527,9 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido render={({ field }) => ( Requerente - + + + )} @@ -569,7 +543,8 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido CPF/CNPJ - { @@ -577,7 +552,8 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido field.onChange(raw); }} maxLength={14} - /> + /> + )} @@ -591,7 +567,9 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido Valor do Pedido - field.onChange(parseNumberInput(e))} readOnly={true} /> @@ -609,8 +587,11 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido Valor Pago - field.onChange(parseNumberInput(e))} /> + field.onChange(parseNumberInput(e))} + /> @@ -638,7 +619,7 @@ export default function TServicoPedidoForm({ servico_pedido_id }: TServicoPedido {/* Sidebar */}