---
# System prepended metadata

title: 1084 - Mobile

---

# 1084 - Mobile

Req 01
### Incluir migrations para a entidade DuplicateEntityConfiguration incluindo atributo showPreRegistrationForm

Incluir novo migration com os dados a seguir:

```javascript
module.exports = {
    version: '17.29.0',
    module: 'Customer',
    changeSets: [
        {
            id: '03ff0d72-0a9a-4674-add8-384527c3c203',
            author: 'Eduardo Reichert',
            change:
                'ALTER TABLE DuplicateEntityConfiguration ADD COLUMN showPreRegistrationForm BOOLEAN;',
        },
    ],
};
```

#### Evoluir entidade DuplicateEntityConfiguration para declarar novo atributo showPreRegistrationForm

Evoluir os seguintes arquivos para incluir este novo atributo

src/module/customer/duplicate-entity-configuration/logic/DuplicateEntityConfiguration.js
src/module/customer/duplicate-entity-configuration/logic/$DuplicateEntityConfiguration.js
src/module/customer/duplicate-entity-configuration/DuplicateEntityConfiguration.yml

---

Req 02

### Criar nova tela de formulário de pré-cadastro Customer

Criar componente de formulário, apresentado como uma nova tela, que será responsável pela pré-validação de clientes

Descrição completa da tarefa no ponto [05.02.01.03.](https://tdn.totvs.com/pages/viewpage.action?pageId=687149042#An%C3%A1liset%C3%A9cnicaparaavalida%C3%A7%C3%A3odeduplicidadepr%C3%A9viadeLeadseClientes(ME031220210747)-05.02.01.03.AplicativoMjolnir)

---

Req 03
### Evoluir telas de Customer formulário e lista

#### Evoluir formulário para que possa ser possível inicializar a entidade com dados do Navigator

Evoluir componente src/module/customer/customer/form/CustomerFormScreen.js para que a inicialização passe a considerar um possível estado recebido através do Navigator via propriedade entity. Esse estado pode ser recebido durante a criação de novos registros (ele deve ser ignorado em edições) e conterá as informações iniciais do registro que será criado (como nome, telefones, etc). O código a seguir exemplifica o comportamento esperado.

```javascript
constructor(props) {
  const validationEntityState = props.entity;
  const defaultEntityState = { ... };
 
  this.state = {
    entity: validationEntityState || defaultEntityState,
  };
}
```

#### Evoluir lista de customers para que seja possível acessar o formulário de pré-cadastro de acordo com a configuração

Evoluir componente src/module/customer/customer/list/CustomerListScreen.js com as alterações a seguir

Quando o usuário clicar no botão de novo cliente (método goToForm), o formulário de pré-validação estiver ativado e o usuário estiver online, deve-se exibir o componente descrito acima neste documento. A exibição será por meio de uma nova tela, adicionada à stack de histórico de navegação.

A informação de que o formulário está ativado pode ser recuperado via src/module/customer/duplicate-entity-configuration/logic/DuplicateEntityConfigurationSource.js#getByEntityName passando customer como argumento, onde o atributo showPreRegistrationForm, do tipo booleano, indica se deve ser exibido ou não. 

> Para recuperar se o app está online, utilizar o método mjolnir-utils/src/helper/connection/ConnectionHelper.js#isOnline

Quando o formulário de pré-validação estiver desativado ou o usuário estiver offline, o clique no botão de novo registro deve manter o comportamento atual de redirecionar para o formulário de novos registros de forma direta.

---

Req 04

### Criar nova tela de formulário de pré-cadastro Lead

Criar componente de formulário, apresentado como uma nova tela, que será responsável pela pré-validação de leads

Descrição completa da tarefa no ponto [05.02.02.03](https://tdn.totvs.com/pages/viewpage.action?pageId=687149042#An%C3%A1liset%C3%A9cnicaparaavalida%C3%A7%C3%A3odeduplicidadepr%C3%A9viadeLeadseClientes(ME031220210747)-05.02.02.03.AplicativoMjolnir)

---

Req 05
### Evoluir telas de Lead formulário e lista

#### Evoluir formulário de para que possa ser possível inicializar a entidade com dados do Navigator

Evoluir componente src/module/customer/lead/form/LeadFormScreen.js para que a inicialização passe a considerar um possível estado recebido através do Navigator via propriedade entity. Esse estado pode ser recebido durante a criação de novos registros (ele deve ser ignorado em edições) e conterá as informações iniciais do registro que será criado (como nome, telefones, etc). O código a seguir exemplifica o comportamento esperado.

```javascript
constructor(props) {
  const validationEntityState = props.entity;
  const defaultEntityState = { ... };
 
  this.state = {
    entity: validationEntityState || defaultEntityState,
  };
}
```


#### Evoluir lista de leads para que seja possível acessar o formulário de pré-cadastro de acordo com a configuração

Evoluir componente src/module/customer/lead/list/LeadListScreen.js com as alterações a seguir

Quando o usuário clicar no botão de novo lead (método goToForm), o formulário de pré-validação estiver ativado e o usuário estiver online, deve-se exibir o componente descrito acima neste documento. A exibição será por meio de uma nova tela, adicionada à stack de histórico de navegação.

A informação de que o formulário está ativado pode ser recuperado via src/module/customer/duplicate-entity-configuration/logic/DuplicateEntityConfigurationSource.js#getByEntityName passando lead como argumento, onde o atributo showPreRegistrationForm, do tipo booleano, indica se deve ser exibido ou não. 
Para recuperar se o app está online, utilizar o método mjolnir-utils/src/helper/connection/ConnectionHelper.js#isOnline

Quando o formulário de pré-validação estiver desativado ou o usuário estiver offline, o clique no botão de novo registro deve manter o comportamento atual de redirecionar para o formulário de novos registros de forma direta.


---

Req 06

### Validar se usuário esta offline em cenários que é necessário estar online

Evoluir componentes src/module/customer/customer/tabs/form/CustomerFormScreen.js e src/module/customer/lead/form/LeadFormScreen.js com as alterações a seguir

Descrição completa [05.03.01.01](https://tdn.totvs.com/pages/viewpage.action?pageId=687149042#An%C3%A1liset%C3%A9cnicaparaavalida%C3%A7%C3%A3odeduplicidadepr%C3%A9viadeLeadseClientes(ME031220210747)-05.03.01.01.AplicativoMjolnir)


