# 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)