diff --git a/src/app/(protected)/(administrativo)/(g_usuario)/usuarios/formulario/page.tsx b/src/app/(protected)/(administrativo)/(g_usuario)/usuarios/formulario/page.tsx index 5c54cba..2721d7a 100644 --- a/src/app/(protected)/(administrativo)/(g_usuario)/usuarios/formulario/page.tsx +++ b/src/app/(protected)/(administrativo)/(g_usuario)/usuarios/formulario/page.tsx @@ -3,13 +3,10 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; import { z } from 'zod'; -import { Input } from '@/components/ui/input'; -import { GUsuarioSchema } from '../../../../../../packages/administrativo/schemas/GUsuario/GUsuarioSchema'; + import { Button } from '@/components/ui/button'; - import { Card, CardContent } from '@/components/ui/card'; - import { Form, FormControl, @@ -18,8 +15,10 @@ import { FormLabel, FormMessage, } from '@/components/ui/form'; +import { Input } from '@/components/ui/input'; import { useGUsuarioSaveHook } from '../../../../../../packages/administrativo/hooks/GUsuario/useGUsuarioSaveHook'; +import { GUsuarioSchema } from '../../../../../../packages/administrativo/schemas/GUsuario/GUsuarioSchema'; type FormValues = z.infer; diff --git a/src/app/(protected)/(administrativo)/(g_usuario)/usuarios/page.tsx b/src/app/(protected)/(administrativo)/(g_usuario)/usuarios/page.tsx index 3f1d234..07463dd 100644 --- a/src/app/(protected)/(administrativo)/(g_usuario)/usuarios/page.tsx +++ b/src/app/(protected)/(administrativo)/(g_usuario)/usuarios/page.tsx @@ -1,7 +1,10 @@ 'use client'; -import { Card, CardContent } from '@/components/ui/card'; +import Link from 'next/link'; +import { useEffect } from 'react'; +import { Button } from '@/components/ui/button'; +import { Card, CardContent } from '@/components/ui/card'; import { Table, TableBody, @@ -10,14 +13,14 @@ import { TableHeader, TableRow, } from '@/components/ui/table'; - -import Usuario from '../../../../../packages/administrativo/interfaces/GUsuario/GUsuarioInterface'; -import { Button } from '@/components/ui/button'; -import Link from 'next/link'; -import { useGUsuarioIndexHook } from '../../../../../packages/administrativo/hooks/GUsuario/useGUsuarioIndexHook'; -import { useEffect } from 'react'; import Loading from '@/shared/components/loading/loading'; +import { useGUsuarioIndexHook } from '../../../../../packages/administrativo/hooks/GUsuario/useGUsuarioIndexHook'; +import Usuario from '../../../../../packages/administrativo/interfaces/GUsuario/GUsuarioInterface'; + + + + export default function UsuarioPage() { const { usuarios, fetchUsuarios } = useGUsuarioIndexHook(); diff --git a/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoList.tsx b/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoList.tsx index 5f82cc7..ea8ed69 100644 --- a/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoList.tsx +++ b/src/packages/servicos/components/TServicoItemPedido/TServicoItemPedidoList.tsx @@ -8,7 +8,6 @@ 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 } from '@/components/ui/dropdown-menu'; -import { useTServicoItemPedidoAtivarHook } from '@/packages/servicos/hooks/TServicoItemPedido/useTServicoItemPedidoAtivarHook'; import { useTServicoItemPedidoCancelarHook } from '@/packages/servicos/hooks/TServicoItemPedido/useTServicoItemPedidoCancelarHook'; import TServicoItemPedidoInterface from '@/packages/servicos/interfaces/TServicoItemPedido/TServicoItemPedidoIntefarce'; import TServicoItemPedidoListInterface from '@/packages/servicos/interfaces/TServicoItemPedido/TServicoItemPedidoListInterface'; @@ -16,7 +15,7 @@ import FormatMoney from '@/shared/actions/money/FormatMoney'; import { useResponse } from '@/shared/components/response/ResponseContext'; import { ServicosPedidosSituacoesBadge } from '@/shared/components/servicosPedidosSituacoes/ServicosPedidosSituacoesBadge'; - +import { useTServicoItemPedidoAtivarHook } from '../../hooks/TServicoItemPedido/useTServicoItemPedidoAtivarHook'; export default function TServicoItemPedidoList({ items, openConfirmDialog }: TServicoItemPedidoListInterface) { diff --git a/src/packages/servicos/components/TServicoPedido/TServicoPedidoDetails.tsx b/src/packages/servicos/components/TServicoPedido/TServicoPedidoDetails.tsx index f401f60..792308d 100644 --- a/src/packages/servicos/components/TServicoPedido/TServicoPedidoDetails.tsx +++ b/src/packages/servicos/components/TServicoPedido/TServicoPedidoDetails.tsx @@ -1,7 +1,7 @@ 'use client'; -import { BookmarkX, CalendarIcon, ReceiptText } from 'lucide-react'; +import { BookmarkX, CalendarIcon, ReceiptText, RotateCcwIcon } from 'lucide-react'; import { useCallback, useEffect, useState } from 'react'; import { Button } from '@/components/ui/button'; @@ -17,14 +17,63 @@ import { FormatDateTime } from '@/shared/actions/dateTime/FormatDateTime'; import GetCapitalize from '@/shared/actions/text/GetCapitalize'; import GetNameInitials from '@/shared/actions/text/GetNameInitials'; import ConfirmDialog from '@/shared/components/confirmDialog/ConfirmDialog'; +import { useResponse } from '@/shared/components/response/ResponseContext'; + +import { useTServicoPedidoAtivarHook } from '../../hooks/TServicoPedido/useTServicoPedidoAtivarHook'; +import { useTServicoPedidoCancelarHook } from '../../hooks/TServicoPedido/useTServicoPedidoCancelarHook'; export default function TServicoPedidoDetails({ servico_pedido_id }: TServicoPedidoInterface) { - const { TServicoItemPedido, indexTServicoItemPedido } = useTServicoItemPedidoIndexHook() - const { TServicoPedido, showTServicoPedido } = useTServicoPedidoShowHook() - const [isCancelServicoPedidoDialogOpen, setIsCancelServicoPedidoDialogOpen] = useState(false) + const { setResponse } = useResponse(); + const { ativarTServicoPedido } = useTServicoPedidoAtivarHook() + const { cancelarTServicoPedido } = useTServicoPedidoCancelarHook() + + const { TServicoItemPedido, indexTServicoItemPedido } = useTServicoItemPedidoIndexHook() + const { TServicoPedido, setTServicoPedido, showTServicoPedido } = useTServicoPedidoShowHook() + + const handleSituacaoTServicoPedido = useCallback(async (pedido: any) => { + + const servicoPedido: TServicoPedidoInterface = { + + servico_pedido_id: pedido.servico_pedido_id + + } + + let response: any = null + + switch (pedido.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]) - // 🔹 Estado genérico e dinâmico do ConfirmDialog const [confirmDialog, setConfirmDialog] = useState({ isOpen: false, title: '', @@ -89,6 +138,10 @@ export default function TServicoPedidoDetails({ servico_pedido_id }: TServicoPed TServicoPedidoShowData() }, []) + const isCancelado = TServicoPedido?.situacao === 'C' + const actionLabel = isCancelado ? 'Ativar Pedido' : 'Estornar Pedido' + const actionIcon = isCancelado ? : + return (

@@ -101,7 +154,6 @@ export default function TServicoPedidoDetails({ servico_pedido_id }: TServicoPed