Thread Previous • Date Previous • Date Next • Thread Next |
Sim, a "Razão Social" é indispensável estar registrado em algum lugar para notas fiscais e etc. Vejo duas opções: (1) Pode ser feito usando o nome de um dos contatos do parceiro (res.partner.address), ou (2) podemos ter um campo a parte só para isso no próprio parceiro (res.partner). É uma questão de uso e gosto. *"No exemplo do Gabriel, Partner 2 é a razão social?"* Não, aquilo foi um exemplo de dois partner interligados. Isto é, o *"Partner 2" * era um partner que tinha como Main Company o Partner 1. Anexei duas imagens mostrando o Main Company (estou mostrando na versão original em inglês para ninguém ter dúvida), e como fica a árvore quando se usa. Abs, Gabriel 2009/5/15 Celso Canaan <celso.canaan@xxxxxxxxxxxx> > Pessoal, > > É bom lembrar que alguns arquivos eletrônicos e relatórios contábeis, > fiscais, etc deve ser enviada a razão social do cliente > (emitente/destinatário, por exemplo). Talvez no futuro possamos enviar > somente o CNPJ/CPF, mas até onde eu sei a razão social é utilizada. No > exemplo do Gabriel, Partner 2 é a razão social? > > Portanto, acredito que a integridade do nome deve ser quebrada. > > Celso. > > -------- Mensagem original -------- > De: Gabriel C. Stabel <gstabel@xxxxxxxxx> > Para: Luiz Franca <luiz@xxxxxxxxxxxxxxxxxxxxx> > Cc: OpenErp Brasil <openerp-brazil-team@xxxxxxxxxxxxxxxxxxx> > > "e neste caso voce quebrou a restrição unique do name do Partner?" > Não chegamos a quebrar. Eles mexiam no nomes desta forma: > Partner 1: Universidade Federal do RS > Partner 2: Universidade Federal do RS - Departamento XXX > > > O nome do Partner não era a razão social, e sim um nome identificável > pelo usuário. Logo sempre era diferente (único). Por exemplo, ao invés > de "Vonpar" usariam "Coca-Cola". > A razão social ficava no nome do contato (partner.address) principal, > mas quem sabe faça mais sentido criar um campo só para isso em partner. > > "Como voce fez isto? por herança ou alterou o módulo base?" > Criamos um módulo a parte, usando herança. > > "Outra coisa, estas modificações que voces fizeram são GPL? voce poderia > disponibilizar o código?" > Vou pedir o código. Há muitas outras coisas no código. Não é um código > limpo. > > Abs, > Gabriel > > 2009/5/15 Luiz Franca <luiz@xxxxxxxxxxxxxxxxxxxxx> > Gabriel, > > e neste caso voce quebrou a restrição unique do name do Partner? > > Como voce fez isto? por herança ou alterou o módulo base? > > Outra coisa, estas modificações que voces fizeram são GPL? voce > poderia disponibilizar o código? > > > []s > > -- > Luiz Fernando Maciel França > Sig Informática Ltda. > Rua João Pereira Amorim, 700 > Bairro Jardim Arizona > 35.700-373 - Sete Lagoas - MG - Brasil > (31)3773-1043 > Skype: lfmfsig > > > > 2009/5/15 Gabriel C. Stabel <gstabel@xxxxxxxxx> > > > Tive que resolver esse problema do CPF/CNPJ no serviço > que eu fiz, e pude discutir com alguns engenheiros e > administradores que usavam o sistema. > > 5) Pensamos no começo em colocar no > "res.partner.address", como foi sugerido, pelo mesmo > motivo; a questão matriz/filial. Entretanto depois de > refletir melhor colocamos em "res.partner", e resolvemos > a questão matriz/filial usando o campo "parent_id". > Pois se usarmos o "parent_id" (Main Company), podemos > ver e estruturar a organização de empresas maiores (ou > governamentais) usando o "Company Architecture" que já > existe (é um tree view) dentro de Partner. (Ao que me > lembro os Cases já buscam de forma recursiva dentro > desta árvore de parceiros, que nos indicou também ser um > exemplo da intenção original de quem fez). > Entendemos que o "res.partner.address" deveria ser usado > como se fosse os diversas pessoas de contato, e/ou > endereços de um dado parceiro. E que o parceiro (que > conteria o CPF/CNPJ) é que deveria centralizar as notas > fiscais (invoces), vendas, cases, etc, e logo ter os > dados fiscais (como CPF/CNPJ). > > Fica aí minha experiência nessa questão, e minha > sugestão. :) > Grato. > > Abraços, > Gabriel > > 2009/5/14 Luiz Franca <luiz@xxxxxxxxxxxxxxxxxxxxx> > > Boa Noite Pessoal! > > Agradeço a todos pela manifestação, é assim que > esta grupo precisa andar. > > Vamos enumerar para ficar mais fácil: > > 1) Quanto ao nome, acho que não resta dúvidas, > será necessário quebrar a restrição. O problema > é como fazer isto por herança? Não podemos > simplesmente alterar o módulo 'base', precisamos > fazer por herança num novo módulo. Se alguem > souber como fazer, por favor me dê o caminho das > pedras, enquanto isto vou procurando por aqui. > > 2) Acho que o CNPJ/CPF tambem não podem ter > restrição pelo que foi dito por alguns de voces, > temos ai casos de prefeituras / autarquias com o > mesmo cnpj, embora ele possa ser chave para > identificação. > > 3)Não temos que necessáriamente ter uma > restrição(unique), uma vez que todo objeto do > OpenERP tem seu ID, que já é único, portanto > outra restrição seria apenas pela regra do > negócio, que no caso do cnpj/cpf e nome/razão > social é dispensável pelo que deduzimos das > respostas. > > 4) Para quem pediu, o código o preliminar está > em: > https://code.launchpad.net/openerp.pt-br-localiz, > mas já adianto que ele tem alguns problemas. De qualquer maneira, me > comprometo a disponibilizar novamente assim que terminar as alterações que > estou fazendo, entrego em no máximo 1 semana. Se alquem quizer a alteração > que estou fazendo antes que eu termine é só falar que eu mando, não tenho > nenhuma restrição, o código é GPL > > 5) Pela questão de Matriz/Filiais acho que o > cnpj/cpf devem realmente ir para o objeto > Partner.Address. > > 6) Considerando que um partner no OpenERP pode > ter vários endereços, isto não resolveria o caso > das Prefeituras/autarquias? Se resolver, > acredito que finalmente poderemos ter uma > restrição Unique no CPF/CNPJ. O que acham? > > Para voces entenderem melhor o que estou > fazendo, coloco a seguir parte dos atributos dos > objetos. > > class res_partner_address(osv.osv): > """Partner Addresses""" > _name = 'res.partner.address' > _inherit = 'res.partner.address' > _columns = { > 'location': > fields.many2one('res.country.state.city', > 'Localidade', domain="[('state_id', '=', > state_id)]"), > 'numero': fields.char('Número', > size=10), > 'state_id': > fields.many2one("res.country.state", 'Estado', > domain="[('country_id', '=', country_id)]"), > 'country_id': > fields.many2one("res.country", 'País'), > 'tipo_pessoa': fields.selection([('F', > 'Física'), ('J', 'Jurídica')], 'Tipo de pessoa', > required=True), > 'cpf_cnpj': fields.char('Cpf/CNPJ', > size=15), > 'pessoa_fisica': > fields.one2many('res.partner.fisica', > 'address_id', 'Pessoa_Fisica'), > 'pessoa_juridica': > fields.one2many('res.partner.juridica', > 'address_id', 'Pessoa_Juridica'), > } > > class res_partner_juridica(osv.osv): > """Cadastro de pessoas juridica """ > _name = 'res.partner.juridica' > _columns = { > 'address_id' : > fields.many2one('res.partner.address','Contato', > ondelete='set null', select=True, > domain=[('tipo_pessoa', '=', 'J')]), > 'city' : fields.related > > ('partner_id','city',type='many2one',relation='res.country.state.city',string='Cidade'), > 'state' : fields.related > > ('partner_id','state',type='many2one',relation='res.country.state', > string='Estado'), > 'country' : fields.related > ('partner_id','country',type='char',string='País'), > 'fantasia' : fields.char('Nome > Fantasia', size=25), > 'inscr_estadual': fields.char('Inscrição > Estadual', size=20, required="1"), > 'inscr_municipal': > fields.char('Inscrição Municipal', size=20), > 'suframa': fields.char('Suframa', > size=10), > 'data_fundacao': fields.date("Data da > fundação"), > 'tipo_empresa': > fields.selection([('I','Individual'), > ('L','Limitada'), ('S','Sociedade Anônima'), > ('P','Administração Pública')], 'Tipo de > Empresa', required="1"), > } > class res_partner_fisica(osv.osv): > """Cadastro de pessoas fisicas """ > _name = 'res.partner.fisica' > _columns = { > 'address_id' : > fields.many2one('res.partner.address','Contato', > ondelete='set null', select=True, > domain=[('tipo_pessoa', '=', 'F')]), > 'city' : fields.related > > ('partner_id','city',type='many2one',relation='res.country.state.city',string='Cidade'), > 'state' : fields.related > > ('partner_id','state',type='many2one',relation='res.country.state', > string='Estado'), > 'country' : fields.related > ('partner_id','country',type='char',string='País'), > 'apelido': fields.char('Apelido', > size=25), > 'identidade': fields.char('Identidade', > size=20), > 'data_emissao_identidade': > fields.date("Data de emissão"), > 'orgao_emissor_identidade': > fields.char('Orgão emissor', size=6), > 'data_nascimento': fields.date("Data de > Nascimento"), > 'estado_civil': fields.selection([('C', > 'Casado'), ('S', 'Solteiro'), ('E', > 'Desquitado'), ('D','Divorciado'), > ('V','Viúvo')], 'Estado Civil'), > 'sexo': fields.selection([('M', > 'Masculino'), ('F', 'Feminino')], 'Sexo', > required="1"), > 'foto': fields.binary('Foto'), > } > > > Como podem ver o cnpj/cpf eu inclui na classe > "res.partner.address" e crie mais duas classes > complementares para os dados de pessoa física e > jurídica. > > Na verdade do que pretendia fazer a parte das > classes já está pronta, falta apenas acertas as > telas(o xml). > > > > []s > -- > Luiz Fernando Maciel França > Sig Informática Ltda. > Rua João Pereira Amorim, 700 > Bairro Jardim Arizona > 35.700-373 - Sete Lagoas - MG - Brasil > (31)3773-1043 > Skype: lfmfsig > > > > _______________________________________________ > Mailing list: > https://launchpad.net/~openerp-brazil-team<https://launchpad.net/%7Eopenerp-brazil-team> > Post to : > openerp-brazil-team@xxxxxxxxxxxxxxxxxxx > Unsubscribe : > https://launchpad.net/~openerp-brazil-team<https://launchpad.net/%7Eopenerp-brazil-team> > More help : > https://help.launchpad.net/ListHelp > > > > > > > > _______________________________________________ > Mailing list: https://launchpad.net/~openerp-brazil-team<https://launchpad.net/%7Eopenerp-brazil-team> > Post to : openerp-brazil-team@xxxxxxxxxxxxxxxxxxx > Unsubscribe : https://launchpad.net/~openerp-brazil-team<https://launchpad.net/%7Eopenerp-brazil-team> > More help : https://help.launchpad.net/ListHelp > >
Attachment:
Captura_de_tela-OpenERP-1.png
Description: PNG image
Attachment:
Captura_de_tela-OpenERP.png
Description: PNG image
Thread Previous • Date Previous • Date Next • Thread Next |