Sincronização manual de reservas
Função disparada por botão em uma tabela de controle separada da tabela de reservas. O usuário informa um período e o script busca na Stays as reservas confirmadas criadas nesse intervalo, atualizando somente a reserva em si.
Entrada
Section titled “Entrada”O script lê as duas datas do registro onde o botão foi clicado (recordData):
| Constante | Campo esperado | Valor atual no código |
|---|---|---|
CAMPO_DATA_DE |
Data inicial | data_de |
CAMPO_DATA_ATE |
Data final | data_ate |
- Lê as datas. Se faltar alguma, encerra com
stopCodeExecution(). - Consulta
/reservations-exportcomdateType=creation,type=bookede páginas de 20 registros. - Para cada resumo recebido, busca a reserva completa.
- Chama a lógica de criar ou atualizar:
- Não existe: cria o apartamento e o canal se necessário, calcula as datas, insere a reserva e marca reservas do mesmo dia (entrada e saída).
- Já existe: recalcula todos os campos e atualiza a reserva, preservando
etapas,ficha_cadastralestatus, que são campos controlados pela equipe.
- Devolve o resultado com
response().
Retorno
Section titled “Retorno”{ "criadas": 4, "atualizadas": 12, "periodo": "2026-03-01 a 2026-03-31"}Mesmo dia (entrada e saída)
Section titled “Mesmo dia (entrada e saída)”Ao processar uma reserva, o script procura outras reservas do mesmo apartamento em que:
- o check-in existente é igual ao check-out nova, ou
- o check-out existente é igual ao check-in nova.
Nesses casos, marca os dois lados nos campos checkin_ou_checkout_no_mesmo_dia e tag_sai_e_entra. Como a lógica roda também em atualizações, a mesma reserva pode receber gravações repetidas.
Tabelas envolvidas
Section titled “Tabelas envolvidas”| Slug | Papel |
|---|---|
4t52yq48kfmfe5lcnhmgv |
Reservas |
pfziere4qayrb1ui_4bv4 |
Apartamentos |
vhwynb8ysthr3u1a6xc05 |
Canais |
A tabela de controle, onde está o botão, tem slug próprio e não é definido no código.