Merge branch 'ADBWohneinheit/add-rimo-deleted-to-list' into 'master'

added rimo deleted to ADBWohneinheit Checks

See merge request fronk/thetool!1407
This commit is contained in:
Luca Haid
2025-06-03 11:02:00 +00:00
3 changed files with 69 additions and 2 deletions

View File

@@ -161,7 +161,9 @@ class ADBWohneinheitController extends mfBaseController {
protected function duplicateAction() {
$duplicateHomes = array_merge(ADBWohneinheitModel::searchDuplicateExtref(),
ADBWohneinheitModel::searchDuplicateOAID());
ADBWohneinheitModel::searchDuplicateOAID(),
ADBWohneinheitModel::getRimoDeletedHomes()
);
$ADBNetzgebiete = array_map(function($network) {
return [

View File

@@ -16,6 +16,7 @@ class ADBWohneinheitModel {
public $enduser_setup_invoice_date;
public $rimo_ex_state;
public $rimo_op_state;
public $rimo_deleted;
public $patch_cluster;
public $patch_shelf;
public $patch_module;
@@ -158,6 +159,15 @@ class ADBWohneinheitModel {
}
}
}
if(array_key_exists("rimo_deleted", $filter)) {
$rimo_deleted = $filter['rimo_deleted'];
if($rimo_deleted === true || $rimo_deleted === 1) {
$where .= " AND Wohneinheit.`rimo_deleted` = 1";
} elseif($rimo_deleted === false || $rimo_deleted === 0) {
$where .= " AND Wohneinheit.`rimo_deleted` = 0";
}
}
if(array_key_exists("netzgebiet_id", $filter)) {
$netzgebiet_id = $filter['netzgebiet_id'];
@@ -402,8 +412,62 @@ class ADBWohneinheitModel {
return array_values($duplicates);
}
public static function getRimoDeletedHomes($filter = []) {
$deletedHomes = [];
$db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME)->link;
$where = self::getSqlFilter($filter);
$sql = "SELECT Wohneinheit.oaid, Hausnummer.netzgebiet_id as netzgebiet_id
FROM Wohneinheit
LEFT JOIN Hausnummer ON (Hausnummer.id = Wohneinheit.hausnummer_id)
WHERE $where AND Wohneinheit.rimo_deleted = 1 AND Wohneinheit.oaid IS NOT NULL
ORDER BY Wohneinheit.oaid";
$res = $db->query($sql);
$rimoDeletedOaids = [];
while($data = $res->fetch_assoc()) {
$rimoDeletedOaids[] = $data['oaid'];
$deletedHomes[$data['oaid']] = [
"duplicateType" => "rimo_deleted",
'oaid' => $data['oaid'],
'count' => 1, // Always 1 since we're not counting duplicates
'netzgebiet_id' => $data['netzgebiet_id'],
'homeData' => []
];
}
if (!empty($rimoDeletedOaids)) {
$oaidList = "'" . implode("','", array_map([$db, 'real_escape_string'], $rimoDeletedOaids)) . "'";
$detailSql = "SELECT Wohneinheit.*, thetool.Address.company AS company, Hausnummer.rimo_id AS hausnummer_extref
FROM Wohneinheit
LEFT JOIN Hausnummer ON (Hausnummer.id = Wohneinheit.hausnummer_id)
LEFT JOIN Netzgebiet ON (Netzgebiet.id = Hausnummer.netzgebiet_id)
LEFT JOIN thetool.Network ON (Network.adb_netzgebiet_id = Netzgebiet.id)
LEFT JOIN thetool.Address ON (Network.owner_id = Address.id)
WHERE $where AND Wohneinheit.oaid IN ($oaidList) AND Wohneinheit.rimo_deleted = 1
ORDER BY Wohneinheit.oaid";
$detailRes = $db->query($detailSql);
while($homeData = $detailRes->fetch_assoc()) {
$deletedHomes[$homeData['oaid']]['homeData'][] = [
"id" => $homeData['id'],
'oaid' => $homeData['oaid'],
"extref" => $homeData['extref'],
"network_company" => $homeData['company'],
"hausnummer_id" => $homeData['hausnummer_id'],
"hausnummer_extref" => $homeData['hausnummer_extref'],
"num" => $homeData['num'],
"nutzung" => $homeData['nutzung'],
"rimo_ex_state" => $homeData['rimo_ex_state'],
"rimo_op_state" => $homeData['rimo_op_state'],
"create" => $homeData['create'],
"edit" => $homeData['edit'],
];
}
}
return array_values($deletedHomes);
}
}

View File

@@ -73,7 +73,8 @@ Vue.component('a-d-b-wohneinheit-duplicate', {
{text: 'HomeID | OAID', key: 'extref', sortable: true, class: 'text-nowrap', priority: 10},
{text: 'Duplicate Type', key: 'duplicateType', sortable: true, class: 'text-nowrap', priority: 9, filter: 'select', filterOptions: [
{text: 'HomeID', value: 'extref'},
{text: 'OAID', value: 'oaid'},
{text: 'OAID', value: 'oaid'},
{text: 'RIMO gelöscht', value: 'rimo_deleted'},
]},
{text: 'Anzahl gleicher HomeIDs', key: 'count', sortable: true, class: 'text-center', priority: 8},
{