DUVIDA CADASTRO SISTEMA MULTIEMPRESA
Boa noite galera.
Tenho um sistema que estou finalizando ele para multiempresa.
O cadastro de Entidades(Clientes, Fornecedores, etc) e o cadastro de produto tenho um campo que indica se o registro servirá para todas empresas ou apenas uma.
Está funcionando ok isto. Porém qual o melhor jeito de tratar duplicidade neste caso ? Pois no cadastro de Clientes por exemplo, vou tratar duplicidade através do CNPJ/CPF, neste caso eu poderia verificar na tabela geral, sem filtro de empresa e dizer se ja existe ou não ? Pois se eu fizer isto, aquele registro ja encontrado deverá ser liberado para todas empresas o visualizarem, o que seria um problema.
Nao tenho experiencia quanto a isto e gostaria da ajuda de voces.
Tenho um sistema que estou finalizando ele para multiempresa.
O cadastro de Entidades(Clientes, Fornecedores, etc) e o cadastro de produto tenho um campo que indica se o registro servirá para todas empresas ou apenas uma.
Está funcionando ok isto. Porém qual o melhor jeito de tratar duplicidade neste caso ? Pois no cadastro de Clientes por exemplo, vou tratar duplicidade através do CNPJ/CPF, neste caso eu poderia verificar na tabela geral, sem filtro de empresa e dizer se ja existe ou não ? Pois se eu fizer isto, aquele registro ja encontrado deverá ser liberado para todas empresas o visualizarem, o que seria um problema.
Nao tenho experiencia quanto a isto e gostaria da ajuda de voces.
Trabalho com um software de Escrituração Fiscal e o cadastro de Cliente e Fornecedor é para todas as empresas, ou seja, cadastro um vez e fica para todas, mas os produtos, notas fiscais de saÃdas, entradas, serviços é separado por empresa.
Colega, eu faço assim, há alguns anos:
Cadastro de empresas: código, razão social, cnpj, BASE DO CADASTRO DE CLIENTES, endereço, etc...
Cadastro de clientes: BASE, código, nome ou razão social, cnpj ou cpf, etc...
Poderia ter:
EMPRESAS
Código 1, [Ô]empresa codigo 1 ltda[Ô], BASE DO CADASTRO DE CLIENTES = 5
Codigo 2, [Ô]empresa codigo 2 ltda[Ô], BASE DO CADASTRO DE CLIENTES = 5
Codigo 3, [Ô]empresa codigo 3 ltda[Ô], BASE DO CADASTRO DE CLIENTES = 7
Clientes:
Codigo 1, [Ô]cliente codigo 1 [Ô], [Ô]111.111.111-11[Ô], BASE = 5
Codigo 2, [Ô]cliente codigo 2[Ô], [Ô]222.222.222-22[Ô], BASE = 5
Codigo 3, [Ô]cliente codigo 3, [Ô]333.333.333-33[Ô], BASE = 7
Posso cadastrar o cliente CPF 111.111.111-11 na base 7 (que pertence à empresa 3), mas não posso cadastrar na base 5 (das empresas 1 e 2) porque ele já está lá.
Ou seja, a validação é feita pela BASE + CNPJ_CPF
Tudo de bom.
Cadastro de empresas: código, razão social, cnpj, BASE DO CADASTRO DE CLIENTES, endereço, etc...
Cadastro de clientes: BASE, código, nome ou razão social, cnpj ou cpf, etc...
Poderia ter:
EMPRESAS
Código 1, [Ô]empresa codigo 1 ltda[Ô], BASE DO CADASTRO DE CLIENTES = 5
Codigo 2, [Ô]empresa codigo 2 ltda[Ô], BASE DO CADASTRO DE CLIENTES = 5
Codigo 3, [Ô]empresa codigo 3 ltda[Ô], BASE DO CADASTRO DE CLIENTES = 7
Clientes:
Codigo 1, [Ô]cliente codigo 1 [Ô], [Ô]111.111.111-11[Ô], BASE = 5
Codigo 2, [Ô]cliente codigo 2[Ô], [Ô]222.222.222-22[Ô], BASE = 5
Codigo 3, [Ô]cliente codigo 3, [Ô]333.333.333-33[Ô], BASE = 7
Posso cadastrar o cliente CPF 111.111.111-11 na base 7 (que pertence à empresa 3), mas não posso cadastrar na base 5 (das empresas 1 e 2) porque ele já está lá.
Ou seja, a validação é feita pela BASE + CNPJ_CPF
Tudo de bom.
Galera, o cadastro de produto já está ok. O de Entidades pode ser fácil tambem, o meu problema está sendo a trava para duplicidade. No meu cadastro, por exemplo, eu tenho um campo chamado codempresa, se ele estiver null ou 0 eu libero o registro para todos, se nao eu mostro ele apenas na empresa da sessao ativa.
A duvida é se por exemplo eu tiver um Cliente cadastrado apenas para a empresa 1 e o usuario loga na empresa 2 e coloca o CPF/CNPJ como eu faria para nao haver duplicidade, pois neste caso o usuario da empresa 2, pode cadastrar este cliente para todas empresas ai ferrou rs.
Acho que farei de acordo com o F001E disse com relação aos clientes, fornecedores, etc, porem os produtos eu tb tenho o problema que tenho um campo chamado [Ô]Codigo Fabricante[Ô] que é tipo Chave Primária.
A duvida é se por exemplo eu tiver um Cliente cadastrado apenas para a empresa 1 e o usuario loga na empresa 2 e coloca o CPF/CNPJ como eu faria para nao haver duplicidade, pois neste caso o usuario da empresa 2, pode cadastrar este cliente para todas empresas ai ferrou rs.
Acho que farei de acordo com o F001E disse com relação aos clientes, fornecedores, etc, porem os produtos eu tb tenho o problema que tenho um campo chamado [Ô]Codigo Fabricante[Ô] que é tipo Chave Primária.
FBGSYSTEMS boa tarde.
Se você faz um cadastro para empresas e outro para clientes, fornecedores, etc.. não há como ter duplicidade. Você não pode usar uma destas tabelas para incluir campo da outra e sim usar tabelas auxiliares que juntes os dados assim:
tabEmpresa
ID
Razao
etc
tabClientes
ID
Razao
etc...
tabEmpresaCliente
IDEmpresa
IDCliente
Então você precisa de uma tela de associação, ou fazer no próprio cadastro da empresa. Assim ao incluir/editar uma empresa, teria uma aba Clientes que você faria a associação, e gravaria na tab auxiliar tabEmpresaCliente. Como só há dois campos, o ID de cada um, não há duplicação de um cliente para mesma empresa, pois os dois campos são chave primaria.
Da mesma forma nunca existirá duplicidade de cadastro do cliente, pois ele só pode ser cadastrado uma única vez pelo CNPJ.
é assim que trabalho e isso serve para tudo: Fornecedores, funcionários, cargos, etc...
Se você faz um cadastro para empresas e outro para clientes, fornecedores, etc.. não há como ter duplicidade. Você não pode usar uma destas tabelas para incluir campo da outra e sim usar tabelas auxiliares que juntes os dados assim:
tabEmpresa
ID
Razao
etc
tabClientes
ID
Razao
etc...
tabEmpresaCliente
IDEmpresa
IDCliente
Então você precisa de uma tela de associação, ou fazer no próprio cadastro da empresa. Assim ao incluir/editar uma empresa, teria uma aba Clientes que você faria a associação, e gravaria na tab auxiliar tabEmpresaCliente. Como só há dois campos, o ID de cada um, não há duplicação de um cliente para mesma empresa, pois os dois campos são chave primaria.
Da mesma forma nunca existirá duplicidade de cadastro do cliente, pois ele só pode ser cadastrado uma única vez pelo CNPJ.
é assim que trabalho e isso serve para tudo: Fornecedores, funcionários, cargos, etc...
Bom dia LUIS, pois é, esta é a opção ideal, porem concorda comigo que um cliente da empresa A do meu cliente, pode tambem ser cliente da Empresa B?
No dia 10/05 o usuario que é funcionario da empresa A, entra no cadastro de clientes e cadastra o cliente X. Dias depois o usuario funcionari oda empresa B vai cadastrar este mesmo cliente para a empresa B. Nesta hora que estou com dificuldade em gerir esta questão. Pois a empresa hoje não tem condições de ter uma pessoa para gerir os clientes e/ou produtos das duas empresas. Cada empresa tem seu funcionário que irá cadastrar clientes e produtos.
No dia 10/05 o usuario que é funcionario da empresa A, entra no cadastro de clientes e cadastra o cliente X. Dias depois o usuario funcionari oda empresa B vai cadastrar este mesmo cliente para a empresa B. Nesta hora que estou com dificuldade em gerir esta questão. Pois a empresa hoje não tem condições de ter uma pessoa para gerir os clientes e/ou produtos das duas empresas. Cada empresa tem seu funcionário que irá cadastrar clientes e produtos.
Tópico encerrado , respostas não são mais permitidas