Skip to content

Commit

Permalink
Merge pull request #414 from multidadosti-erp/feature/res_bank_zip_se…
Browse files Browse the repository at this point in the history
…arch

[NEW] Add zip search in ResBank view and views fixies
  • Loading branch information
renatonlima committed Oct 13, 2016
2 parents 0d415d4 + 8bbd18c commit 8290fcf
Show file tree
Hide file tree
Showing 21 changed files with 222 additions and 96 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ before_script:
- chmod +x configure_locale.sh

script:
- ./configure_locale.sh
- sudo ./configure_locale.sh
- travis_run_tests

after_success:
Expand Down
1 change: 1 addition & 0 deletions l10n_br_base/__openerp__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
'data/l10n_br_base.city.csv',
'data/l10n_br_base_data.xml',
'views/l10n_br_base_view.xml',
'views/res_bank_view.xml',
'views/res_country_view.xml',
'views/res_partner_view.xml',
'views/res_company_view.xml',
Expand Down
1 change: 1 addition & 0 deletions l10n_br_base/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# Copyright (C) 2015 Renato Lima - Akretion
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

from . import res_bank
from . import res_partner
from . import res_country
from . import res_company
Expand Down
43 changes: 43 additions & 0 deletions l10n_br_base/models/res_bank.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
# Copyright (C) 2016 MultidadosTI (http://www.multidadosti.com.br)
# @author Michell Stuttgart <michellstut@gmail.com>
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

import re

from openerp import models, fields, api


class ResBank(models.Model):

_inherit = 'res.bank'

district = fields.Char(u'Bairro', size=32)
number = fields.Char(u'Número', size=10)

country_id = fields.Many2one('res.country', related='country',
string=u'País')

state_id = fields.Many2one('res.country.state', related='state',
string=u'Estado')

l10n_br_city_id = fields.Many2one('l10n_br_base.city', u'Municipio',
domain="[('state_id','=',state_id)]")

@api.onchange('l10n_br_city_id')
def _onchange_l10n_br_city_id(self):
""" Ao alterar o campo l10n_br_city_id que é um campo relacional
com o l10n_br_base.city que são os municípios do IBGE, copia o nome
do município para o campo city que é o campo nativo do módulo base
para manter a compatibilidade entre os demais módulos que usam o
campo city.
"""
if self.l10n_br_city_id:
self.city = self.l10n_br_city_id.name

@api.onchange('zip')
def _onchange_zip(self):
if self.zip:
val = re.sub('[^0-9]', '', self.zip)
if len(val) == 8:
self.zip = "%s-%s" % (val[0:5], val[5:8])
39 changes: 39 additions & 0 deletions l10n_br_base/views/res_bank_view.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>

<record id="view_l10n_br_base_bank_form" model="ir.ui.view">
<field name="name">l10n_br_base.bank.form</field>
<field name="model">res.bank</field>
<field name="inherit_id" ref="base.view_res_bank_form"/>
<field name="arch" type="xml">
<field name="street2" position="replace"/>
<field name="zip" position="replace"/>
<field name="street" position="replace">
<field name="zip" placeholder="CEP" style="width:50%" />
<field name="street" placeholder="Logradouro" />
<field name="number" placeholder="Número"/>
<field name="street2" placeholder="Complemento"/>
<field name="district" placeholder="Bairro"/>
<field name="country_id" placeholder="País"/>
<field name="state_id" placeholder="Estado"/>
<field name="l10n_br_city_id" placeholder="Cidade"/>
</field>
<field name="state_id" position="attributes">
<attribute name="domain">[('country_id','=',country_id)]</attribute>
<attribute name="style">width:100%</attribute>
</field>
<field name="country" position="replace">
<field name="country" invisible="1"/>
</field>
<field name="state" position="replace">
<field name="state" invisible="1"/>
</field>
<field name="city" position="replace">
<field name="city" invisible="1"/>
</field>
</field>
</record>

</data>
</openerp>
2 changes: 1 addition & 1 deletion l10n_br_base/views/res_company_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,4 @@
</record>

