Files
thetool/scripts/preorder/update-statusflags.php
2024-12-18 20:05:20 +01:00

81 lines
2.6 KiB
PHP

#!/usr/bin/php
<?php
//require 'vendor/autoload.php';
require("../../config/config.php");
define('FRONKDB_SQLDEBUG', false);
error_reporting(E_ALL & ~(E_NOTICE | E_STRICT | E_DEPRECATED));
require_once(LIBDIR . "/mvcfronk/mfRouter/mfRouter.php");
require_once(LIBDIR . "/mvcfronk/mfBase/mfBaseModel.php");
require_once(LIBDIR . "/mvcfronk/mfBase/mfBaseController.php");
$me = new User(1);
define("INTERNAL_USER_ID", $me->id);
define("INTERNAL_USER_USERNAME", $me->username);
define("MFBASE_BYPASS_LOGIN", true);
$log = mfLoghandler::singleton();
$f = 0;
$u = 0;
$status_codes = [300, 350, 351, 500];
$preorders = PreorderModel::searchActive(["status_code" => $status_codes]);
//$preorders = [new Preorder(1138)];
foreach($preorders as $preorder) {
if(preg_match('/^RML/', $preorder->campaign->name)) continue;
if(!in_array($preorder->status->code, $status_codes)) continue;
$updated = false;
foreach(PreorderStatusflagModel::getAll() as $sflag) {
//$preorder = new Preorder($preorder->id);
if(!$sflag->id) {
var_dump($sflag);exit;
}
$sflag_val = PreorderStatusflagValueModel::getFirst(["preorder_id" => $preorder->id, "flag_id" => $sflag->id]);
if(!$sflag_val) {
$sflag_val = PreorderStatusflagValueModel::create([
"preorder_id" => $preorder->id,
"flag_id" => $sflag->id
]);
}
if($sflag_val->value != 1) {
$log->debug(__FILE__.": Setting flag ".$sflag->code." to 1 in Preorder ".$preorder->id);
$sflag_val->value = 1;
$sflag_val->save();
$updated = true;
$f++;
}
$hflag = ADBStatusflagModel::getFirst(["code" => $sflag->code]);
$hflag_val = ADBHausnummerStatusflagValueModel::getFirst(["hausnummer_id" => $preorder->adb_hausnummer_id, "flag_id" => $hflag->id]);
if(!$hflag_val) {
$hflag_val = ADBHausnummerStatusflagValueModel::create([
"hausnummer_id" => $preorder->adb_hausnummer_id,
"flag_id" => $hflag->id
]);
}
if($hflag_val->value != 1) {
$hflag_val->value = 1;
$log->debug(__FILE__.": Setting flag ".$hflag->code." to 1 in Hausnummer ".$preorder->adb_hausnummer_id);
$hflag_val->save();
}
mfValuecache::singleton()->purge("mfObjectmodel-Preorder", false);
mfValuecache::singleton()->purge("Preorder", false);
$log->debug("==========================================");
}
if($updated) {
$u++;
}
}
echo "Updated $f Flags for $u Preorders\n";