Pular para conteúdo

Termo de Conclusão e Aceite de OS

O Termo de Conclusão e Aceite é o documento digital gerado automaticamente quando uma Ordem de Serviço é concluída. Ele formaliza a entrega do serviço, reúne os dados da OS, do cliente, dos técnicos e da executora, e pode ser assinado digitalmente pelo cliente.

O documento é gerado a partir de um template DOCX com variáveis (${VARIAVEL}), preenchido pelo sistema e convertido para PDF — que fica anexado à OS (termo_ciencia).

Como o documento é gerado

  1. O técnico conclui a OS no painel ou no Telegram (materiais, evidências, checklist de execução e, se exigido, a assinatura).
  2. O sistema monta o termo a partir do template DOCX com as variáveis da OS.
  3. As variáveis são preenchidas com os dados reais do cadastro e do atendimento.
  4. O DOCX é convertido para PDF e salvo como anexo da OS (tipo termo_ciencia).
  5. Se o cliente tiver e-mail, o sistema envia o termo junto com o link de acompanhamento (📌 Acompanhe seu serviço) e, quando disponível, um link único de avaliação (⭐ Avalie o serviço). O cliente acompanha o status da OS em tempo real e, se desejar, dá nota de 1 a 5 com comentário.

E-mail de acompanhamento na criação

O link de acompanhamento também é enviado ao cliente assim que a OS é aberta (e não só na conclusão). A página pública mostra o status atual e o histórico de etapas, com atualização automática — o cliente acompanha do início ao fim sem precisar ligar.

Termo de conclusão gerado O termo gerado reúne os dados do cliente, da ordem e do atendimento, com as seções numeradas automaticamente.

Qual template é usado?

O sistema resolve o template nesta ordem:

Prioridade Origem Quando usa
1 Template da prestadora Quando a prestadora vinculada à OS tem um template próprio enviado em Configurações → Identidade/Logo
2 Template global O Termo_Aceite_OS_LuariX.docx padrão (upload em Configurações → Configurações de OS)
3 Template base gerado Se nenhum dos anteriores existir, o sistema gera um template base automaticamente

Validação do modelo

Antes de usar, o sistema confere que o modelo contém todas as variáveis obrigatórias. Se faltar alguma, o modelo é recusado e o sistema avisa — evitando documentos quebrados.

Variáveis do template

Todas as tags usam o formato ${NOME}. O sistema substitui cada uma pelos dados reais no momento da conclusão. Valores vazios viram .

Ordem de Serviço

Variável O que preenche Obrigatória
${OS_PROTOCOLO} Número do protocolo da OS (ex.: OS-20260806-0001)
${OS_TITULO} Título da OS
${OS_DESCRICAO} Descrição do problema informada na abertura
${OS_STATUS} Status final da OS (ex.: Concluída, Cancelada)
${OS_PRIORIDADE} Prioridade da OS (Baixa, Média, Alta, Urgente)
${OS_DATA_CRIACAO} Data/hora de abertura da OS (dd/mm/aaaa hh:mm:ss)
${OS_DATA_AGENDAMENTO} Data/hora agendada para o atendimento
${OS_DATA_EXECUCAO} Data/hora de início da execução
${OS_DATA_CONCLUSAO} Data/hora de conclusão da OS
${OS_RESUMO_SOLUCAO} Resumo da solução aplicada (campo de conclusão)
${OS_MOTIVO_CANCELAMENTO} Motivo do cancelamento (se a OS foi cancelada)
${OS_FEEDBACK_TECNICO} Feedback/observações do técnico
${OS_OBSERVACOES_INTERNAS} Observações internas da OS (não confidencial)
${OS_PRAZO_RESPOSTA} Prazo de resposta definido pelo SLA
${OS_PRAZO_RESOLUCAO} Prazo de resolução definido pelo SLA

Cliente

Variável O que preenche
${CLIENTE_NOME} Nome ou razão social do cliente
${CLIENTE_DOCUMENTO} CPF ou CNPJ do cliente
${CLIENTE_TELEFONE} Telefone fixo
${CLIENTE_CELULAR} Celular
${CLIENTE_EMAIL} E-mail
${CLIENTE_ENDERECO} Logradouro (endereço)
${CLIENTE_NUMERO} Número do endereço
${CLIENTE_COMPLEMENTO} Complemento (apto, sala, bloco...)
${CLIENTE_CEP} CEP
${CLIENTE_REFERENCIA} Ponto de referência
${CLIENTE_OBSERVACOES} Observações do cadastro do cliente (campo Observações da tela de Cliente) — preenchido automaticamente pelo sistema a partir do registro do cliente; bloco CLIENTE_OBS (a linha só aparece se houver observações)

