aboutsummaryrefslogtreecommitdiff
path: root/install
diff options
context:
space:
mode:
authorCamil Staps2015-02-05 00:40:47 +0100
committerCamil Staps2015-02-05 00:40:47 +0100
commitc50a323c25a0787ba2051b19721983776a229615 (patch)
tree87e13060ca6633bed3f5de2e25c5eedf866a0073 /install
parentInitial commit (diff)
Initial commit
Diffstat (limited to 'install')
-rw-r--r--install/index.php109
1 files changed, 109 insertions, 0 deletions
diff --git a/install/index.php b/install/index.php
new file mode 100644
index 0000000..85a6c4d
--- /dev/null
+++ b/install/index.php
@@ -0,0 +1,109 @@
+<?php
+/**
+ * BusinessAdmin: administrative software for small companies
+ * Copyright (C) 2015 Camil Staps (ViviSoft)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+require('../conf.php');
+
+if (isset($_GET['create_tables'])) {
+ try {
+ $_pdo->query("CREATE TABLE IF NOT EXISTS `".constants::db_prefix."assignment` (
+ `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `offerId` smallint(5) unsigned NOT NULL,
+ `title` tinytext NOT NULL,
+ `description` text NOT NULL,
+ `hours` smallint(5) unsigned NOT NULL,
+ `price_per_hour` float NOT NULL,
+ `VAT_percentage` float NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `offerId - title` (`offerId`,`title`(255)),
+ KEY `offerId` (`offerId`)
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1");
+
+ $_pdo->query("CREATE TABLE IF NOT EXISTS `".constants::db_prefix."client` (
+ `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `name` tinytext NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `name` (`name`(255))
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1");
+
+ $_pdo->query("CREATE TABLE IF NOT EXISTS `".constants::db_prefix."contact` (
+ `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `clientId` smallint(5) unsigned NOT NULL,
+ `name` tinytext NOT NULL,
+ `email` varchar(680) NOT NULL,
+ `address` tinytext NOT NULL,
+ `address_2` tinytext,
+ `postal_code` varchar(7) NOT NULL,
+ `city` tinytext NOT NULL,
+ `country` tinytext NOT NULL,
+ `language` varchar(3) NOT NULL DEFAULT 'en',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `clientId-name` (`clientId`,`name`(255)),
+ KEY `clientId` (`clientId`)
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1");
+
+ $_pdo->query("CREATE TABLE IF NOT EXISTS `".constants::db_prefix."file` (
+ `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `filename` varchar(100) NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `filename` (`filename`)
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1");
+
+ $_pdo->query("CREATE TABLE IF NOT EXISTS `".constants::db_prefix."offer` (
+ `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `contactId` smallint(5) unsigned NOT NULL,
+ `start_date` date NOT NULL,
+ `end_date` date NOT NULL,
+ `invoice_date` date NOT NULL,
+ `accepted` tinyint(1) unsigned NOT NULL DEFAULT '0',
+ `invoice_fileId` smallint(5) unsigned DEFAULT NULL,
+ `payment_received` date DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `invoice_fileId` (`invoice_fileId`),
+ KEY `contactId` (`contactId`),
+ KEY `contactId_2` (`contactId`),
+ KEY `invoice_fileId_2` (`invoice_fileId`)
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1");
+
+ $_pdo->query("ALTER TABLE `".constants::db_prefix."assignment`
+ ADD CONSTRAINT `assignment_ibfk_1` FOREIGN KEY (`offerId`) REFERENCES `offer` (`id`)");
+
+ $_pdo->query("ALTER TABLE `".constants::db_prefix."contact`
+ ADD CONSTRAINT `contact_ibfk_1` FOREIGN KEY (`clientId`) REFERENCES `client` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION");
+
+ $_pdo->query("ALTER TABLE `".constants::db_prefix."offer`
+ ADD CONSTRAINT `offer_ibfk_1` FOREIGN KEY (`invoice_fileId`) REFERENCES `file` (`id`),
+ ADD CONSTRAINT `offer_ibfk_2` FOREIGN KEY (`contactId`) REFERENCES `contact` (`id`)");
+
+ echo "Succeeded creating the database tables.";
+
+ } catch (PDOException $e) {
+
+ echo "Creating the database tables failed with a PDOException ({$e->getCode()}): {$e->getMessage()}<br/>" . $e->getTraceAsString();
+
+ }
+}
+?>
+
+<hr/>
+
+<h1>Available tools:</h1>
+
+<ol>
+ <li><a href="?create_tables">Create database tables</a></li>
+</ol> \ No newline at end of file