Skip to Content
Odoo Menu
  • Zaloguj się
  • Wypróbuj za darmo
  • Aplikacje
    Finanse
    • Księgowość
    • Fakturowanie
    • Wydatki
    • Arkusz kalkulacyjny (BI)
    • Dokumenty
    • Podpisy
    Sprzedaż
    • CRM
    • Sprzedaż
    • PoS Sklep
    • PoS Restauracja
    • Subskrypcje
    • Wypożyczalnia
    Strony Internetowe
    • Kreator Stron Internetowych
    • eCommerce
    • Blog
    • Forum
    • Czat na Żywo
    • eLearning
    Łańcuch dostaw
    • Magazyn
    • Produkcja
    • PLM
    • Zakupy
    • Konserwacja
    • Jakość
    Zasoby Ludzkie
    • Pracownicy
    • Rekrutacja
    • Urlopy
    • Ocena pracy
    • Polecenia Pracownicze
    • Flota
    Marketing
    • Marketing Społecznościowy
    • E-mail Marketing
    • SMS Marketing
    • Wydarzenia
    • Automatyzacja Marketingu
    • Ankiety
    Usługi
    • Projekt
    • Ewidencja czasu pracy
    • Usługi Terenowe
    • Helpdesk
    • Planowanie
    • Spotkania
    Produktywność
    • Dyskusje
    • Zatwierdzenia
    • IoT
    • VoIP
    • Baza wiedzy
    • WhatsApp
    Aplikacje trzecich stron Studio Odoo Odoo Cloud Platform
  • Branże
    Sprzedaż detaliczna
    • Księgarnia
    • Sklep odzieżowy
    • Sklep meblowy
    • Sklep spożywczy
    • Sklep z narzędziami
    • Sklep z zabawkami
    Żywienie i hotelarstwo
    • Bar i Pub
    • Restauracja
    • Fast Food
    • Pensjonat
    • Dystrybutor napojów
    • Hotel
    Agencja nieruchomości
    • Agencja nieruchomości
    • Biuro architektoniczne
    • Budowa
    • Zarządzanie nieruchomościami
    • Ogrodnictwo
    • Stowarzyszenie właścicieli nieruchomości
    Doradztwo
    • Biuro księgowe
    • Partner Odoo
    • Agencja marketingowa
    • Kancelaria prawna
    • Agencja rekrutacyjna
    • Audyt i certyfikacja
    Produkcja
    • Tekstylia
    • Metal
    • Meble
    • Jedzenie
    • Browar
    • Prezenty firmowe
    Zdrowie & Fitness
    • Klub sportowy
    • Salon optyczny
    • Centrum fitness
    • Praktycy Wellness
    • Apteka
    • Salon fryzjerski
    Transakcje
    • Złota rączka
    • Wsparcie Sprzętu IT
    • Systemy energii słonecznej
    • Szewc
    • Firma sprzątająca
    • Usługi HVAC
    Inne
    • Organizacja non-profit
    • Agencja Środowiskowa
    • Wynajem billboardów
    • Fotografia
    • Leasing rowerów
    • Sprzedawca oprogramowania
    Przeglądaj wszystkie branże
  • Community
    Ucz się
    • Samouczki
    • Dokumentacja
    • Certyfikacje
    • Szkolenie
    • Blog
    • Podcast
    Pomóż w nauce innym
    • Program Edukacyjny
    • Scale Up! Gra biznesowa
    • Odwiedź Odoo
    Skorzystaj z oprogramowania
    • Pobierz
    • Porównaj edycje
    • Wydania
    Współpracuj
    • Github
    • Forum
    • Wydarzenia
    • Tłumaczenia
    • Zostań partnerem
    • Usługi dla partnerów
    • Zarejestruj swoją firmę rachunkową
    Skorzystaj z usług
    • Znajdź partnera
    • Znajdź księgowego
    • Spotkaj się z doradcą
    • Usługi wdrożenia
    • Opinie klientów
    • Wsparcie
    • Aktualizacje
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Zaplanuj demo
  • Cennik
  • Pomoc

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Księgowość
  • Zapasy
  • PoS
  • Projekt
  • MRP
