fix(apartados): rename firma→alta enkontrol + campo usuario + bloqueo unidad

- Firma Cliente (Venta) renombrada a Alta Enkontrol (mismo redirect a alta cliente)
- Campo 'Usuario Enkontrol' añadido en Datos Generales del alta cliente
- Unidad se bloquea (APARTADA) al pasar cliente a etapa Aparto
- Backend y frontend actualizados
This commit is contained in:
2026-09-08 06:31:41 +00:00
parent f297aabc1a
commit 5063ffe281
16 changed files with 76 additions and 27 deletions

View File

@@ -899,7 +899,7 @@ export class AutomatizacionesService {
const apartados = await prisma.leadCaptura.findMany({
where: {
board: 'APARTADO',
etapa: { notIn: ['Cancelacion Apartado', 'Firma Cliente (Venta)'] },
etapa: { notIn: ['Cancelacion Apartado', 'Alta Enkontrol'] },
fechaLimite: { not: null, lte: limite, gte: ahora },
},
})

View File

@@ -94,7 +94,6 @@ export const GRUPOS_POR_ESTADO: Record<string, { columna: string; destinos: Reco
'Cita Clientes': 'topics',
'Contrato Enkontrol': 'topics',
VIGENTE: 'topics',
'Firma Cliente (Venta)': 'group_mm6sx3rn',
'X Escriturar': 'group_mm6sx3rn',
Escriturado: 'group_mm6s40br',
FORMALIZADO: 'group_mm6s40br',

View File

@@ -235,7 +235,7 @@ describe('resumenMiDia (GET /api/mi-dia/resumen)', () => {
apartado({ id: 'p1', fechaLimite: '2026-09-05' }),
apartado({ id: 'p2', fechaLimite: '2026-09-01', estado: 'Cita Clientes' }),
apartado({ id: 'p3', fechaLimite: '', estado: 'Alta Enkontrol' }),
apartado({ id: 'p4', estado: 'Firma Cliente (Venta)' }), // final: fuera
apartado({ id: 'p4', estado: 'Escriturado' }), // final: fuera
apartado({ id: 'p5', estado: 'Cancelacion Apartado' }), // final: fuera
apartado({ id: 'p6', vendedorIds: [OTRO_ID] }), // de otro: fuera
],
@@ -254,7 +254,7 @@ describe('resumenMiDia (GET /api/mi-dia/resumen)', () => {
})
it('esEstadoFinalApartado: venta y cancelación cierran el pipeline', () => {
expect(esEstadoFinalApartado('Firma Cliente (Venta)')).toBe(true)
expect(esEstadoFinalApartado('Alta Enkontrol')).toBe(false)
expect(esEstadoFinalApartado('Cancelacion Apartado')).toBe(true)
expect(esEstadoFinalApartado('Escriturado')).toBe(true)
expect(esEstadoFinalApartado('Pago Apartado')).toBe(false)

View File

@@ -29,7 +29,6 @@ export const ESTADOS_FINALES_APARTADO = [
'CANCELADO',
'LIBERADO',
'FORMALIZADO',
'FIRMA CLIENTE (VENTA)', // la venta se concreta: pasa a Escrituración
]
const ROLES_CON_EQUIPO = ['coordinador', 'corporativo', 'admin']

View File

@@ -736,7 +736,7 @@ export class MondayService {
/**
* Actualiza un apartado existente con los campos presentes (mismo builder de
* valores que crearApartado) — usado cuando el alta de cliente arranca desde
* un apartado ya creado (botón "Firma Cliente (Venta)" de Mis apartados):
* un apartado ya creado (botón "Alta Enkontrol" de Mis apartados):
* se enriquece el item en vez de crear uno duplicado.
*/
async actualizarApartado(itemId: string, datos: Partial<DatosApartado>): Promise<void> {