amilo Posted November 16, 2011 Report Share Posted November 16, 2011 Hi, wir würden im Exportmanager gerne das geplante Lieferdatum zu jeder Bestellung ausgeben lassen. Hierfür müsste ja "einfach" das Bestelldatum mit der Lieferzeit addiert werden. Hat hierzu vielleicht jemand eine Idee? MfG. Hansen Link to comment Share on other sites More sharing options...
renejahn Posted November 16, 2011 Report Share Posted November 16, 2011 hallo amilo -> hatte gerade das smarty manual zur hand ... 'math' ermöglicht es dem Designer, mathematische Gleichungen durchzuführen. Alle numerischen Template-Variablen können dazu verwendet werden und die Ausgabe wird an die Stelle des Tags geschrieben. Die Variablen werden der Funktion als Parameter übergeben, dabei kann es sich um statische oder um Template-Variablen handeln. Erlaubte Operatoren umfassen: +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans und tan. Konsultieren Sie die PHPDokumentation für zusätzliche Informationen zu dieser Funktion. Falls Sie die spezielle 'assign' Variable übergeben, wird die Ausgabe der 'math'-Funktion der Template- Variablen mit dem selben Namen zugewiesen anstatt ausgegeben zu werden. hoffe das hilft dir -> mfg rene Link to comment Share on other sites More sharing options...
amilo Posted November 16, 2011 Author Report Share Posted November 16, 2011 Hi, mit dem math equation hatte ich mich schon beschäftigt. Einfach nur die Lieferzeit + Tagesdatum auszurechnen ist auch kein Problem, nur kommen dann Ergebnisse wie 38.11.2011 raus, da nicht in den nächsten Monat reingerechnet wird. MfG. Hansen Link to comment Share on other sites More sharing options...
giller Posted November 16, 2011 Report Share Posted November 16, 2011 denke drann in unix zu rechnen Link to comment Share on other sites More sharing options...
renejahn Posted November 16, 2011 Report Share Posted November 16, 2011 auf die schnelle fällt mir jetzt nur folgende idee ein ... einfach ein kleines plugin bauen oder per php ins template rein -> mit php das datum berechnen und wieder zurück ins template geben, ich denke 2-3 stunden sollte das ganze stehen ... die smarty math funktionen soll etwas viel speicher verbrauchen - ich denke php währe da besser Link to comment Share on other sites More sharing options...
oldbear Posted November 16, 2011 Report Share Posted November 16, 2011 hi, geht doch direkt mit php im Template des Export-Managers; wie man sich die Lieferzeit holt, hab ich hier schon gepostet, dann nur noch addieren und das wars ... Grüsse Link to comment Share on other sites More sharing options...
amilo Posted November 16, 2011 Author Report Share Posted November 16, 2011 Hi, und schon mal danke für alle Antworten. @oldbear: Das ziehen der Variablen ist kein Problem. Er rechnet nur falsch. Wenn das Bestelldatum z.B. der 25.11.2011 ist und die Lieferzeit 14 Tage beträgt, dann ist das Ergebniss im Export Manager der 39.11.2011 und nicht der 09.12.2011. Ich überleg jetzt schon das ganze einfach mit $smarty.now zu lösen, aber so richtig gefallen tut mir das nicht. Oder ich stehe hier gerade richtig auf dem Schlauch. ;-) MfG. Hansen Link to comment Share on other sites More sharing options...
cs24com Posted November 17, 2011 Report Share Posted November 17, 2011 Hi, versuchs doch mal mit der strtotime() Funktion. Hier kannst du einsetzen was du brauchst, z.B. 1 Woche, 2 Tage 5 Stunden, etc. Gib den Wert an eine Variable. Mittels {if} Funktion kannst du dein Shop-Lieferdatum dann mit dem "Variablen-Datum" abgleichen und entsprechend anzeigen lassen. Du braucht halt für jedes Shop-Lieferdatum ein separates Variablendatum. Ich hoffe, dass ich nicht zu umständlich denke. Bitte korrigieren, falls dem so ist. Gruß Alex. Link to comment Share on other sites More sharing options...
amilo Posted November 17, 2011 Author Report Share Posted November 17, 2011 Hi, @cs24com: $smarty.now wäre prinzipiell das gleiche nur ohne php. Am liebsten wäre mir das ganze aber mit der Variable {$data.order_data.date_purchased} zu berechnen, da das ja noch am genauesten ist. Momentan sieht´s so aus: {$smarty.now+$delivery_time*24*60*60|date_format:'%d.%m.%Y'}[/code] $delivery_time wird durch verschiedene Abfragen befüllt. MfG. Hansen Link to comment Share on other sites More sharing options...
cs24com Posted November 19, 2011 Report Share Posted November 19, 2011 Hi, nur ´ne Verständinsfrage... welcher Wert erhält denn die Variable $delivery_time ? (z.B. 14 für 14 Tage oder ein Datum, etc.) - Wie gesagt, nur für mich zum Verständis, weil ich mir die seltsame Zeitangabe (38.11.2011) nicht erklären kann Gruß Alex Link to comment Share on other sites More sharing options...
amilo Posted November 19, 2011 Author Report Share Posted November 19, 2011 Hi, ist nur die Zahl. MfG. Hansen Link to comment Share on other sites More sharing options...
amilo Posted November 28, 2011 Author Report Share Posted November 28, 2011 Hi, also die Lieferzeitberechnung haben wir mit Hilfe von Oldbears Snippet jetzt hinbekommen: global $language; if ( $value['products_shippingtime'] > 0 ) { $sql_st = "SELECT * FROM ".TABLE_SYSTEM_STATUS_DESCRIPTION." WHERE status_id = '".$value['products_shippingtime']."' AND language_code = '".$language->code."'"; $rs_st = $db->Execute($sql_st); $product_array[$i]['products_shipping_time'] = $rs_st->fields['status_name']; } Allerdings steht ja auch die external_id im Bestell-Export - warum auch immer - nicht zur Verfügung. Jetzt hatten wir gehofft, dass das so gehen würde: {php} global $language; if ( $value['products_id'] > 0 ) { $sql_st = "SELECT * FROM ".TABLE_XT_PRODUCTS." WHERE products_id = '".$value['products_id']."'"; $rs_st = $db->Execute($sql_st); $product_array[$i]['external_id'] = $rs_st->fields['external_id']; } {/php} Allerdings bleibt das ohne Erfolg. Wo liegt hier der Fehler? MfG. Hansen Link to comment Share on other sites More sharing options...
giller Posted March 13, 2012 Report Share Posted March 13, 2012 So jetzt Antworte ich noch einmal dann sollte aber der Groschen fallen ich habe euch vor Wochen schon die Lösung gepostet rechnen tut man in unix allllssssooooooooooo heist das {if ($smarty.now - 1209600) < strtotime($data.date_added)} das ist jetzt nich genau die lösung auf einem Silbertablett aber diesmal sollte es zum verständnis reichen Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.