openerp-brazil-team team mailing list archive
-
openerp-brazil-team team
-
Mailing list archive
-
Message #00159
Re: Tropicalização
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
Post to :
openerp-brazil-team@xxxxxxxxxxxxxxxxxxx
Unsubscribe :
https://launchpad.net/~openerp-brazil-team
More help :
https://help.launchpad.net/ListHelp
_______________________________________________
Mailing list: https://launchpad.net/~openerp-brazil-team
Post to : openerp-brazil-team@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~openerp-brazil-team
More help : https://help.launchpad.net/ListHelp
Follow ups
References