Witamy!
Forum dla profesjonalistów i entuzjastów systemu Odoo. Dyskusje, porady, opinie, komentarze.
Kwota słownie po polsku
witam poszukuje sposobu na kwote słownie na fakturze, mozecie podsunąc proste w implementacji rozwiązania?
Mam nadzieję, że ten opis nie wprowadzi większego chaosu niż aktualnie panujący :) i pozwoli ci utworzyć niezbędne elementy potrzebne do konwersji liczb na tekst:
Zależnie od tego czy chcesz aby odbywało się to ręcznie, ponieważ w tej wersji tekstowa wersja ceny/wartości będzie się pokazywała w chwili wprowadzenia lub zmiany tej wartości/ceny. Jeśli chchesz natomiast aby działo się to automatycznie musisz dopisać linie 2 i 5 nieco inaczej.
Więc ....
0. dopisać na początku sale.py(bo tu będziemy modyfikować)
from openerp.tools import amount_to_text_en
from openerp.tools.amount_to_text_en import amount_to_text
1. utworzyć definicję onchange_dla-pola-w-którym-wyświetlana-jest-suma w pliku .py Miejsce gdzie powinna znajdować się definicja zależy od tego gdzie chcesz umieścić pole/gdzie ma być wyświetlana jego wartość (odpowiednia klasa)
<pre>
1. def onchange_pole-suma(self, cr, uid, ids, pole-suma):
2. text_suma = amount_to_text_en.amount_to_text(pole-suma, 'en', '£')
#tu konieczne będzie albo przerobienie kodu w pliku amount_to_text_en.py lub utworzenie nowego np amount_to_text_pl.py z odpowiednio zmodyfikowanym kodem. Angielska składnia jest nieco inna niż polska ;) i bez modyfikacji będzie ci wyświetlało np jeden hundred zamiast 'Sto'
3. print '== text_suma ====================================================================='
4. print ' ',text_suma
5. return {'value': {'text_suma': text_suma}}
</pre>
2. utworzyć pole w którym będzie wyświetlana przekonwertowana wartośćw postaci tekstu.
<pre>
'text_suma': fields.char('Słownie:'), #stare API
text_suma = fields.Char('Słownie') #nowe API
</pre>
#.
w pliku .xml jeśli chcesz wyświetlić na ekranie musisz dopisać w odpowiednim miejscu
<pre>
<field name="pole-suma" on_change="onchange_pole-suma(pole-suma)"/>
</pre>
Jeśli coś opisałem nie tak jak należy proszę mnie poprawić :)
W kwestii umieszczenia pola text_suma na fakturze, musisz znaleźć plik/pliki fakturyt (xml/xsl - nie sprawdzałem jeszcze) i dopisać to pole w odpowiednim miejscu.
Dobra dotarłem do takiego postu na forum jednak, mam problem z tym w jakim modelu mam dodać to pole i w jakim widoku
link -> https://www.odoo.com/forum/help-1/question/detailed-procedure-to-do-the-number-to-text-conversion-10504
może inaczej, chodzi mi o to który model i widok mam w edytować, w module invoice i chodzi o wersje 9.0 podesłałeś mi do 7.0.....
Podesłałem od 8.0, w 9.0 sytuacja jest podobna, zerknij na pliki amount_to_text.py w repozytorium wersji 9: https://github.com/odoo/odoo/tree/9.0/openerp/tools
wiesz jak by takie rzeczy mi pomogly to bym nie pytal sie tutaj... moze naprowadzic czy będziesz podbijał tylko licznik postów.... przez naprowadzenie mam na mysli jakie pliki w module invoice mam wyedytowac.....
Nie powiem abyś był zbyt uprzejmy dla kogoś, kto stara Ci się pomóc. Mimo to "nabiję licznik dalej". Jeśli nie znasz się na programowaniu, z tą sprawą sobie nie poradzisz. Jeśli się znasz.. to wskazałem Ci drogę. Pliki: definicje widoku faktury znajdziesz w pliku /addons/account/views/report_invoice.xml (widok typu qweb o nazwie report_invoice), wywołania tego raportu w pliku /addons/account/account_report.xml. Dodanie jednak obsługi kwoty słownie wymaga utworzenia własnej obsługi zamiany kwoty na słowa w języku polskim i stworzenia nowej, własnej obsługi w kodzie pythona wskazanego raportu.
niestety nadal stoje w miejscu i nie mogę tego wykorzystać, z edycja pliku z en czy fr na polski dam rade ale nadal nie wiem jak to wyświetlić na fakturze..... zapewne na instrukcje krok po kroku nie ma co liczyć?
W międzyczasie zagłębiłem się lekko w temat, nawet nie wiedziałem, że takie coś jest dostępne :)
OK, rozpykałem, prosta sprawa, pięknie pokazuje sumy w postaci tekstu :)
Pozostało tylko przepisać słówka w amount to text en albo utworzyć nowy plik amount to text pl :)
No i niewielka przeróbka kodu z uwagi na Hundreds :) ale to betka. W przypadku przepisania jedynie słowników jeśli wprowadzisz 156 wyświetli "Jeden Hundred Pięćdziesiąt Sześć" :)
Napisz mi gdzie chcesz mieć kwotę słownie, dokładnie w którym miejscu to ci przygotuję mały manual krok po kroku co trzeba zrobić :)
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: 10.02.2016, 10:31 |
Oglądano: 4462 razy |
Ostatnia aktualizacja: 14.02.2016, 20:45 |
Może ten wątek będzie ci bardziej pomocny: https://www.odoo.com/forum/help-1/question/conversion-of-amount-to-text-in-openerp-43765