~jb.eficent/openerp-spain/6.1-bugfix-1061196

« back to all changes in this revision

Viewing changes to base_vat_vies/wizard/validate_vies_vat.py

  • Committer: Mikel
  • Date: 2012-09-08 15:32:47 UTC
  • mfrom: (275.1.47 6.0)
  • Revision ID: mikel.martin@gmail.com-20120908153247-fampyke02t4km4i7
[SYNC] Sincronización con los commit que se han hecho en la 6.0 y no se habían pasado a esta 6.1
pending merges:
  Jordi Esteve 2012-09-01 l10n_es: Renombrados algunos códigos de impuesto...
    Jordi Esteve 2012-09-01 [FIX] l10n_chart_ES:
    Albert Cervera i... 2012-08-31 Corregido el recargo de equivalencia ...
    Omar (pexego) 2012-08-10 [ADD] l10n_es_aeat_mod349: Añadimos dos nue...
    Albert Cervera i... 2012-08-07 l10n_es: Añadido el IRPF 9% y las pos...
    Albert Cervera i... 2012-08-07 l10n_es: Añadidos los recargos de equ...
    Albert Cervera i... 2012-08-06 l10n_es_aeat_mod340: Ampliar registro...
    Albert Cervera i... 2012-08-06 l10n_es_aeat_mod349: Permitir selecci...
    Albert Cervera i... 2012-08-06 l10n_es_fiscal_year_closing: Las cuen...
    Albert Cervera i... 2012-08-06 l10n_es_fiscal_year_closing: Nunca se...
    Albert Cervera i... 2012-08-06 nan_account_payment_report: Añadida l...
    dani-ds 2012-07-24 [IMP+DEL] Eliminado módulo  modificado y actualiz...
    dani-ds 2012-07-20 [ADD] Modulo modificado para los nuevos IVAS (Ago...
    santiago@pexego.es 2012-07-12 [IMP] l10n_es_igic. Añadidos nuevos ti...
    Jordi Ballester 2012-07-06 Corrección bug 1021631 por el cual la apl...
    Ignacio Ibeas - ... 2012-06-15 [FIX] l10n_es_aeat_mod340: chequeo de...
    Ignacio Ibeas - ... 2012-06-12 [FIX] l10n_es_payment_order: correció...
    Jordi Esteve 2012-06-10 [ADD] l10n_cat_account: Módulo que traduce l...
    Jordi Esteve 2012-05-29 [IMP] base_vat_vies, l10n_es_auto_fiscal_pos...
    Jordi Esteve 2012-05-29 [IMP] l10n_es_partner: Improved partner sear...
    Jordi Esteve 2012-05-29 [FIX] l10n_es_payment_order: Al crear el fic...
    Jordi Esteve 2012-05-28 [FIX] l10n_es_payment_order: El campo 'date_...
    Jordi Esteve 2012-05-28 [merge] l10n_es_payment_order: Añadido nuevo...
    jgrande 2012-05-22 FIX import csb_34_01 module
    jgrande 2012-05-22 NEW Exportacion de ficheros segun la norma CSB 34-01
    Hugo Santos 2012-05-14 [ADD] Añadido módulo de selección automática ...
    Ignacio Ibeas - ... 2012-05-06 [FIX] l10n_es_payment_order: Bug #992134
    Ignacio Ibeas - ... 2012-04-25 [FIX] l10n_es_aeat_mod347: Exclusión ...
    Jordi Esteve 2012-04-18 [IMP] l10n_es_aeat_mod347: Actualizadas plan...
    Ignacio Ibeas - ... 2012-04-10 [FIX] l10n_es: Añadido IRPF 20% Alqui...
    Jordi Esteve 2012-03-20 [FIX] l10n_es_partner_seq: Al copiar un clie...
    Jordi Esteve 2012-03-20 [IMP] l10n_es_account_asset: Actualizada pla...
    Omar (pexego) 2012-03-20 [FIX] l10n_es_aeat: Al formatear para expor...
    Omar (pexego) 2012-03-20 [FIX] l10n_es_aeat_mod347: Corregimos la ag...
    Omar (pexego) 2012-03-19 [ADD][REF] l10n_ES_aeat_mod347: Añadimos la...
    Ignacio Ibeas - ... 2012-03-16 [FIX] l10n_es_mod340: dependencia de ...
    Ana Juaristi 2012-03-09 [ADD] l10n_es_account_asset, l10n_es_prev_te...
    Albert Cervera i... 2012-03-06 l10n_es_aeat_mod347: Actualizado el m...
    Jordi Esteve 2012-03-06 [IMP] l10n_es_bank_statement: Moved the menu...
    Jordi Esteve 2012-03-06 [FIX] l10n_es_payment_order: Payment order l...
    Albert Cervera i... 2012-03-03 Hacer el autor más consistente en los...
    Omar (pexego) 2012-03-01 [ADD] Añado módulo para la gestión del IGIC...
    Ignacio Ibeas - ... 2012-02-24 [FIX] l10n_es_partner: Cambio de la d...
    Ignacio Ibeas - ... 2012-02-23 [FIX] l10n_es_aeat_mod340: Mejora la ...
    Ignacio Ibeas - ... 2012-02-16 [ADD] l10n_es_aeat_mod340: Añadidas f...
    Ignacio Ibeas ( 2012-02-14 [ADD] l10n_es_partner: Añadido ING DIRECT...
    Jordi Esteve 2012-02-11 [FIX] l10n_es_partner_seq: Close 'Create acc...
    Jordi Esteve 2012-02-11 [FIX] l10n_es: Fixed account names of 662 gr...
    Ignacio Ibeas - ... 2012-02-01 [ADD] l10n_es_aeat_mod340: archivos d...

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- coding: utf-8 -*-
 
2
#########################################################################
 
3
#                                                                       #
 
4
# Copyright (C) 2012 Factor Libre SL                                    #
 
5
#                                                                       #
 
6
#This program is free software: you can redistribute it and/or modify   #
 
7
#it under the terms of the GNU General Public License as published by   #
 
8
#the Free Software Foundation, either version 3 of the License, or      #
 
9
#(at your option) any later version.                                    #
 
10
#                                                                       #
 
11
#This program is distributed in the hope that it will be useful,        #
 
12
#but WITHOUT ANY WARRANTY; without even the implied warranty of         #
 
13
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          #
 
14
#GNU General Public License for more details.                           #
 
15
#                                                                       #
 
16
#You should have received a copy of the GNU General Public License      #
 
17
#along with this program.  If not, see <http://www.gnu.org/licenses/>.  #
 
18
#########################################################################
 
19
 
 
20
from osv import osv
 
21
from osv import fields
 
22
from tools.translate import _
 
23
 
 
24
import vatnumber
 
25
 
 
26
class validate_vies_vat(osv.osv_memory):
 
27
    _name = 'validate.vies.vat'
 
28
    
 
29
    def _split_vat(self, vat):
 
30
        vat_country, vat_number = vat[:2].lower(), vat[2:].replace(' ', '')
 
31
        return vat_country, vat_number
 
32
    
 
33
    def check_customer_vat(self, cr, uid, vat_country, vat_number):
 
34
        partner_obj = self.pool.get('res.partner')        
 
35
        if not hasattr(partner_obj, 'check_vat_' + vat_country):
 
36
            return False
 
37
        check = getattr(partner_obj, 'check_vat_' + vat_country)
 
38
        if not check(vat_number):
 
39
            return False
 
40
        return True
 
41
    
 
42
    def validate_vies(self, cr, uid, ids, context=None):
 
43
        if context is None:
 
44
            context = {}
 
45
        values = {}
 
46
        partner_obj = self.pool.get('res.partner')
 
47
        for partner in partner_obj.browse(cr, uid, context.get('active_ids'), context=context):
 
48
            values['valid_vies_vat'] = False
 
49
            if partner.vat:
 
50
                vat = self._split_vat(partner.vat)
 
51
                if self.check_customer_vat(cr, uid, vat[0], vat[1]):
 
52
                    if vatnumber.check_vies(partner.vat):
 
53
                        values['valid_vies_vat'] = True
 
54
                else:
 
55
                    raise osv.except_osv(_("Error"), _("Client Vat Number not have a valid format"))
 
56
                    return {'type': 'ir.actions.act_window_close'}                    
 
57
            partner_obj.write(cr, uid, [partner.id], values)
 
58
        return {'type': 'ir.actions.act_window_close'}
 
59
            
 
60
validate_vies_vat()