fix(escrituracion): fases reordenadas según solicitud

- Fases: Venta → Seguimiento → Integración → X Autorizar → Autorizado
  → X Escriturar → Escriturado → Titulado → Cancelo
- Kanban y botones actualizados con el nuevo orden
- obtenerColumnaEscrituracion actualizado
- Backend FASES_APARTADO_PERMITIDAS actualizado
This commit is contained in:
2026-09-09 10:41:38 +00:00
parent d546460ba4
commit 356bf46216
3 changed files with 31 additions and 19 deletions

View File

@@ -31,11 +31,13 @@ export const ESTADOS_FINALES_APARTADO = [
'FORMALIZADO',
'CANCELO',
'FIRMA CLIENTE',
'VENTA',
'SEGUIMIENTO',
'LLAMADA ESCRITURAS',
'X ESCRITURAR',
'BANCO/INFONAVIT',
'INTEGRACION',
'X AUTORIZAR',
'AUTORIZADO',
'X ESCRITURAR',
'TITULADO',
]
const ROLES_CON_EQUIPO = ['coordinador', 'corporativo', 'admin']

View File

@@ -193,23 +193,27 @@ export const ETIQUETA_FASE_APARTADO: Record<FaseApartado, string> = {
}
export const FASES_ESCRITURACION = [
'Venta',
'Seguimiento',
'Llamada Escrituras',
'X Escriturar',
'Banco/Infonavit',
'Integracion',
'X Autorizar',
'Autorizado',
'X Escriturar',
'Escriturado',
'Titulado',
'Cancelo',
] as const
export type FaseEscrituracion = (typeof FASES_ESCRITURACION)[number]
export const ETIQUETA_FASE_ESCRITURACION: Record<FaseEscrituracion, string> = {
'Venta': 'Venta',
'Seguimiento': 'Seguimiento',
'Llamada Escrituras': 'Llamada escrituras',
'X Escriturar': 'X Escriturar',
'Banco/Infonavit': 'Banco/Infonavit',
'Integracion': 'Integración',
'X Autorizar': 'X Autorizar',
'Autorizado': 'Autorizado',
'X Escriturar': 'X Escriturar',
'Escriturado': 'Escriturado',
'Titulado': 'Titulado',
'Cancelo': 'Canceló',
}

View File

@@ -855,11 +855,14 @@ export default function MiDiaPage({ accionesSesion }: { accionesSesion: Acciones
]
const columnasEscrituracion = [
{ id: 'SEGUIMIENTO', titulo: 'Seguimiento', color: 'border-t-gray-400' },
{ id: 'LLAMADA ESCRITURAS', titulo: 'Llamada Escrituras', color: 'border-t-blue-500' },
{ id: 'X ESCRITURAR', titulo: 'X Escriturar', color: 'border-t-yellow-500' },
{ id: 'BANCO/INFONAVIT', titulo: 'Banco/Infonavit', color: 'border-t-orange-500' },
{ id: 'X AUTORIZAR', titulo: 'X Autorizar', color: 'border-t-green-500' },
{ id: 'VENTA', titulo: 'Venta', color: 'border-t-gray-400' },
{ id: 'SEGUIMIENTO', titulo: 'Seguimiento', color: 'border-t-blue-500' },
{ id: 'INTEGRACION', titulo: 'Integración', color: 'border-t-yellow-500' },
{ id: 'X AUTORIZAR', titulo: 'X Autorizar', color: 'border-t-orange-500' },
{ id: 'AUTORIZADO', titulo: 'Autorizado', color: 'border-t-green-500' },
{ id: 'X ESCRITURAR', titulo: 'X Escriturar', color: 'border-t-emerald-500' },
{ id: 'ESCRITURADO', titulo: 'Escriturado', color: 'border-t-emerald-600' },
{ id: 'TITULADO', titulo: 'Titulado', color: 'border-t-purple-600' },
{ id: 'CANCELO', titulo: 'Canceló', color: 'border-t-red-500' },
]
const obtenerColumnaLead = (lead: LeadMiDia) => {
@@ -891,14 +894,16 @@ export default function MiDiaPage({ accionesSesion }: { accionesSesion: Acciones
}
const obtenerColumnaEscrituracion = (a: ApartadoMiDia) => {
const e = (a.estado ?? '').toUpperCase()
if (e.includes('VENTA')) return 'VENTA'
if (e.includes('SEGUIMIENTO')) return 'SEGUIMIENTO'
if (e.includes('LLAMADA')) return 'LLAMADA ESCRITURAS'
if (e.includes('X ESCRIT') || e.includes('ESCRIT')) return 'X ESCRITURAR'
if (e.includes('BANCO') || e.includes('INFONAVIT')) return 'BANCO/INFONAVIT'
if (e.includes('INTEGRACION')) return 'INTEGRACION'
if (e.includes('X AUTORIZAR')) return 'X AUTORIZAR'
if (e.includes('AUTORIZADO')) return 'AUTORIZADO'
if (e.includes('X ESCRITURAR')) return 'X ESCRITURAR'
if (e.includes('ESCRITURADO')) return 'ESCRITURADO'
if (e.includes('TITULADO')) return 'TITULADO'
if (e.includes('CANCEL')) return 'CANCELO'
return 'SEGUIMIENTO'
return 'VENTA'
}
@@ -1370,9 +1375,10 @@ export default function MiDiaPage({ accionesSesion }: { accionesSesion: Acciones
{(() => {
// Filtrar: solo apartados en fases de escrituración o Firma Cliente
// Solo fases activas (Cancelo y Escriturado son terminales)
// Fases activas de escrituración (excluye Cancelo y Escriturado que son terminales)
const apartadosEscrituracion = (resumen.todosApartados || resumen.misApartados || []).filter((a) => {
const e = (a.estado ?? '').toUpperCase()
return e.includes('FIRMA') || e.includes('SEGUIMIENTO') || e.includes('LLAMADA') || e.includes('X ESCRITURAR') || e.includes('BANCO') || e.includes('INFONAVIT') || e.includes('X AUTORIZAR')
return e.includes('FIRMA') || e.includes('VENTA') || e.includes('SEGUIMIENTO') || e.includes('INTEGRACION') || e.includes('X AUTORIZAR') || e.includes('X ESCRITURAR')
})
return apartadosEscrituracion.length === 0 ? (
<EstadoVacio mensaje="No hay apartados en escrituración" />
@@ -1394,7 +1400,7 @@ export default function MiDiaPage({ accionesSesion }: { accionesSesion: Acciones
</div>
</div>
<div className="mt-3 flex flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center">
{(['Seguimiento', 'Llamada Escrituras', 'X Escriturar', 'Banco/Infonavit', 'X Autorizar', 'Escriturado', 'Cancelo'] as const).map((fase) => (
{(['Venta', 'Seguimiento', 'Integracion', 'X Autorizar', 'Autorizado', 'X Escriturar', 'Escriturado', 'Titulado', 'Cancelo'] as const).map((fase) => (
<button
key={fase}
type="button"