Files
dh-inspeccion-v2/web-v2/src/lib/format.ts
T
admin cd24736df8 F1.1 · Inspección multi-Acta y firma diferida
Implementa el nuevo núcleo operativo: múltiples Actas por Inspección, un Informe por Acta, cierre de campo independiente y firma de empresa diferida con conformidad/disidencia.
2026-09-05 14:46:26 -03:00

97 lines
4.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const dateTime = new Intl.DateTimeFormat('es-AR', {
dateStyle: 'short',
timeStyle: 'short',
});
export function formatDate(value: string | null | undefined) {
if (!value) return '—';
const date = new Date(value);
return Number.isNaN(date.getTime()) ? '—' : dateTime.format(date);
}
export function formatDateOnly(value: string | null | undefined) {
if (!value) return '—';
const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value.slice(0, 10));
return match ? `${match[3]}/${match[2]}/${match[1]}` : '—';
}
const actions: Record<string, string> = {
AUTH_LOGIN_SUCCESS: 'Inicio de sesión',
AUTH_LOGIN_FAILED: 'Acceso rechazado',
AUTH_LOGOUT: 'Cierre de sesión',
AUTH_REFRESH: 'Sesión renovada',
AUTH_REFRESH_REUSE_DETECTED: 'Reutilización de sesión detectada',
AUTH_PASSWORD_CHANGED: 'Contraseña modificada',
SYSTEM_BOOTSTRAP_ADMIN_CREATED: 'Administrador inicial creado',
USER_CREATED: 'Usuario creado',
USER_UPDATED: 'Usuario actualizado',
USER_STATUS_CHANGED: 'Estado de usuario modificado',
USER_ROLES_CHANGED: 'Roles de usuario modificados',
ROLE_CREATED: 'Rol creado',
ROLE_UPDATED: 'Rol actualizado',
ROLE_PERMISSIONS_CHANGED: 'Permisos de rol modificados',
ASSET_TYPE_CREATED: 'Tipo de elemento creado',
ASSET_MASTER_BOOTSTRAPPED: 'Configuración inicial de Inventarios',
ASSET_TYPE_UPDATED: 'Tipo de elemento actualizado',
ASSET_ATTRIBUTE_CREATED: 'Atributo de inventario creado',
ASSET_ATTRIBUTE_UPDATED: 'Atributo de inventario actualizado',
ASSET_CREATED: 'Registro de inventario creado',
ASSET_FIELD_DISCOVERY_CREATED: 'Alta de campo registrada',
ASSET_FIELD_DISCOVERY_APPROVED: 'Alta de campo aprobada',
ASSET_FIELD_DISCOVERY_MATCHED: 'Alta de campo conciliada',
ASSET_FIELD_DISCOVERY_REJECTED: 'Alta de campo rechazada',
ASSET_UPDATED: 'Registro de inventario actualizado',
ASSET_INFORMATION_STATUS_CHANGED: 'Estado de información modificado',
ASSET_GEOMETRY_UPDATED: 'Ubicación de registro actualizada',
ASSET_GEOMETRY_REMOVED: 'Ubicación de registro retirada',
ASSET_MEDIA_UPLOADED: 'Archivo de inventario incorporado',
ASSET_MEDIA_UPDATED: 'Archivo de inventario actualizado',
ASSET_MEDIA_REMOVED: 'Archivo de inventario retirado',
ASSET_PROVENANCE_UPDATED: 'Procedencia de registro actualizada',
ASSET_PROVENANCE_VERIFIED: 'Procedencia de registro verificada',
ASSET_AREA_COMPANY_RELATION_CREATED: 'Relación ÁreaOrganización creada',
ASSET_AREA_COMPANY_RELATION_ENDED: 'Relación ÁreaOrganización finalizada',
SURVEY_CAMPAIGN_CREATED: 'Campaña de relevamiento creada',
SURVEY_CAMPAIGN_UPDATED: 'Campaña de relevamiento actualizada',
SURVEY_CAMPAIGN_STATUS_CHANGED: 'Estado de campaña modificado',
SURVEY_TARGET_ADDED: 'Objetivo de relevamiento agregado',
SURVEY_TARGET_UPDATED: 'Plan de objetivo actualizado',
SURVEY_TARGET_ASSIGNED: 'Objetivo de relevamiento asignado',
SURVEY_TARGET_STATUS_CHANGED: 'Avance de relevamiento actualizado',
SURVEY_REPORT_SAVED: 'Borrador de relevamiento guardado',
SURVEY_REPORT_SUBMITTED: 'Relevamiento enviado a revisión',
SURVEY_REPORT_APPROVED: 'Relevamiento aprobado',
SURVEY_REPORT_REJECTED: 'Relevamiento rechazado',
INSPECTION_VISIT_CREATED: 'Visita de inspección creada',
INSPECTION_VISIT_UPDATED: 'Plan de visita actualizado',
INSPECTION_VISIT_STATUS_CHANGED: 'Estado de visita modificado',
INSPECTION_VISIT_ASSETS_UPDATED: 'Registros de visita actualizados',
INSPECTION_VISIT_TEAM_UPDATED: 'Equipo de visita actualizado',
INSPECTION_VISIT_STARTED: 'Visita de inspección iniciada',
INSPECTION_ACT_CREATED: 'Acta de inspección creada',
INSPECTION_ACT_UPDATED: 'Acta de inspección actualizada',
INSPECTION_ACT_CANCELLED: 'Acta de inspección cancelada',
INSPECTION_ACT_RESPONSIBLE_UPDATED: 'Responsable del acta actualizado',
INSPECTION_ACT_READY: 'Contenido del acta congelado',
INSPECTION_ACT_REOPENED: 'Acta devuelta a borrador',
INSPECTION_ACT_SIGNATURE_RECORDED: 'Firma manuscrita incorporada al acta',
INSPECTION_ACT_COMPANY_OUTCOME_RECORDED: 'Resultado de recepción empresarial registrado',
INSPECTION_ACT_CLOSED: 'Acta cerrada',
INSPECTION_REPORT_GENERATED: 'Informe de inspección generado',
INSPECTION_VERIFICATION_PLANNED: 'Visita de verificación preparada',
INSPECTION_FINDING_CREATED: 'Hallazgo abierto',
INSPECTION_FINDING_UPDATED: 'Hallazgo actualizado',
INSPECTION_FINDING_FOLLOW_UP_UPDATED: 'Seguimiento de hallazgo actualizado',
INSPECTION_FINDING_CLOSED: 'Hallazgo cerrado',
INSPECTION_FINDING_EVIDENCE_UPLOADED: 'Evidencia de hallazgo incorporada',
INSPECTION_FINDING_COMMUNICATION_CREATED: 'Comunicación de hallazgo registrada',
};
export function actionLabel(action: string) {
return actions[action] ?? action.replaceAll('_', ' ').toLocaleLowerCase('es-AR');
}
export function initials(firstName: string, lastName: string) {
return `${firstName[0] ?? ''}${lastName[0] ?? ''}`.toUpperCase();
}