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:
@@ -64,6 +64,9 @@ export default function DatosGeneralesCampos({ prefix, compacto = false }: Props
|
||||
className="sm:col-span-2"
|
||||
/>
|
||||
)}
|
||||
{!compacto && (
|
||||
<CampoTexto nombre={p('usuarioEnkontrol')} etiqueta="Usuario Enkontrol" />
|
||||
)}
|
||||
</SectionCard>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -68,6 +68,7 @@ export const datosGeneralesSchema = z
|
||||
tipoVivienda: z.enum(['PRESTADA', 'RENTADA', 'FAMILIAR', 'PROPIA', '']),
|
||||
tipoCompra: z.enum(['INVERSION', 'VIVIR_AHI', '']),
|
||||
actividadOcupacion: textoOpcional,
|
||||
usuarioEnkontrol: textoOpcional,
|
||||
})
|
||||
.superRefine((datos, ctx) => {
|
||||
// Régimen de bienes solo aplica (y se exige) cuando el estado civil es CASADO
|
||||
|
||||
@@ -59,7 +59,7 @@ function paramsAfluencia(): { oportunidadId: string; valores: Record<string, str
|
||||
return { oportunidadId: id, valores }
|
||||
}
|
||||
|
||||
/** Lee ?apartado=<itemId> — botón "Firma Cliente (Venta)" de Mis apartados en Mi día */
|
||||
/** Lee ?apartado=<itemId> — botón "Alta Enkontrol" de Mis apartados en Mi día */
|
||||
function paramApartado(): string | null {
|
||||
return new URLSearchParams(window.location.search).get('apartado')
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@ export interface DatosGenerales {
|
||||
tipoVivienda: TipoVivienda | ''
|
||||
tipoCompra: TipoCompra | ''
|
||||
actividadOcupacion: string
|
||||
usuarioEnkontrol?: string
|
||||
}
|
||||
|
||||
export interface DatosEmpleo {
|
||||
@@ -150,7 +151,7 @@ export interface AltaCliente {
|
||||
// un lead (null = captura manual). Passthrough hasta payloadJson del API.
|
||||
leadMondayId: string | null
|
||||
// ID del item del tablero Apartado de Monday cuando el alta arrancó desde un
|
||||
// apartado existente (botón "Firma Cliente (Venta)" de Mis apartados): el
|
||||
// apartado existente (botón "Alta Enkontrol" de Mis apartados): el
|
||||
// API lo LIGA y enriquece en vez de crear un apartado duplicado.
|
||||
apartadoMondayId: string | null
|
||||
// ID del Cliente creado por el guardado progresivo (POST /clientes/progreso/
|
||||
|
||||
@@ -172,7 +172,6 @@ export const FASES_APARTADO = [
|
||||
'Entrego Documentacion',
|
||||
'Cita Clientes',
|
||||
'Contrato Enkontrol',
|
||||
'Firma Cliente (Venta)',
|
||||
'Cancelacion Apartado',
|
||||
] as const
|
||||
export type FaseApartado = (typeof FASES_APARTADO)[number]
|
||||
@@ -184,7 +183,6 @@ export const ETIQUETA_FASE_APARTADO: Record<FaseApartado, string> = {
|
||||
'Entrego Documentacion': 'Entregó documentación',
|
||||
'Cita Clientes': 'Cita cliente',
|
||||
'Contrato Enkontrol': 'Contrato Enkontrol',
|
||||
'Firma Cliente (Venta)': 'Firma cliente (venta)',
|
||||
'Cancelacion Apartado': 'Cancelación',
|
||||
}
|
||||
|
||||
|
||||
@@ -329,9 +329,9 @@ function FilaApartado({
|
||||
type="button"
|
||||
disabled={enviando}
|
||||
onClick={() => {
|
||||
// Firma Cliente (Venta): abre el alta de cliente prellenada con
|
||||
// Alta Enkontrol: abre el alta de cliente prellenada con
|
||||
// todo lo recolectado del apartado (ligada, sin duplicar)
|
||||
if (fase === 'Firma Cliente (Venta)') {
|
||||
if (fase === 'Alta Enkontrol') {
|
||||
window.location.href = `/client/?apartado=${apartado.id}`
|
||||
return
|
||||
}
|
||||
@@ -340,14 +340,14 @@ function FilaApartado({
|
||||
className={
|
||||
fase === 'Cancelacion Apartado'
|
||||
? 'rounded-lg border border-red-200 bg-white px-3 py-1.5 text-xs font-medium text-red-600 shadow-sm transition-all duration-100 ease-out hover:bg-red-50 disabled:opacity-50 dark:bg-[#0F172A] dark:border-red-800 dark:text-red-400'
|
||||
: fase === 'Firma Cliente (Venta)'
|
||||
: fase === 'Alta Enkontrol'
|
||||
? 'rounded-lg bg-accent px-3 py-1.5 text-xs font-medium text-white shadow-sm transition-all duration-100 ease-out hover:bg-accent-hover disabled:opacity-50'
|
||||
: fase === apartado.estado
|
||||
? 'rounded-lg border border-accent bg-accent/5 px-3 py-1.5 text-xs font-medium text-accent shadow-sm disabled:opacity-50'
|
||||
: CLASE_BOTON_ACCION
|
||||
}
|
||||
>
|
||||
{fase === 'Firma Cliente (Venta)' ? 'Firma cliente (venta) →' : ETIQUETA_FASE_APARTADO[fase]}
|
||||
{fase === 'Alta Enkontrol' ? 'Alta Enkontrol →' : ETIQUETA_FASE_APARTADO[fase]}
|
||||
</button>
|
||||
))}
|
||||
<button
|
||||
|
||||
Reference in New Issue
Block a user