Odoo w wersji 16 zmienia logikę wyznaczania kursu dla faktury, do wersji 15 podstawą pobierania kursu była data księgowania, a od wersji 16 jest to data faktury. Dodatkowo mechazanim nie działa (wg kodu na 10 grudnia 2022 dla przeliczania ręcznych dzienników księgowych).
Naszym zdaniem takie zmiany nie powinny mieć miejsca w dojrzałych systemach ERP, to wpływa na politykę rachunkowości. Ustawa o rachunkowości wymaga nawet, by zmiany zasad rachunkowości w tym metod wyceny wprowadzać ze skutkiem na pierwszy dzień roku obrotowego, obecnego lub kolejnego. Wprowadzane takich zmian powinno więc zachowywać kompatybilność wsteczną i np. powinien być dodany parametr sterujący jaka data ma być uwzględniana (tak zostało to wykonane w Microsoft Dynamics 365).
Co więcej, nasze przepisy księgowe i podatkowe mówią o odniesieniu kursu do dnia realizacji operacji gospodarczej, czyli dnia faktycznego wydania towarów kupującemu lub dnia wykonania usługi, a faktura jest tylko potwierdzeniem dla finansów i może być wystawiana później.
Po negatywnej opinii działu R&D Odoo na temat funkcjonalności wyznaczania kursów w 2022, nasz moduł Trilab Invoice został w 2022 rozbudowany o możliwość niezależnego wskazywania daty kursu z opcją jego ręcznej zmiany. Domyślnie dla faktur datą tą jest data faktury, w przypadku ręcznych poleceń księgowania też jest ta opcja jednakże w przypadku braku uzupełnienia pobierany jest kurs w oparciu o datę księgowania, z dnia poprzedzającego ten dzień.
To rozwiązanie jest dość powszechne w innych systemach ERP (np. Oracle E-Business Suite) i warto aby taki standard był też w Odoo. Zwłaszcza że zmiana nie jest bardzo skomplikowana w przeciwieństwie do pisania modyfikacji/przeciążenia kodu.
Ale cóż może w kolejnych wersjach Odoo sprawa wielo-walutowści będzie lepiej obsłużona, bo luk jest jeszcze kilka ... , ale o tym w innym poście.
Aktualizacja ze stycznia 2023 - w zakresie działania (a raczej nie działania) automatycznego przeliczenia dla ręcznych zapisów księgową support Odoo potwierdził że jest to zamierzone :
"The behaviour has indeed changed between Odoo 15 and Odoo 16.
But it is the expected behaviour.
Generally, you don't use miscellaneous operations in foreign currencies. And if you do is to make a correction (revaluation of the currency, exchange difference, ...). Therefore, you don't use the exchange rate by default for correction."
wskazując obejście w postaci wyliczenia sobie na boku danych i wprowadzania ręcznego :
pozostawiamy to bez komentarza, będzie więcej prac dla poprawek standardu.