Ü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ó:
Fórum:
Eleve két dolgot vegyél
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.
Csökönyi Ferenc
köszönöm
Este ki fogom próbálni és megírom az eredményt.
Üdv.
Venczel István
"Csak a puffin ad neked erőt és mindent le bíró akaratot."
ajaj
Ü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?
Üdv.
Venczel István
"Csak a puffin ad neked erőt és mindent le bíró akaratot."
megoldás
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.
Üdv.
Venczel István
"Csak a puffin ad neked erőt és mindent le bíró akaratot."
Bocs, nem tűnt fel, hogy
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.
Csökönyi Ferenc