Agenda PRO: agenda do profissional e o cálculo do horário livre
A AGENDA DO PROFISSIONAL
No aplicativo Agenda PRO cada profissional tem uma agenda própria, presa a uma empresa e a uma loja. É essa agenda que diz em que dias da semana e em que faixas de horário ele atende. Não existe um "horário da loja" separado: o horário de funcionamento que o portal exibe é montado juntando as faixas de todas as agendas ativas da loja e fundindo as faixas que se encostam ou se sobrepõem.
Cada profissional tem uma agenda por loja. Se você tentar cadastrar uma segunda agenda para o mesmo profissional na mesma loja, o sistema não grava e não devolve mensagem de sucesso. Para mudar o que já existe, edite a agenda dele.
Informar o profissional é obrigatório. Sem ele a resposta é "É necessário informar um funcionário". A cor da agenda serve para separar os profissionais no calendário e vem de uma lista fechada de 12 opções: Cinza, Amarelo, Laranja, Verde, Azul, Azul Claro, Vermelho, Púrpura, Preto, Roxo, Marrom e Rosa.
OS DIAS E AS FAIXAS DE HORÁRIO
Os horários são cadastrados como faixas. Cada faixa tem hora de início e hora de fim, e você marca em quais dias da semana ela vale. A lista de dias é fechada: 1 Segunda-feira, 2 Terça-feira, 3 Quarta-feira, 4 Quinta-feira, 5 Sexta-feira, 6 Sábado e 7 Domingo.
Ao salvar, o sistema apaga todas as faixas daquela agenda e regrava apenas o que veio marcado, tudo dentro de uma transação. Ou seja: o que você vê na tela na hora de salvar é exatamente o que passa a existir. Desmarcar um dia apaga aquele dia.
O formulário de agenda nova já vem sugerido com faixas de 30 em 30 minutos, das 08:00 às 12:00 e das 13:30 às 18:00, de segunda a sexta, com a cor sorteada. Isso é só sugestão do formulário. Vale o que for salvo.
Existe ainda a agenda criada sozinha: na tela de primeiros passos, se o usuário que está usando o Agenda PRO ainda não tem agenda naquela loja, o sistema cria uma para ele, cinza, ativa, visível, com serviços simultâneos ligado e faixas de uma hora das 08:00 às 12:00 e das 14:00 às 18:00, de segunda a sexta.
ATIVA, VISÍVEL E SERVIÇOS SIMULTÂNEOS SÃO TRÊS COISAS DIFERENTES
Ativa é o bloquear/desbloquear da agenda. Agenda bloqueada tira o profissional do cálculo de horário livre e do calendário. Só o dono da agenda ou um usuário master consegue bloquear e desbloquear; para os outros a resposta é "Você não possui permissão para realizar esta ação!".
Visível controla quem enxerga a agenda no calendário e no agendamento feito dentro do aplicativo: usuário que não é master só enxerga agenda marcada como visível, além da própria. Na tela de Agendas do aplicativo a regra é ainda mais estreita e não depende de visível: quem não é master vê apenas a própria agenda. No portal do cliente a marcação de visível não é testada: visível não esconde profissional do portal. Quem tira do portal é a agenda inativa.
Serviços simultâneos é a chave de atender mais de um serviço ao mesmo tempo. Com ela ligada o sistema não faz nenhuma checagem de conflito: todo início de faixa aparece livre no portal, mesmo já tendo agendamento em cima. Com ela desligada, cada horário passa pelo teste de conflito descrito abaixo. Repare que a agenda criada automaticamente nos primeiros passos nasce com serviços simultâneos ligado.
O VÍNCULO PROFISSIONAL COM SERVIÇO
O portal não oferece serviço solto: oferece serviço mais profissional. O vínculo é feito na tela de serviços do Agenda PRO, na ação de vincular funcionários, e guarda por profissional a duração, se o vínculo está ativo, o tipo de comissão e a comissão. Salvar essa tela apaga todos os vínculos daquele serviço e regrava só os que foram enviados.
Um serviço só entra na lista do portal se estiver ativo, tiver ao menos um vínculo com profissional marcado como ativo e esse profissional tiver agenda cadastrada naquela empresa e loja. Repare que essa lista não olha se a agenda está ativa: com todas as agendas bloqueadas o serviço continua aparecendo, só que sem profissional nem horário para escolher. Quando os profissionais do mesmo serviço têm durações diferentes, o portal mostra a duração no formato "menor a maior".
COMO O SISTEMA CALCULA O HORÁRIO LIVRE
Quando o cliente escolhe o serviço e o dia, o sistema roda esta sequência, nesta ordem. A mesma rotina serve o portal e a tela de agendamento dentro do aplicativo; a única diferença está no passo 6.
1. Lê a configuração da loja do Agenda PRO. Sem ela não há cálculo, a resposta é "Não foi possível localizar a configuração da loja". A data limite que o calendário respeita vem do período limite dessa configuração.
2. Descobre o dia da semana da data escolhida, de 1 segunda a 7 domingo.
3. Carrega o serviço. Se não encontrar, responde "Não foi possível localizar o servico".
4. Lista os profissionais vinculados àquele serviço com o vínculo ativo. Quem não está vinculado nunca aparece.
5. Para cada profissional, procura a agenda dele naquela empresa e loja. Se a agenda não existe ou está inativa, o profissional é descartado aqui.
6. Se a consulta veio de dentro do aplicativo, e não do portal, descarta também o profissional cuja agenda não é visível, a menos que quem consulta seja master. No portal esse teste não roda.
7. Busca as faixas daquela agenda cujo dia bate com o dia da semana escolhido e agrupa por hora de início. É aqui que nasce a lista de horários oferecidos: um horário para cada hora de início distinta. A hora de fim da faixa não gera horário nenhum.
8. Se a data escolhida é hoje ou anterior, descarta as faixas cuja hora de início já passou em relação à hora atual do servidor.
9. Para cada horário candidato monta o bloco: começa na data escolhida com a hora da faixa e termina somando a duração cadastrada no próprio serviço (a duração que aparece no vínculo do profissional é informativa, não é ela que fecha o bloco). Se o serviço está sem duração, o fim do bloco vira 23:59:59 do dia de hoje.
10. Se serviços simultâneos está desligado, conta os agendamentos daquele profissional, naquela loja e empresa, cujo intervalo cruza esse bloco, em qualquer situação diferente de Cancelado. Zero conflitos: o horário aparece livre. Um ou mais: o horário some da lista. Se serviços simultâneos está ligado, esse passo não roda e o horário aparece sempre.
Duas consequências que explicam quase todo chamado: a checagem de conflito é por profissional, não por serviço, então um agendamento de qualquer serviço ocupa a pessoa; e a única situação que libera o horário é Cancelado, ou seja Pendente, Confirmado, Em andamento e Finalizado ocupam.
NA HORA DE CONFIRMAR
Com serviços simultâneos desligado a checagem é refeita ao gravar. Se os serviços escolhidos se sobrepõem entre si para o mesmo profissional, a resposta é "Você enviou datas que se sobrepõem em termos de horário. Por favor, verifique seus agendamentos e tente novamente." Se o horário foi tomado entre a escolha e a confirmação, a resposta é "O horário do serviço ... já está ocupado por outra pessoa. Por favor, altere a data ou o horário."
NÃO APARECE HORÁRIO LIVRE: ORDEM DE CONFERÊNCIA
Confira na mesma ordem do cálculo e pare no primeiro item que falhar. A configuração da loja no Agenda PRO existe. O serviço está ativo. Existe vínculo do profissional com aquele serviço e o vínculo está ativo. O profissional tem agenda naquela loja e a agenda não está bloqueada. Existe faixa de horário cadastrada para aquele dia da semana especificamente. A faixa gera início de horário suficiente. A data não é hoje com o horário já vencido. Não existe agendamento não cancelado ocupando o bloco.
O QUE COSTUMA DAR ERRADO
Faixa larga demais. Uma faixa única das 08:00 às 18:00 gera um horário só, 08:00, porque o portal oferece um horário por início de faixa. Quem quer horário de meia em meia hora precisa de uma faixa por bloco.
Duas faixas com a mesma hora de início no mesmo dia viram um horário só, porque o sistema agrupa por hora de início.
A faixa não limita o fim do atendimento. O bloco termina pela duração do serviço, mesmo que passe da hora de fim da faixa.
Serviço sem duração cadastrada. O sistema passa a tratar o fim do bloco como 23:59:59 de hoje, e a conta de conflito deixa de fazer sentido, principalmente no próprio dia.
Serviços simultâneos ligado sem querer. O cliente consegue marcar em cima de outro cliente e ninguém vê erro nenhum, porque a checagem de conflito nem chega a rodar. É o estado em que a agenda criada automaticamente nasce.
Confundir visível com ativa. Desmarcar visível esconde a agenda dos outros usuários dentro do aplicativo, mas o profissional continua sendo oferecido no portal. Para tirar do portal, bloqueie a agenda.
Salvar os horários sem tudo na tela. Como o sistema apaga e regrava, faixa que não estava marcada no momento de salvar deixa de existir.
Horários sumindo ao longo do dia de hoje. É o corte pela hora atual do servidor: no dia corrente, só entram faixas cuja hora de início ainda não passou.
Serviço aparece no portal mas sem nenhum profissional para escolher. A lista de serviços do portal não olha se a agenda está ativa; o cálculo do horário olha. Confira se as agendas dos profissionais vinculados não estão bloqueadas.
Profissional que aparece na lista mas sem nenhum horário. Quase sempre é agenda sem faixa cadastrada para aquele dia da semana.
O QUE NÃO É DESTA FONTE
Cadastro de serviço, cliente, usuário e permissão de acesso se resolvem pelas fontes do ERP. A visão geral do Agenda PRO, o portal, a confirmação automática, o período limite, a antecedência e os lembretes têm fonte própria.