Localização

Variável O que preenche
${CIDADE_NOME} Cidade da OS (ou do cliente)
${CIDADE_UF} UF da cidade
${BAIRRO_NOME} Bairro da OS (ou do cliente)

Categoria

Variável O que preenche
${CATEGORIA_NOME} Categoria do serviço
${CATEGORIA_DESCRICAO} Descrição da categoria
${SUBCATEGORIA_NOME} Subcategoria do serviço

Técnico (prestadora)

Variável O que preenche
${TECNICO_NOME} Nome do técnico (usa o técnico interno como fallback)
${TECNICO_EMAIL} E-mail (prestadora → interno)
${TECNICO_TELEFONE} Telefone (prestadora → interno)
${TECNICO_CELULAR} Celular
${TECNICO_ESPECIALIDADE} Especialidade (prestadora → interno)

Técnico Interno

Variável O que preenche
${TECNICO_INTERNO_NOME} Nome do técnico interno
${TECNICO_INTERNO_CPF} CPF do técnico interno
${TECNICO_INTERNO_EMAIL} E-mail do técnico interno
${TECNICO_INTERNO_TELEFONE} Telefone do técnico interno

Prestadora executora

Identidade resolvida na ordem: identidade própria da prestadora → global → cadastro da prestadora → dados da empresa (super-admin).

Variável O que preenche
${PRESTADORA_NOME} Razão social da executora
${PRESTADORA_NOME_FANTASIA} Nome fantasia
${PRESTADORA_DOCUMENTO} CNPJ/CPF
${PRESTADORA_EMAIL} E-mail
${PRESTADORA_TELEFONE} Telefone
${PRESTADORA_ENDERECO} Endereço
${PRESTADORA_NUMERO} Número
${PRESTADORA_COMPLEMENTO} Complemento
${PRESTADORA_CEP} CEP
${PRESTADORA_CIDADE} Cidade
${PRESTADORA_UF} UF

Empresa Global (fallback)

Variável O que preenche
${EMPRESA_NOME} Razão social da empresa global (dados do super-admin)
${EMPRESA_NOME_FANTASIA} Nome fantasia
${EMPRESA_DOCUMENTO} CNPJ/CPF
${EMPRESA_EMAIL} E-mail
${EMPRESA_TELEFONE} Telefone
${EMPRESA_ENDERECO} Endereço
${EMPRESA_NUMERO} Número
${EMPRESA_COMPLEMENTO} Complemento
${EMPRESA_CEP} CEP
${EMPRESA_CIDADE} Cidade
${EMPRESA_UF} UF

Bloco condicional SECAO_EMPRESA

A seção "EMPRESA (FALLBACK GLOBAL)" só aparece no PDF quando a identidade da executora realmente veio do fallback global (a prestadora não tem identidade própria configurada). Quando a prestadora tem identidade própria, a seção é removida automaticamente para não duplicar informação. (Templates antigos que usam o bloco ${EMPRESA} ... ${/EMPRESA} continuam funcionando — o sistema aplica a mesma regra.)

Templates antigos sem blocos

Essa regra vale para o template padrão e para templates que usam os blocos ${EMPRESA} ... ${/EMPRESA}. Se um template enviado anteriormente não tiver o bloco (apenas as variáveis ${EMPRESA_*} soltas), a seção continua sendo exibida normalmente — os blocos ausentes são simplesmente ignorados pelo sistema.

Assinatura

Variável O que preenche
${DATA_ASSINATURA} Data/hora do momento da assinatura
${HORA_ASSINATURA} Hora da assinatura
${IP_ASSINATURA} IP do dispositivo usado para assinar
${ASSINATURA_IMAGEM} Imagem da assinatura digital coletada

Equipamentos em comodato (bloco COMODATO)

Seção que relaciona os equipamentos que estão em comodato com o cliente no momento da conclusão (itens seriados cuja última movimentação foi uma saída para o cliente — ainda não devolvidos).

Variável O que preenche Escopo
${COMODATO_QTD} Total de equipamentos em comodato Bloco COMODATO
${COMODATO_PRODUTO} Nome do produto/equipamento Item do bloco COMODATO_ITEM
${COMODATO_SERIAL} Número de série do equipamento Item do bloco COMODATO_ITEM
${COMODATO_DATA} Data do empréstimo (dd/mm/aaaa) Item do bloco COMODATO_ITEM

