Skip to content

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.

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
  1. Lê as datas. Se faltar alguma, encerra com stopCodeExecution().
  2. Consulta /reservations-export com dateType=creation, type=booked e páginas de 20 registros.
  3. Para cada resumo recebido, busca a reserva completa.
  4. 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_cadastral e status, que são campos controlados pela equipe.
  5. Devolve o resultado com response().
{
"criadas": 4,
"atualizadas": 12,
"periodo": "2026-03-01 a 2026-03-31"
}

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.

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.