painel/limpeza-lavanderia-api), que o Painel 1 mostra quando você escolhe "Fonte dos dados: API". Nada aqui altera a planilha, o painel oficial, a Stays nem a DoInn. Só o editor consegue gravar; quem só consulta consegue ler e comparar. A carga completa (cerca de 50 minutos) continua na página externa, de uso interno.Lê na DoInn só um período (por padrão os últimos 14 dias em diante), compara com o que já está no conjunto painel/limpeza-lavanderia-api e mostra a prévia do que muda: linhas novas, alteradas e removidas. Nada é gravado sem a sua autorização. Grava só no conjunto -api; a planilha e o painel oficial (painel/limpeza-lavanderia) nunca são tocados. A versão anterior fica guardada e dá para voltar a ela.
1. O que está na nuvem agora (conjunto -api)
2. Período a atualizar (data do serviço)
Só as linhas com data de serviço dentro do período são comparadas; tudo fora dele fica exatamente como está. Para períodos longos (mais de 120 dias) use a carga completa (página externa, de uso interno).
3. Prévia do que vai mudar
Totais antes e depois
Conferências
Mudanças por serviço
4. Gravar a atualização
Grava as partes novas primeiro e o documento principal por último; depois lê de volta e confere. A versão que estava valendo fica guardada como "anterior". Destino único: painel/limpeza-lavanderia-api.
5. Voltar à versão anterior (desfazer)
Desfazer troca o conjunto -api de volta pela versão guardada (só o -api; a planilha e o oficial não são tocados). Depois de desfazer, não há outra versão anterior até a próxima atualização.
Últimos acontecimentos
Lê os dois conjuntos já gravados no Firestore, o oficial da planilha (painel/limpeza-lavanderia) e o da API (painel/limpeza-lavanderia-api), e compara linha por linha pelo linha_id. Não grava nada, nem registro de atividade: qualquer pedido que não seja de leitura é bloqueado pelo próprio código. Não chama a DoInn.
1. Ler os dois conjuntos e comparar
2. Resultado
Como cada número foi calculado
Cada linha da API é procurada na planilha pelo linha_id. Só na API e só na planilha são as que não têm par. Nas que têm par, compara servico_id, data do serviço, colaborador, imóvel, nome, cidade, tipo, item, situação, prioridade, quantidade e custo (quantidade e custo com tolerância de meio centavo). A data de lançamento é classificada como igual (mesmo instante), até 2 s de diferença, mesmo dia (horas diferentes) ou dia diferente; também é diferença quando só um dos lados tem data. Tardio é lançamento em dia posterior ao do serviço: conta quando uma fonte diz que é tardio e a outra, que não. Os custos somados são os de todas as linhas de cada conjunto.
Por imóvel
Cada linha é um código de imóvel. Itens = linhas de serviço (um item de limpeza ou lavanderia por linha). Compara a planilha e a API dentro do período escolhido acima. Situação fica "confere" só se as quantidades de itens e os custos são iguais e não há item só de um lado, campo diferente nem data de lançamento diferente. Os imóveis com diferença vêm primeiro.
Por tipo de serviço
Por mês do serviço
Data de lançamento: por origem na API
Diferenças (até por lista; o CSV traz o mesmo)