PDA

Zobacz pełną wersję : Virtuemart błąd podsumowania, zaokrąglenia wartości zamówienia.



ika67
14-12-2010, 22:42
Witam wszystkich Forumowiczów,
Virtuemart 1.1.4 i Joomla 1.5.15 błąd sumowania zamówienia przesiadka na Virtuemart 1.1.6 Joomla 1.5.22 i dalej ten sam błąd, a teraz szczegóły:
produkt cena netto: 148.58000 cena brutto: 181.2676 Vat: 22% rabat: 5% cena po przecenie: 172.20. Składamy zamówienie 5 szt x 172.20 = 861.00 zł podatek 155.27 zł po przejściu do zatwierdzenia zamówienia i wyborze formy płatności w kroku 4 z 4

172.20 zł 5 861.02 zł
Do zapłaty: 861.02 zł
Koszty wysyłki: 0.00 zł

--------------------------------------------------------------------------------

Suma: 861.02 zł
Podatek: 155.27 zł


Jak widać virtuemart dodał sobie 2 grosze do sumy zamówienia, żeby zgadzała się kwota Vat.

Jeżeli ktoś z Forumowiczów zechce przetestować taką sytuację u siebie będę wdzięczny. No i oczywiście co z tym fantem zrobić?

Pozdrawiam

palyga007
14-12-2010, 23:07
Jak widać virtuemart dodał sobie 2 grosze do sumy zamówienia, żeby zgadzała się kwota Vat.
Nie dodał.
Dlaczego skoro wyliczenia prowadzisz na liczbach z 4 miejcami po przecinku to nagle odcinasz z 172,20 dwie ostatnie cyfry?
181.2676x0.95x5=861.0211
Matematyka nie kłamie:)

Konfiguracja Virtue Mart
Sklep->Waluta-> Dziesiętne

Co tam masz wpisane?

ika67
15-12-2010, 00:07
Tu mam ustawione 2 miejsca po przecinku, a dodając nowy produkt w polach cena netto i brutto miejsca po przecinku są dodawane z automatu w netto jest 5 miejsc po przecinku, a w brutto, które jest wyliczane z netto są 4 miejsca po przecinku nie ingerowałem w te ustawienia ba próbowałem nawet zmiany w bazie danych zmieniając zakres pola typu decimal 10,5 na 10,2 i dalej ten sam błąd, więc błąd tkwi prawdopodobnie w sposobie wyliczania wartości podsumowania, co ważne przechodząc kolejne kroki potwierdzające zamówienie wszystko się zgadza do momentu przejścia kroku 3 > 4 wtedy dopiero wyliczenie jest błędne. A matematyka nie kłamie zgadzam się w 100%. Być może błąd tkwi w mojej instalacji ale nie chce mi się wierzyć zrobiłem całkiem nową instalkę i to samo, dlatego warto,żeby ktoś inny wykonał test na identycznych danych.
Pozdrawiam:).

palyga007
15-12-2010, 10:22
To nie błąd instalki, tylko jakaś niekonsekwencja w działaniu VM. (Sprawdziłem i u mnie liczy tak samo)
Niestety nie mam teraz możliwości sprawdzenia co jest nie tak. tzn jak obliczane są wartości w pierwszych 3 krokach a jak w 4. (będę się mógł tym zająć dopiero wieczorem)

Ode mnie masz + za zwrócenie się z prośbą o pomoc również na forum VM.
Jeśli poznasz rozwiązanie zanim ja zdążę je znaleźć to też chętnie je poznam

ika67
19-12-2010, 23:29
Ten błąd dyskwalifikuje virtuemart jako platformę do prowadzenia biznesu w internecie.
Syuacja w której klient wpłaca pieniądze w należności nie zgodnej z kwotą wynikającą ze stanu faktycznego zamówienia, a kwotą wyliczoną w podsumowaniu lub e-mailu potwierdzającym zamówienie jest naruszeniem przepisów skarbowych co moż skutkować poważnymi sankcjami karno skarbowymi. Dopóki twórcy oprogramowania virtumart nie poprawią tak poważnych błędów używanie tego oprogramowania grozi poważnymi problmami.

palyga007
24-12-2010, 12:04
Panowie, że tak powiem jest jeszcze śmieszniej...
Naprawdę nie wiem jak do tej pory ten błąd się uchował.
Wracając do tematu.
Dane wpisane na podstawie tych podanych przez @ika67
Tak więc mamy te "magiczne" 2 grosze klikamy dalej i zatwierdzamy nasze zamówienie.

Administrator wchodzi do sklepu i widzi nowe zamówienie, ale uwaga
Kwota w bazie to nie 861.02, ale 861.01 czyli 1 grosz zniknął!


Czyli wychodzi na to, że w VM jest kilka metod wyliczania wartości zamówienia.
1. odpowiada za wyświetlanie kwoty w pierwszych 2-3 krokach (861.00)
2. odpowiada za wyświetlanie kwoty w podsumowaniu (861.02)
3. wpisuje wartości zamówienia do bazy (861.01)

Najprawdopodobniej w systemie jest niekonsekwencja w zaokrąglaniu liczb i każda metoda robi to wedle swego "widzimisię" a raczej widzimisię jej twórcy

palyga007
29-12-2010, 10:28
Zasięgnąłem języka na głównym forum VirtueMart.
I co? i "jajco"

Problem jest znany o czym można się przekonać TUTAJ niestety póki co rozwiązania brak.
Tak jak pisze jeden z developerów


I spent some time on it, and, believe me, this is not easy to fix. It is not "a bug" in the meaning of "a wrong line of code" or a "miscalculation". It requires that we first decide a sensible way of rounding numbers, and then apply it to every VM page that deals with prices. It will require some analysis and surely a solution will not be included in 1.1.6.


Próbowałem zamienić zniżkę procentową na kwotową i wpisać cenę na sztywno, ale to powoduje zaniżenie wartości zamówienia o 1 grosz (860.99);
Być może problem zostanie rozwiązany w 1.1.7...



Linki do problemu:
TUTAJ (http://forum.virtuemart.net/index.php?topic=77137.0)

---------- Post dodany o 10:28 ---------- Poprzedni post był o 10:24 ----------


Najprawdopodobniej w systemie jest niekonsekwencja w zaokrąglaniu liczb i każda metoda robi to wedle swego "widzimisię" a raczej widzimisię jej twórcy
W tym wypadku się pomyliłem.

ika67
29-12-2010, 12:59
I jednym słowem zostajemy z poważnym problemem w postaci na przykład nadpłaty kartą płatniczą w wysokości kilku groszy, które należy klientowi zwrócić. Inna sprawa to nadszarpnięcie wiarygodności i profesjonalności sprzedawcy skoro klient wyrażnie widzi że u nas 2.00 + 2.00 = 4.02.
Być może rozwiązaniem problemu byłoby zastosowanie płatnego modułu one_page_checkout, ale jest to wydatek rzędu 75$, i nie mamy gwarancji jak to się sprawdzi. Jeżeli jednak ktoś z Forumowiczów stosował, lub stosuje ten moduł i zechciałby przetestować omawiany tu problem i podzieliłby się swoimi doświadczeniami będę bardzo wdzięczny.
Pozdrawiam

norbick
04-04-2012, 10:55
Odgrzewam temat, bo sytuacja się nie zmieniła do 1.1.9. Czy ktoś znalazł rozwiązanie?