</data>
</openerp>
</openerp>
28 changes: 22 additions & 6 deletions l10n_br_base/views/res_partner_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -145,16 +145,32 @@
<field name="bra_number" select="1" />
<field name="bra_number_dig" select="1" />
</field>
<field name="street" position="after">
<field name="number" placeholder="Número..."/>
<field name="street2" placeholder="Complemento..."/>
<field name="district" placeholder="Bairro..."/>
<field name="owner_name" position="replace"/>
<field name="partner_id" position="replace">
<field name="partner_id"/>
<field name="owner_name"/>
</field>
<field name="zip" position="replace"/>
<field name="street" position="replace">
<field name="zip" placeholder="CEP" style="width:50%" />
<field name="street" placeholder="Logradouro" />
<field name="number" placeholder="Número"/>
<field name="street2" placeholder="Complemento"/>
<field name="district" placeholder="Bairro"/>
</field>
<field name="state_id" position="attributes">
<attribute name="domain">[('country_id','=',country_id)]</attribute>
<attribute name="style">width:100%</attribute>
</field>
<field name="country_id" position="replace"/>
<field name="state_id" position="before">
<field name="country_id" placeholder="País" />
</field>
<field name="state_id" position="after">
<field name="l10n_br_city_id" placeholder="Cidade"/>
</field>
<field name="city" position="attributes">
<attribute name="invisible">1</attribute>
<field name="city" position="replace">
<field name="city" invisible="1" />
</field>
</field>
</record>
Expand Down
36 changes: 1 addition & 35 deletions l10n_br_crm_zip/models/crm_lead.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

from openerp import models, api
from openerp.tools.translate import _
from openerp.exceptions import Warning as UserError


class CrmLead(models.Model):
Expand All @@ -14,36 +12,4 @@ class CrmLead(models.Model):
@api.multi
def zip_search(self):
self.ensure_one()
obj_zip = self.env['l10n_br.zip']

zip_ids = obj_zip.zip_search_multi(
country_id=self.country_id.id,
state_id=self.state_id.id,
l10n_br_city_id=self.l10n_br_city_id.id,
district=self.district,
street=self.street,
zip_code=self.zip,
)

obj_zip_result = self.env['l10n_br.zip.result']
zip_ids = obj_zip_result.map_to_zip_result(zip_ids, self._name,
self.id)
if len(zip_ids) == 1:
result = obj_zip.set_result(zip_ids[0])
self.write(result)
return True
else:
if len(zip_ids) > 1:
return obj_zip.create_wizard(
self._name,
self.id,
country_id=self.country_id.id,
state_id=self.state_id.id,
l10n_br_city_id=self.l10n_br_city_id.id,
district=self.district,
street=self.street,
zip_code=self.zip,
zip_ids=[z.id for z in zip_ids],
)
else:
raise UserError(_('No records found!'))
return self.env['l10n_br.zip'].zip_search(self)
1 change: 1 addition & 0 deletions l10n_br_crm_zip/views/crm_lead_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<field name="name">l10n_br_crm.leads1</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.crm_case_form_view_leads" />
<field name="priority">33</field>
<field name="arch" type="xml">
<field name="zip" position="after">
<button name="zip_search" type="object" class="oe_inline">
Expand Down
1 change: 1 addition & 0 deletions l10n_br_crm_zip/views/crm_opportunity_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<field name="name">l10n_br_crm.opportunities1</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.crm_case_form_view_oppor" />
<field name="priority">33</field>
<field name="arch" type="xml">
<field name="zip" position="after">
<button name="zip_search" type="object" class="oe_inline">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,17 @@
# @ 2016 Kmee - www.kmee.com.br - Daniel Sadamo <daniel.sadamo@kmee.com.br>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

import xlwt
from openerp.report import report_sxw
from openerp.addons.report_xls.report_xls import report_xls
from openerp.addons.report_xls.utils import _render
from openerp.exceptions import Warning as UserError
from openerp.tools.translate import _

try:
import xlwt
except ImportError:
raise UserError(_(u'Erro!'), _(u"Biblioteca xlwt não instalada!"))

import logging
_logger = logging.getLogger(__name__)

Expand Down
1 change: 1 addition & 0 deletions l10n_br_zip/__openerp__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
'views/l10n_br_zip_view.xml',
'views/res_partner_view.xml',
'views/res_company_view.xml',
'views/res_bank_view.xml',
'wizard/l10n_br_zip_search_view.xml',
'security/ir.model.access.csv',
],
Expand Down
1 change: 1 addition & 0 deletions l10n_br_zip/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
from . import l10n_br_zip
from . import res_company
from . import res_partner
from . import res_bank
52 changes: 37 additions & 15 deletions l10n_br_zip/models/l10n_br_zip.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@

