Drupal Commerce ÁFA probléma (kétszer számolja)

saben képe

Sziasztok!

Azzal a problémával szembesültem, hogy normál űrlapon keresztüli módosítás esetén működik rendesen az ÁFA számítás, viszont ha programból módosítom akkor egyszer az árhoz, meg még egyszer a terméknél is rászámolja az ÁFA-t.

Az alábbi kóddal például 100 Ft-ra szeretném módosítani a termék árát 27% ÁFA-val:

  1. <?php
  2. $product = commerce_product_load($product_id);
  3. $product->commerce_price[LANGUAGE_NONE][0]['amount'] = 100;
  4. $product->commerce_price[LANGUAGE_NONE][0]['currency_code'] = 'HUF';
  5. $product->commerce_hu_vat[LANGUAGE_NONE][0]['value'] = 'hu_standard';
  6. commerce_product_save($product);
  7. ?>

A módosítás sikeresen lefut, viszont a "commerce_price" értéke nem 100 lesz, hanem 127.

sql result

commerce_price_data:

commerce_price_data

A dolog érdekessége, hogy a termék megjelenítésnél pedig a megjelenített ár 161 Ft, ami a számításaim szerint így jön ki:

  1. 100 * 1.27 * 1.27 = 161,29

Tehát kétszer számolja rá az ÁFA-t. Ezzel így találkozott már valaki?

Meglepő, hogy ha felületet használom és ott módosítok árat (100 Ft-ra), akkor nem íródik át 127 Ft-ra és jól számol.

Ezeket a modulokat használom (csak releváns):

- commerce_price
- commerce_eu_vat
- commerce_eu_vat_hu
- commerce_eu_vat_ic (dep)
- commerce_eu_vat_rc (dep)
- commerce_vat
- commerce_vat_field
- commerce_vat_reference

Rules (alap beállítások):

rules

(UI: Sajnálom, szándékomban állt a képekhez linket is rakni, hogy könnyen nagyítható legyen, de nem ment mert a reklámszemétszűrő nem engedte)

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
saben képe

Nem akartam elhinni, de egy nap küzdés után az egész problémát egy Computed Field mező okozta.

Pontosabban ez a rész:

  1. <?php
  2. // [...]
  3. $price = commerce_product_calculate_sell_price($entity);
  4. // [...]
  5. ?>

A számítás lényege, hogy kiszámítsa az egységárat. Mivel az egységárat bruttó árból kell számítani, ezért merészkedtem ezt a függvényt használni. De úgy látszik kár volt, inkább összeadom a komponenseket.

0
0