Wpis z mikrobloga

#programista15k #php #pytanie #pytaniedoeksperta

Może ktoś pomoże. Tym kodem wyciągam cenę netto. Nie podaje dalej kodu bo jest on zbędny ponieważ wyciągam tylko liczbę sztuk i SKU, problem mam tylko z ceną.

KOD

$originalPrice = $od['unit_price_tax_excl'];
Za pomocą którego wyciągam sobie cenę NETTO z #prestashop ona widnieje w formacie 12.186992
Dane wyglądają następująco po wypluciu do txt.

EYSJS854435254543JHDU343543;;5;;12.186992
5 sztuk w prestashop brutto to: całość 74.9500008 jednostkowa 14.990000

Problem pojawia się że ten plik muszę wgrać do ERPA który nie ma api i przyjmuje tylko takie gówno txt pliki. I przy wgrywaniu cena musi mieć 2 miejsca po przecinku czyli w moim wypadku 12.18 i cena musi być ceną netto. I tu pojawia się problem bo erp przy obliczeniu 5x 12.18 = 60,9 i dodaniu 23% VAT wysrywa 74,91 a nie 74,95. Nawet zaokrąglenie ceny 12.186992 do 12.19 powoduje że i tak cena końcowa w erp ma problemy ze względu zmniejszenia miejsc po przecinku. Jak zaokrąglę do 12.19 wychodzi brutto 74,9685 a powinno 74.95
  • 10
@airflame: jesli na precyzji najbardziej ci zależy to mozesz zaminic sobie floaty na inty i pozniej przesunac przecinek

$value=12.186992;
$value_str=strval($value);
$value_int= intval(str_replace(".","",$value_str));
$dot_index = strpos($value_str, ".");
$len=strlen($value_str);
echo($value_int*123*5/pow(10,$len-$dot_index+1));

szybkie to na pewno nie bedzie ale raczej powinienes pozbyc sie problemow z zaokraglaniem
nie pisze w php wiec moze jest jakis lepszy sposob zamiany o ktorym nie wiem
@airflame: błąd nowicjusza nie znającego systemu podatkowego Państwa w którym żyje.

Szybkie rozwiązanie:
- ROUND(liczba, 2)
- przestawienie importu na tryb od brutto

Także zaczynając od merytoryki:

1./ W Polskim prawie istnieją dwa sposoby wystawiania dokumentów i obliczania cen. Obliczanie od brutto oraz obliczanie od netto.
- Obliczanie od brutto = bierzesz sumę brutto i dzielisz ją przez stawkę w celu ustalenia wartości VAT i odejmujesz od sumy żeby uzyskać wartość
  • 0
@Desseres: Dziękuję, wiem jak działa brutto a netto i wiem że tam są te groszowe sprawy, ja się pytam o rozwiązanie tego problemu. Niestety na WZ do tego dinozaura ERP nie mam możliwości zassać BRTUTTO ani więcej niż dwa miejsca po przecinku. W tym jest problem :)
@airflame:

Rozwiązaniem problemu może być:
- zmiana sposobu działania systemu ERP z netto na brutto, większość rozwiązań rynkowych ma to do ustawienia na podstawie przełącznika. Nie podałeś nazwy dinozaura, więc trudno tutaj coś więcej poradzić.
- zmiana sposobu działania prestashop, żeby nie prezentować Klientowi wyliczeń od brutto, tylko od netto. Trzeba nadpisać sporo klas związanych z zamówieniami i towarem.
- zmiana bazy danych i w tabelach przechowujących informację cenowe zmienić DECIMAL(20,6)
Desseres - @airflame: 

Rozwiązaniem problemu może być: 
- zmiana sposobu działania s...

źródło: presta_calc

Pobierz