All apps
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Pomoc

TypeError: _get_valid_digit() takes exactly 2 arguments (1 given) - Odoo v8 to Odoo v10 community

Zaprenumeruj

Otrzymaj powiadomienie o aktywności w tym poście

To pytanie dostało ostrzeżenie
migrationlocalizationodooV8odoov10
1 Odpowiedz
6973 Widoki
Awatar
Alberto

Consider this function:

    @api.multi
    def _validate_rif(self, vat): #, cr, uid, vat, context=None
        '''validates if the VE VAT NUMBER is right
        @param vat: string: Vat number to Check
        returns vat when right otherwise returns False

        '''
        if not vat:
            return False

        if 'VE' in vat:
            vat = vat[2:]

        if re.search(r'^[VJEGP][0-9]{9}$', vat):
            valid_digit = self._get_valid_digit()
            if valid_digit is None:
                return False
            if int(vat[9]) == valid_digit:
                return vat
            else:
                self._print_error(_('Vat Error !'), _('Invalid VAT!'))
        elif re.search(r'^([VE][0-9]{1,8})$', vat):
            vat = vat[0] + vat[1:].rjust(8, '0')
            valid_digit = self._get_valid_digit()
            vat += str(valid_digit)
            return vat
        return False

This is from a migration I'm doing from v8 to v10 community.

The error comes on this line: `valid_digit = self._get_valid_digit()`

This calls for this function:

    @api.multi
    def _get_valid_digit(self, vat): #, cr, uid, vat, context=None
        '''
        @param vat: string
        returns validating digit
        '''
        #vat = ''
        divisor = 11
        vat_type = {'V': 1, 'E': 2, 'J': 3, 'P': 4, 'G': 5}
        mapper = {1: 3, 2: 2, 3: 7, 4: 6, 5: 5, 6: 4, 7: 3, 8: 2}
        valid_digit = None

        vat_type = vat_type.get(vat[0].upper())
        if vat_type:
            sum_vat = vat_type * 4
            for i in range(8):
                sum_vat += int(vat[i + 1]) * mapper[i + 1]

            valid_digit = divisor - sum_vat % divisor
            if valid_digit >= 10:
                valid_digit = 0
        return valid_digit

Every time I click on this button it throws me this:

    Traceback (most recent call last):
    File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 638, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
    File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 675, in dispatch
    result = self._call_function(**self.params)
    File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 331, in _call_function
    return checked_call(self.db, *args, **kwargs)
    File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/service/model.py", line 119, in wrapper
    return f(dbname, *args, **kwargs)
    File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 324, in checked_call
    result = self.endpoint(*a, **kw)
    File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 933, in __call__
    return self.method(*args, **kw)
    File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 504, in response_wrap
    response = f(*args, **kw)
    File "/home/kristian/odoov10/odoo-10.0rc1c-20161005/odoo/addons/web/controllers/main.py", line 866, in call_button
    action = self._call_kw(model, method, args, {})
    File "/home/kristian/odoov10/odoo-10.0rc1c-20161005/odoo/addons/web/controllers/main.py", line 854, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
    File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/api.py", line 681, in call_kw
    return call_kw_multi(method, model, args, kwargs)
    File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/api.py", line 672, in call_kw_multi
    result = method(recs, *args, **kwargs)
    File "/home/kristian/odoov10/gilda/l10n_ve_fiscal_requirements/wizard/search_info_partner_seniat.py", line 64, in search_partner_seniat
    res = self.env['seniat.url']._dom_giver(vat) 
    File "/home/kristian/odoov10/gilda/l10n_ve_fiscal_requirements/model/seniat_url.py", line 226, in _dom_giver
    vat = self._validate_rif(vat)
    File "/home/kristian/odoov10/gilda/l10n_ve_fiscal_requirements/model/seniat_url.py", line 98, in _validate_rif
    valid_digit = self._get_valid_digit()
    TypeError: _get_valid_digit() takes exactly 2 arguments (1 given)

