Witamy!
Forum dla profesjonalistów i entuzjastów systemu Odoo. Dyskusje, porady, opinie, komentarze.
Podliczanie faktury - "UPDATE" button
Panowie,
Trochę irytująca jest konieczność każdorazowo klikać update po zmianie czy dodaniu produktu do faktury.
Pomyślałem że można by to usprawnić i w tym celu dodałem (próbowałem dodać) kawałek kodu (metodę) który w chwili zmiany ilości wywoła metodę "button_tax_reset" która znajduje się w account_invoice, niestety znowu okazało się, że moja wiedza jest za mała by zmusić to do działania.
W account_invoice_line dodałem kilka linii kodu:
@api.multi# nie mam pewności czego powinienem użyć w tej sytuacji .... czy api.one, czy api.multi czy może api.model.
Mógłby mi ktoś to lekko rozjaśnić ?
@api.onchange
def onchange_quantity(self):
self.button_reset_taxes()#wywołuję metodę button_reser_tax
print 'Przeliczam VAT ....'
return True
Ale wszystko co dostaję w wyniku działania tej metody to błąd ...........
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 530, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 567, in dispatch
result = self._call_function(**self.params)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 303, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 300, in checked_call
return self.endpoint(*a, **kw)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 796, in __call__
return self.method(*args, **kw)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 396, in response_wrap
response = f(*args, **kw)
File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 944, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 936, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
return old_api(self, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 363, in old_api
result = method(recs, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 5864, in onchange
record._onchange_eval(name, field_onchange[name], result)
File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 5782, in _onchange_eval
method_res = getattr(self._model, method)(*args)
File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
return old_api(self, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 362, in old_api
recs = self.browse(cr, uid, ids, context)
File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
return old_api(self, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 5224, in browse
return self._browse(Environment(cr, uid, context or {}), ids)
File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 713, in __new__
self.cr, self.uid, self.context = self.args = (cr, uid, frozendict(context))
TypeError: 'float' object is not iterable
Jak to zrobić albo może jak inaczej mogę spowodować, żeby podatek był naliczany automatycznie bez klikania "UPDATE" ?
Twoja odpowiedź
Spróbuj dać znacząca odpowiedź. Jeśli chcesz wypowiedzieć się na temat pytania lub odpowiedzi, po prostu użyj narzędzia komentowania. Proszę pamiętać, że zawsze można zrewidować swoją odpowiedź - nie ma potrzeby odpowiadać na to samo pytanie dwa razy. Także prosimy, nie zapomnij zagłosować - to naprawdę pomaga wybrać najlepsze pytania i odpowiedzi!
Bądź na bieżąco
O tym forum
Narzędzia do pytań
Statystyki
Spytał/a: 09.03.2016, 14:38 |
Oglądano: 2107 razy |
Ostatnia aktualizacja: 17.03.2016, 21:52 |
Gdyby realizacja auto update w v8 była taka prosta to twórcy raczej by to zrobili sami.