diff --git a/web-v2/src/features/assets/AssetContextHistoryPanel.tsx b/web-v2/src/features/assets/AssetContextHistoryPanel.tsx index 5cce57f..bd559ce 100644 --- a/web-v2/src/features/assets/AssetContextHistoryPanel.tsx +++ b/web-v2/src/features/assets/AssetContextHistoryPanel.tsx @@ -7,7 +7,6 @@ import { changeAssetContext, listAssetContextHistory, listAssetParentOptions, - listCompaniesForArea, listOperationalAreas, } from '../../lib/api'; import type { @@ -29,7 +28,6 @@ function contextLabel(item: AssetContextHistoryItem) { const parts = [ item.parent ? `Padre: ${item.parent.name}` : 'Sin padre', item.operationalArea ? `Área: ${item.operationalArea.name}` : null, - item.operatorCompany ? `Operadora: ${item.operatorCompany.name}` : null, ].filter(Boolean); return parts.join(' · '); } @@ -55,9 +53,7 @@ export function AssetContextHistoryPanel({ const [parentSearch, setParentSearch] = useState(''); const [parents, setParents] = useState([]); const [operationalAreaId, setOperationalAreaId] = useState(asset.operationalArea?.id ?? ''); - const [operatorCompanyId, setOperatorCompanyId] = useState(asset.operatorCompany?.id ?? ''); const [areas, setAreas] = useState([]); - const [companies, setCompanies] = useState([]); const [effectiveAt, setEffectiveAt] = useState(localDateTimeNow()); const [reason, setReason] = useState(''); @@ -94,29 +90,14 @@ export function AssetContextHistoryPanel({ setAreas(items); if (operationalAreaId && !items.some((item) => item.id === operationalAreaId)) { setOperationalAreaId(''); - setOperatorCompanyId(''); } }) .catch((requestError) => setError(errorMessage(requestError))); }, [editing, genericContext, parentId]); - useEffect(() => { - if (!editing || !genericContext || !operationalAreaId) { - setCompanies([]); - return; - } - listCompaniesForArea(operationalAreaId) - .then((items) => { - setCompanies(items); - if (operatorCompanyId && !items.some((item) => item.id === operatorCompanyId)) setOperatorCompanyId(''); - }) - .catch((requestError) => setError(errorMessage(requestError))); - }, [editing, genericContext, operationalAreaId]); - const beginEdit = () => { setParentId(asset.parent?.id ?? ''); setOperationalAreaId(asset.operationalArea?.id ?? ''); - setOperatorCompanyId(asset.operatorCompany?.id ?? ''); setEffectiveAt(localDateTimeNow()); setReason(''); setError(''); @@ -133,13 +114,12 @@ export function AssetContextHistoryPanel({ const saved = await changeAssetContext(asset.id, { parentId: parentId || null, operationalAreaId: genericContext ? operationalAreaId || null : asset.operationalArea?.id ?? null, - operatorCompanyId: genericContext ? operatorCompanyId || null : asset.operatorCompany?.id ?? null, effectiveAt: effectiveAt ? new Date(effectiveAt).toISOString() : undefined, reason, }); onChanged(saved); setEditing(false); - setSuccess('Contexto actualizado. La asignación anterior quedó preservada en el historial.'); + setSuccess('Contexto físico actualizado. La asignación anterior quedó preservada en el historial.'); loadHistory(); } catch (requestError) { setError(errorMessage(requestError)); @@ -150,30 +130,29 @@ export function AssetContextHistoryPanel({ return
-
CONTEXTO TEMPORAL

Jerarquía, Área y Operadora

- {canManage && !editing && } +
CONTEXTO TEMPORAL

Jerarquía y Área

+ {canManage && !editing && }
-

Los cambios no reemplazan la historia. Cada asignación conserva desde cuándo fue válida y qué relación la reemplazó.

+

Los cambios físicos no reemplazan la historia. La Operadora se administra por separado en las relaciones temporales del Área.

{error && {error}} {success && {success}} - {current &&

Contexto vigente. {contextLabel(current)}

} + {current &&

Contexto físico vigente. {contextLabel(current)}

} {editing &&
-

Cambiar contexto vigente

Indicá el nuevo lugar dentro del Inventario y el motivo. La relación anterior se cierra automáticamente.

+

Cambiar contexto físico vigente

Indicá la nueva ubicación dentro del Inventario y el motivo. La relación física anterior se cierra automáticamente.

Registro padre setParentSearch(event.target.value)} placeholder="Buscar registro padre…" /> { setParentId(event.target.value); setParentSearch(''); }} required={!type.canBeRoot}>{parents.map((parent) => )}
{genericContext &&
- - +
} -