These methods originally looked like this:

    def _get_valid_digit(self, cr, uid, vat, context=None):
        '''
        @param vat: string
        returns validating digit
        '''
        divisor = 11
        vat_type = {'V': 1, 'E': 2, 'J': 3, 'P': 4, 'G': 5}
        mapper = {1: 3, 2: 2, 3: 7, 4: 6, 5: 5, 6: 4, 7: 3, 8: 2}
        valid_digit = None

        vat_type = vat_type.get(vat[0].upper())
        if vat_type:
            sum_vat = vat_type * 4
            for i in range(8):
                sum_vat += int(vat[i + 1]) * mapper[i + 1]

            valid_digit = divisor - sum_vat % divisor
            if valid_digit >= 10:
                valid_digit = 0
        return valid_digit

    def _validate_rif(self, cr, uid, vat, context=None):
        '''validates if the VE VAT NUMBER is right
        @param vat: string: Vat number to Check
        returns vat when right otherwise returns False

        '''
        if not vat:
            return False

        if 'VE' in vat:
            vat = vat[2:]

        if re.search(r'^[VJEGP][0-9]{9}$', vat):
            valid_digit = self._get_valid_digit(cr, uid, vat, context=context)
            if valid_digit is None:
                return False
            if int(vat[9]) == valid_digit:
                return vat
            else:
                self._print_error(_('Vat Error !'), _('Invalid VAT!'))
        elif re.search(r'^([VE][0-9]{1,8})$', vat):
            vat = vat[0] + vat[1:].rjust(8, '0')
            valid_digit = self._get_valid_digit(cr, uid, vat, context=context)
            vat += str(valid_digit)
            return vat
        return False

Any ideas?

0
Awatar
Odrzuć
Awatar
Qutechs, Ahmed M.Elmubarak
Najlepsza odpowiedź

Hi,

I think in this line: valid_digit = self._get_valid_digit()  you forgot to pass the vat argument to the function !

1
Awatar
Odrzuć
Podoba Ci się ta dyskusja? Dołącz do niej!

Stwórz konto dzisiaj, aby cieszyć się ekskluzywnymi funkcjami i wchodzić w interakcje z naszą wspaniałą społecznością!

Zarejestruj się
Powiązane posty Odpowiedzi Widoki Czynność
TypeError: unsupported operand type(s) for +: 'bool' and 'str' - Odoo v8 to Odoo v10 migration Rozwiązane
accounting migration localization odooV8 odoov10
Awatar
Awatar
1
mar 17
13222
TypeError: write() got an unexpected keyword argument 'context' - Odoo v8 to Odoo v10 community Rozwiązane
migration localization odooV8 odoo10
Awatar
Awatar
Awatar
2
lis 17
36235
Migrate Odoo v8 community fork to odoo 10 community
migration git odooV8 odoov10
Awatar
0
mar 17
4003
TypeError: __init__() takes exactly 2 arguments (3 given) - Odoo v8 to Odoo v10 community Rozwiązane
python invoice migration odooV8 odoov10
Awatar
Awatar
1
mar 17
11542
OpenUpgrade and filestore managment
migration odooV8 openupgrade
Awatar
Awatar
1
mar 23
6608
Społeczność
  • Samouczki
  • Dokumentacja
  • Forum
Open Source
  • Pobierz
  • Github
  • Runbot
  • Tłumaczenia
Usługi
  • Hosting Odoo.sh
  • Wsparcie
  • Aktualizacja
  • Indywidualne rozwiązania
  • Edukacja
  • Znajdź księgowego
  • Znajdź partnera
  • Zostań partnerem
O nas
  • Nasza firma
  • Zasoby marki
  • Skontaktuj się z nami
  • Oferty pracy
  • Wydarzenia
  • Podcast
  • Blog
  • Klienci
  • Informacje prawne • Prywatność
  • Bezpieczeństwo Odoo
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo to pakiet aplikacji biznesowych typu open source, które zaspokoją wszystkie potrzeby Twojej firmy: CRM, eCommerce, księgowość, inwentaryzacja, punkt sprzedaży, zarządzanie projektami itp.

Unikalną wartością Odoo jest to, że jest jednocześnie bardzo łatwe w użyciu i w pełni zintegrowane.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now