import re

from openerp import models, fields
from openerp import models, fields, api
from openerp.tools.translate import _
from openerp.exceptions import except_orm
from openerp.exceptions import Warning as UserError


class L10nBrZip(models.Model):
Expand Down Expand Up @@ -86,21 +88,41 @@ def zip_search_multi(self, country_id=False,
zip_code=zip_code)
return self.search(domain)

def zip_search(self, cr, uid, ids, context,
country_id=False, state_id=False,
l10n_br_city_id=False, district=False,
street=False, zip_code=False):
result = self.set_result(cr, uid, ids, context)
zip_id = self.zip_search_multi(
cr, uid, ids, context,
country_id, state_id,
l10n_br_city_id, district,
street, zip_code)
if len(zip_id) == 1:
result = self.set_result(cr, uid, ids, context, zip_id[0])
return result
@api.multi
def zip_search(self, obj):

zip_ids = self.zip_search_multi(
country_id=obj.country_id.id,
state_id=obj.state_id.id,
l10n_br_city_id=obj.l10n_br_city_id.id,
district=obj.district,
street=obj.street,
zip_code=obj.zip,
)

if len(zip_ids) == 1:
result = self.set_result(zip_ids[0])
obj.write(result)
return True
else:
return False
if len(zip_ids) > 1:
obj_zip_result = self.env['l10n_br.zip.result']
zip_ids = obj_zip_result.map_to_zip_result(
zip_ids, obj._name, obj.id)

return self.create_wizard(
obj._name,
obj.id,
country_id=obj.country_id.id,
state_id=obj.state_id.id,
l10n_br_city_id=obj.l10n_br_city_id.id,
district=obj.district,
street=obj.street,
zip_code=obj.zip,
zip_ids=[zip.id for zip in zip_ids]
)
else:
raise UserError(_('Nenhum registro encontrado'))

def create_wizard(self, object_name, address_id, country_id=False,
state_id=False, l10n_br_city_id=False,
Expand Down
15 changes: 15 additions & 0 deletions l10n_br_zip/models/res_bank.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# -*- coding: utf-8 -*-
# Copyright (C) 2016 MultidadosTI (http://www.multidadosti.com.br)
# @author Michell Stuttgart <michellstut@gmail.com.br>
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

from openerp import models, api


class ResBank(models.Model):
_inherit = 'res.bank'

@api.multi
def zip_search(self):
self.ensure_one()
return self.env['l10n_br.zip'].zip_search(self)
3 changes: 2 additions & 1 deletion l10n_br_zip/models/res_company.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,5 @@ class ResCompany(models.Model):

@api.multi
def zip_search(self):
return self.partner_id.zip_search()
self.ensure_one()
return self.env['l10n_br.zip'].zip_search(self)
40 changes: 7 additions & 33 deletions l10n_br_zip/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

from openerp import models, api
from openerp.tools.translate import _
from openerp.exceptions import Warning as UserError


class ResPartner(models.Model):
Expand All @@ -13,37 +11,13 @@ class ResPartner(models.Model):
@api.multi
def zip_search(self):
self.ensure_one()
obj_zip = self.env['l10n_br.zip']
return self.env['l10n_br.zip'].zip_search(self)

zip_ids = obj_zip.zip_search_multi(
country_id=self.country_id.id,
state_id=self.state_id.id,
l10n_br_city_id=self.l10n_br_city_id.id,
district=self.district,
street=self.street,
zip_code=self.zip,
)

if len(zip_ids) == 1:
result = obj_zip.set_result(zip_ids[0])
self.write(result)
return True
else:
if len(zip_ids) > 1:
obj_zip_result = self.env['l10n_br.zip.result']
zip_ids = obj_zip_result.map_to_zip_result(
zip_ids, self._name, self.id)
class ResPartnerBank(models.Model):
_inherit = 'res.partner.bank'

return obj_zip.create_wizard(
self._name,
self.id,
country_id=self.country_id.id,
state_id=self.state_id.id,
l10n_br_city_id=self.l10n_br_city_id.id,
district=self.district,
street=self.street,
zip_code=self.zip,
zip_ids=[zip.id for zip in zip_ids]
)
else:
raise UserError(_('Nenhum registro encontrado'))
@api.multi
def zip_search(self):
self.ensure_one()
return self.env['l10n_br.zip'].zip_search(self)
Loading

0 comments on commit 8290fcf

Please sign in to comment.