Hallo Forum,
keine Ahnung ob ich hier richtig bin -ich schildere mal mein Problem:
Die Preise eines Shops basieren auf Katalog-Nettopreisen - der online Preis liegt um einen festen Rabattsatz darunter.
Beispiel:
Katalogpreis: 100
Rabatt: 30
Onlinepreis: 70
Alles kein Problem bei Zahlung auf Rechnung oder Abbuchung etc.
PayPal übernimmt nun aber den Inhalt eines Feldes (price) und nicht das Ergebnis einer Berechnung.
Das heisst ich bräuchte ein FLoatfeld das als Daten den aus Katpreis und Rabatt berechneten Onlinepreis enthält.
Das bei jedem Artikel 'zu Fuß' zu berechnen ist müssig.
Gibts eine Lösung??
Feld mit berechnetem Inhalt
Re: Feld mit berechnetem Inhalt
Keinerlei Tipp ??? - Auch ein Hinweis dass sowas nicht geht wäre hilfreich.
Oder gehts per PHPMyAdmin? Was ist zu berücksichtigen??
Danke!!!
Oder gehts per PHPMyAdmin? Was ist zu berücksichtigen??
Danke!!!
Re: Feld mit berechnetem Inhalt
Hallo,
mich würde das auch interessieren, Gibt es inzwischen jemanden, der sich damit beschäftigt hat?
Kann mir jemand evtl. das setzen von Triggern in der DB erklären?
Viele Grüße
Christian
mich würde das auch interessieren, Gibt es inzwischen jemanden, der sich damit beschäftigt hat?
Kann mir jemand evtl. das setzen von Triggern in der DB erklären?
Viele Grüße
Christian
- Carrear
- webEdition Partner
- Beiträge: 646
- Registriert: Do 17. Jan 2013, 03:02
- Wohnort: Hannover
- Kontaktdaten:
Re: Feld mit berechnetem Inhalt
Feld anlegen. Einen Listview schreiben über alle Artikelobjekte. Im Listview Artikel-Objekt-ID in Variable schreiben, Onlinepreis berechnen und in eine Variable schreiben und dann:
Dokument auf dieser Vorlage anlegen und einmal aufrufen - voilà ^^
VG Martin
Code: Alles auswählen
$obj = new we_objectFile();
$obj->initByID( $GLOBALS['articleID'] );
$obj->setElement( 'Onlinepreis', $GLOBALS['onlinePrice'] );
$obj->we_save();
$obj->we_publish();
VG Martin
Re: Feld mit berechnetem Inhalt
Hallo,
ich habe dein Beispiel
leider klappt das nicht so richtig. Kann mir da vielleicht noch jemand helfen wo ich falsch liege?
Vielen Dank
Christian
ich habe dein Beispiel
wie folgt adaptiert:Carrear hat geschrieben:Feld anlegen. Einen Listview schreiben über alle Artikelobjekte. Im Listview Artikel-Objekt-ID in Variable schreiben, Onlinepreis berechnen und in eine Variable schreiben und dann:
Code: Alles auswählen
$obj = new we_objectFile(); $obj->initByID( $GLOBALS['articleID'] ); $obj->setElement( 'Onlinepreis', $GLOBALS['onlinePrice'] ); $obj->we_save(); $obj->we_publish();
Code: Alles auswählen
<table>
<th>Stipendiat</th>
<th>Alter</th>
<we:listview name="Stipendiaten" type="object" order="Nachname" classid="1">
<we:repeat>
<tr>
<?php
$now = time();
$alter = $now - 'Geburtsdatum';
$obj = new we_objectFile();
$obj->initByID( $GLOBALS['WE_ID'] );
$obj->setElement( 'Alter', $GLOBALS['alter'] );
$obj->we_save();
$obj->we_publish();
?>
<td><we:field name="Nachname" />, <we:field name="Vorname" /></td>
<td><we:field name="Alter" /></td>
</tr>
</we:repeat>
</we:listview>
</table>
Vielen Dank
Christian
- Carrear
- webEdition Partner
- Beiträge: 646
- Registriert: Do 17. Jan 2013, 03:02
- Wohnort: Hannover
- Kontaktdaten:
Re: Feld mit berechnetem Inhalt
cfgerhard hat geschrieben:Hallo,
ich habe dein Beispielleider klappt das nicht so richtig. Kann mir da vielleicht noch jemand helfen wo ich falsch liege?Code: Alles auswählen
<table> <th>Stipendiat</th> <th>Alter</th> <we:listview name="Stipendiaten" type="object" order="Nachname" classid="1"> <we:repeat> <tr> <?php $now = time(); $alter = $now - 'Geburtsdatum'; $obj = new we_objectFile(); $obj->initByID( $GLOBALS['WE_ID'] ); $obj->setElement( 'Alter', $GLOBALS['alter'] ); $obj->we_save(); $obj->we_publish(); ?> <td><we:field name="Nachname" />, <we:field name="Vorname" /></td> <td><we:field name="Alter" /></td> </tr> </we:repeat> </we:listview> </table>
Vielen Dank
Christian
- Was ist "$alter = $now - 'Geburtsdatum';" - Was ist denn da 'Geburtsdatum'? Und die Variable $now, was steht da drin und wie deklarierst du sie?
- Als was für einen Feldtypen hast du denn das Feld "Alter" in der Klasse deklariert? Bei Datumsfeldern musst du aufs Format achten. Ich bin mir nicht ganz sicher aber ich glaube mich zu erinnern, dass man da tatsächlich noch mit Unix Timestamps arbeiten muss?
Re: Feld mit berechnetem Inhalt
Die Variable $now wird mit dem aktuellen Timestamp belegt. Die Deklaration erfolgt durch $now = time(); - Das Geburtsdatum ist ein Datumsfeld (Unix) aus dem Objekt der Klasse Stipendiaten.Carrear hat geschrieben:
- Was ist "$alter = $now - 'Geburtsdatum';" - Was ist denn da 'Geburtsdatum'? Und die Variable $now, was steht da drin und wie deklarierst du sie?
Das Alter soll als Integer in das Objekt geschrieben werden.[*]Als was für einen Feldtypen hast du denn das Feld "Alter" in der Klasse deklariert? Bei Datumsfeldern musst du aufs Format achten. Ich bin mir nicht ganz sicher aber ich glaube mich zu erinnern, dass man da tatsächlich noch mit Unix Timestamps arbeiten muss?[/list]
- Carrear
- webEdition Partner
- Beiträge: 646
- Registriert: Do 17. Jan 2013, 03:02
- Wohnort: Hannover
- Kontaktdaten:
Re: Feld mit berechnetem Inhalt
Ja aber was ist das denn für eine Schreibweise? Also ich kenne das nicht, dass durch 'Geburtsdatum' der Wert einer Variable angesprochen wird (wo ist das Dollarzeichen und wofür die einfachen Anführungszeichen?). Du ziehst da von einem Timestamp einen String ab. Keine Ahnung was das Ergebnis sein kann - kannst dir ja mal $alter ausgeben lassen.
Re: Feld mit berechnetem Inhalt
ja das php-Fragment ist total durcheinander. $alter wird lokal gesetzt und global ausgelesen. Der Kode ist so def. ungültig.
webEdition-Kern-Entwickler
Re: Feld mit berechnetem Inhalt
Hallo,mokraemer hat geschrieben:ja das php-Fragment ist total durcheinander. $alter wird lokal gesetzt und global ausgelesen. Der Kode ist so def. ungültig.
und vielen Dank für eure Hinweise. Könnt ihr mir bitte behilflich sein diesen Knoten zu lösen?
Viele Grüße
ChristiaN
- Carrear
- webEdition Partner
- Beiträge: 646
- Registriert: Do 17. Jan 2013, 03:02
- Wohnort: Hannover
- Kontaktdaten:
Re: Feld mit berechnetem Inhalt
Beantworte bitte erstmal meine Frage. Du willst das alter anhand des heutigen Datums und des Geburtsdatums berechnen. In deinem Code steht:
Wobei du $now mit time() erstellst. In der oben genannten Codezeile steht das "-" (Minus) 'Geburtsdatum'. Also rechnest du den Zeitstempel minus einem String. Das macht doch gar keinen Sinn. Du musst erstmal eine Variable Geburtsdatum deklarieren. Ich würde dann eine Funktion schreiben:
Dann schreibst du da oben in deinem Prozedere erstmal das Geburtsdatum der Person in eine Variable und rufst damit diese Funktion auf.
VG Martin
Code: Alles auswählen
$alter = $now - 'Geburtsdatum';
Code: Alles auswählen
function getAge( $birthdate ) {
$birthday = new DateTime( $birthdate );
$today = new DateTime( date('Y-m-d') );
$age = $birthday->diff( $today );
return $age->format('%y');
}
VG Martin
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste