# Pesquisa Avançada de Etiqueta da Partida

A Pesquisa Avançada é o componente essencial para a identificação de lotes de produção, produtos e processos através de códigos de barras ou inserção manual. A ferramenta permite a interpretação das informações contidas nas etiquetas de produção, automatizando a identificação da **Partida**, do **Produto** (incluindo variante de cor) e do **Processo** produtivo, garantindo que o apontamento da produção seja preciso e livre de erros de digitação.

### Lógica de Identificação

Diferente de leitores de texto simples, este componente possui uma lógica dinâmica que identifica o conteúdo com base no formato e no comprimento da informação inserida.

1. Dimensionamento Inteligente\
   O sistema não utiliza um tamanho fixo universal. O comprimento total aceito pelo leitor é calculado pela soma das partes configuradas na empresa:\
   \&#xNAN;**\* Partida + Gravação do Cartão** (Identificação do lote).\
   \&#xNAN;**\* Código do Item + Código da Cor** (Identificação do produto).\
   \&#xNAN;**\* Código do Processo** (Identificação da etapa produtiva).\
   O campo visual em tela é padronizado para exibir até 40 caracteres, permitindo a leitura de etiquetas extensas e detalhadas.
2. Modos de Entrada de Dados\
   O leitor interpreta dois formatos principais de entrada:\
   **Entrada Manual (Com Separador):** Utilizada para inserção via teclado. A distinção entre os campos é feita por meio do caractere ponto (<kbd>.</kbd>) para identificar automaticamente as partes como **Partida**, **Sequência** e **Beneficiamento**.<br>

   <div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p><em>Exemplo:</em><br>1234.1.5</p></div>

   \
   **Leitura de Código de Barras (Posicional):** Utilizada para capturas via scanner. O sistema realiza o fatiamento da sequência numérica bruta conforme as posições pré-configuradas no banco de dados.<br>

   <div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p><em>Exemplo:</em><br>Leitura do código contínuo <code>001234000105</code>, onde o sistema interpreta os primeiros 6 dígitos como a Partida, os 4 seguintes como o Produto e os 2 finais como o Processo.</p></div>

### Fluxo de Validação e Tratamento

Ao realizar a leitura, o sistema executa as seguintes verificações:

1. **Limpeza e Identificação:** O código é analisado para verificar se contém separadores ou se é uma *string* contínua de posições fixas.
2. **Conversão Interna:** Se a etiqueta for válida, o sistema padroniza a saída utilizando o caractere pipe (<kbd>|</kbd>) para separar as informações.<br>

   <div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p><em>Exemplo:</em><br>Partida | Produto | Processo</p></div>
3. **Checagem de Existência:**
   1. Verifica se a Partida existe e se pertence ao mês/ano ativo.
   2. Valida se o Produto realmente faz parte daquela partida.
   3. Confirma se o Processo informado está na sequência correta de produção.
4. **Tratamento de Exceções:** Caso a contagem de caracteres do código seja divergente da configuração ou os dados não constem no banco, ocorre a exibição da mensagem: "Etiqueta inválida!".

### Estrutura de Retorno da Pesquisa Avançada

<table><thead><tr><th width="151">Segmento</th><th width="281">Origem</th><th>Descrição</th></tr></thead><tbody><tr><td>Partida</td><td>Código de Barras / Manual</td><td>Identificador único do lote de produção.</td></tr><tr><td>Produto</td><td>Código de Barras / Sequencial</td><td>Item e Cor que compõem a partida.</td></tr><tr><td>Processo</td><td>Código de Barras / Tabela Interna</td><td><p>Etapa específica.</p><div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p><em>Exemplos:</em><br>Tingimento, Tecelagem</p></div></td></tr><tr><td>Beneficiamento</td><td>Manual (separador <kbd>.</kbd>)</td><td>Identificador de processos externos ou especiais.</td></tr></tbody></table>
