admin guest list, checkout, enhancer purchase

This commit is contained in:
Chris Smith
2019-05-29 15:24:08 -05:00
parent f1ec5d8b30
commit ad7fa74410
7 changed files with 339 additions and 73 deletions

View File

@@ -0,0 +1,29 @@
<div class="row">
<div class="col-md-12 order-md-1">
<h3 class="mb-3">Add Credit Card</h3>
<form method="POST">
<div class="modal-body">
<div class="form-group">
<label for="inputName">Name</label>
<input type="input" class="form-control" id="inputName" name="name" value="<?=$guest->name?>">
<input type="hidden" class="form-control" id="inputGuestId" name="guestId" value="<?=$guest->id?>">
</div>
<div class="form-group">
<label for="inputEmail">Email</label>
<input type="input" class="form-control" id="inputEmail" name="email" value="<?=$guest->email?>">
</div>
<div id="card-element">
<!-- A Stripe Element will be inserted here. -->
</div>
<!-- Used to display form errors. -->
<div id="card-errors" role="alert"></div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Save Credit Card</button>
</div>
</form>
<br/>
</div>
</div>

View File

@@ -0,0 +1,61 @@
<div class="row">
<div class="col-md-12 order-md-1">
<h3 class="mb-3">Checkout</h3>
<div class="alert alert-primary" role="alert">
Enhancer price and additional prices are added together and charged if credit card is on file.
</div>
<form method="POST">
<div class="checkout-body" id="checkout-body">
<div class="form-group">
<label for="inputName">Name</label>
<input type="input" class="form-control" id="inputName" name="name" value="<?=$guest->name?>" readonly>
<input type="hidden" class="form-control" id="inputGuestId" name="guestId" value="<?=$guest->id?>">
</div>
<div class="form-group">
<label for="inputEmail">Email</label>
<input type="input" class="form-control" id="inputEmail" name="email" value="<?=$guest->email?>" readonly>
</div>
<?php
$chargeVerbiage = 'charge';
if (empty($guest->stripe_id)) {
$chargeVerbiage = 'collect';
?>
<div class="alert alert-warning" role="alert">
There is no credit card on file. <strong>Please collect a check or cash.</strong>
</div>
<?php } ?>
<div class="mb-3">
<label for="total">Enhancers purchased during the event: <?=$guest->enhancer_qty?></label>
<div class="input-group mb-2">
<div class="input-group-prepend">
<div class="input-group-text">$</div>
</div>
<input name="enhancerCharge" type="text" class="form-control txtCal" id="inlineFormInputGroup" value="<?=$guest->enhancer_qty * $_SERVER['ENHANCER_TICKET_PRICE']?>">
</div>
</div>
<div class="mb-3">
<label for="total">Additional price for auctions</label>
<div class="input-group mb-2">
<div class="input-group-prepend">
<div class="input-group-text">$</div>
</div>
<input name="auctionCharge" type="text" class="form-control txtCal" id="inlineFormInputGroup">
</div>
</div>
<div class="mb-3">
<label for="total">Total price to <?=$chargeVerbiage?></label>
<div class="input-group mb-2">
<div class="input-group-prepend">
<div class="input-group-text">$</div>
</div>
<input name="totalCharge" type="text" class="form-control" id="totalCharge" value="<?=$guest->enhancer_qty * $_SERVER['ENHANCER_TICKET_PRICE']?>" readonly>
</div>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Checkout</button>
</div>
</form>
<br/>
</div>
</div>

View File

