Skip to content

Commit 0822fa0

Browse files
[FIX] No guardaba log al recategorizar
1 parent 55ea203 commit 0822fa0

3 files changed

Lines changed: 31 additions & 22 deletions

File tree

src/Funcionalidades/Recategorizar.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,9 @@ export function useRecategorizarTicket(services: Svc, ticket: Ticket) {
116116
[]
117117
);
118118

119-
const handleRecategorizar = async (e: React.FormEvent) => {
119+
const handleRecategorizar = async (e: React.FormEvent): Promise<boolean> => {
120120
e.preventDefault();
121-
if (!validate()) return;
121+
if (!validate()) return false;
122122

123123
setSubmitting(true);
124124
try {
@@ -137,18 +137,13 @@ export function useRecategorizarTicket(services: Svc, ticket: Ticket) {
137137

138138
let solucionTZ: TZDate | null = null;
139139
if (horasAns > 0) {
140-
solucionTZ = calcularFechaSolucion(apertura, horasAns, holidays); // TZDate | null
140+
solucionTZ = calcularFechaSolucion(apertura, horasAns, holidays);
141141
}
142142

143-
// Convierte TZDate -> Date normal para guardar en estado/mostrar
143+
// Convierte TZDate -> Date normal
144144
const solucionDate = solucionTZ ? new Date(solucionTZ as unknown as string) : null;
145145
setFechaSolucion(solucionDate);
146-
147-
// Serializa para Graph/SharePoint (usa tu helper)
148146
const tiempoSolISO = solucionDate ? toGraphDateTime(solucionDate) : null;
149-
// Si quieres forzar UTC string:
150-
// const tiempoSolISO = solucionDate ? toUtcIso(solucionDate) : null;
151-
152147
const payloadUpdate: Partial<Ticket> = {
153148
Categoria: state.categoria,
154149
SubCategoria: state.subcategoria,
@@ -159,6 +154,7 @@ export function useRecategorizarTicket(services: Svc, ticket: Ticket) {
159154

160155
if (!Tickets?.update) {
161156
console.error("Tickets service no disponible. Verifica el GraphServicesProvider.");
157+
return false
162158
} else {
163159
const updated = await Tickets.update(String(ticket.ID), payloadUpdate);
164160
console.log("Ticket actualizado:", updated);
@@ -194,12 +190,14 @@ export function useRecategorizarTicket(services: Svc, ticket: Ticket) {
194190
});
195191
} catch (err) {
196192
console.error("[Flow] Error enviando a resolutor:", err);
193+
return false
197194
}
198195
}
199196

200197
// Limpiar formulario
201198
setState({ categoria: "", subcategoria: "", articulo: "" });
202199
setErrors({});
200+
return true
203201
}
204202
} finally {
205203
setSubmitting(false);

src/components/DetallesTickets/Modals/Reasignar.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export default function Reasignar({ ticket }: { ticket: Ticket }) {
2828

2929
const { state, errors, submitting, setField, handleReasignar } =
3030
useReasignarTicket({ Usuarios: UsuariosSPServiceSvc, Logs: LogSvc }, ticket);
31+
3132

3233
const { UseruserOptions, loading, error } = useUsuarios(UsuariosSPServiceSvc!);
3334

src/components/DetallesTickets/Modals/Recategorizar.tsx

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,12 @@ import { useRecategorizarTicket } from "../../../Funcionalidades/Recategorizar";
77
import type { Ticket } from "../../../Models/Tickets";
88
import { norm } from "../../../utils/Commons";
99
import type { TreeOption } from "../../NuevoTicket/NuevoTicketForm";
10+
import { useAuth } from "../../../auth/authContext";
1011

1112
export default function Recategorizar({ ticket, onDone}: { ticket: Ticket, onDone: () => void }) {
12-
const {
13-
Categorias,
14-
SubCategorias,
15-
Articulos,
16-
Tickets: TicketsSvc,
17-
} = useGraphServices() as ReturnType<typeof useGraphServices> & {
18-
Tickets: TicketsService;
19-
};
20-
21-
const {state, errors, submitting, categorias, subcategoriasAll, articulosAll, loadingCatalogos, setField, handleRecategorizar,
22-
} = useRecategorizarTicket({ Categorias, SubCategorias, Articulos, Tickets: TicketsSvc }, ticket);
23-
13+
const {Categorias, SubCategorias, Articulos, Tickets: TicketsSvc, Logs} = useGraphServices() as ReturnType<typeof useGraphServices> & {Tickets: TicketsService;};
14+
const {state, errors, submitting, categorias, subcategoriasAll, articulosAll, loadingCatalogos, setField, handleRecategorizar,} = useRecategorizarTicket({ Categorias, SubCategorias, Articulos, Tickets: TicketsSvc }, ticket);
15+
const {account} = useAuth()
2416
const treeOptions: TreeOption[] = React.useMemo(() => {
2517
if (!categorias.length || !subcategoriasAll.length || !articulosAll.length) return [];
2618
const subById = new Map(subcategoriasAll.map(s => [String(s.ID), s]));
@@ -80,13 +72,31 @@ export default function Recategorizar({ ticket, onDone}: { ticket: Ticket, onDon
8072
setField("articulo", artTitle);
8173
};
8274

75+
const handleConfirm = async (e: React.FormEvent) => {
76+
const canContinue = await handleRecategorizar(e);
77+
78+
if (!canContinue) return;
79+
80+
const newCategoriaBuilt = [state.categoria, state.subcategoria, state.articulo]
81+
.filter(Boolean)
82+
.join(" > ");
83+
84+
await Logs.create({
85+
Actor: account?.name ?? "",
86+
CorreoActor: account?.username ?? "",
87+
Descripcion: "El resolutor cambió la categoría del ticket a: " + newCategoriaBuilt,
88+
Tipo_de_accion: "Recategorización",
89+
Title: String(ticket.ID ?? ""),
90+
});
91+
};
92+
8393
const disabledCats = submitting || loadingCatalogos;
8494

8595
return (
8696
<div className="dta-form">
8797
<h2 className="dta-title">Recategorizar Ticket</h2>
8898

89-
<form onSubmit={(e) => {handleRecategorizar(e); onDone()}} noValidate className="dta-grid">
99+
<form onSubmit={(e) => {handleConfirm(e); onDone()}} noValidate className="dta-grid">
90100

91101
{/* Categoría / Subcategoría / Artículo */}
92102
<div className="tf-row tf-row--cats tf-col-2">

0 commit comments

Comments
 (0)