Ir para o conteúdo
KAMOUniverse

Changelog

O que há de novo.

Cada melhoria para a plataforma, como ele envia.

  1. · kamo-internal

    Visão geral gancho de dados e primitivos visuais compartilhados

    useHrOverview obtém resumos de assiduidade + documentos com todosConfigurados para um o serviço morto degrada apenas as suas próprias secções; ele salta as buscas inteiramente para Seções visíveisOverviewSections() diz que o membro não pode ver. A primitivos (CountUp, ProgressRing, StackedBar, StatePip, Figura, SectionShell) são os blocos de construção compartilhados da renderização de seções de visão geral com, todo o movimento guardado pelo usoReducedMotion e EASE HOUSE.

  2. · kamo-internal

    Resumo geral dos clientes e as regras que eles renderizam de

  3. · kamo-shared-library

    Count/sum/recentes consultas para um conjunto ao vivo org+assoc

    HrResourceSummaryService estava materializando toda uma org's não oculta Coleta Img na memória para calcular uma contagem, uma soma de byte e um Corte recente de 5 linhas. Adiciona o número/sum/paged-recent consultas para um resumo nunca tem de carregar a colecção para responder a três números.

  4. · DocsService

    Resumo jurídico, de formação e de recursos para a visão geral do RH

    Uma leitura por domínio de tabulação, cada bloco fechado por sua própria direita e omitido em vez de recusar quando fora de alcance.

  5. · SecurityService

    Resumo da frequência para a visão geral do HR

    Uma chamada de MANAGEM TIMECARDS-gated compondo a lista e o gerente-queue Relés com exceção local, emprego e linhas de período de pagamento.

  6. · kamo-marketing

    Localize as placas de hub e pare de juntar os conjuntos de dados em inglês

    As quatro páginas de hub renderizadas componentes do cliente que importaram a coleção módulos diretamente e não levou adereços, então cada cartão — nomes da indústria, integração taglines, definições de glossário, resumos de concorrentes — era inglês em todos os 22 locais mesmo que o cromo circundante foi traduzido. Significava também conjuntos de dados completos em inglês enviados no pacote cliente. O servidor agora localiza e passa apenas os campos que cada hub realmente renderiza, para que o cliente mantenha as constantes estruturais (rotulas de categoria, ordem de exibição) e baixa os módulos de dados. Marcas de fornecedores e concorrentes permanecem sem tradução mas ainda são passados, desde que os cartões imprimi-los. O ItemList/DefinitedTermSet JSON-LD nestas páginas também codificado /en URLs para cada localidade; eles agora seguem o próprio local da página.

  7. · kamo-shared-library

    Consultas sumárias para a Visão Geral do HR

    Histogramas de estado, fatias atrasadas e rollups por membro para legal e formação, mais a contagem do estado do modelo/curso. Nenhuma mudança de entidade.

  8. · kamo-internal

    Brilhe vermelho quando fora do relógio, verde quando ligado, e solte a bala

    Estar fora do relógio enquanto no trabalho é o estado que custa dinheiro a alguém, e foi o único estado nada anunciado: o indicador estava simplesmente ausente, e um ausência não é um sinal. O controle agora carrega um respirável brilho vermelho quando O membro está fora. Um brilho de respiração num ciclo de 1,8s em vez de um piscar de olhos. Isso é bem sob o limiar de fotossensibilidade de três flashes por segundo e um estroboscópio no canto de cada tela seria intolerável para as oito horas por dia que está destinado a ser visível. Sob preferes-reduzido-moção o brilho é mantido STEADY em vez de removido — ao contrário do anel de obrigação ao lado dele, a moção aqui não é redundante com um distintivo ou uma contagem, por isso removê-lo iria remover o único sinal. O brilho só aparece quando o estado é realmente conhecido. Pintá-lo durante o primeiro buscar, ou no meio do soco enquanto o alter problema que pode não existir, e um aviso que grita lobo em cada carga de página é Uma pessoa aprende a parar de ver. O ponto cronometrado em ponto é verde em vez de -- pessoas de sucesso. Esse símbolo é o HRS âmbar identidade do módulo (#c47d1a), que lê como um aviso sentado ao lado de um brilho vermelho — no relógio é o bom estado e tem que se parecer com ele. A bala desapareceu. Não tinha qualquer informação que o ponto já não carregar, e levou o .tabular! importante solução com ele. transbordamento é fixado visível no botão em vez de herdado: o brilho fica em um inset negativo, assim que um corte ButtonBase iria engolir completamente e o O controle pareceria simplesmente sem estilo, em vez de quebrado — o tipo mais difícil de erro visual para reparar.

  9. · kamo-internal

    Uma página de inscrição, e ocultar a página de cartão de tempo do membro quando não estiver inscrito

    Não havia maneira de ligar os cartões de tempo para ninguém. Cada superfície lida existia e cada um deles corretamente não mostrou nada, porque nenhuma matrícula poderia ser criado — então ************* disse "não sendo atualmente Rastreado" com nada em qualquer lugar no produto capaz de mudar isso. InscriçãoSubTab é que o controle, em /hr/attendence onde o RH gerencia o mão de obra. Ele usa o MemberPickerDialog canônico em multi-selecionado, e se inscreve um membro por chamada em vez de como um lote: cada inscrição escreve um emprego linha E uma atribuição eficaz-datado, por isso uma falha parcial deve deixar as pessoas que conseguiu se matricular em vez de levar todos de volta. A tela diz por que não está em papéis e permissões, porque esse é o primeiro Questionar qualquer pessoa terá: direitos de segurança são removidos quando uma associação pára estar ativo, que iria desligar o cartão de alguém exatamente no momento Os seus registos de pagamento têm de sobreviver ao seu emprego. Não- isenção é o padrão e a janela diz por quê — classificando alguém isento que não é é o erro mais caro no direito salarial, e é feito pelo título de emprego Muito mais frequentemente do que qualquer teste real. A página do Timecard do membro está agora completamente escondida, a menos que esse membro esteja realmente matriculado. Ele anteriormente renderizado para qualquer pessoa em uma org HRS e, em seguida, anunciou não tinha nada para mostrar, que é um beco sem saída: nada naquela página poderia ligá-lo. A inscrição permanece 'indefinida' até ser conhecida em vez de ser false, então o

  10. · SecurityService

    Registo de retransmissão

    GESTÃO TEMÉRCICOS para ler ou alterar quem está nos cartões de tempo — a inscrição decide quem é pago a partir deste sistema, por isso é realizada para o administrador de RH direito em vez do que à linha de relatórios de um gestor.

  11. · kamo-marketing

    Traduzir as páginas da colecção em vez de as esconder

    As 2.400 páginas de detalhe noindexed foram noindexed porque sua cópia do corpo não tradução: concorrentes, indústrias, integrações e glossário mantêm sua prosa em app/lib/**/*.ts, que o dicionário nunca viu, então /fr/solutions/real-estate os títulos franceses em torno dos parágrafos ingleses. scripts/extract-colections.ts puxa as 3.799 strings translatáveis para fora dessas 120 itens em uma árvore de estrutura, pulando qualquer coisa que um tradutor deve não toque — lesmas, enums de categoria, estado matricial, caminhos de logotipo, termos relacionados referências cruzadas e nomes de fornecedores/produtos. Aquela árvore navios como as `coleções' espaço de nomes em kamo-marketing/en.json. Na hora de ler localizeItem mescla a árvore traduzida sobre o objeto inglês. Apenas as chaves presentes na tradução são substituídas, e um array cujo comprimento à deriva da fonte é largado por atacado em vez de renderizar uma lista com entradas em falta, por isso traduções antigas degradam-se para o Inglês em vez de quebrar A página. `colections` é despojado do NextIntlClientProvider: é ~420 KB que apenas os componentes do servidor lidos, e next-intl serializa o que quer que o provedor entra a carga útil RSC de cada página. A mesclagem por local no i18n/request.ts está agora Memoized pela mesma razão — era barato em 150 KB e não está em 514 KB. coleçãoRobots ainda relata noindex até as traduções terra; alargamento COLECÇÃO CONTENT LOCALES é o que o levanta.

  12. · kamo-internal

    As abas Aprovações e Excepções realmente existem agora

    Ambas as infra- estruturas enviadas anteriormente, mas nenhum dos painéis foi escrito, então /hr/attendance?sub=aprovações e ?sub=excepções renderizadas "esta aba está sendo construído" sobre os terminais de trabalho. AprovaçõesSubTab é a fila do gerente. Um cartão de tempo contém dois atestados — o o empregado está no submit e o gerente está aqui – então a única ação sem motivo anexo é uma simples aprovação de um cartão que o trabalhador se apresentou, quando O seu próprio atestado é o recorde. Envio de um cartão de volta e aprovação em nome ambos têm uma razão obrigatória, porque enviar o cartão de alguém de volta sem dizer porque é que um empregado perde um dia e nunca descobre qual. Um cartão com exceções de bloqueio tem seu botão de aprovação DISABLED em vez de permitido falhar: o servidor recusa de qualquer forma, e um botão que sempre erros é Pior do que uma que esteja visivelmente indisponível. O chip de bloqueio navega para o Excepções tab, que é onde o trabalho realmente está. ExcepçõesSubTab mostra dois números deliberadamente diferentes — tudo aberto, e O subconjunto que BLOCKS fecha. isBlocking é renderizado exatamente como o servidor enviado ele e nunca re-derivado do tipo string. A renúncia é apresentada como o que é: nada foi fixo, uma pessoa está escolhendo proceder de qualquer maneira, e a razão é o que faz com que essa decisão sobreviva a ser questionada mais tarde. O backback do placeholder permanece na página mesmo que todos os sete índices estão agora com fio - anexando um ID sub-tab sem um painel deve dizer isso em vez de renderizar um ecrã em branco.

  13. · SecurityService

    Retransmitir a fila de exceções

    GESTÃO TEMÁGIOS para ler a fila e renunciar, porque os nomes da fila cada membro com um problema e renúncia muda o que o portão finalize lê. A por-member re-detecte passa por resolveRole, para que um gerenciador possa executar novamente a detecção No seu próprio relatório, sem um direito de organização.

  14. · InitializerService

    Os índices parciais que param um duplo pagamento e uma colisão de código

    **************** é o dente por trás do serviço de exportação recusa de nova emissão. Um segundo arquivo autorizado para um período de pagamento duplamente paga um toda a empresa, e o check-layer de serviço sozinho perde para dois operadores clicando no mesmo momento. Uma correção carrega reversos batch id e é portanto, excluído do predicado, que é a razão pela qual não pode ser uma simples restrição única à entidade — e o teste afirma que a exclusão, porque sem ele nunca poderia ser emitida uma correcção. ux tclabor code active escopos código de conta de trabalho unicidade para as linhas ACTIVAs. Um departamento reformado recriado sob seu antigo código é a contabilidade ordinária limpeza; uma restrição cobertor forçaria a org a inventar "SALES-2" enquanto a fileira aposentada ainda precisa existir para que segmentos históricos apontem. A A restrição da entidade foi deixada a favor disto. EXPORT REVOKE revoga DELETE mas NÃO ATUALIZA deliberadamente: um lote legitimamente transições DRY RUN -> COMPROMETIDA -> REVERSADA, e revogar ATUALIZAÇÃO congelaria um Sec run antes que pudesse ser cometido. Os pinos de teste que distinção.

  15. · kamo-internal

    A tela de período fechado para uma org com 400 pessoas

    Re-detectar exceções, recalcular os ganhos de todos, aprovar tudo o O requerente pode — cada um informando POR MEMBRO com a razão pela qual recusou. "312 de 400 bem sucedidos" é inutilizável: a pessoa que o dirige agora tem de encontrar o Oitenta e oito à mão, que é exatamente o trabalho que a operação a granel era suposto para salvar. A tabela de recusa carrega a sentença verbatim a jusante, assim "este timecard tem 2 exceções de bloqueio" diz ao aprovador o que fazer em vez de a dizer-lhes para abrirem um bilhete. O diálogo de aprovação diz claramente que a razão é registrada em cada cartão, e que cada cartão ainda passa pelos mesmos cheques. Ambos são verdadeiros e ambos são o ponto: uma aprovação a granel é uma decisão aplicada a muitos registros, e fingindo o contrário, exigindo um comentário por cartão produziria quatrocentos cópias da palavra "ok".

  16. · SecurityService

    Retransmissão de operações a granel e assistência

    O papel de aprovação em larga escala é produzido aqui a partir dos direitos do chamador e anexado ao o caminho — nunca ler do corpo. Um papel fornecido pelo corpo é um papel fornecido pelo corpo promoção, e este endpoint aprova centenas de registros salariais ao mesmo tempo. Os pontos de presença seguem a mesma regra de identidade-primeira como tudo mais sobre uma pessoa nomeada: possuir na identidade, as necessidades de qualquer outra pessoa MANAGEM TIMECARDS.

  17. · kamo-internal

    Relatórios de conformidade, certificado de quebra e seus próprios registros

    A Reports sub-tab on /hr/attendance que executa todos os três relatórios de org-wide Uma janela. O relatório de arredondamento mostra o veredicto como um chip e a descoberta como um alerta, porque "FAVOURS EMPREGO" é uma exposição salarial e enterrá-lo em um O número que ninguém lê derrota o ponto de computá-lo. Atestado de quebra O painel é a conta do empregado sobre as pausas. Repouso períodos são pagos e, portanto, nunca socado, por isso esta é a única evidência resto conformidade alguma vez terá — um projeto soque-somente relata conformidade perfeita para cada org para sempre, que fabrica provas contra o empregado em vez de Apenas falta-lhe. Nada nele é pré-cheio com uma resposta compatível, e uma contagem de descanso vazio fica NULL em vez de se tornar zero: zero é uma alegação de que não foram tomados descansos, que é uma violação, enquanto null é "não respondido", o que não é. MyRecordsPanel dá a um funcionário seus saldos de licença e suas próprias provas Embalar. O download está disponível sem qualquer direito, e ele permanece disponível após o fim do emprego, porque em diversos estados o direito a estes registros o emprego por estatuto e as pessoas mais susceptíveis de Os que acabaram de sair.

  18. · SecurityService

    Retransmitir os relatórios de conformidade, pacote de provas sobre identidade

    Os relatórios de toda a ordem precisam de MANAGEM TIMECARDS. A embalagem de provas não o faz, quando O membro puxa o seu próprio — e esse é o ponto. O pacote é o que um empregado necessidade de trazer uma reivindicação salarial, e gatting atrás de um direito de RH significaria o Só as pessoas que podem produzir as provas são as que seriam usadas contra. Um membro da categoria restrita não detém quaisquer direitos e é exatamente quem Precisa.

  19. · kamo-internal

    A página de configuração do cartão de tempo real

    Substitui o placeholder com a superfície de trabalho: workweek start, workday limite, limiar open-shift, arredondamento, interruptores de revisão, regra de quebra Semeamento e o calendário padrão de org. O campo de arredondamento explica-se em vez de ser um número nu. Redonda é lícito federalmente apenas quando NEUTRAL ao longo do tempo (29 CFR 785.48 b), Califórnia tem efetivamente terminou para períodos de refeição (Donohue v. AMN) e lançou dúvidas sobre ele geralmente (Camp v. Home Depot) — um administrador ligá-lo deve saber que eles têm assumiu a obrigação de provar em que direcção se desvia, e o aviso aparece no momento em que o valor vai acima de zero. Atestado diz porque existe ao lado de seu próprio interruptor: períodos de descanso são pagos e portanto nunca socado, por isso atestação é a única prova de conformidade repouso Nunca o terá feito. Sem ele, o sistema reporta perfeita conformidade para sempre, que é pior do que não informar nada porque fabrica provas contra empregado. O interruptor de geofence diz "flag", nunca "refuse". Recusa em gravar trabalho que foi realmente feito é a violação exata que este sistema existe para prevenir. A secção de programação afirma claramente que um calendário nunca paga a ninguém — é comparado com o que aconteceu, e onde os dois discordam do registro real governa.

  20. · SecurityService

    Retransmitir a superfície de configuração do cartão de tempo

    GESTÃO TIMECARDS para ler as regras da org - a semana de trabalho e configurações de arredondamento descrever como todos na org são pagos — e FINALIZE PAY PERIODS para mudar eles, porque eles são os números um período congela quando fecha. Um membro pode ler o seu próprio horário sobre identidade, sem qualquer direito. Um calendário é o que se espera que alguém trabalhe, e ser incapaz de vê-lo não é produto defensável.

  21. · DaemonService

    Agende as varreduras do cartão de horário noturno

    O Cron vive aqui em vez de no TimecardService porque essa implantação é RollingUpdate com maxSurge: 1 — duas cápsulas se sobrepõem em cada lançamento e cada @Scheduled método lá iria disparar duas vezes, que para uma varredura que escreve exceções significa linhas duplicadas. Este serviço é réplicas: 1, estratégia: Recriar, e é o único lugar nesta plataforma onde "uma vez" significa uma vez. Corre às 02:20 diariamente: depois da meia-noite então um dia de trabalho completo foi fechado em toda parte nos EUA continentais, e fora da hora para que não contemple com todos os outros trabalhos de plataforma. Selos mlos.internal-auth-secret, não interna.auth.secret. O próprio DaemonService internal.auth.secret resolve para o valor público-chat e faria 403 cada chamada, que é a armadilha StewardEmailClient já documentos. Quando o segredo é faltando o trabalho se recusa a correr e diz isso no ERRO em vez de registrar um falso sucesso — uma varredura que calmamente nunca corre é indistinguível de um que Não encontra nada, e a diferença é um mês de socos perdidos. As três buscas são feitas de forma independente. Uma varredura falhando é um lacuna de conformidade, enquanto uma falha de varredura de exceção é um dia não remunerado, e acoplamento Eles deixam o fracasso mais barato eliminar o caro.

  22. · kamo-shared-library

    Configuração de org, calendários de férias e horários

    TimecardOrgConfig mantém o workweek, workday limite, arredondamento, regra-set ponteiros e os interruptores de revisão. Nada é lido no tempo de cálculo — cada valor é instantâneo em um período de pagamento quando o período termina e o motor lê o instantâneo, que é o que permite que uma org mude suas regras sem reescrever o que já pagou. TimecardHoliday é datado, não é regrado. "Quarta Quinta-feira em Novembro" é uma regra. e as regras derivam, então um calendário gerado há três anos sob um A regra discordaria silenciosamente do que foi realmente pago. A divisão paga/trabalhada é a razão pela qual a entidade existe em tudo: feriado PAG é horas não trabalhadas, então 778.218 exclui-o da taxa regular e não conta para o limiar de horas extraordinárias, enquanto horas de férias TRABALHAR são horas normais que podem Carregar um prémio. Tratando-os como uma coisa exagera a taxa regular para Todos os que tiraram o dia de folga e subestimam as horas extraordinárias para todos os que não o fizeram. TimecardSchedule é uma tabela tanto para o padrão de org quanto para a substituição de um membro, porque a resolução é "a linha do membro se houver uma, o org's Caso contrário, duas tabelas duplicariam cada coluna e as deixariam à deriva. Ele uma alteração de calendário em Junho não pode retroactivamente fazer Março Parece absentismo. Uma agenda nunca paga a ninguém. É comparado com o que aconteceu e nunca utilizado no lugar dele — pagar de um horário é o almoço auto-deduzido de planeamento de turnos. O que ele legitimamente impulsiona é detecção de exceção, assistência Pontos, alertas de turno aberto e prémios de previsão.

  23. · kamo-internal

    O editor visual, o calendário de pagamento, exportação de folha de pagamento, camada restrita

    DayTimeline desenha um dia trabalhado como uma faixa de 24 horas com uma alça arrastável Cada soco. Um gráfico em vez de uma tabela porque um soco errado é quase nunca errado de uma forma que um número revela: um clock-out às 17:00 parece bem em uma lista e está obviamente errado em uma pista onde o turno antes de terminar às 13:00 e Nada se segue. Forma é o que torna um dia ruim visível para um revisor segurando Cinquenta cartões de tempo. Arrastar propostas. Nunca escreve. A liberação da alça abre o obrigatório o diálogo razão e a proposta é realizada até que a razão seja escrita, porque slider que salvou no lançamento colocaria um ajuste salarial inexplicável razão para arrastar em vez de digitar um tempo. Um turno fechado é desenhado como uma barra aberta ao invés de fechado em "agora". Adivinhar um fim é exatamente o que o motor se recusa a fazer, e a imagem deve não implicar uma resposta que o cálculo não dará. O novo instante é derivado do SHIFTING o original em vez de reconstruir um hora local do relógio de parede, que é o que o mantém correto através de um limite do horário: "09:00 nesta data nesta zona" é ambígua duas vezes por ano e simplesmente errado Uma vez. PayPeriodsSubTab torna visíveis ambas as regras de período — apenas um período em curso de cada vez, e o fechamento congela as versões das regras. PayrollExportSubTab leva com a corrida seca: os mesmos números, não comete nada, para que a variância possa ser lida antes qualquer um é pago. Commit é confirmado separadamente e desativado uma vez que um período tem um, e uma inversão é oferecida em vez de uma re-edição. Restrição do estatuto de membro registros próprios através de um prefixo allowlist — uma allowlist para que uma página adicionada mais tarde seja negado por padrão, onde uma lista de bloqueios o admitiria silenciosamente. É um UX limite, não o de segurança: cada endpoint por trás dele é independente autorizado em SecurityService, porque um redirecionamento do lado do cliente não impede ninguém que pode abrir devtools. `chat` agora mapeia canSendTextMessages in TOOL CAPABILIDADE, o único andar capacidade que o nível restrito tira. O proxy de folha de pagamento passa texto/csv através de intocado — analisá-lo como JSON faria falhar o download como um 500 enquanto o arquivo estava perfeitamente bem do outro lado.

  24. · SecurityService

    Retransmitir o editor, autorizado por identidade antes dos direitos

    Um EMPLOYEE pode corrigir seu próprio registro — esse é o ponto do editor, e recusa-lo deixa o empregado sem nenhuma maneira de dizer que o relógio estava errado sobre um dia em que eles são a única testemunha. O que não podem fazer é fazer valer a pena: a correção cai como um ajuste em um cartão de tempo que ainda tem que passar A cadeia de aprovação. A identidade é resolvida através do resolveRole, que verifica o assunto ANTES consultando qualquer direito. Modo de Deus faz checkRight retorno verdadeiro para cada direito, então qualquer coisa descrevendo uma pessoa nomeada tem que admitir essa pessoa na identidade Sozinho. Ele também tem que trabalhar para um membro do nível restrito, que detém não os direitos e ainda tem direito legal às suas próprias horas.

  25. · kamo-shared-library

    Levar a razão de ajuste no próprio soco

    Um tempo corrigido ou inserido agora registra Why no registro salarial em vez de Apenas no registo de auditoria. Sob Anderson v. Mt. Clemens Pottery um empregador com registros inadequados perdem o benefício da dúvida sobre horas, e um registro que carrega sua própria justificação é materialmente mais forte evidência do que uma necessidade uma associação a uma tabela de auditoria para se explicar. Também permite que o editor mostre o razão ao lado do tempo sem uma segunda consulta, que é o que faz alguém Lê-o mesmo.

  26. · SecurityService

    Assinar ex-funcionários para um nível restrito em vez de os recusar

    Um membro da equipa cujo emprego não é activo foi recusado à porta com "A tua conta existe mas não está activa neste momento." Essa era a forma errada. Um trabalhador cessado tem direito legal aos seus próprios registos salariais — California Labor Code 226 (c) dá 21 dias e uma pena de per-violação após que — e um ex-empregado que não pode entrar não tem forma de o exercer. Suas reconhecimentos de conformidade são a mesma história. Agora assinam e aterram nas Capacidades dos Membros. restrito: um estritamente mais apertado nível do que não licenciado e ortogonal para ele. Sem licença significa que a org não pago para você; restrito significa que já não emprega você. O que sobrevive é o que têm o direito de aceder após a separação — cartões de tempo próprios, cumprimento próprio registo, perfil próprio, facturação própria, apoio. Chat é a capacidade de um andar este nível tira, porque um ex-funcionário segurando uma linha viva para o A conversa interna da empresa é um problema diferente daquele que não pode enviar Um e-mail. canViewOwnTimecards e canViewOwnLegalCompliance nunca são retidos em nenhum nível: as pessoas que mais provavelmente precisam de seus registros de pagamento são os que Esquerda. O registo activo ainda se recusa. Um membro soft- deletado não é um antigo empregado, é um membro que já não existe. Três portões abertos, um deliberadamente deixado fechado: - SegurançaController login agora se recusa apenas no registro ativo - SessionRefreshController já não mata uma sessão off-boarded na próxima pesquisa, que teria feito o acesso durar cerca de um minuto - DeviceAuthController corresponde, para que um funcionário encerrado possa chegar ao seu registros do telefone que eles já tinham assinado - EnterAs e imitação são inalterados: esses são caminhos de administração com seus próprios semântica e alargá-los não é o que se trata restritoSeNotEmployed falhar ABERTO, e é a única coisa neste caminho que Sim. Cada verificação de elegibilidade falha porque admite um desconhecido O membro é a direcção perigosa. Aqui ele inverte: isto roda em cada direito lido para cada membro, e um blip de repositório iria remover chat de Uma orgia inteira de pessoas perfeitamente empregadas. O portão de login já está a montante decidiu se a sessão existe. Também acrescenta PayrollRelayController — o limite de autorização para períodos de pagamento, Exportação de folha de pagamento, quebra de conformidade, licença e custos de trabalho. FINALIZAÇÃO PAY PERÍODOS qualquer coisa que toque o arquivo de folha de pagamento (comprometendo-se a pagar uma empresa), MANAGEM TEMÉCARDOS portas das superfícies HR, e os terminais /me/** não têm nenhum membro Por isso são estruturalmente incapazes de agir sobre outra pessoa — que importa mais para o atestado de ruptura, declaração de um empregado sobre o seu próprio dia, e para um membro restrito que não tem quaisquer direitos.

  27. · kamo-shared-library

    Adicionar o prazo de início da refeição à regra de interrupção

    A Califórnia exige que a primeira refeição comece antes do fim da quinta hora. Uma refeição de 30 minutos tomada à hora sete é uma violação total, apesar de ter sido o comprimento certo, de modo que o prazo precisa de sua própria coluna — uma verificação de comprimento não pode e BreakEvaluator já testa MEAL LATE contra ele.

  28. · kamo-shared-library

    Períodos de pagamento, pausas, prémios, contas de trabalho, acréscimos, exportação

    Bate o esquema de salário-e-hora restante em uma mudança de lib-compartido para o todo o domínio terras em um único KamoInitializer executar em vez de uma migração por fase. Entidades: períodos de pagamento com colunas de congelamento regra-versão, ganhando linhas, quebra regras e violações, contas trabalhistas e segmentos de trabalho, políticas de exercício, saldos e registros, casos de licença, lotes de exportação, ocorrências de atendimento. Quatro motores puros, 51 testes: BreakEvaluator – nunca deduz automaticamente um almoço, porque uma refeição auto-deduzida o empregador não pode provar que era duty-free. Prémios São os WAGES (Naranjo), por isso eles fluem em ganhos em vez de um relatório. Uma Prémio por CATEGORIA por dia (UPS v. Tribunal Superior): duas refeições perdidas devem Um, uma refeição perdida e um descanso perdido devem dois. Uma renúncia de refeição é honrada apenas Quando o estatuto o permite — o trabalhador não pode consentir fora dele. Descanso estão sem golpes, por isso o silêncio no atestado nunca é marcado como uma violação. RegularRateCalculator — horas extras é devido sobre a taxa REGULAR, não a base taxa. 778.115 média ponderada, 778.209 horas extras retroactivas sobre Bónus não discricionários, 778.216/218 exclusões e prémio a tempo parcial: tempo direto já está no total, então horas extras acrescenta 0,5x, não 1,5x. AccrualEngine — um teto pára de accrual sem eliminar o equilíbrio, o reporte é tampado separadamente do teto, e uma dedução que quebraria o chão lança em vez de aprovar silenciosamente meio dia de folga. PayPeriodCalendar — gerado, não inserido à mão, e verificarContíguo recusa uma diferença (trabalho que não pertence a nenhum período, nunca pago) ou uma sobreposição (pago duas vezes).

  29. · kamo-shared-library

    Modelo de exceção e detector

    Torna o bloqueioExceptions portão real. Até agora, a tabela de transição lê contar que nada escreveu, então cada cartão parecia limpo e 'um soco faltando é Nunca pago como zero foi um comentário em vez de um controle. A distinção BLOCKING é todo o ponto da taxonomia: uma mudança aberta, e Punch inigualável e uma finalização provisória não comprovada, porque fechar-se sobre eles afirma algo que ninguém pode ficar para trás. Uma falha geofence e um clock skew são Advisory e nunca bloquear -- recusando-se a gravar ou finalizar o tempo que foi realmente trabalhado é a violação salarial exata que este sistema impede. O detector reporta e nunca repara. Todas as formas de adivinhar um turno fechado está errado: deixando-o aberto acumula horas absurdas, auto-fechando sub-relatórios, uma tampa inventa uma figura que ninguém testemunhou. Em vez disso, torna-se uma excepção. Idempotente pela construção através da restrição única (membro, data, tipo) -- duplicados iria inflar a contagem e tornar um cartão de tempo infinalizável por uma razão Ninguém conseguiu encontrar.

  30. · kamo-internal

    Confirmar antes de interromper um pagamento recorrente

    Ambas as ações de cancelamento — sede de um membro e plano de um gerente de grupo — perguntam agora primeiro, nomear a capa de data corre para e, para um grupo, quantas pessoas mantêm assentos até lá. Deliberadamente não a Confirmação compartilhadaDialog. Essa requer digitar DESTROY, DELETE, REMOVER ou ERASE antes de seu botão permite, o que é certo para o Supressão irreversível. A anulação não é irreversível nem destrutivo: não se perdem dados, o acesso continua até ao fim do período pago, e Você pode assinar novamente quando quiser. Uma luva tipo-a-palavra na frente de parar um pagamento é fricção na única ação que um cliente é de forma inequívoca direito de tomar facilmente. Nenhum dos botões diz "Cancelar". Numa janela sobre cancelamento, essa palavra significa ambos "abandonar este diálogo" e "cancelar minha assinatura" e não pode ser lido de forma confiável como ambos os botões nomeiam o seu resultado: "Mantenha o meu plano" e "Pare o futuro pagamentos".

Seu universo está esperando.

Comece gratuitamente em minutos.Adicione produtos sempre que estiver pronto — sem migração, sem novos logins.

Gratuito para sempre — não é necessário cartão de crédito