Files
bm/public_html/public/cms/scripts/mergeCustomers.php
2025-09-24 13:26:28 +02:00

77 lines
2.5 KiB
PHP

<?php
define(ROOT, "../../");
require_once(ROOT."include/db.inc.php");
$query = sprintf("SELECT * FROM bruckmuehle_ticketcustomer WHERE id = %d OR id = %d",
sqlnum($_GET['id1']),
sqlnum($_GET['id2']));
$result = dbQuery($query);
$c1 = mysqli_fetch_array($result, MYSQLI_ASSOC);
$c2 = mysqli_fetch_array($result, MYSQLI_ASSOC);
// check if both customers are loose -> else they cannot be merged
if ($c1['loose'] == 'false' && $c2['loose'] == 'false') {
die("both customers are not loose...");
}
if ($c2['loose'] == 'false') {
$tmp = $c2;
$c2 = $c1;
$c1 = $tmp;
}
// merge customer data
$fields = array('firstname', 'surname', 'email', 'address', 'zip', 'city', 'phone', 'acad', 'gender');
foreach ($fields as $field) {
if ($c1[$field] != $c2[$field]) {
if (empty($c1[$field])) {
$c1[$field] = $c2[$field];
}
}
}
if ($c2['newsletter'] == 'false') {
$c1['newsletter'] = 'false';
}
$query = sprintf("UPDATE bruckmuehle_ticketcustomer SET firstname = %s, surname = %s, email = %s, acad = %s,
address = %s, zip = %d, city = %s, phone = %s, gender = %s, newsletter = %s, loose = %s
WHERE id = %d",
sqlstring($c1['firstname']),
sqlstring($c1['surname']),
sqlstring($c1['email']),
sqlstring($c1['acad']),
sqlstring($c1['address']),
sqlnum($c1['zip']),
sqlstring($c1['city']),
sqlstring($c1['phone']),
sqlstring($c1['gender']),
sqlstring($c1['newsletter']),
sqlstring($c1['loose']),
sqlnum($c1['id']));
dbQuery($query);
$query = sprintf("DELETE FROM bruckmuehle_ticketcustomer WHERE id = %d",
sqlnum($c2['id']));
dbQuery($query);
// merge group memberships
$query = sprintf("SELECT * FROM bruckmuehle_ticketcustomergroupmemberships WHERE customerId = %d",
sqlnum($c2['id']));
$result = dbQuery($query);
while ($line = mysqli_fetch_array($result)) {
$query = sprintf("INSERT IGNORE INTO bruckmuehle_ticketcustomergroupmemberships (groupId, customerId) VALUES (%d, %d)",
sqlnum($line['groupId']),
sqlnum($c1['id']));
dbQuery($query);
}
$query = sprintf("DELETE FROM bruckmuehle_ticketcustomergroupmemberships WHERE customerId = %d",
sqlnum($c2['id']));
dbQuery($query);
// merge tickets and orders
$query = sprintf("UPDATE bruckmuehle_ticketorder SET customerId = %d WHERE customerId = %d",
sqlnum($c1['id']),
sqlnum($c2['id']));
dbQuery($query);
echo "merged successfully";
?>