Changelog
Qué hay de nuevo.
Cada mejora de la plataforma, a medida que se envía.
· kamo-internal
Los clientes resumen de la descripción general y las reglas que dictan de
· kamo-shared-library
Conteo encuadrado/cosis/reciente consultas para un set en vivo de org-assoc
HrResourceResourceRemmaryService se estaba materializando todo un org sin escondite Img colección en la memoria para calcular un conteo, una suma de byte y un Corte reciente de 5 rascas. Añade consultas de conteo/sumo/reciente por lo que un resumen nunca tiene que cargar la colección para responder tres números.
· DocsService
Resumen jurídico, de capacitación y de recursos para el resumen de recursos humanos
Una lectura por dominio de la pestaña, cada bloque cerrado por derecho propio y omitido en lugar de negarse cuando estaba fuera de su alcance.
· SecurityService
Resumen de asistencia para el panorama de los recursos humanos
Una llamada convocada por MANAGE-TIMECARDS que compone la lista y la cuenta-gerente-cuidado Relevos con la excepción local, el empleo y las filas de períodos de pago.
· kamo-marketing
Localiza las cartas del hub y deja de agrupar los conjuntos de datos en inglés
Las cuatro páginas de hub entregaron componentes de clientes que importaban la colección módulos directamente y no tomaron accesorios, por lo que cada tarjeta de nombres de la industria, integración esloganes, definiciones de glosario, resúmenes de competidores A pesar de que el cromo circundante fue traducido. También significaba el Conjuntos de datos completos en inglés enviados en el paquete de clientes. El servidor ahora localiza y pasa sólo los campos que cada hub realmente renderiza, para que el cliente mantenga las constantes estructurales (etiquetas de categorías, orden de visualización) y deja caer los módulos de datos. Vendedores y marcas de competidores permanecen sin traducir pero aún se pasan, ya que las cartas las imprimen. El ItemList/DefinedTermSet JSON-LD en estas páginas también se codifican /en URLs para Cada lugarejado; ahora siguen el lugar de la página.
· kamo-shared-library
consultas resumidas para la reseña de la RRHH.
Histogramas de estado, rebanadas atrasadas y rollups por miembros para legal y entrenamiento, más plantilla/cuestos de estado de curso. Sin cambio de entidad.
· kamo-internal
Rojo rescata cuando esté fuera de reloj, verde cuando está encendido, y suelta la bala
Estar fuera de control mientras está en el trabajo es el estado que le cuesta dinero a alguien, y fue el único Estado que nada anunció: el indicador simplemente estaba ausente, y un La ausencia no es una señal. El control ahora lleva un resplandor rojo respirable cada vez que el miembro está fuera. Un resplandor de respiración en un ciclo de 1.8s en lugar de un parpadeo duro. Eso está muy por debajo de la Término de fotosensibilidad de tres-flashes por segundo, y un estrobosque en la esquina de cada pantalla sería intolerable durante las ocho horas diarias que se supone que debe ser visibles. Bajo la promoción reducida de preferencias el brillo se mantiene STEADY en lugar de eliminados a diferencia del anillo de obligación a su lado, la moción aquí no es redundante con una placa o un conteo, por lo que quitarla eliminaría la única señal. El brillo sólo aparece una vez que el estado es realmente CONOCIEN. Pintarlo durante el primer punto, o a mitad de golpe mientras el optimista toggle se asienta, anunciaría un problema que puede no existir, y una advertencia de que grita lobo en cada página carga es una gente aprende a dejar de ver. El punto cerrado es verde en lugar de... gente de acento. Esa ficha es la HRS. el tinte de identidad ámbar del módulo (c47d1a), que se lee como una advertencia sentada al lado de un resplandor rojo en el reloj es el buen estado y tiene que parecerlo. La bala se ha ido. No llevaba información el punto no tenía ya llevar, y tomó la solución .tabular "importante solución". el desbordamiento se fija visible en el botón en lugar de heredar: el brillo se sienta en un inset negativo, por lo que un botón ButtonBase se lo tragaría por completo y el el control se vería simplemente sin estilo en lugar de romperse el tipo más difícil de insecto visual para notar.
· kamo-internal
Una pestaña de inscripción, y esconde la pestaña Timecard miembro cuando no está matriculado
No había forma de cambiar las tarjetas de tiempo para nadie. Toda superficie de lectura existía y cada uno de ellos no mostró nada correctamente, porque ninguna matrícula podría ser creado "no está siendo rastreado" sin nada en ningún lugar del producto capaz de cambiar eso. MatarseSubTab es ese control, en /hr/asistencia donde HR gestiona el la fuerza laboral. Utiliza el miembro canónicoPickerDialog en multiseleccionado, y se inscribe un miembro por llamada en lugar de como lote: cada inscripción escribe un empleo Y una asignación con fecha efectiva, por lo que un fracaso parcial debe dejar al pueblo que triunfó se inscribió en lugar de hacer retroceder a todo el mundo. La pantalla dice por qué no está en roles y permisos, porque ese es el primero cualquiera tendrá: se suprimen las garantías reales cuando se detiene un número de miembros estar activo, lo que cambiaría la tarjeta de tiempo de alguien exactamente en el momento sus registros salariales necesitan sobrevivir a su empleo. El no exento es el predeterminado y el diálogo dice por qué clasificar a alguien exento que no es el error más caro en la ley salarial, y se hace por título de trabajo Mucho más a menudo que por cualquier prueba real. La pestaña Timecard miembro ahora está oculta completamente a menos que ese miembro sea realmente - Se inscribió. Anteriormente se hizo para cualquiera en un org de HRS y luego lo anunció No tenía nada que mostrar, que es un callejón sin salida: nada en esa página podía pasarlo. La inscripción se mantiene indefinida hasta que se conoce en lugar de incumplir falsamente, por lo que el
· SecurityService
Matrícula de relevo
MANAGE-TIMECARDS para leer o cambiar quién está en las tarjetas de tiempo - la inscripción decide quién se paga de este sistema, por lo que se mantiene al administrador de recursos humanos bien que a la propia línea de informes de un gerente.
· kamo-marketing
Traducir las páginas de la colección en lugar de esconderlas
Las 2.400 páginas de detalle no indexadas no fueron indexadas porque su copia corporal no tiene traducción: competidores, industrias, integraciones y glosario mantienen su prosa en app/lib/**/*.ts, que el diccionario nunca vio, así /fr/solutions/real-estate títulos franceses alrededor de párrafos ingleses. scripts/extract-collections.ts saca las 3.799 cuerdas translatables de esos 120 artículos en un árbol de estructura-espering, saltándose cualquier cosa que un traductor debe no tocar las babosas, categoría enums, estado de la matriz, rutas logo, relación referencias cruzadas, y nombres de proveedores/productos. Ese árbol se envía como las colecciones. namespace in kamo-marketing/en.json. En el momento de la lectura localizarlo se fusiona el árbol traducido sobre el objeto inglés. Sólo se sustituyen las claves presentes en la traducción, y un array cuya longitud a la deriva de la fuente se deja al por mayor en lugar de hacer una lista con Entradas desaparedas, tan ranas traducciones se degradan al inglés en lugar de romper la página. Se despoje de NextIntllClientProvider: es 420 KB que sólo componentes del servidor leen, y siguiente serial serial serial en lo que el proveedor entra la carga RSC de cada página. La fusión por localidad en i18n/request.ts es ahora memoizada por la misma razón, era barata en 150 KB y no está en 514 KB. colecciónRobots todavía no reporta index hasta las traducciones tierras; ampliación COLLECTION.CONTENT-LOCALES es lo que lo levanta.
· kamo-internal
Las fichas de homologaciones y excepciones existen en realidad ahora
Ambos backends se enviaron antes, pero ninguno de los dos paneles fue escrito, así que /hr/asistencia?sub=aprobaciones y ?sub=excepciones render "this pest está siendo construido" sobre los endpoints de trabajo. AprobaciónsSubTab es la cola del gerente. Una tarjeta de tiempo lleva dos attestations. el empleado está en la presentación y el gerente está aquí, por lo que la única acción sin razón se adjunta una aprobación simple de una tarjeta que el empleado se presentó, donde su propio atestado es el récord. Enviar una carta de vuelta y aprobar en nombre ambos toman una razón obligatoria, porque enviar la tarjeta de tiempo de alguien de vuelta sin Diciendo por qué es cómo un empleado pierde un día y nunca se entera cuál. Una tarjeta con excepciones de bloqueo tiene su botón de aprobación DISABLED en lugar de permitido fallar: el servidor se niega de todos modos, y un botón que siempre errores es peor que uno que está visiblemente indisponible. El chip de bloqueo navega hacia el Sexiones pestaña, que es donde realmente está el trabajo. ExcepcionesSubTab muestra dos números deliberadamente diferentes. el subconjunto que BLOCKS un cierre. isBlocking se renderiza exactamente como el servidor enviado nunca re-derivado de la cuerda de tipo. Waiving se presenta como lo que es: nada estaba arreglado, una persona está eligiendo proceder de todos modos, y la razón es lo que hace que esa decisión sobreviva siendo preguntada más tarde. El relevo del lugar se mantiene en la página a pesar de que los siete índices están ahora enlazadas y apargando un sub-tab id sin un panel debe decirlo en lugar de renderizar una pantalla en blanco.
· SecurityService
Retransve el cola de excepción
MANAGE-TIMECARDS para leer la cola y renunciar, porque la cola nombra cada miembro con un problema y renunciando cambia lo que la puerta final dice. El vuelven a-detección por parte de miembros pasa por resoluciónRole, para que un gerente pueda volver a ejecutar la detección en su propio informe sin una derecha de ancho.
· InitializerService
Los índices parciales que detienen un doble pago y una colisión de código
************* es los dientes detrás del servicio de exportación negativa a volver a emitir. Un segundo expediente comprometido por un período de pago paga doblemente a compañía entera, y el cheque de capa de servicio solo pierde ante dos operadores haciendo clic en el mismo momento. Una corrección lleva reversa.batch.id y es por tanto, excluido del predicado, que es la razón por la que esto no puede ser una limitación única clara para la entidad y en el ensayo afirma que la exclusión, porque sin ella nunca se podría emitir una corrección. Alcances activos de la unidad de código de la cuenta laboral a las filas ACTIVE. Un departamento jubilado recreado bajo su antiguo código es contabilidad ordinaria la limpieza; una restricción general obligaría al org a inventar "SALES-2" mientras la fila jubilada todavía tiene que existir para que los segmentos históricos apunten. El La restricción general de la entidad se cayó a favor de esto. EXPORT-REVOKE revoca DELETE pero deliberadamente NO UPDATE: un lote legítimamente las transiciones DRY-RUN ------ REMITTED - REVERSED, y revocar la actualización congelaría un carrera seca antes de que pueda ser comenten. La prueba fija esa distinción.
· kamo-internal
La pantalla de punto de época de un org con 400 personas
Volver a deducir excepciones, recuperar las ganancias de todos, aprobar todo el llamar puede: cada uno de los miembros del PER reportando con la razón por la que se negó. "312 de 400 éxitos" es inutilizable: la persona que lo dirige ahora tiene que encontrar el 80o y ocho a mano, que es exactamente el trabajo que se suponía la operación a granel para ahorrar. La mesa de rechazo lleva literalmente la frase aguas abajo, por lo que "esto cronchoh tiene 2 excepciones de bloqueo" le dice al aprobador qué hacer en lugar de diciéndoles que abran un billete. El diálogo de aprobación dice claramente que la razón está registrada en cada carta, y que cada tarjeta sigue pasando por los mismos cheques. Ambos son verdaderos y ambos el punto: una aprobación a granel ES una decisión aplicada a muchos registros, y fingir lo contrario exigiendo un comentario por carta produciría cuatrocientos copias de la palabra "ok".
· SecurityService
Operaciones de relevo a granel y asistencia
El papel de aprobación a granel es DERIVED aquí desde los derechos de la persona que llama y se adjunta a el camino nunca leía del cuerpo. Un papel abasteciente por el cuerpo es un cuerpo-suministrado promoción, y este endpoint aprueba cientos de registros salariales a la vez. Los puntos de asistencia siguen la misma regla de identidad que todo lo demás sobre una persona nombrada: propia en la identidad, las necesidades de cualquier otra persona MANAGE-TIMECARDS.
· kamo-internal
Informes de cumplimiento, certificación de ruptura y sus propios registros
Un informe sub-tab sobre /hr/asistencia que ejecuta los tres informes de todo el mundo una ventana. El informe de redondeo muestra el veredicto como un chip y el hallazgo como una alerta, porque "FAVOURS-EMPLOYER" es una exposición salarial y enterrándola en un Nadie lee derrota el punto de computación. BreakAttestationPanel es el propio relato de sus descansos. Descansa los períodos se pagan y por lo tanto nunca se perforan, por lo que esta es la única prueba de descanso el cumplimiento tendrá alguna vez un reporte de diseño de sólo ponche para el cumplimiento perfecto para cada org para siempre, que fabrica pruebas contra el empleado en lugar de Simplemente faltando. Nada en ella está pre-llenado de una respuesta conforme, y un conteo de descanso vacío stays NULL en lugar de convertirse en cero: cero es una afirmación de que no se tosieron restos, que es una violación, aunque nulo "no se contesta", lo cual no lo es. MyRecordsPanel le da a un empleado sus saldos de licencia y sus propias pruebas - Pack. La descarga está disponible sin ningún derecho, y se mantiene disponible después de que termine el empleo, porque en varios estados el derecho a estos registros Da vida al empleo por estatuto y las personas más propensas a necesitarlas son los que acaban de irse.
· SecurityService
Retranscumplir los informes de cumplimiento, paquete de pruebas en la identidad
Los informes de toda la organización necesitan MANAGE-TIMECARDS. El paquete de pruebas no, cuando a el miembro tira de los suyos y ese es el punto. La manada es lo que un empleado necesita traer una reclamación salarial, y apostarla detrás de una derecha de recursos humanos significaría la Sólo las personas que pueden presentar la evidencia son contra las que se usaría. Un miembro en el nivel restringido no tiene ningún derecho y es exactamente quién lo necesita.
· kamo-internal
La pestaña de configuración de la tarjeta de tiempo real
Reemplaza el marcador de posición con la superficie de trabajo: inicio de semana de trabajo, jornada de trabajo límite, umbral de cambio abierto, redondeo, los interruptores de revisión, break-rule semilla y el calendario por defecto de org. El campo de redondeo se explica en sí mismo en lugar de ser un número desnudo. El redondeo es legalmente sólo cuando NEUTRAL con el tiempo (29 CFR 785.48(b)), California ha efectivamente terminólo durante los períodos de comida (Donohue v. AMN) y sembrado dudas sobre él en general (Camp v. Home Depot) un administrador enciéncelo debe saber que tienen se ha asumido la obligación de demostrar qué dirección va a la deriva, y la advertencia aparece en el momento en que el valor va por encima de cero. El atestado dice por qué existe junto a su propio cambio: se pagan periodos de descanso y Por lo tanto, nunca se perforó, así que el atestado es la única prueba de descanso cumplimiento lo habrá hecho. Sin él el sistema reporta el cumplimiento perfecto para siempre, que es peor que no informar nada porque fabrica pruebas contra la empleado. El interruptor de geovalla dice "flag", nunca "rechaza". Negarse a grabar el trabajo que En realidad se hizo la violación exacta que este sistema existe para prevenir. La sección de horarios dice claramente que un horario nunca paga a nadie. comparado con lo que pasó, y donde los dos no están de acuerdo con el historial real gobierna.
· SecurityService
Retransche la superficie de configuración de la tarjeta de tiempo
MANAGE-TIMECARDS para leer las reglas del org - la semana de trabajo y los ajustes de redondeo describir cómo se paga a todos en el org y FINALIZE-PAY-PERIODS para cambiar porque son los números que un periodo se congela cuando se cierra. Un miembro puede leer su programa de la OWN en identidad, sin ningún derecho. Un horario es lo que se espera que alguien trabaje, y no poder verlo no es un producto defensibiliz.
· DaemonService
Programe los barridos de la tarjeta de tiempo nocturno
Cron vive aquí en vez de en TimecardService porque ese despliegue es RollingActualización con maxSurge: 1 vaina se superponen en cada despliegue y en cada uno de los Método programado allí dispararía dos veces, que para un barrido que escribe excepciones significa filas duplicadas. Este servicio es réplicas: 1, estrategia: Recrea, y es el único lugar en esta plataforma donde significa "una vez" una vez. Corre a las 02:20 diarias: después de medianoche por lo que un día completo de negocios ha cerrado en todo el continente americano, y fuera de la hora para que no se da la cara con todos los demás trabajos de plataforma. Stamps mlos.internal-auth-secret, no interno.auth.secret. El propio DaemonService interno.auth.secret resuelve el valor público-chat y 403a de todas las llamadas, que es la trampa que StewardEmailClient ya documenta. Cuando el secreto es faltar al trabajo se niega a postularse y lo dice en ERROR en lugar de buscar en una falsificación éxito - un barrido que silenciosamente nunca corre es indistinguible de uno que No encuentra nada, y la diferencia es un mes de golpes perdidos sin ser detectados. Los tres barridos se intentan de forma independiente. Un fracaso de rotura es un fracaso brecha de cumplimiento, mientras que una excepción que falla es un día no remunerado, y el acoplamiento permite que el fracaso más barato saque el caro.
· kamo-shared-library
Configuración de org, calendarios de vacaciones y horarios
TimecardOrgConfig celebra la semana laboral, límite de la jornada laboral, redondeo, reglas punteros y los interruptores de revisión. Nada en ella se lee en el momento del cálculo. cada valor se dispara en un período de pago cuando el período se cierra y el el motor lee la instantánea, que es lo que permite a un org cambiar sus reglas sin Reescribiendo lo que ya ha pagado. TimecardHoliday está, no está gobernado. "Cuarto jueves de noviembre" es una regla y las reglas van a la deriva, por lo que un calendario se generó hace tres años bajo unedañoed El gobierno estaría en silencio discrepando de lo que realmente se pagó. La división pagada/trabajada es la razón por la que existe la entidad en absoluto: vacaciones PAY es horas no trabajadas, por lo que 778.218 lo excluye de la tasa regular y no cuenta con respecto a la umbral de horas extras, mientras que las horas de vacaciones funcionan son horas ordinarias que pueden llevar una prima. Tratarlos como una cosa exaceca la tarifa regular para Todos los que se toparan el día libre y subestiman horas extras para todos los que no lo hicieron. TimecardSchedule es una tabla tanto para el default de la org como para la anulación de un miembro, porque la resolución es "la fila del miembro si la hay, la org's De lo contrario" y dos tablas duplicarían cada columna y las dejaban derivar. Es está efectiva, por lo que un cambio de horario en junio no puede hacer retroactivamente marzo Parece un absentismo. NUNCA le paga a nadie. Se compara con lo que pasó y nunca utilizado en lugar de él. El pago de un horario es el almuerzo autodeducido de planificación de turnos. Lo que impulsa legítimamente es la detección de excepciones, asistencia puntos, alertas de turno abiertos y primas de programación predictiva.
· kamo-internal
El editor visual, el calendario de pago, la exportación de nómina, el nivel restringido
DayTimeline dibuja un día trabajado como pista 24 horas con un mango arrastrado en Cada ponche. Un gráfico en lugar de una mesa porque un golpe equivocado casi nunca es equivocado de una manera que un número revela: un reloj a las 17:00 se ve bien en una lista y obviamente está equivocado en una pista donde el turno antes de terminar a las 13:00 y Nada sigue. La forma es lo que hace un mal día visible a una retención de revisor 50 tarjetas de tiempo. Arrastre PROPOSES. Nunca escribe. El lanzamiento del mango abre lo obligatorio el diálogo por la que se mantiene la razón y la propuesta hasta que se escriba la razón, porque a Slider que salvó en libertad pondría un ajuste salarial inexplicable descarriado razón para arrastrar en lugar de escribir un tiempo. Un cambio no cerrado se dibuja como una barra abierta en lugar de cerrar en "ahora". Adivina un final es exactamente lo que el motor se niega a hacer, y la imagen debe no implicar una respuesta que el cálculo no dará. El nuevo instante se deriva de SHIFTING el original en lugar de reconstruir un hora local de las horas del día, que es lo que lo mantiene correcto a través de un límite DST: "09:00 en esta fecha en esta zona" es ambiguo dos veces al año y simplemente equivocado una vez. PayPeriodsSubTab hace visibles ambas reglas de período a la vez, y el cierre congela las versiones de la regla. PayrollExportSubTab lidera con la carrera seca: los mismos números, no compromete nada, por lo que la varianza se puede leer antes a cualquiera lo paga. El compromiso se confirma por separado y se desactiva una vez que un período uno, y se ofrece un revés en lugar de una reedición. La Guardia de Miembros Restringida limita a un miembro cuyo empleo ha terminado a su registros propios a través de un prefijo permiten lista de la lista de autorización para que una página añadida más tarde sea lo denegó por defecto, donde un bloquelista lo admitiría en silencio. Es una UX. límite, no la seguridad: cada punto de endo detrás es independiente autorizado en SecurityService, porque una rediración del lado del cliente no detiene a nadie que puede abrir devtools. Mapa de canSendTextMssages in TOOL-CAPABILITY, la única planta capacidad de la capacidad que el nivel restringido quita. El representante de nómina pasa texto/csv a través de intacto . . . . . . . . . . . . . . . . . . . . . . fail la descarga en un 500 mientras que el archivo estaba perfectamente bien en el otro lado.
· SecurityService
Relevo el editor, autorizado por identidad antes de los derechos
Un EMPLEO puede corregir su propio registro que es el punto del editor, y negarse deja al empleado sin forma de decir que el reloj estaba mal sobre un día son los únicos testigos. Lo que no pueden hacer es que cuente: el la corrección aterriza como un ajuste en una tarjeta de tiempo que aún tiene que pasar la cadena de homologación. La identidad se resuelve a través de la resoluciónRole, que comprueba el tema ANTES Consultar cualquier derecho. El modo Dios hace que el chequereRegrese de verdad para todos los derechos, así que cualquier cosa que describa a una persona nombrada tiene que admitir a esa persona en la identidad solo. También tiene que trabajar para un miembro en el nivel restringido, que no tiene derechos en absoluto y todavía tienen derecho legal a sus propias horas.
· kamo-shared-library
Llegar la razón de ajuste en el propio ponche
Un tiempo corregido o insertado ahora registra WHY en el registro salarial en lugar de sólo en el registro de auditoría. Bajo Anderson v. Mt. Clemens Pottery con un empleador registros inadecuados pierden el beneficio de la duda en horas, y un récord de lleva su propia justificación es materialmente más fuerte evidencia que uno que necesita unirse a una mesa de auditoría para explicarse. También deja que el editor muestre el razón al lado del tiempo sin una segunda consulta, que es lo que hace a alguien En realidad lo lea.
· SecurityService
Firmar a antiguos empleados en un nivel restringido en lugar de rechazarlos
Un miembro del equipo cuyo empleo no es ACTIVE fue rechazado en la puerta con "Tu cuenta existe pero no está activa en este momento". Esa fue la forma equivocada. Un empleado despedido tiene un derecho legal a sus propios registros salariales. Código Laboral de California 226(c) da 21 días y una sanción por violación después que y un exempleado que no puede firmar no tiene forma de ejercerlo. Su Los reconocimientos de cumplimiento son la misma historia. Ahora se inscriben y aterrizan en Capacidades de Miembros.restringidos: un estrictamente más apretado nivel que sin licencia y ortogonal a ella. Sin licencia significa que el org no ha pagado por ti; restringido significa que ya no te emplea. Lo que sobrevive es lo que tienen derecho a alcanzar después de la separación, tarjetas de tiempo propias, cumplimiento propio registro, perfil propio, facturación propia, apoyo. Chat es la capacidad de un piso este nivel se lleva, porque un exempleado sosteniendo una línea en vivo en el La conversación interna de la compañía es un problema diferente al que no puede enviar un correo electrónico. canViewOwnTimecards y canViewOwnLegalCompliance nunca se retuen en ninguna tier: las personas más propensas a necesitar sus registros de pago son los que simplemente a la izquierda. El cheque de registro sigue siendo REFUSES. Un miembro suave no es un ex es un miembro que ya no existe. Tres puertas abiertas, una deliberadamente abandonada cerrada: - SeguridadController acceso ahora se niega sólo en el registro-activo - SessionRefreshController ya no mata una sesión fuera de control en la siguiente encuesta, que habría hecho que el acceso durara alrededor de un minuto - DeviceAuthControler coincide, para que un empleado despedido pueda llegar a su registros del teléfono en los que ya habían firmado - Intro-As e Impersonation no cambian: esos son caminos de administración con los suyos semántica y ensancharlas no es de lo que se trata restringidoIfNotEmployed falla OPEN, y es lo único en este camino que lo sabe. Cada otro cheque de elegibilidad falla cerrado porque admitiendo una incógnita el miembro es la dirección peligrosa. Aquí se invierte: esto se ejecuta en cada derecho lee para cada miembro, y un blip de repositorio desnudaría chat de toda una zona de personas perfectamente empleadas. La puerta de acceso ya aguas arriba decidió si existe el período de sesiones. También agrega PayrollRelayController el límite de autorización para los períodos de pago, Exportación de nómina, cumplimiento de la paja, licencia y costo de trabajo. FINALIZE-PAY-PERIODS puertas cualquier cosa que toque el archivo de nómina (comprometer uno paga a una empresa), Las puertas de MANAGE-TIMECARDS las superficies HR, y los puntos finales /me/** no tienen ningún miembro id en absoluto para que sean estructuralmente incapaces de actuar sobre otra persona - que lo más importa para la certificación de ruptura, la propia declaración de un empleado sobre la suya día, y para un miembro restringido que no tiene ningún derecho.
· kamo-shared-library
Añadir el plazo de inicio de la comida a la regla de descanso
California requiere la primera comida para BEGIN antes del final de la quinta hora. Una comida de 30 minutos toste a la hora siete es una violación completa a pesar de que lo era la longitud correcta, por lo que el plazo necesita su propia columna, un control de longitud no puede Defienda por ello, y BreakEvaluator ya prueba a MEAL-LATE en su contra.
· kamo-shared-library
Períodos de pago, descansos, primas, cuentas de trabajo, devengaciones, exportación
Bata el esquema de salario y hora restante en un cambio compartido de la todo el dominio aterriza en una sola carrera de KamoInitializer en lugar de una migración por fase. Entidades: paga períodos con columnas de congelación de la regla-versión, líneas de ganancia, ruptura normas y violaciones, cuentas laborales y segmentos de trabajo, políticas de devengo, equilibrios y libro mayor, casos de desalga, lotes de exportación, ocurrencias de asistencia. Cuatro motores puros, 51 pruebas: BreakEvaluator - nunca autodeduzca un almuerzo, porque una comida autodeducida libros una media hora no pagada que el empleador no puede probar que estaba libre de impuestos. Premiums son WAGES (Naranjo), por lo que fluye en ganancias y no en un informe. Uno prima por CATEGORIA por día (UPS v. Tribunal Superior): dos comidas perdidas deben uno, una comida perdida más un descanso perdido debe dos. Sólo se honra una exención de comida cuando la ley permite a un empleado no puede consentir fuera de él. Descansa están desbancados, por lo que el silencio en la certificación nunca se puntúa como una violación. RegularRateCalculator de horas extras se debe en la tarifa REGULAR, no en la base la tarifa. 778.115 media ponderada, 778.209 horas extraordinarias retroactivas bonificaciones no discrecionales, 778.216/218 exclusiones y prima de medio tiempo: El tiempo consecutivo ya está en el total, por lo que las horas extras añaden 0,5x, no 1,5x. El motor de actividad, un techo se detiene de devengo sin borrar el equilibrio, el arrastre es tapiado por separado del techo, y una deducción que violaría el piso tirados en lugar de aprobar silenciosamente medio día libre. PayPeriodCalendar generado, no entró a mano, y verificarResetos de Contiguos un vacío (trabajo sin plazo, nunca pagado) o un solapamiento (pagado dos veces).
· kamo-shared-library
Modelo y detector de excepción
Hace que el bloqueoLa puerta de las Excepciones es real. Hasta ahora la tabla de transición leía un contar que nada escribió, así que cada vez que la tarjeta se veía limpia y 'un golpe perdido es Nunca se pague como cero' fue un comentario más que un control. La distinción BLOCKING es el punto de la taxonomía: un cambio abierto, un ponches inparcheos inparcheo y un golpe provisional sinttested se detengan, porque Cerrarlos afirma algo que nadie puede quedarse atrás. Una geovalla falla y un sesgo de reloj son ADVISORY y nunca bloquean - negándose a registrar o finalizar el tiempo Eso realmente se trabajó es la violación salarial exacta que este sistema impide. El detector informa y nunca repara. Todas las formas de adivinar un cambio no cerrado se equivoca: dejarlo abierto acumula horas absurdas, subregistros automáticos, un tope inventa una figura que nadie presenció. Así que se convierte en una excepción en su lugar. Idempotente mediante construcción a través de la restricción única (miembro, fecha, tipo) -- duplicados inflarían el conteo y dejarían una tarjeta de tiempo infinalizable por una razón Nadie pudo encontrar.
· kamo-internal
Confirmar antes de detener un pago recurrente
Ambos cancelan las acciones - el propio asiento de un miembro y un plan de gerente de grupo - ahora preguntan primero, nombrar la portada de fecha corre y, para un grupo, cuántas personas mantienen su asientos hasta entonces. Deliberadamente no es la ConfirmaciónDialog compartida. Ese requiere escribir DESTROY, DELETE, REMOVE o ERASE antes de que su botón lo permita, lo que es correcto para el Supresión irreversible para la que fue construido. Cancelar no es irreversible ni destructivo: no se pierden datos, el acceso continúa hasta el final del período pagado, y Puedes suscribirte de nuevo cuando quieras. Un guante de tipo de palabra delante de Detener un pago es fricción en la única acción que un cliente es inequívocamente Derecho a tomar fácilmente. Ni botón dice "Cancel". En un diálogo sobre la cancelación, esa palabra significa ambas "abandonar este diálogo" y "cancelar mi suscripción" y no puede leerse de forma fiable como Tampoco, así que ambos botones nombran su resultado: "Mantén mi plan" y "Parar el futuro pagos".
· BillingService
Llegar la fecha de renovación de la cobertura y las cargas útiles grupales
Ambas superficies informan ahora de la corrientePeriodEnd y cancelanAtPeriodEnd. La fecha es lo que una confirmación de cancelación en realidad necesita decir "tú mantienes tu asiento hasta el final del periodo" es tranquilidad en abstracto, "súdate tu asiento hasta el 14 de marzo" es tranquilidad alguien puede actuar.

Tu universo está esperando.
Comience gratis en minutos y agregue productos cuando esté listo, sin migración ni nuevos inicios de sesión.
Gratis para siempre: no se requiere tarjeta de crédito