Jump to content

Zaokrouhlovani cen


Zeryk
 Share

Recommended Posts

Pri prevodu z puvodni meny na US mi vychazi castky typu 8.62$ ..atd.  Da se nekde nastavit / prepsat nebo pripsat nejaky radek nekam aby ceny byly trochu normalnejsi? Treba 8.60$ nebo 8.70$

Dekuji

 

 

Share this post


Link to post
Share on other sites

.classes/Tools.php

Hledat displayPrice a ps_round.

ps_round zaokrouhluje desetiny.

Když bude 2 zaokrouhlí na 2 desetiny, když bude 1, zaokrouhlí na jednu desetinu.

Když bude zaokrouhleno na jednu desetinu, musí se přidat za výsledné číslo 0.

Takže, tvůj případ bude vypadat nějak takto.

$price = Tools::ps_round($price, 1) . '0';

return displayPrice ($price, $currency);

Share this post


Link to post
Share on other sites

6 hours ago, knacky said:

.classes/Tools.php

Hledat displayPrice a ps_round.

ps_round zaokrouhluje desetiny.

Když bude 2 zaokrouhlí na 2 desetiny, když bude 1, zaokrouhlí na jednu desetinu.

Když bude zaokrouhleno na jednu desetinu, musí se přidat za výsledné číslo 0.

Takže, tvůj případ bude vypadat nějak takto.

$price = Tools::ps_round($price, 1) . '0';

return displayPrice ($price, $currency);

diky za odpoved.

public static function displayPrice($price, $currency = null, $no_utf8 = false, Context $context = null)
    {
        if (!is_numeric($price)) {
            return $price;
        }
        if (!$context) {
            $context = Context::getContext();
        }
        if ($currency === null) {
            $currency = $context->currency;
        } elseif (is_int($currency)) {
            $currency = Currency::getCurrencyInstance((int)$currency);
        }

displayPrice tam mam jeste v dalsich dvou pripadech a predpokladam ze stejne tak jako v tomto , to nebude. Nebot tam o zaokrouhlovani neni ani radka.

ps_round je tam jeste vickrat v ruznych radkach , ale prepodkladam tento je ten ?

 $price = Tools::ps_round($price, $c_decimals);

prepsal jsem to dle navodu a misto sveho webu jsem dostal bilou stranku ;-)

tak to asi taky nebude ono.

Zapomel jsem napsat , ze mam PS.16.1.24

tam to bude asi jinak nez u noveho 1.7

 

 

 

Share this post


Link to post
Share on other sites

3 hours ago, knacky said:

if (!is_numeric($price)) {
       $new_price = Tools::ps_round($price,1).'0';     

        return $new_price;
 }

Nee, takto to nebude fungovat.

V Prestashop 1.6 je to úplně jinak.

Share this post


Link to post
Share on other sites

Tak už chystám modul k prodeji i pro Prestashop 1.6

Možnosti nastavení:

  • zobrazit cenu bez desetin / včetně desetin
  • zaokrouhlit cenu podle počtu desetin (0, 1, 2)
  • vybrat jazyk pro který bude platiti pravidlo
  • vybrat měnu pro kterou bude platit pravislo
  • vybrate obchod (multistore) pro který bude platit pravidlo
  • zobrazení měny před / za cenou
  • oddělovač tisíců
  • oddělovač desetin
  • jazyk prostředí CS | EN (lze překládat i do jiných jazyků)

Dostupný bude zde:

https://e-apps.eu/cs/katalog/69-zobrazte-ceny-bez-desetinnych-mist-nebo-ceny-zaokrouhlete-pro-jednotlive-e-shopy-meny-a-jazyky.html

Ukázky modulu:

main-cs.thumb.png.1512c13a798173bcd02515d5e5d8cdd0.png

=================================================================

0-cs.thumb.png.9fca85e6031b638d43182da63b52e6f9.png

=================================================================

1-cs.thumb.png.4d2aed76984ef519c2508cd926c6b40a.png

=================================================================

2-cs.thumb.png.31d86e3caddb2e56ab74b9240753a477.png

Edited by Guest (see edit history)

Share this post


Link to post
Share on other sites

1 hour ago, Guest said:

Tak už chystám modul k prodeji i pro Prestashop 1.6

Možnosti nastavení:

  • zobrazit cenu bez desetin / včetně desetin
  • zaokrouhlit cenu podle počtu desetin (0, 1, 2)
  • vybrat jazyk pro který bude platiti pravidlo
  • vybrat měnu pro kterou bude platit pravislo
  • vybrate obchod (multistore) pro který bude platit pravidlo
  • zobrazení měny před / za cenou
  • oddělovač tisíců
  • oddělovač desetin
  • jazyk prostředí CS | EN (lze překládat i do jiných jazyků)

Dostupný bude zde:

https://e-apps.eu/cs/katalog/69-zobrazte-ceny-bez-desetinnych-mist-nebo-ceny-zaokrouhlete-pro-jednotlive-e-shopy-meny-a-jazyky.html

Ukázky modulu:

main-cs.thumb.png.1512c13a798173bcd02515d5e5d8cdd0.png

=================================================================

0-cs.thumb.png.9fca85e6031b638d43182da63b52e6f9.png

=================================================================

1-cs.thumb.png.4d2aed76984ef519c2508cd926c6b40a.png

=================================================================

2-cs.thumb.png.31d86e3caddb2e56ab74b9240753a477.png

toto zaokrouhlovani je v zakladni vybave PS1.6  ( preferences - general ) , jde o to ze kdyz dam zaokrouhleni na 1 des. tak cena vypada takto 7.1$ a ne 7.10$  , Ja mam treba cenu 7.13$ a chci aby to melo porad 2 desetiny digits ale zaokrouhlene. tz. 7.10$  ...nebot 7.1$ se mi proste esteticky nelibi.

Osobni vec, ale neni zas tak dulezita abych kvuli tomu specialne kupoval modul.

Kazdopdne dekuji.

Share this post


Link to post
Share on other sites

Zaokrouhlování tam je, ale defaultně pro všechny měny a jazyky.

Chápu.

V PS 1.6 to opravdu není jednoduché.

Funkce displayPrice jede na formátech podle desetiné (tečky, čárky),  oddělovače tisíců (tečka, čárka) .....

Takže když dáš round pro $price, vyjde ti nesmysl, nebo se nezobrazí cena vůbec.

Řešil jsem to modulem, abych získal cenu a formát a poté upravil. V případě zadání zaokrouhlení na jednu desetinu doplní nulu atd.

Jde o část:

switch ($c_format)
		    {
			    case 1:
				    $ret = $c_char.$blank.number_format($price, $c_decimals, '.', ',');
				    break;
			    case 2:
				    $ret = number_format($price, $c_decimals, ',', ' ').$blank.$c_char;
				    break;
			    case 3:
				    $ret = $c_char.$blank.number_format($price, $c_decimals, ',', '.');
				    break;
			    case 4:
				    $ret = number_format($price, $c_decimals, '.', ',').$blank.$c_char;
				    break;
			    case 5:
				    $ret = $c_char.$blank.number_format($price, $c_decimals, '.', "'");
				    break;
		    }

V PS 1.7 jsem to vyřešil celkem rychle.

Modul pro PS 1.7 už mám hotový cca. 3/4 roku a je celkem prodejný.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More