computed field képlet

venis képe

Üdv.
Még mindig webáruházzal van egy kis gondom. mégpedig: a nagykertől csak a nettó beszerzési árat kapom meg. Namármost nekem ezt meg kellene szoroznom x-szel(haszon) és 1,27-tel (ÁFA). Olvastam a computed fieldről hogy vele meg lehet csinálni. Csak annyi baj van hogy sehol nem találok egy példát hogy hogy csináljam. Sajnos nem vagyok php programozó (valószínűleg ez a baj). Tudna nekem valaki egy példát írni hogy el tudjak rajta indulni?Előre is köszönöm.

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

Eleve két dolgot vegyél figyelembe:
A computed field értékét PHP kóddal beállítva a termék mentésekor létrejön, amit akarsz.
Azonban az ÁFA kulcs módosítása - mivel a computed field nem része a webáruház modulnak - nem fogja ezt módosítani, tehát erre egy szabályt is létre kell hozni.

A mentéskor a következőképpen kell megalkotni a php-kódot:
- ne tedd a szokásos <? ?> jelek közé
- szükséged van a haszonkulcsra és az ÁFA kulcsra. Az ÁFA kulcsot le kell kérned egy db_query-vel az adatbázisból. A haszonkulcs esetében kérdés, hogy globális haszonkulcs van, vagy termékfüggő.
Az előbbi esetben a haszonkulcs is valahol tárolva van, onnan kell lekérni. Ha egyedi, akkor nyilván egy CCK mezőben adod meg, ezt kell használni az alábbi formában:
$haszonkulcs = $node->haszonkulcs[0]['value'];

Ezek alapján a kívánt eredmény:

$brutto = $netto * $haszonkulcs * $afa ;

A kapott eredményt pedig így kell visszaadni:
$node_field[0]['value'] = $brutto;

Összefoglalva tehát valahogy így nézne ki:

$query_afa = db_query("SELECT ..... ");
$afa = db_result($query_afa, 0, 'mezo' ; /* a pontos adatok az adatbázisból kinézhetőek; */
$haszonkulcs = $node->haszonkulcs[0]['value']; /* amennyiben a terméjkhez CCK mezőben kapcsolódik a haszonkulcs */
$brutto = $netto * $haszonkulcs * $afa ; /* nyilván a megfelelő kerekítési függvénnyel kiegészítve*/
$node_field[0]['value'] = $brutto;

Remélem, így sikerül elindulni.

0
0

Csökönyi Ferenc

venis képe

Este ki fogom próbálni és megírom az eredményt.

0
0

Üdv.
Venczel István

"Csak a puffin ad neked erőt és mindent le bíró akaratot."

venis képe

Üdv.
Nekem ez nem nagyon akar összejönni. (nem vagyok programozó)
A következő mezőim vannak:
field_nettonagykerar: beszerzési ár (egész szám)
field_haszonkulcs: haszonkulcs (decimális)
field_brutto: bruttó eladási ár (számított)

A haszonkulcs helyett akár egy számot is használhatunk (pl. 1,5)
A következőt írtam be:

$haszonkulcs = $node->haszonkulcs[0]['value'];
$nettonagykrar = $node->nettonagykrar[0]['value'];

$brutto = $nettonagykrar * $haszonkulcs;
$brutto[0]['value'] = $brutto;

de valamiért nem megy? Kérhetnék egy kis segítséget?

0
0

Üdv.
Venczel István

"Csak a puffin ad neked erőt és mindent le bíró akaratot."

venis képe

Sikerült megoldanom. A következő kódot használtam:
$entity_field[0]['value'] =

array_pop(array_pop(field_get_items($entity_type, $entity, 'field_nettonagykerar'))) *

array_pop(array_pop(field_get_items($entity_type, $entity, 'field_haszonkulcs')));

Most már csak azt kell megoldanom hogy az így kiszámított értéket ne önmagának adja vissza hanem a sell_price mezőnek, de ez már egy új topic lesz.

0
0

Üdv.
Venczel István

"Csak a puffin ad neked erőt és mindent le bíró akaratot."

Phoere képe

Bocs, nem tűnt fel, hogy írtál ide.
Az volt szerintem a hiba, hogy $brutto[0]['value'] = $brutto; sorral zártál.
A $brutto így egyszerre volt egy szám típusú változó, illetve tömb, ami nem lehetséges, illetve így nem ismeri fel a visszaadott értéket.

$node_field[0]['value'] = $brutto;
Ezzel kellett volna lezárni és átadni az értéket.

0
0

Csökönyi Ferenc