Merge branch 'fronkdev' into 'master'
added script to remove private homes and units See merge request fronk/thetool!1345
This commit is contained in:
86
scripts/stuff/delete-private-homes.php
Normal file
86
scripts/stuff/delete-private-homes.php
Normal file
@@ -0,0 +1,86 @@
|
||||
#!/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);
|
||||
|
||||
|
||||
$db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||
|
||||
$sql = "SELECT Hausnummer.* FROM Hausnummer
|
||||
LEFT JOIN Netzgebiet ON (Netzgebiet.id = Hausnummer.netzgebiet_id)
|
||||
WHERE Netzgebiet.name NOT LIKE 'SBIDI%' AND Netzgebiet.name NOT LIKE 'Liezen%'
|
||||
AND Hausnummer.visibility = 'private'";
|
||||
|
||||
$res = $db->query($sql);
|
||||
while($hausnummer_data = $db->fetch_object($res)) {
|
||||
$hausnummer = new ADBHausnummer($hausnummer_data->id);
|
||||
$unit_count = count($hausnummer->wohneinheiten);
|
||||
|
||||
$can_delete_address = true;
|
||||
$units_to_delete = [];
|
||||
foreach($hausnummer->wohneinheiten as $unit) {
|
||||
if(count($unit->active_preorders)) {
|
||||
$can_delete_address = false;
|
||||
continue;
|
||||
}
|
||||
$units_to_delete[] = $unit;
|
||||
}
|
||||
|
||||
if(count($units_to_delete) != $unit_count) {
|
||||
echo "!! Hausnummer ".$hausnummer->id.": cannot delete ".($unit_count - count($units_to_delete))." of $unit_count units\n";
|
||||
}
|
||||
|
||||
foreach($units_to_delete as $del_unit) {
|
||||
if(PreorderModel::getFirstActive(["adb_wohneinheit_id" => $del_unit->id])) {
|
||||
// this shouldn't happen
|
||||
echo "!! Hausnummer ".$hausnummer->id.": cannot delete unit ".$del_unit->id." because of active preorders\n";
|
||||
$can_delete_address = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
if($del_unit->oaid) {
|
||||
$oaid = OpenAccessIdModel::getFirstOaid($del_unit->oaid);
|
||||
if($oaid && $oaid->origin == "ofaa") {
|
||||
if(ADBWohneinheitModel::count(["oaid" => $del_unit->oaid]) == 1) {
|
||||
//echo "!! Hausnummer ".$hausnummer->id.": cannot delete unit ".$del_unit->id." because it's the last Unit with OAID ".$oaid->oaid."\n";
|
||||
$ftu_id = $del_unit->ftu_data["id"];
|
||||
//RimoApi::unassignOaid($oaid->oaid, $ftu_id);
|
||||
|
||||
echo "Deleting OAID ".$oaid->oaid." from FTU ".$ftu_id."\n";
|
||||
|
||||
|
||||
$oaid->assigned = 0;
|
||||
$oaid->adb_wohneinheit_id = null;
|
||||
$oaid->exported = 0;
|
||||
$oaid->exported_to = null;
|
||||
$oaid->exported_data = null;
|
||||
$oaid->address = null;
|
||||
$oaid->unit_string = null;
|
||||
$oaid->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo "Deleting unit ".$del_unit->id." from Hausnummer ".$hausnummer->id."\n";
|
||||
$del_unit->delete();
|
||||
|
||||
}
|
||||
|
||||
if($can_delete_address) {
|
||||
echo "Deleting Hausnummer ".$hausnummer->id."\n";
|
||||
$hausnummer->delete();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user