Zona atravessada pela tarifa

Verifica se contains_id de fare_rules.txt referencia zone_id em stops.txt.

Propriedades da regra

PropriedadeValor
Rule IDfare_rules_contains_id_foreign
Ficheirosfare_rules.txt, stops.txt
Camposcontains_id, zone_id
TipoReferência a stops.zone_id, Identificador de zona
SeveridadeOpcional

Descrição dos campos:

  • contains_id: identifica as zonas que o passageiro atravessa ao usar uma categoria tarifária. Alguns sistemas usam estas zonas para determinar a categoria tarifária aplicável.
  • zone_id: identifica a zona tarifária da paragem em stops.txt.

Mais informação em fare_rules.txt e stops.txt.

Como funciona

O resultado depende da severidade definida na configuração da regra: obrigatório (error) reprova; recomendado (warning) passa com aviso; informativo (info) passa com informação. O aviso antecipa uma futura exigência, mas só reprova quando a configuração passar a obrigatório. Nos casos sem severidade explícita abaixo, a indicação de reprovação pressupõe a configuração obrigatória.

Quando preenchido, o identificador tem de existir no campo zone_id de stops.txt. A regra não verifica o preenchimento, a unicidade ou se a tarifa se aplica efetivamente à viagem.

A regra avalia cada linha do fare_rules.txt, seguindo os passos abaixo por ordem, até um deles dar o resultado.

#PerguntaSe simSe não
1O campo de fare_rules.txt está vazio?✅ Passa sem procurar uma referênciaSegue para o passo 2
2Existe uma linha de stops.txt com o mesmo valor em zone_id?✅ Passa❌ Reprova: referência inexistente

Os espaços não são removidos. A comparação distingue maiúsculas de minúsculas. Uma coluna ausente também é tratada como vazia. O preenchimento é verificado separadamente. Os exemplos pressupõem que a regra é executada e que a configuração da regra permite reportar problemas.

Como se relacionam

O campo contains_id de fare_rules.txt deve corresponder a zone_id em stops.txt. Várias paragens podem pertencer à mesma zona; basta existir uma correspondência. Nos exemplos, stop-only e code-only são o identificador e o código de uma paragem da zona A. Esta verificação não confirma que o percurso atravessa todas as zonas necessárias para aplicar a tarifa.

Exemplos

contains_idzone_idResultadoPorquê
AA✅ PassaZona encontrada
missingA❌ ReprovaZona inexistente
stop-onlyA❌ ReprovaIdentificador de paragem não é a zona
code-onlyA❌ ReprovaCódigo de paragem não é a zona

Como corrigir

ProblemaCausa provávelO que fazer
Referência inexistenteO valor não existe no campo zone_id de stops.txtCorrigir contains_id em fare_rules.txt para um valor existente em zone_id de stops.txt. Se a definição estiver em falta, acrescentá-la no ficheiro de referência.

On this page