Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Page 1 of 2
Tizedesjegyek kikapcsolása az árban
 
Bijesz
Jr. Member
 
Total Posts:  14
Joined:  2008-07-07
Hungary
 

Sziasztok!

Biztos tapasztaltátok már, hogy alapesetben a két tizedesjeggyel kezelli az árakat a magento.
Namármost ugye a magyar valóságban erre nincs szükség.
Elkezdtem keresni hol lehetne belenyúlni nem sok sikerrel.

A toCurrency függvényig jutottam de ha jól látom itt csak a pénznem szimbolum kerül beállításra.
Találtam még elötte egy a getPrice fv-t ahol a kerekítést levettem 2-ről 0-ra de a kijelzésbe ez nem szólt bele.

Valaki foglalkozott már ezzel, vagy van aki ismeri a kód architekrúrát annyira, hogy tudná hol lenne érdemes kutakodni?

 
Magento Community Magento Community
Magento Community
Magento Community
 
Kimura
Member
 
Avatar
Total Posts:  48
Joined:  2008-04-21
Hungary
 

Szia
a megoldás:

fix decimal price bug(convert to integer)

Step 1:

change price data type in DB by exec these sql statement
UPDATE `eav_attribute` SET `attribute_model` = NULL ,
`backend_model` = ‘’,
`backend_type` = ‘int’,
`backend_table` = ‘’,
`frontend_model` = ‘’,
`frontend_input` = ‘price’,
`frontend_label` = ‘price’,
`frontend_class` = ‘’,
`source_model` = ‘’,
`default_value` = ‘’ WHERE `attribute_id` =99 LIMIT 1 ;
then exec
insert into catalog_product_entity_int (entity_type_id, attribute_id, store_id, entity_id, value)
select entity_type_id, attribute_id, store_id, entity_id, value from catalog_product_entity_decimal where attribute_id=99;

Step 2:
change currencyFormat in /lib/zend/locale/data/fa.xml to <currencyFormats>
<currencyFormatLength>
<currencyFormat>
<pattern references="R046">#,##0 ¤;’‪’-#,##0’‬’ ¤</pattern>
</currencyFormat>
</currencyFormatLength>
</currencyFormats>

step 3:
delete from catalog_product_entity_decimal where attribute_id=99; in /lib/zend/currency.php line 63: change
‘precision’ => 2, // precision for currency
to
‘precision’ => 0, // precision for currency

 
Magento Community Magento Community
Magento Community
Magento Community
 
Bijesz
Jr. Member
 
Total Posts:  14
Joined:  2008-07-07
Hungary
 

Kimura örök hála!
Ezek szerint meg volt a megoldás csak nem találtam.
Köszönöm szépen.

 
Magento Community Magento Community
Magento Community
Magento Community
 
Pro Digital
Sr. Member
 
Avatar
Total Posts:  110
Joined:  2007-12-05
Hungary
 

question Nekem egy olyanom van hogy most vissza kell kapcsolnom…

de elvileg a step2 és step3 visszaírása megoldotta…

 
Magento Community Magento Community
Magento Community
Magento Community
 
Lazarevics
Jr. Member
 
Total Posts:  3
Joined:  2009-10-28
Debrecen
 

1. Keresd meg a Currency.php -t
2. keresd ezt a részt:

