views/event-view.ejs
<%- include('_header'); -%>
<div class="columns is-variable is-4-mobile is-4-tablet is-block-print" id="is-site-layout">
<%- include("_sideMenu-events"); -%>
<div class="column is-block-print is-full-print">
<div class="columns">
<div class="column">
<nav class="breadcrumb">
<ul>
<li><a href="<%= urlPrefix %>/dashboard">Home</a></li>
<li><a href="<%= urlPrefix %>/events">
<span class="icon is-small"><i class="fas fa-calendar" aria-hidden="true"></i></span>
<span>Lottery Events</span>
</a></li>
<li>
<a href="<%= urlPrefix %>/licences/<%= event.licenceID %>">
<% if (configFunctions.getProperty("licences.externalLicenceNumber.isPreferredID")) { %>
Licence <%= licence.externalLicenceNumber %>
<% } else { %>
Licence #<%= event.licenceID %>
<% } %>
</a>
</li>
<li class="is-active">
<a href="#" aria-current="page">
Event <%= event.eventDateString %>
</a>
</li>
</ul>
</nav>
</div>
<%
let hasOtherEvents = false;
if (licence.events.length > 1) {
hasOtherEvents = true;
%>
<div class="column is-narrow is-hidden-print">
<div class="field is-grouped align-items-center justify-flex-end">
<div class="field has-addons ml-4">
<div class="control">
<label class="button is-small is-static" for="eventNav--eventDate">Switch Dates</label>
</div>
<div class="control has-icons-left">
<div class="select is-small">
<select id="eventNav--eventDate" data-licence-id="<%= licence.licenceID %>" data-is-edit="false">
<%
for (let index = 0; index < licence.events.length; index += 1) {
const otherEventObj = licence.events[index];
%>
<option value="<%= otherEventObj.eventDate %>" <%=(event.eventDate===otherEventObj.eventDate ? " selected" : "" ) %>>
<%= otherEventObj.eventDateString %>
</option>
<%
}
%>
</select>
</div>
<div class="icon is-left">
<i class="fas fa-calendar" aria-hidden="true"></i>
</div>
</div>
</div>
</div>
</div>
<%
}
%>
</div>
<div class="columns">
<div class="column is-5">
<h1 class="title is-1">
<a class="has-tooltip-right" data-tooltip="View Licence" href="<%= urlPrefix %>/licences/<%= event.licenceID %>">
<% if (configFunctions.getProperty("licences.externalLicenceNumber.isPreferredID")) { %>
Licence <%= licence.externalLicenceNumber %>
<% } else { %>
Licence #<%= event.licenceID %>
<% } %>
</a>
</h1>
</div>
<div class="column">
<h1 class="title is-1">
Event <%= event.eventDateString %>
</h1>
</div>
</div>
<% if (event.canUpdate) { %>
<div class="fixed-container is-fixed-bottom-right mx-4 my-4 has-text-right is-hidden-print">
<a class="button is-circle is-primary has-tooltip-left" data-tooltip="Edit this Event" href="<%= urlPrefix %>/events/<%= licence.licenceID %>/<%= event.eventDate %>/edit">
<i class="fas fa-pencil-alt" aria-hidden="true"></i>
<span class="sr-only">Edit this Event</span>
</a>
</div>
<% } else if (user.userProperties.isAdmin) { %>
<div class="fixed-container is-fixed-bottom-right mx-4 my-4 is-hidden-print">
<a class="button is-circle is-warning has-tooltip-left" data-tooltip="Unlock this Event" href="<%= urlPrefix %>/events/<%= licence.licenceID %>/<%= event.eventDate %>/poke">
<i class="fas fa-unlock" aria-hidden="true"></i>
<span class="sr-only">Unlock this Event</span>
</a>
</div>
<% } %>
<div class="columns is-desktop">
<div class="column is-5-desktop">
<%- include('_event-view_edit-snapshot'); -%>
</div>
<div class="column">
<div class="panel">
<h2 class="panel-heading">Event Reporting</h2>
<div class="panel-block">
<p>
<strong>Report Date</strong><br />
<% if (event.reportDateString === "") { %>
<span class="has-text-grey">(Not Reported)</span>
<% } else { %>
<%= event.reportDateString %>
<% } %>
</p>
</div>
</div>
<div class="panel">
<h2 class="panel-heading">Bank Information</h2>
<div class="panel-block">
<p>
<strong>Name</strong><br />
<%= event.bank_name %>
</p>
</div>
<div class="panel-block">
<p>
<strong>Address</strong><br />
<%= event.bank_address %>
</p>
</div>
<div class="panel-block is-block">
<div class="columns">
<div class="column">
<p>
<strong>Account Number</strong><br />
<%= event.bank_accountNumber %>
</p>
</div>
<div class="column">
<p>
<strong>Account Balance</strong><br />
<%= (event.bank_accountBalance ? htmlFns.formatDollarsAsHTML(event.bank_accountBalance) : "") %>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="panel">
<h2 class="panel-heading">Event Cost Breakdown</h2>
<table class="table is-fullwidth is-striped is-hoverable">
<thead>
<tr>
<% if (event.eventCosts[0].ticketType) { %>
<th>Ticket Type</th>
<% } %>
<th class="has-text-centered">Receipts</th>
<td class="has-text-centered">
<i class="fas fa-minus" aria-hidden="true"></i>
<span class="sr-only">Minus</span>
</td>
<th class="has-text-centered">Admin Costs</th>
<td class="has-text-centered">
<i class="fas fa-minus" aria-hidden="true"></i>
<span class="sr-only">Minus</span>
</td>
<th class="has-text-centered">Prizes Awarded</th>
<td class="has-text-centered">
<i class="fas fa-equals" aria-hidden="true"></i>
<span class="sr-only">Equals</span>
</td>
<th class="has-text-centered">Net Proceeds</th>
</tr>
</thead>
<tbody>
<%
let costs_receiptsSum = 0;
let costs_adminSum = 0;
let costs_prizesAwardedSum = 0;
let costs_netProceedsSum = 0;
%>
<% for (const eventCost of event.eventCosts) { %>
<%
const ticketType = (eventCost.ticketType || "");
costs_receiptsSum += (eventCost.costs_receipts || 0);
costs_adminSum += (eventCost.costs_admin || 0);
costs_prizesAwardedSum += (eventCost.costs_prizesAwarded || 0);
costs_netProceedsSum += (eventCost.costs_netProceeds || 0);
%>
<tr>
<% if (eventCost.ticketType) { %>
<th><%= eventCost.ticketType %></th>
<% } %>
<td class="has-text-right">
<%= htmlFns.formatDollarsAsHTML(eventCost.costs_receipts || 0) %>
</td>
<td class="has-text-centered has-text-grey">
<i class="fas fa-minus" aria-hidden="true"></i>
<span class="sr-only">Minus</span>
</td>
<td class="has-text-right">
<%= htmlFns.formatDollarsAsHTML(eventCost.costs_admin || 0) %>
</td>
<td class="has-text-centered has-text-grey">
<i class="fas fa-minus" aria-hidden="true"></i>
<span class="sr-only">Minus</span>
</td>
<td class="has-text-right">
<%= htmlFns.formatDollarsAsHTML(eventCost.costs_prizesAwarded || 0) %>
</td>
<td class="has-text-centered has-text-grey">
<i class="fas fa-equals" aria-hidden="true"></i>
<span class="sr-only">Equals</span>
</td>
<td class="has-text-right">
<%
const costs_netProceeds = (eventCost.costs_receipts || 0) - (eventCost.costs_admin || 0) - (eventCost.costs_prizesAwarded || 0);
costs_netProceedsSum += costs_netProceeds;
%>
<%- htmlFns.formatDollarsAsHTML(costs_netProceeds) %>
</td>
</tr>
<% } %>
</tbody>
<% if (event.eventCosts.length > 1) { %>
<tfoot>
<% if (event.eventCosts[0].ticketType) { %>
<th></th>
<% } %>
<th class="has-text-right">
<%- htmlFns.formatDollarsAsHTML(costs_receiptsSum) %>
</th>
<td class="has-text-centered is-vcentered has-text-grey">
<i class="fas fa-minus" aria-hidden="true"></i>
<span class="sr-only">Minus</span>
</td>
<th class="has-text-right">
<%- htmlFns.formatDollarsAsHTML(costs_adminSum) %>
</th>
<td class="has-text-centered is-vcentered has-text-grey">
<i class="fas fa-minus" aria-hidden="true"></i>
<span class="sr-only">Minus</span>
</td>
<th class="has-text-right">
<%- htmlFns.formatDollarsAsHTML(costs_prizesAwardedSum) %>
</th>
<td class="has-text-centered is-vcentered has-text-grey">
<i class="fas fa-equals" aria-hidden="true"></i>
<span class="sr-only">Equals</span>
</td>
<th class="has-text-right">
<%- htmlFns.formatDollarsAsHTML(costs_netProceedsSum) %>
</th>
</tfoot>
<% } %>
</table>
</div>
<div class="columns is-desktop">
<div class="column is-5-desktop">
<%- include('_event-view_edit-licenceFields'); -%>
</div>
<div class="column">
<%
const licenceType = configFunctions.getLicenceType(licence.licenceTypeKey);
%>
<div class="panel">
<h2 class="panel-heading">
Event Fields
</h2>
<%
const eventFields = licenceType.eventFields || [];
for (let fieldIndex = 0; fieldIndex < eventFields.length; fieldIndex += 1) {
const eventField = eventFields[fieldIndex];
const inputName = licenceType.licenceTypeKey + "-" + eventField.fieldKey;
let fieldValue = "";
for (let savedFieldIndex = 0; savedFieldIndex < event.eventFields.length; savedFieldIndex += 1) {
if (event.eventFields[savedFieldIndex].fieldKey === inputName) {
event.eventFields[savedFieldIndex].isDisplayed = true;
fieldValue = event.eventFields[savedFieldIndex].fieldValue;
break;
}
}
if (fieldValue === "") {
continue;
}
const inputAttributes = eventField.inputAttributes || {};
if (!inputAttributes.type) {
inputAttributes.type = "text";
}
let inputAttributesString = "";
for (let attributeName in inputAttributes) {
inputAttributesString += " " + attributeName + "=\"" + inputAttributes[attributeName] + "\"";
}
%>
<div class="panel-block">
<p>
<strong>
<%= eventField.fieldLabel || eventField.fieldKey %>
</strong><br />
<%= fieldValue %>
</p>
</div>
<%
}
for (let savedFieldIndex = 0; savedFieldIndex < event.eventFields.length; savedFieldIndex += 1) {
const savedField = event.eventFields[savedFieldIndex];
if (!savedField.isDisplayed) {
%>
<div class="panel-block">
<p>
<strong>
<%= savedField.fieldKey %></strong><br />
<%= savedField.fieldValue %>
</p>
</div>
<%
}
}
%>
</div>
</div>
</div>
</div>
</div>
<%- include('_footerA'); -%>
<% if (licence.events.length > 1) { %>
<script src="<%= urlPrefix %>/javascripts/event-viewEdit.min.js"></script>
<% } %>
<%- include('_footerB'); -%>