@@ -0,0 +1,95 @@
<div class="modal" id="enhancerModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<form method="POST">
<div class="modal-header">
<h5 class="modal-title">Add Enhancers</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="inputEnhancers">How many enhancers packs are given (10 per pack)?</label>
<input type="number" class="form-control" id="inputEnhancers" name="enhancerQty" value="0">
<input type="hidden" class="form-control" id="inputGuestId" name="guestId" value="0">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Add Enhancers</button>
</div>
</form>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 order-md-1">
<?php
if (isset($_GET['alert']) && $_GET['alert'] == 'success') { ?>
<div class="alert alert-success" role="alert"><?=$_GET['msg']?>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<?php }?>
<h3 class="mb-3">Guest List
<a href="/admin/orders/" class="btn btn-primary">Order List</a>
<a href="/admin/orders/export" class="btn btn-primary">Order Export</a>
<a href="/admin/guests/export" class="btn btn-primary">Guest Export</a>
</h3>
<table class="table table-striped">
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col"></th>
<th scope="col">Email</th>
<th scope="col">Paddle #</th>
<th scope="col">Enhancers</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
<?php foreach ($guests as $guest) { ?>
<tr>
<td>
<?= $guest->name; ?>
</td>
<td>
<?php if ($guest->stripe_id) { ?>
<span class="badge badge-success">Card on file</span>
<?php } ?>
<?php if ($guest->checkout_cents) { ?>
<span class="badge badge-primary">Checked Out</span>
<?php } ?>
</td>
<td><?= $guest->email; ?></td>
<td><?= $guest->paddle; ?></td>
<td>
<?= $guest->enhancerQty;?>
</td>
<td>
<div class="btn-group" role="group">
<button id="btnGroupDrop1" type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Actions
</button>
<div class="dropdown-menu" aria-labelledby="btnGroupDrop1">
<button class="dropdown-item" data-toggle="modal" data-target="#enhancerModal" data-name="<?=$guest->name;?>" data-guestid="<?=$guest->id;?>">Add Enhancers</button>
<?php if (!$guest->stripe_id) { ?>
<a class="dropdown-item" href="/admin/guest/add-card/<?=$guest->id?>">Add Credit Card</a>
<?php } else { ?>
<a class="dropdown-item" href="/admin/guest/delete-card/<?=$guest->id?>">Delete Credit Card</a>
<?php } ?>
<a class="dropdown-item" href="/admin/guest/checkout/<?=$guest->id?>">Checkout</a>
</div>
</div>
</td>
</tr>
<?php } ?>
</tbody>
</table>
<br/>
</div>
</div>

View File

@@ -1,6 +1,10 @@
<div class="row">
<div class="col-md-12 order-md-1">
<h3 class="mb-3">Orders <a href="/admin/orders/export" class="btn btn-primary">Order Export</a>&nbsp;<a href="/admin/guests/export" class="btn btn-primary">Guest Export</a></h3>
<h3 class="mb-3">Orders
<a href="/admin/orders/export" class="btn btn-primary">Order Export</a>&nbsp;
<a href="/admin/guests/export" class="btn btn-primary">Guest Export</a>
<a href="/admin/guest/list" class="btn btn-primary">Guest List</a>
</h3>
<table class="table table-striped">
<thead>
<tr>

View File

@@ -10,32 +10,32 @@
</footer>
</div>
<script type="application/javascript">
$('#enhancerModal').on('shown.bs.modal', function (event) {
var button = $(event.relatedTarget) // Button that triggered the modal
var recipient = button.data('name')
var guestid = button.data('guestid')
var modal = $(this)
modal.find('.modal-title').text('Add Enhancers for ' + recipient)
modal.find('.modal-body #inputGuestId').val(guestid)
modal.find('.modal-body #inputEnhancers').val('').focus()
});
<script src="/js/main.js"></script>
<script>
// Example starter JavaScript for disabling form submissions if there are invalid fields
(function () {
'use strict';
$("#checkout-body").on('input', '.txtCal', function () {
var calculated_total_sum = 0;
window.addEventListener('load', function () {
// Fetch all the forms we want to apply custom Bootstrap validation styles to
var forms = document.getElementsByClassName('needs-validation');
// Loop over them and prevent submission
var validation = Array.prototype.filter.call(forms, function (form) {
form.addEventListener('submit', function (event) {
if (form.checkValidity() === false) {
event.preventDefault();
event.stopPropagation();
}
form.classList.add('was-validated');
}, false);
$("#checkout-body .txtCal").each(function () {
var get_textbox_value = $(this).val();
if ($.isNumeric(get_textbox_value)) {
calculated_total_sum += parseFloat(get_textbox_value);
}
});
}, false);
})();
</script>
<script type="application/javascript">
<?php include 'stripe.php'; ?>
</script>
$('#totalCharge').val(calculated_total_sum)
});
</script>
<script type="application/javascript">
<?php include 'stripe.php'; ?>
</script>
</body>
</html>