Materiais utilizados (bloco MATERIAIS)

Seção que relaciona os materiais consumidos na OS (movimentações de saída vinculadas à ordem — inclusive os que ficaram com o cliente).

Variável O que preenche Escopo
${MATERIAIS_QTD} Total de materiais utilizados Bloco MATERIAIS
${MATERIAIS_PRODUTO} Nome do material/produto Item do bloco MATERIAIS_ITEM
${MATERIAIS_SERIAL} Número de série (vazio para materiais sem serial) Item do bloco MATERIAIS_ITEM
${MATERIAIS_QTD_ITEM} Quantidade utilizada daquele material Item do bloco MATERIAIS_ITEM

Evidências (bloco EVIDENCIAS)

Variável O que preenche Escopo
${EVIDENCIAS_QTD} Total de fotos/anexos enviados na conclusão Bloco EVIDENCIAS

Checklist de execução (bloco CHECKLIST)

Seção que relaciona os itens da rotina executada na OS (checklist da categoria/snapshot da OS) com o resultado de cada etapa. Só aparece quando a OS tem itens de checklist.

Variável O que preenche Escopo
${CHECKLIST_QTD} Total de itens do checklist Bloco CHECKLIST
${CHECKLIST_NUM} Número do item na ordem (1., 2....) Item do bloco CHECKLIST_ITEM
${CHECKLIST_ITEM_TEXTO} Descrição do item (ex.: "Testar DVR") Item do bloco CHECKLIST_ITEM
${CHECKLIST_ITEM_STATUS} Status do item — Executado ou Pendente Item do bloco CHECKLIST_ITEM
${CHECKLIST_ITEM_OBRIG} Se o item é Obrigatório ou Opcional Item do bloco CHECKLIST_ITEM

Integração com modelos próprios

A seção CHECKLIST já está integrada aos modelos próprios das prestadoras. Se um modelo personalizado não tiver a seção, o sistema a injeta automaticamente ao final do documento — o checklist nunca fica de fora do termo.

Variável O que preenche
${LOGO_IMAGEM} Logo da prestadora (ou fallback global) exibida no topo
${FOOTER_TEXT} Texto do rodapé configurável (Identidade/Logo)

Aliases (compatibilidade com templates antigos)

Variável Alias de
${OS_DATA_ABERTURA} OS_DATA_CRIACAO (abertura da OS)
${OS_DESCRICAO_INICIAL} OS_DESCRICAO (problema inicial)
${OS_RESOLUCAO_TEXTO} OS_RESUMO_SOLUCAO (solução aplicada)
${CLIENTE_CIDADE} CIDADE_NOME
${CLIENTE_ESTADO} CIDADE_UF

Termo dinâmico: seções e linhas condicionais + renumeração automática

O termo é totalmente dinâmico: cada seção e cada linha só aparece no PDF se houver informação real para exibir. Isso evita rótulos vazios ("—"), seções órfãs e números pulados.

Como funciona

  • Linhas condicionais (LINHA_*): uma linha (ex.: "Telefone / Celular") some quando todos os campos dela estão vazios.
  • Seções condicionais (SECAO_*): uma seção inteira some quando nenhuma de suas linhas tem dado (ex.: sem técnico atribuído → seção de técnico não aparece; sem equipamentos → seção de comodato não aparece).
  • Renumeração automática (SECAO_NUM_*): as seções visíveis são numeradas em sequência (1., 2., 3. ...) sem lacunas, na ordem do documento.

Blocos de seção

Bloco (abre) Fecha Aparece quando
${SECAO_CLIENTE} ${/SECAO_CLIENTE} O cliente tem ao menos um dado (nome, documento, endereço, contato, obs...)
${SECAO_OS} ${/SECAO_OS} Sempre (a OS tem protocolo/status)
${SECAO_COMODATO} ${/SECAO_COMODATO} Existe ao menos um equipamento em comodato com o cliente
${SECAO_MATERIAIS} ${/SECAO_MATERIAIS} A OS tem ao menos um material vinculado
${SECAO_EVIDENCIAS} ${/SECAO_EVIDENCIAS} A OS tem fotos/anexos na conclusão
${SECAO_CHECKLIST} ${/SECAO_CHECKLIST} A OS tem ao menos um item de checklist (padrão da categoria ou adicionado manualmente)
${SECAO_DESCRICAO} ${/SECAO_DESCRICAO} Há descrição, solução, feedback ou observações
${SECAO_ACEITE} ${/SECAO_ACEITE} Sempre (texto legal fixo)
${SECAO_ASSINATURA} ${/SECAO_ASSINATURA} Sempre (assinatura digital)
${SECAO_PRESTADORA} ${/SECAO_PRESTADORA} A executora tem ao menos um dado de identidade
${SECAO_EMPRESA} ${/SECAO_EMPRESA} A identidade da executora veio do fallback global (prestadora sem identidade própria)

