Files
bm/public_html/public/tickets/import.php
2025-09-24 13:26:28 +02:00

388 lines
13 KiB
PHP

<?php
define("ROOT", "../");
require_once(ROOT."include/config.inc.php");
require_once(ROOT."include/db.inc.php");
########################################
function createTables(){
########################################
$query = sprintf("CREATE TABLE IF NOT EXISTS bm_ticket (
id INT NOT NULL AUTO_INCREMENT,
category VARCHAR(2) NOT NULL,
reductionId INT NOT NULL,
serialNumber INT(13) NOT NULL,
seat SMALLINT UNSIGNED NOT NULL,
row SMALLINT UNSIGNED NOT NULL,
floor VARCHAR(64) NOT NULL,
room VARCHAR(64) NOT NULL,
seatIndex SMALLINT UNSIGNED NOT NULL,
rowIndex SMALLINT UNSIGNED NOT NULL,
floorIndex SMALLINT UNSIGNED NOT NULL,
dateId INT UNSIGNED NOT NULL,
orderId INT UNSIGNED NOT NULL,
printed INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY(id),
INDEX (orderId)
)");
dbQuery($query);
$query = sprintf("CREATE TABLE IF NOT EXISTS bm_ticketcalendar (
holiday DATE NOT NULL,
PRIMARY KEY (holiday)
)");
dbQuery($query);
$query = sprintf("CREATE TABLE IF NOT EXISTS bm_ticketcustomer (
id INT NOT NULL AUTO_INCREMENT,
firstname VARCHAR(64) NOT NULL,
surname VARCHAR(64) NOT NULL,
email VARCHAR(255) NOT NULL,
gender ENUM('f','m','x') DEFAULT 'x',
address VARCHAR(128) NOT NULL,
zip SMALLINT NOT NULL,
city VARCHAR(64) NOT NULL,
country VARCHAR(32) NOT NULL,
phone VARCHAR(24) NOT NULL,
acad VARCHAR(16) NOT NULL,
creationDate DATE,
changeDate DATE,
newsletter ENUM('true','false') DEFAULT 'false',
password VARCHAR(32) NOT NULL,
locked ENUM('true','false') DEFAULT 'true',
loose ENUM('true','false') DEFAULT 'false',
PRIMARY KEY(id),
INDEX(email),
INDEX(surname),
INDEX(firstname)
)");
dbQuery($query);
$query = sprintf("CREATE TABLE IF NOT EXISTS bm_ticketdate(
id INT NOT NULL AUTO_INCREMENT,
`date` DATETIME NULL,
eventId INT NOT NULL,
entries VARCHAR(32) NULL,
reductions VARCHAR(255) NULL,
room VARCHAR(50) NOT NULL DEFAULT '',
seats INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (id),
INDEX(eventId)
)");
dbQuery($query);
$query = sprintf("CREATE TABLE IF NOT EXISTS bm_ticketevent (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
flexiconId INT UNSIGNED NOT NULL,
name VARCHAR(200) NOT NULL DEFAULT '',
startDate DATE NULL,
endDate DATE NULL,
category1 INT NOT NULL DEFAULT 0,
category2 INT NOT NULL DEFAULT 0,
category3 INT NOT NULL DEFAULT 0,
genre INT NOT NULL DEFAULT 0,
entries VARCHAR(32) NULL,
reductions VARCHAR(255) NULL,
reservationType ENUM('none','simple','seat') NOT NULL DEFAULT 'none',
thumb VARCHAR(10) NOT NULL DEFAULT '',
dates VARCHAR(255) NULL,
visible TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (id)
)");
dbQuery($query);
$query = sprintf("CREATE TABLE IF NOT EXISTS bm_ticketlocked (
email VARCHAR(255) NOT NULL,
PRIMARY KEY (email)
)");
dbQuery($query);
$query = sprintf("CREATE TABLE IF NOT EXISTS bm_ticketorder (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
customerId INT UNSIGNED NOT NULL,
dateId INT UNSIGNED NOT NULL,
orderDate DATE NOT NULL,
paid ENUM('true','false') DEFAULT 'false',
comments TEXT NULL,
PRIMARY KEY (id)
)");
dbQuery($query);
$query = "CREATE TABLE IF NOT EXISTS bm_ticketreduction (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
value INT UNSIGNED NOT NULL DEFAULT 0,
type ENUM ('-','%','=','0','k') NOT NULL DEFAULT '-',
PRIMARY KEY (id)
)";
dbQuery($query);
$query = sprintf("CREATE TABLE IF NOT EXISTS bm_ticketroom (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
xml TEXT NOT NULL DEFAULT '',
PRIMARY KEY (id)
)");
dbQuery($query);
}
##############################################
function renameTables(){
##############################################
$oldTables = array("ticket", "ticketcustomer", "ticketdate", "ticketevent", "ticketreduction", "ticketroom");
$newTables = array("ticket", "ticketcalendar", "ticketcustomer", "ticketdate", "ticketevent", "ticketlocked", "ticketorder", "ticketreduction", "ticketroom");
foreach($oldTables as $t){
$query = sprintf("RENAME TABLE bruckm_%s TO bm2_%s", $t, $t);
dbQuery($query);
}
foreach($newTables as $t){
$query = sprintf("RENAME TABLE bm_%s TO bruckm_%s", $t, $t);
dbQuery($query);
}
}
##############################################
function undoRenameTables(){
##############################################
$oldTables = array("ticket", "ticketcustomer", "ticketdate", "ticketevent", "ticketreduction", "ticketroom");
$newTables = array("ticket", "ticketcalendar", "ticketcustomer", "ticketdate", "ticketevent", "ticketlocked", "ticketorder", "ticketreduction", "ticketroom");
foreach($newTables as $t){
$query = sprintf("RENAME TABLE bruckm_%s TO bm_%s", $t, $t);
dbQuery($query);
}
foreach($oldTables as $t){
$query = sprintf("RENAME TABLE bm2_%s TO bruckm_%s", $t, $t);
dbQuery($query);
}
}
##############################################
function truncateTables(){
##############################################
$newTables = array("ticket", "ticketcalendar", "ticketcustomer", "ticketdate", "ticketevent", "ticketlocked", "ticketorder", "ticketreduction", "ticketroom");
foreach($newTables as $t){
$query = sprintf("TRUNCATE TABLE bm_%s", $t);
dbQuery($query);
}
}
#############################################
function importData(){
#############################################
// tickets
$query = sprintf("SELECT * FROM bruckm_ticket ORDER BY dateId ASC, customerId ASC");
$result = dbQuery($query);
$order = array('dateId' => 0,
'orderId' => 0);
while($line = mysqli_fetch_array($result, MYSQLI_ASSOC)){
if($line['dateId'] != $order['dateId'] || $line['customerId'] != $order['customerId']){
$query = sprintf("INSERT INTO bm_ticketorder (customerId, dateId, orderDate, paid) VALUES (%d, %d, NOW(), 'true')",
$line['customerId'],
$line['dateId']);
dbQuery($query);
$order['id'] = mysql_insert_id();
}
$query = sprintf("SELECT classId FROM bruckm_index WHERE id = %d", $line['reduction']);
$reduction = dbQuery($query);
$r = mysqli_fetch_array($reduction, MYSQLI_ASSOC);
$line['reductionId'] = $r['classId'];
$query = sprintf("INSERT INTO bm_ticket (id, category, reductionId, seat, row, floor, room, seatIndex, rowIndex, floorIndex, dateId, orderId, printed, serialNumber)
VALUES (%d, %s, %d, %d, %d, %s, %s, %d, %d, %d, %d, %d, 1, 0)",
$line['id'],
sqlstring($line['category']),
$line['reductionId'],
$line['seat'],
$line['row'],
sqlstring($line['floor']),
sqlstring($line['room']),
$line['seatIndex'],
$line['rowIndex'],
$line['floorIndex'],
$line['dateId'],
$order['id']);
dbQuery($query);
}
echo "1";
// customers
$query = sprintf("SELECT * FROM bruckm_ticketcustomer ORDER BY id ASC");
$result = dbQuery($query);
while($line = mysqli_fetch_array($result, MYSQLI_ASSOC)){
if($line['newsletter'] == "yes"){
$line['newsletter'] = "true";
}
else{
$line['newsletter'] = "false";
}
$query = sprintf("INSERT INTO bm_ticketcustomer (id, firstname, surname, email, address, zip, city, country, phone, acad, gender, creationDate, changeDate, newsletter, password, locked, loose)
VALUES (%d, %s, %s, %s, %s, %d, %s, %s, %s, %s, %s, %s, NOW(), %s, '', 'false', 'true')",
$line['id'],
sqlstring($line['firstname']),
sqlstring($line['surname']),
sqlstring($line['email']),
sqlstring($line['address']),
$line['zip'],
sqlstring($line['city']),
sqlstring($line['country']),
sqlstring($line['phone']),
sqlstring($line['acad']),
sqlstring($line['gender']),
sqlstring($line['creationDate']),
sqlstring($line['newsletter']));
dbQuery($query);
}
echo "2";
// dates
$query = sprintf("SELECT * FROM bruckm_ticketdate ORDER BY id ASC");
$result = dbQuery($query);
while($line = mysqli_fetch_array($result, MYSQLI_ASSOC)){
if(is_numeric($line['room'])){
$query = sprintf("SELECT classId FROM bruckm_index WHERE id = %d", $line['room']);
$room = dbQuery($query);
$r = mysqli_fetch_array($room, MYSQLI_ASSOC);
$line['room'] = $r['classId'];
}
$query = sprintf("SELECT classId FROM bruckm_index WHERE id = %d", $line['eventId']);
$event = dbQuery($query);
$e = mysqli_fetch_array($event, MYSQLI_ASSOC);
$line['eventId'] = $e['classId'];
$query = sprintf("INSERT INTO bm_ticketdate (id, `date`, eventId, entries, reductions, room, seats)
VALUES (%d, %s, %d, %s, %s, %s, %d)",
$line['id'],
sqlstring($line['date']),
$line['eventId'],
sqlstring($line['entries']),
sqlstring($line['reductions']),
sqlstring($line['room']),
$line['seats']);
dbQuery($query);
}
echo "3";
// events
$query = sprintf("SELECT * FROM bruckm_ticketevent ORDER BY id ASC");
$result = dbQuery($query);
while($line = mysqli_fetch_array($result, MYSQLI_ASSOC)){
switch($line['reservationType']){
case 0: $line['reservationType'] = "none"; break;
case 1: $line['reservationType'] = "simple"; break;
case 2: $line['reservationType'] = "seat"; break;
}
$query = sprintf("INSERT INTO bm_ticketevent (id, flexiconId, name, startDate, endDate, category1, category2, category3, entries, reductions, reservationType, thumb, dates, visible, genre)
VALUES (%d, %d, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %d, %d)",
$line['id'],
$line['flexiconId'],
sqlstring($line['name']),
sqlstring($line['startDate']),
sqlstring($line['endDate']),
sqlstring($line['category1']),
sqlstring($line['category2']),
sqlstring($line['category3']),
sqlstring($line['entries']),
sqlstring($line['reductions']),
sqlstring($line['reservationType']),
sqlstring($line['thumb']),
sqlstring($line['dates']),
$line['visible'],
$line['genre']);
dbQuery($query);
}
echo "4";
// reductions
$query = sprintf("SELECT * FROM bruckm_ticketreduction ORDER BY id ASC");
$result = dbQuery($query);
while($line = mysqli_fetch_array($result, MYSQLI_ASSOC)){
if($line['type'] == "0"){
$line['type'] = "k";
}
$query = sprintf("INSERT INTO bm_ticketreduction (id, value, type)
VALUES (%d, %s, %s)",
$line['id'],
sqlstring($line['value']),
sqlstring($line['type']));
dbQuery($query);
}
echo "5";
// rooms
$query = sprintf("SELECT * FROM bruckm_ticketroom ORDER BY id ASC");
$result = dbQuery($query);
while($line = mysqli_fetch_array($result, MYSQLI_ASSOC)){
$query = sprintf("INSERT INTO bm_ticketroom (id, xml)
VALUES (%d, %s)",
$line['id'],
sqlstring($line['xml']));
dbQuery($query);
}
}
#############################################
function importCultureCards(){
#############################################
$f = fopen("culturecard.csv", "r");
while($line = fgetcsv($f, 1000, ";")){
$name = $line[0] . " " . $line[1];
$address = $line[2];
$zip = $line[3];
$city = $line[4];
$date = $line[6];
$no = sprintf("%03d", substr($line[7], strpos($line[7], "/") + 1));
$serial = "0000" . substr($date, 9, 1) . substr($date, 3, 2) . substr($date, 0, 2) . $no;
$query = sprintf("INSERT INTO bruckm_ticketculturecard (id, owner, zip, city, address, tickets)
VALUES (%d, %s, %d, %s, %s, 6)",
sqlnum($serial),
sqlstring($name),
sqlnum($zip),
sqlstring($city),
sqlstring($address));
dbQuery($query);
echo "added culture card #$serial<br>\n";
}
fclose($f);
}
##########################################################################################################################################################
##########################################################################################################################################################
##########################################################################################################################################################
#createTables();
#importData();
#renameTables();
#undoRenameTables();
#truncateTables();
importCultureCards();
echo "ok";
?>