@model List @using PowderCoating.Core.Entities @{ Layout = null; ViewData["Title"] = "Shop Floor Display"; var scheduledDate = ViewBag.ScheduledDate as DateTime? ?? DateTime.Today; var currentTime = ViewBag.CurrentTime as DateTime? ?? DateTime.Now; var allStatuses = ViewBag.AllStatuses as List ?? new List(); var currentUserId = ViewBag.CurrentUserId as string ?? ""; var filterUserId = ViewBag.FilterUserId as string; var isMyJobsFilter = filterUserId != null; } Shop Floor Display - @scheduledDate.ToString("MMM dd, yyyy")
Job Schedule
@Model.Count job@(Model.Count != 1 ? "s" : "") Connecting... @if (isMyJobsFilter) { My Jobs }
@currentTime.ToString("HH:mm:ss")
@scheduledDate.ToString("dddd, MMMM dd, yyyy") @if (scheduledDate.Date == DateTime.Today) { TODAY } else if (scheduledDate.Date == DateTime.Today.AddDays(1)) { TOMORROW } else if (scheduledDate.Date == DateTime.Today.AddDays(-1)) { YESTERDAY }
@Html.AntiForgeryToken()
@if (!Model.Any()) {

@(isMyJobsFilter ? "No Jobs Assigned to You" : "No Jobs Scheduled")

@(isMyJobsFilter ? "No jobs assigned to you for " : "No jobs scheduled for ")@scheduledDate.ToString("MMMM dd, yyyy")

@if (isMyJobsFilter) { View All Jobs }
} else { @for (int i = 0; i < Model.Count; i++) { var job = Model[i]; var isOverdue = job.DueDate.HasValue && job.DueDate.Value.Date < DateTime.Today; var borderClass = $"priority-border-{job.PriorityColorClass}"; var hasNext = job.NextStatusId.HasValue;
@(i + 1)
@job.JobNumber
@job.CustomerName
@job.StatusDisplayName
@job.PriorityDisplayName
@(string.IsNullOrEmpty(job.AssignedWorkerName) ? "Unassigned" : job.AssignedWorkerName)
@if (job.DueDate.HasValue) {
Due: @job.DueDate.Value.ToString("MMM dd") @if (isOverdue) { }
} else {
No due date
}
@foreach (var item in job.Items) { ×@((int)item.Quantity) @item.Description @if (item.Colors.Any()) { @string.Join(" / ", item.Colors) } @if (item.HasSandblasting) { } @if (item.HasMasking) { } }
@if (!string.IsNullOrWhiteSpace(job.SpecialInstructions)) {
@job.SpecialInstructions
}
@if (allStatuses.Any()) {
@for (int s = 0; s < allStatuses.Count; s++) { var status = allStatuses[s]; var isCurrent = status.StatusCode == job.StatusCode; var isDone = status.DisplayOrder < job.StatusDisplayOrder; var stepClass = isCurrent ? "current" : (isDone ? "done" : "");
@status.DisplayName @if (s < allStatuses.Count - 1) { }
}
} @if (hasNext) {
Tap to advance to @job.NextStatusDisplayName
}
} }