Blocos de linha

Cada bloco de linha só aparece quando o(s) campo(s) correspondente(s) tem valor. Os principais:

Bloco (abre) Linha que controla
${LINHA_LOGO} Logo da executora (só se houver logo configurada)
${LINHA_CLIENTE_NOME} / ${LINHA_CLIENTE_DOC} Nome e CPF/CNPJ do cliente
${LINHA_CLIENTE_ENDERECO} Endereço/numero/complemento do cliente
${LINHA_CLIENTE_LOCAL} Bairro/cidade/UF/CEP
${LINHA_CLIENTE_CONTATO} Telefone ou celular
${LINHA_CLIENTE_EMAIL} / ${LINHA_CLIENTE_REF} E-mail e referência
${CLIENTE_OBS} Linha de observações do cliente — preenchida automaticamente com o campo Observações do cadastro; some quando o cliente não tem observações
${LINHA_COMODATO_QTD} Linha "Total de equipamentos" — sempre presente quando a seção de comodato é visível (a seção SECAO_COMODATO controla a visibilidade)
${LINHA_MATERIAIS_QTD} Linha "Total de materiais" — sempre presente quando a seção de materiais é visível (a seção SECAO_MATERIAIS controla a visibilidade)
${LINHA_EVIDENCIAS_QTD} Linha "Total de evidências" — sempre presente quando a seção de evidências é visível (a seção SECAO_EVIDENCIAS controla a visibilidade)
${LINHA_CHECKLIST_QTD} Linha "Total de itens" do checklist — presente quando a seção de checklist é visível (a seção SECAO_CHECKLIST controla a visibilidade)
${LINHA_OS_TITULO} ... ${LINHA_OS_MOTIVO_CANCEL} Cada linha da seção da OS (título, status, datas, prazos, categoria, técnico, motivo de cancelamento)
${LINHA_DESC_PROBLEMA} ... ${LINHA_DESC_OBS} Cada linha da descrição (problema, solução, feedback, observações)
${LINHA_PREST_NOME} ... ${LINHA_PREST_CONTATO} Cada linha da prestadora (nome, CNPJ, endereço, local, contato)
${LINHA_ASSINATURA_DATA} / ${LINHA_ASSINATURA_IP} Data/hora e IP da assinatura

Blocos de item (repetição)

Bloco (abre) Comportamento
${COMODATO_ITEM} ... ${/COMODATO_ITEM} Repete o modelo do item uma vez por equipamento em comodato
${MATERIAIS_ITEM} ... ${/MATERIAIS_ITEM} Repete o modelo do item uma vez por material da OS
${CHECKLIST_ITEM} ... ${/CHECKLIST_ITEM} Repete o modelo do item uma vez por item do checklist da OS

Variáveis de numeração

As variáveis ${SECAO_NUM_*} (ex.: ${SECAO_NUM_CLIENTE}, ${SECAO_NUM_OS}...) são preenchidas automaticamente com "1. ", "2. "... somente para as seções visíveis, na ordem do documento. Não é preciso (nem recomendado) escrever números fixos no título.

Usando blocos no seu template

  • Cada marcador (${NOME} e ${/NOME}) deve ficar em um parágrafo próprio no DOCX.
  • Os blocos de item (COMODATO_ITEM e MATERIAIS_ITEM) são repetidos automaticamente — um bloco por linha de item no modelo.
  • Os blocos de linha podem ficar aninhados dentro das seções (estrutura seção → linha → item).
  • Templates antigos sem os blocos continuam funcionando: o sistema simplesmente mantém as seções sempre visíveis (os blocos ausentes são ignorados).

Onde gerenciar o template

O que Onde
Enviar/baixar o template global e ver as variáveis Configurações → Configurações de OS
Enviar template próprio da prestadora e logo Configurações → Identidade/Logo

Documento sem assinatura

Quando a OS é concluída sem coleta de assinatura, o termo é gerado com uma imagem padrão de "sem assinatura" no lugar da assinatura — os demais dados são preenchidos normalmente.

Sobre a geração do documento

A conversão do modelo para PDF é feita automaticamente pelo sistema no momento da conclusão da OS.