Fixed Preorder order_date saving and getting setup price

This commit is contained in:
Frank Schubert
2025-08-06 14:10:18 +02:00
parent b4cdbd0b6b
commit 2adf180c09
4 changed files with 22 additions and 7 deletions
+11 -5
View File
@@ -1168,11 +1168,17 @@ class PreorderController extends mfBaseController {
} }
try {
$orderdate_ts = Layout::dateToInt($order_date); $orderdate_dt = DateTime::createFromFormat("d.m.Y", $order_date);
$preorder->order_date = $orderdate_ts; $orderdate_dt->setTime(4, 0, 0);
if(!$preorder->save()) { $preorder->order_date = $orderdate_dt->getTimestamp();
$this->log->debug(__METHOD__.": error saving orderdate"); //$orderdate_ts = Layout::dateToInt($order_date);
if(!$preorder->save()) {
$this->log->debug(__METHOD__ . ": error saving orderdate");
return false;
}
} catch (Exception $e) {
$this->log->debug(__METHOD__.": Exception: ".$e->getMessage());
return false; return false;
} }
@@ -203,8 +203,9 @@ class PreorderBillingController extends mfBaseController {
} else { } else {
$order_date = new DateTime('@'.$preorder->create); $order_date = new DateTime('@'.$preorder->create);
} }
$order_date->setTime(4,0,0);
$order_date->setTimezone(new DateTimeZone("Europe/Vienna")); $order_date->setTimezone(new DateTimeZone("Europe/Vienna"));
$order_date->setTime(4,0,0);
if($order_date->format("Ymd") < $earliest_bill_date->format("Ymd")) { if($order_date->format("Ymd") < $earliest_bill_date->format("Ymd")) {
// start billing from 2025-01-01 // start billing from 2025-01-01
@@ -18,6 +18,8 @@ define("MFBASE_BYPASS_LOGIN", true);
$db = FronkDB::singleton(); $db = FronkDB::singleton();
$db = $db->link; $db = $db->link;
$log = mfLoghandler::singleton();
function logMessage($message): void { function logMessage($message): void {
echo "[" . date("Y-m-d H:i:s") . "] " . $message . "\n"; echo "[" . date("Y-m-d H:i:s") . "] " . $message . "\n";
} }
@@ -3,6 +3,7 @@
global $db; global $db;
require_once __DIR__.'/init.php'; require_once __DIR__.'/init.php';
$earliest_order_date = new DateTime("2025-05-01"); $earliest_order_date = new DateTime("2025-05-01");
$earliest_order_date->setTimezone(new DateTimeZone("Europe/Vienna")); $earliest_order_date->setTimezone(new DateTimeZone("Europe/Vienna"));
@@ -37,6 +38,7 @@ WHERE p.type = 'order'
AND psnl.id IS NULL -- No existing '300-custom-new-order' notification AND psnl.id IS NULL -- No existing '300-custom-new-order' notification
AND p.create > ".$earliest_order_date->getTimestamp()." -- no older than \$earliest_order_date AND p.create > ".$earliest_order_date->getTimestamp()." -- no older than \$earliest_order_date
AND p.create < (UNIX_TIMESTAMP(NOW()) - 7200) -- Only consider preorders older than 2 hours AND p.create < (UNIX_TIMESTAMP(NOW()) - 7200) -- Only consider preorders older than 2 hours
AND p.id=22456
ORDER BY p.id ASC;"; ORDER BY p.id ASC;";
$res = $db->query($sql); $res = $db->query($sql);
@@ -118,8 +120,10 @@ while($row = $res->fetch_assoc()) {
} else { } else {
$order_date = new DateTime('@'.$preorder->create); $order_date = new DateTime('@'.$preorder->create);
} }
$order_date->setTime(4,0,0);
$order_date->setTimezone(new DateTimeZone("Europe/Vienna")); $order_date->setTimezone(new DateTimeZone("Europe/Vienna"));
$order_date->setTime(4,0,0);
$product = PreorderProduct::getFirst(["type" => "enduser_setup"]); $product = PreorderProduct::getFirst(["type" => "enduser_setup"]);
if(!$product) { if(!$product) {
@@ -144,6 +148,8 @@ while($row = $res->fetch_assoc()) {
$price_setup *= 1.2; $price_setup *= 1.2;
} }
$log->debug(__FILE__.": Sending template $template_embed_name for Preorder ".$preorder->id." OAID ".$preorder->oaid);
sendPreorderEmail( sendPreorderEmail(
$mailtemplate, $mailtemplate,
$preordercampaign, $preordercampaign,