diff --git a/ditw-schema.sql b/ditw-schema.sql index 6b1da2e..6b8f723 100644 --- a/ditw-schema.sql +++ b/ditw-schema.sql @@ -63,6 +63,8 @@ CREATE TABLE `orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `ticket_quantity` int(11) NOT NULL, `enhancer_quantity` int(11) NOT NULL DEFAULT '0', + `ticket_cents` int(11) NOT NULL DEFAULT '0', + `enhancer_cents` int(11) NOT NULL DEFAULT '0', `additional_cents` int(11) NOT NULL DEFAULT '0', `total_cents` int(11) NOT NULL, `first_name` varchar(45) NOT NULL, diff --git a/index.php b/index.php index e1a1b61..b645d9b 100644 --- a/index.php +++ b/index.php @@ -1,6 +1,7 @@ required([ 'EVENT_TICKET_PRICE', 'ENHANCER_TICKET_PRICE', 'DB_HOST', + 'DB_NAME', 'DB_USER', 'DB_PASS', 'POSTMARK_API_KEY', ]); $router = new Router(); +$r = R::setup('mysql:host=' . $_SERVER['DB_HOST'] . ';dbname=' . $_SERVER['DB_NAME'], $_SERVER['DB_USER'], $_SERVER['DB_PASS']); // Custom 404 Handler $router->set404(function () { @@ -51,6 +54,43 @@ $router->post('/', function () { include 'views/common/footer.php'; }); +$router->post('/checkout', function () { + //todo this is duplicated and should be handled by an object. + // POST variables + $originalTicketQty = $eventTicketQty = getInteger($_POST['eventTicketQty']); // Store original ticket quantity + $ticketEnhancerQty = getInteger($_POST['ticketEnhancerQty']); + + // Calculate totals + $additionalContribution = convertPossibleFloatToCents($_POST['additionalContribution']); + list($tableTicketQty, $eventTicketQty) = eventPricing($eventTicketQty); + $eventTicketPrice = convertPossibleFloatToCents($eventTicketQty * $_SERVER['EVENT_TICKET_PRICE']); + $tableTicketPrice = convertPossibleFloatToCents($tableTicketQty * $_SERVER['TABLE_TICKET_PRICE']); + $ticketEnhancerPrice = convertPossibleFloatToCents($ticketEnhancerQty * $_SERVER['ENHANCER_TICKET_PRICE']); + + // Sum the cart totals + $cartTotal = $eventTicketPrice + $tableTicketPrice + $ticketEnhancerPrice + $additionalContribution; + + $order = R::dispense('orders'); + $order->ticket_quantity = $originalTicketQty; + $order->ticket_cents = $eventTicketPrice + $tableTicketPrice; + $order->enhancer_quantity = $ticketEnhancerQty; + $order->enhancer_cents = $ticketEnhancerPrice; + $order->additional_cents = $additionalContribution; + $order->total_cents = $cartTotal; + $order->first_name = $_POST['firstName']; + $order->last_name = $_POST['lastName']; + $order->email = $_POST['email']; + $order->address = $_POST['address']; + $order->city = $_POST['city']; + $order->state = $_POST['state']; + $order->zip = $_POST['zip']; + $order->payment_type = $_POST['paymentMethod']; + $order->stripe_token = '1234'; + $order->uuid = $_POST['firstName']; + $id = R::store($order); + var_dump($id); +}); + // Run it! $router->run(); \ No newline at end of file diff --git a/src/.env.example b/src/.env.example index 993e83f..c893175 100644 --- a/src/.env.example +++ b/src/.env.example @@ -2,6 +2,7 @@ EVENT_TICKET_PRICE="55" TABLE_TICKET_PRICE="350" ENHANCER_TICKET_PRICE="20" DB_HOST="localhost" +DB_NAME="ditw" DB_USER="root" DB_PASS="root" POSTMARK_API_KEY="special" \ No newline at end of file diff --git a/views/step2.php b/views/step2.php index ac099c3..2573c53 100644 --- a/views/step2.php +++ b/views/step2.php @@ -16,24 +16,26 @@