protected $_options = array(
        
'position'  => self::STANDARD,
        
'script'    => null,
        
'format'    => null,
        
'display'   => self::NO_SYMBOL,
        
'precision' => 2,
        
'name'      => null,
        
'currency'  => null,
        
'symbol'    => null

3.  ‘precision’ => 0,

nulla, ha nem akarsz tizedesjegyet wink

Tudom hogy nem mai téma, de még jól jöhet bárkinek

 
Magento Community Magento Community
Magento Community
Magento Community
 
grakmaso
Jr. Member
 
Total Posts:  19
Joined:  2009-02-21
 

Hello,

Én ezt használom hozzá: Currency management

Itt pénznemenként tudod állítani, a tizedesjegyeket.

Ãœdv,
grakmaso

 
Magento Community Magento Community
Magento Community
Magento Community
 
BaluErtl
Jr. Member
 
Total Posts:  11
Joined:  2009-09-03
 

@Lazarevics:

Lazarevics - 07 December 2009 12:28 PM

1. Keresd meg a Currency.php -t

Tetszik ez a megoldás, de pontosan melyik Currency.php -re gondolsz? A teljes /app/code/Mage -ben 9 ilyen nevű van, melyik moduléban keressem? Nálam 1.3.2.4 a Magento-verzió, Nálad?

Köszi, Balu

 
Magento Community Magento Community
Magento Community
Magento Community
 
Darken
Jr. Member
 
Total Posts:  11
Joined:  2008-11-05
 
balu.ertl - 14 January 2010 01:41 AM

@Lazarevics:

Lazarevics - 07 December 2009 12:28 PM
1. Keresd meg a Currency.php -t

Tetszik ez a megoldás, de pontosan melyik Currency.php -re gondolsz? A teljes /app/code/Mage -ben 9 ilyen nevű van, melyik moduléban keressem? Nálam 1.3.2.4 a Magento-verzió, Nálad?

Köszi, Balu

Szia,

lib/Zend/currency.php

Egyébként ez a megoldás az 1.4.0.1-gyel már nem működik.

A lib/Zend/Locale/Data/hu.xml -t a <currencyFormats> résznél hiába módosítom ezek alapján: http://framework.zend.com/manual/en/zend.locale.parsing.html#zend.locale.number.localize.table-1 sehogy sem sikrül kivenni a ,00-t az árból.

Ha valakinek van ötlete, írja meg smile

Előre is köszönöm.

 
Magento Community Magento Community
Magento Community
Magento Community
 
Darken
Jr. Member
 
Total Posts:  11
Joined:  2008-11-05
 

Megoldva:

lib/Zend/currency.php -ban

ezt kell megkeresni:

$value = Zend_Locale_Format::toNumber($value, array(’locale’ => $locale,
‘number_format’ => $format,
‘precision’ => $options[’precision’]));

elé:

if(in_array($symbols == ‘HUF’, $symbols)) $options[’precision’] = 0;

 
Magento Community Magento Community
Magento Community
Magento Community
 
Geza
Jr. Member
 
Avatar
Total Posts:  18
Joined:  2007-09-03
Budapest
 

Sajnos a fenti javaslat sem müxik 1.4.0.1 esetében. (mint ahogy a locale data xml-ek hekkelése sem)

Az alábbi kód viszont stabilan jó,és több pénznem együttes használata esetén is simán alkalmazható:
Az alábbi file-t kell hozzá szerkeszteni:

App/Code/Core/Mage/Core/Model/Store.php nálam a 750 sornál van ez a funkció.

public function formatPrice($price$includeContainer true)
{
  
if ($this->getCurrentCurrency()) {
    
if($this->getCurrentCurrencyCode() == "HUF"{
      
return $this->getCurrentCurrency()->format($price, array('precision'=>0), $includeContainer);
    
}
   
else {
      
return $this->getCurrentCurrency()->format($price, array(), $includeContainer);
    
}
  }
  
return $price;
}

Több pénznem megjelenítését a || operátor hozzádásával lehet itt definiálni. smile

 
Magento Community Magento Community
Magento Community
Magento Community
 
Pro Digital
Sr. Member
 
Avatar
Total Posts:  110
Joined:  2007-12-05
Hungary
 

Még egy aprósággal kiegészíteném:

/app/code/core/Mage/Sales/Model/Order.php fájlban:

1280. sor

return $this->formatPricePrecision($price0$addBrackets);

1325. sor

return $this->formatBasePricePrecision($price0);

Így a rendelés visszaigazolásokból is eltűnik a tizedes.

GT

 
Magento Community Magento Community
Magento Community
Magento Community
 
caterox
Jr. Member
 
Total Posts:  11
Joined:  2009-01-08
 

Nekem Geza megoldása nem akar működni…

Magento ver. 1.4.0.1
Joomla ver. 1.5.17
Magebridge ver. 1.4.1665

http://aborklub.hu/bor

Van valakinek ötlete? A fentiek közül is kell bele valami, vagy magában is működnie kellene?

Köszi előre is a segítséget.

 
Magento Community Magento Community
Magento Community
Magento Community
 
caterox
Jr. Member
 
Total Posts:  11
Joined:  2009-01-08
 

Háhá balf*sz vagyok.

A local-ba is beraktam egy régebbit, ezt meg felülírtam a core-ban, dehát a local-t olvasta be…
Hű, najólvan, ennek örülök.

Mindent a local-ba…

Kösz Geza, megy frankón. (bocs a két majdnem off postért, ha valakit szúr nyesse le nyugodtan)

 
Magento Community Magento Community
Magento Community
Magento Community
 
sanya71
Member
 
Total Posts:  32
Joined:  2009-05-18
 

Ez egy kinlodás ,megcsináltam az itt leirtakat el is tünt a tizedesjegy de ha végigmegyek a pénztári folyamaton a végén a rendelés leadása után nem történik semmi ,csak visszajutok a pénztári folyamat elejére és a termékek ugyanugy ott vannak a kosárba semmi hogy kösz a vásárlást ,se email nem jön,visszacsináltam a megadott php fájlokat de minden maradt így ,ürítetem a var/cachet de semmi változás ,eddig legalább müködött,már nem merek semmibe belenyúlni,mi lehet a gond?vagy hadjak fel a magentoval?vagy békéljek meg vele hogy ez a legrosszabb webshop motor

 
Magento Community Magento Community
Magento Community
Magento Community
 
czettnersandor
Jr. Member
 
Avatar
Total Posts:  2
Joined:  2010-03-26
 

Köszönöm, ez bevált. A nullát nem akarta elfogadni az admin felületen, a megoldás itt van:
app/code/local/CurrencyManagement/AdminCurrency/Model/System/Config/Source/CurrencyDigits.php fájlban a ‘zero’ stringet 0-ra (integer) kell állítani.

grakmaso - 11 December 2009 10:30 AM

Hello,

Én ezt használom hozzá: Currency management

Itt pénznemenként tudod állítani, a tizedesjegyeket.

Ãœdv,
grakmaso

 
Magento Community Magento Community
Magento Community
Magento Community
 
Dave_83
Jr. Member
 
Avatar
Total Posts:  26
Joined:  2009-06-25
 

Hellósztok!

Nekem ezzel sikerült a tizedesjegyet megszüntetni:

app/code/core/Mage/Core/Model/Store.php fájl átmásolni /app/code/local/Mage/Core/Model/ helyre (hogy a frissítések után is megmaradjon), majd:

public function formatPrice($price$includeContainer true)
{
  
if ($this->getCurrentCurrency()) {
    
if($this->getCurrentCurrencyCode() == "HUF"{
      
return $this->getCurrentCurrency()->format($price, array('precision'=>0), $includeContainer);
    
}
   
else {
      
return $this->getCurrentCurrency()->format($price, array(), $includeContainer);
    
}
  }
  
return $price;
}

Viszont ezzel is VOLT egy baki: ha egy terméknek egyedi opciói voltak, amik közül választani lehetett, és az árat is növelték, akkor az ár visszaugrott tizedesjegyűre. ( Pl. egy 1000 Ft-os terméknél kiválasztottuk, hogy krómozás: +400 Ft, akkor 1400.00 Ft lett az ár, felesleges tizedesjeggyel). Erre megoldás:

js/varien/product.js:

Keressük meg:

.....
Product.OptionsPrice.prototype {
    initialize
: function(config{
        this
.productId          config.productId;
        
this.priceFormat      config.priceFormat;
        
this.includeTax        config.includeTax;
        
this.defaultTax         config.defaultTax;
        
this.currentTax         config.currentTax;
.....

Majd írjuk át erre:

.....
Product.OptionsPrice.prototype {
    initialize
: function(config{
        this
.productId          config.productId;
       
this.priceFormat      {"pattern":"%s\u00a0","precision":0,"requiredPrecision":0,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":1};
        
this.includeTax        config.includeTax;
        
this.defaultTax         config.defaultTax;
        
this.currentTax         config.currentTax;
.....

Sok sikert! smile

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top
Page 1 of 2