# Máscara de Código Interno do Produto
Este recurso permite a modificação da máscara padrão do **código interno** ao cadastrar um produto, determinando como será sua composição.
Para especificar a máscara do **código interno**, na **Configuração Geral do Sistema** *(Sistema > Configuração Geral)*, no quadro **Produto**, na sessão Configuração da Máscara do Código Interno, existem parâmetros a serem especificados:
#### Tipo Produto
Determina qual o **Tipo** do **Produto** que será observado para a geração do código através da máscara determinada, podendo ser:
- Acabado;
- Grade Simples;
- Grade;
#### Máscara do Código
Máscara que será aplicada no **código interno** aos produtos onde o **Tipo** for igual ao definido no campo **Tipo Produto**;
### Formatação da Máscara
A máscara do código interno deverá ser montada através dos campos relacionados a tabela `produto_grade` e seus relacionamentos, predeterminados por chaves {}, compostos por 3 parâmetros: **{** `parametro1` **:** `parametro2` **,** `parametro3` **}** .
#### parametro1
É o campo que será observado na construção da máscara.
Ele pode ser composto pelo nome do campo disponível na coluna `produto_grade` ou o nome **tabela** mais o **nome do campo** disponível na tabela relacionada a `produto_grade`.
Exemplo: `{campo}` ou `{tabela.campo}`.
#### parametro2
Campo opcional, que ao ser especificado se comportará das seguintes formas:
1. **{** `parametro1` **:** `tamanho` **}** : insere zeros no início do valor string com base em um `tamanho` especificado.
2. **{** `parametro1` **:** `posição inicial` **-** `posição final` **}** : retorna a parte do valor entre os índices inicial (`posição inicial`) e final (`posição final`).
#### parametro3
Campo opcional, que ao ser especificado se comportará da seguinte forma:
1. **{** `parametro1` **:** `parametro2` **,** `tamanho` **}** : insere zeros no início do valor string com base em um `tamanho` especificado.
### Exemplos de Aplicação
### Máscara Padrão
Por padrão, o código interno do produto segue a seguinte máscara:
#### Acabado
`{produto_grade.id}`
Desta forma, indica que o código interno será composto pelo **ID (SKU)** gerado ao **Produto**.
Exemplos:
**ID (SKU)**
**Código Interno**
1
30153
30153
2
98762948
98762948
#### Grade / Grade Simples
`{produto.id:6}{gradex.id:4}{gradey.id:4}`
Neste formato, o código interno será composto pelo **ID (Produto)** gerado ao **Produto**, complementando com **6 dígitos** caso tamanho seja inferior a 6 e acrescido do **ID** da **Grade X (Horizontal)** e **ID** da **Grade Y (Vertical)**, complementando com 4 dígitos caso o tamanho for inferior a 4, respectivamente.
Quando o tamanho é superior ao definido, neste caso não irá efetuar o limite mínimo estabelecido.
Exemplos: