Formulario Pessoa Fisica e Pessoa Juridica

Boa Tarde

Existe no scriptcase uma forma de se criar um formulario onde de um campo select eu escolheria Fisica ou Juridica e ele habilitaria o seguinte, pessoa fisica os campos Nome, CPF… Se juridica Razao Social, CNPJ, Inscrição Estadual, Municipal…

Ou terei que buscar um codigo javascript externo para isto?

Grato

eu crio um campo do tipo cnpj cpf

no evento onchange testo o tamanho do campo, se for maior que 11 habilito os campos relacionados a pessoa jurídica e altero alguns labels, se menor ou igual a 11 escondo campos referente a pessoa juridica a ajusto os labels

Acho que é assim que a maioria faz.

Exatamente dessa forma que faço.

Tudo bem, mas esta muito vago para mim, entendi que:

Se Campo Pessoa > 11 caractere

Esconder dados Fisica e ativar Juridica

Náo sei fazer isto pelo scriptcase

Grato

Edivaldo,
O Mestre Haroldo já te deu o caminho das pedras.

O que exatamente você nao sabe fazer para podermos te ajudar?

Edivaldo,

Acho que com o script abaixo você vai entender.

// COLOCA LABEL NOS CAMPOS / ESCONDE CAMPOS E BLOCOS
if(strlen({cpf_cnpj}) > 11){
sc_label(“nome_razao_social”) = "Razão social ";
sc_label(“cpf_cnpj”) = "CNPJ
";
sc_label(“rg_inscricao_est”) = “Inscrição estadual”;
sc_label(“inscricao_municipal”) = “Inscrição municipal”;

}else{
sc_label(“nome_razao_social”) = "Nome ";
sc_label(“cpf_cnpj”) = "CPF
";
sc_label(“rg_inscricao_est”) = “RG”;
sc_block_display(nome_fantasia, off);
sc_field_display({inscricao_municipal}, off);
sc_block_display(contato, off);
{nome_fantasia} = ‘’;
{inscricao_municipal} = ‘’;
{contato} = ‘’;
}

A macro sc_field_display() esconde os campos mas deixa os espaços no formulário, as vezes fica mais estético esconder bloco.

Uma sugestão: crie 2 campos na tua tabela: o campo CPF e outro CNPJ. CPF com 11 caracteres e CNPJ com 14. Assim você habilita o campo CPF e os campos relacionados a ele quando for selecionada PESSOA FÍSICA e habilita o campo CNPJ e os campos relacionados a ele quando for selecionada PESSOA JURÍDICA.

Como habilitar os campos já foi descrito acima.

Edivaldo,
Eu já fiz as duas formas.
No último sistema que precisei fiz como o Kleber sugerui. Funcionou bem.

Funciona tanto da forma como o Kleyber ou como o Haroldo fez… no entanto a forma mais eficiente é a do Haroldo. Explico…

Se você criar dois campos na mesma tabela, para chaves ÚNICAS e/ou PRIMÁRIAS (o CPF ou CNPJ são chaves que certamente não poderão ser repetidas) que identificam o mesmo ente, você terá um problema sério de consciência e/ou integridade.

Assim sendo faça como o Haroldo explicou e é muito mais simples.

Se você perdesse um pouquinho do seu tempo veria que já existe um porrilhão de tópicos que explicam isso, mas vamos lá:

  1. Defina o campo como CPF e CNPJ
  2. A seguir crie um Evento Ajax

  1. Defina as características deste Evento Ajax

  1. Feito isso, o SC abrirá uma tela pra vc escrever seu código PHP para HABILITAR ou DESABILITAR os campos que vc acha que deva ser preenchido pela Pessoa Física ou pela Pessoa Jurídica.

Utilize o comando…

if (strlen({seu_campo_cpf_cnpj}) == 11)
{
Escreva aqui o código que habilitará ou desabilitará os campos pertinentes à Pessoa Física
}
else
{
Escreva aqui o código que habilitará ou desabilitará os campos pertinentes à Pessoa Jurídica
}

[size=10pt]Nota: Você pode utilizar a macro [color=blue]sc_field_disabled (“Nome_Campo = True/False”, “Parâmetro”)[/color] para fazer esse processo de habilitar ou desabilitar um campo dinamicamente.[/size]

Boa Sorte.

Eu uso um campo só CPF_CNPJ e DOCTO para IE e RG:

E base de dados a anos luz que faço tudo junto, menos repetição de serviço para o cliente e facilidade de montar as SQL para as consultas depois pra mim:

Exatamente Jailton…

Se o campo tem que ser de preenchimento obrigatório, criar dois campos para mesma pessoa e nenhum dos dois pode ser NULL, isso vai gerar uma inconsistência em algum canto do sistema.

Jovito Melo

Kleyber, aqui vejo um probleminha, geralmente usamos o campo cnpj_cpf como chave exclusiva da entidade.

O que seria um problema pois sempre teria um dos campos vazios.

E por ser uma boa prática de modelagem (me baseio no livro de Dr. Carlos Aberto Heuser) cada entidade deve ser uma tabela distinta.

http://sis4.com/brmodelo/monografia/monografia.htm

Há muitos anos em uma discussão na lista do PostgreSQL, os expert’s de lá comentaram o seguinte.
Separar os cadastros de clientes de fornecedores e outros, e, separar em tabelas diferentes CNPJ de CPF.
Exemplo:
Cadastro de Clientes - Pessoa Física
Cadastro de Clientes - Pessoa Jurídica

Cadastro de Fornecedores - Pessoa Física
Cadastro de Fornecedores - Pessoa Jurídica

A discussão que passou por lá é que mesmo o cadastro de clientes de PF e PJ devem ser separados por terem campos distintos a cada tipo de pessoa.
Segundo eles, é que para grandes empresas esta é a modalidade correta.

Sim sim, concordo com você, Jovito e Jailton. É que dei uma alternativa a mais para o Edivaldo. Mas concordo com vocês. Tanto que em meu sistema atual já funciona assim, com apenas um campo para CNPJ e CPF.