PersonComponent
O PersonComponent é um componente usado na UI do BIS que permite que telas dos módulos e plugins manipulem o objeto PersonVO sem a necessidade de incluir campo à campo em sua tela. Este componente recebe (ou não) um PersonVO, cria os campos e já o associa completamente. Desta forma, invés do desenvolvedor da tela ter que criar e obter o valor de cada campo, basta incluir este componente e obter o valor através do método:
getPersonVO();
Requisitos & Regras de Funcionamento
A principal ideia do serviço Person do BISCore é garantir um "cadastro único" das pessoas (Físicas e Jurídicas) em todo o sistema. Permitindo que as pessoas cadastradas em um módulo estejam disponíveis em outros módulo. Já a ideia do PersonComponent é simplificar a implementação dessa ideia nas telas dos módulos que utilizam o Person para manipular o cadastro dessas pessoas. Assim, temos as seguintes regras:
- O componente deve estender algum tipo de layout (Grid, VerticalLayout, etc.) sem incluir nenhum "Panel" (como o BISPanel). Deixando a prerrogativa de ser inserido em um Panel ou não para a tela que o for utilizar. Algumas telas, por exemplo, podem preferir inseri-lo diretamente em alguma "Aba" do PanelTab, BISPopupPanel, etc..
- Devido a resolução definida no Padrão Visual o componente deve caber em uma dimensão mínima de 1000px (Largura) x 500px (Altura). E deve ser preparado para "esticar" para resoluções maiores.
Construtor
Lógica de construção:
- O construtor do PersonComponent deve receber um PersonVO como atributo, sendo que se o objeto recebido for:
- nulo: o componente deve criar um novo PersonVO e associar todos os campos a este novo PersonVO.
- Assim que criado o componente deve ter todos os seus campos desabilitados. Permitir apenas o campo "CPF/CNPJ:" e o checkbox "Sem CPF/CNPJ" habilitados para preenchimento.
- Não for Nulo, utiliza o objeto recebido para associar aos campos.
- nulo: o componente deve criar um novo PersonVO e associar todos os campos a este novo PersonVO.
![]() |
|
![]() |
|
CPF/CNPJ Value Change
Uma vez que o componente foi criado de acordo com a regra do construtor, o usuário poderá alterar o valor do campo "CPF/CNPJ:". Neste caso devemos seguir as seguintes regras:
- Caso o novo valor seja um CPF/CNPJ válido...
- ...e o novo valor não esteja no banco: Simplesmente deixamos que o CPF/CNPJ seja alterado no PersonVO que já estamos editando. Fazendo com que o objeto seja inserido com o novo valor.
- ...e o novo valor esteja no banco: Exibimos um dialog (BISConfirmCancelDialog) com a seguinte indagação:
- No caso de CPF: "O CPF já está em uso por outra pessoa. Gostaria de utilizar os dados existentes?"
- No caso de CNPJ: "O CNPJ já está em uso por outra empresa. Gostaria de utilizar os dados existentes?"
- Em caso de confirmação o objeto atual deve ser substituído pelo novo. E ao associar o novo objeto aos campos de tela os valores serão atualizados para os dados que vieram do banco de dados. Em caso de cancelamento o valor do campo "CPF/CNPJ:" deve ser limpo. Impedindo que o usuário tente inserir ou alterar o objeto atual para o CPF/CNPJ que já está em branco.
- Caso o novo valor esteja em branco: permite que o PersonVO receba o novo valor em branco. O BISCore fará suas validações ao receber um CPF/CNPJ em branco e saberá o que fazer.
![]() |
|
Sem CPF/CNPJ
O componente deve ainda permitir que o usuário cadastre uma nova pessoa sem o CPF ou CNPJ. Para isso deve incluir do lado do campo "CPF/CNPJ:" um checkbox com o título "Sem CPF/CNPJ". Também deve garantir que o CPF/CNPJ seja desabilitado.
Esboço da UI
Abaixo estão alguns esboços sobre a composição do componente e algumas observações:
Para organizar todos os campos do objeto, os campos serão agrupados em abas de um TabPanel. Permitindo inclusive que os campos que o PersonVO venha a ganhar no futuro possam ser incluídos no componente sem desfigurar sua aparência atual.
O Ca