Initial commit

This commit is contained in:
2026-04-23 21:38:24 -04:00
commit 63e12a9636
1762 changed files with 1672620 additions and 0 deletions
@@ -0,0 +1,226 @@
@{
ViewData["Title"] = "Shop Workers";
}
<div class="d-flex align-items-center gap-2 mb-3">
<a asp-controller="Help" asp-action="Index" class="btn btn-sm btn-outline-secondary"><i class="bi bi-arrow-left"></i></a>
<nav aria-label="breadcrumb">
<ol class="breadcrumb mb-0">
<li class="breadcrumb-item"><a asp-controller="Help" asp-action="Index">Help</a></li>
<li class="breadcrumb-item active">Shop Workers</li>
</ol>
</nav>
</div>
<div class="row g-4">
<div class="col-lg-9">
<section id="overview" class="mb-5">
<h2 class="h4 fw-bold border-bottom pb-2 mb-3">
<i class="bi bi-info-circle text-primary me-2"></i>Overview
</h2>
<p>
Shop Workers are the people who do the hands-on work in your facility — sandblasters, coaters,
maskers, oven operators, and supervisors. Adding your workers to the system lets you assign them
to jobs and maintenance tasks, giving you a clear picture of who is working on what at any time.
</p>
<p>
Shop Workers are separate from system user accounts. A worker does not need to log into the
system — they are simply a record that can be assigned to work. If a worker also needs to log
in and update job statuses themselves, an Administrator can create a linked user account for
them with the <em>Shop Floor</em> role.
</p>
<p>
Find Shop Workers under <strong>Operations &rsaquo; Shop Workers</strong> in the sidebar.
</p>
</section>
<section id="adding-a-worker" class="mb-5">
<h2 class="h4 fw-bold border-bottom pb-2 mb-3">
<i class="bi bi-person-plus text-primary me-2"></i>Adding a Worker
</h2>
<p>To add a new shop worker:</p>
<ol class="mb-3">
<li class="mb-2">Go to <strong>Operations &rsaquo; Shop Workers</strong> and click <strong>New Worker</strong>.</li>
<li class="mb-2">
Fill in the worker's details:
<ul class="mt-1">
<li><strong>Name</strong> — the worker's full name as it should appear on job assignments.</li>
<li><strong>Role</strong> — select the role that best describes their primary function (see below).</li>
<li><strong>Phone</strong> — optional, useful for supervisors to have on file.</li>
<li><strong>Email</strong> — optional, used if the worker also has a system login.</li>
<li><strong>Notes</strong> — any relevant information, such as certifications, shift preferences, or specialties.</li>
</ul>
</li>
<li class="mb-2">Ensure <strong>Active</strong> is checked (it is on by default).</li>
<li class="mb-2">Click <strong>Save Worker</strong>.</li>
</ol>
<p>
Once saved, the worker will appear in the assignment dropdowns on the Job Create and Edit forms.
</p>
</section>
<section id="worker-roles" class="mb-5">
<h2 class="h4 fw-bold border-bottom pb-2 mb-3">
<i class="bi bi-tags text-primary me-2"></i>Worker Roles
</h2>
<p>
Each worker is assigned one of the following roles. The role is a label — it helps you pick the
right person for a job but does not restrict what a worker can be assigned to.
</p>
<div class="table-responsive">
<table class="table table-bordered align-middle">
<thead class="table-light">
<tr>
<th style="width:25%">Role</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="badge bg-secondary">General Labor</span></td>
<td>
Versatile workers who assist across multiple areas of the shop — loading and unloading,
racking parts, clean-up, and general support tasks. Not specialized in a single process.
</td>
</tr>
<tr>
<td><span class="badge bg-warning text-dark">Sandblaster</span></td>
<td>
Operates the sandblasting or media-blasting equipment to prepare metal surfaces for
coating. Responsible for achieving the correct surface profile and ensuring all rust,
paint, and contamination is removed.
</td>
</tr>
<tr>
<td><span class="badge bg-primary">Coater</span></td>
<td>
Applies powder coating using an electrostatic spray gun. Responsible for even coverage,
correct mil thickness, and minimizing overspray and waste. Often the most skilled
technical role on the floor.
</td>
</tr>
<tr>
<td><span class="badge bg-info text-dark">Masker</span></td>
<td>
Applies masking tape, plugs, and caps to protect threads, bearing surfaces, and areas
that must not be coated. Attention to detail is critical — missed masking means rework.
</td>
</tr>
<tr>
<td><span class="badge bg-success">Quality Control</span></td>
<td>
Inspects finished parts for adhesion, color consistency, coverage, and surface defects
before the job is marked as complete. May also handle pre-coat inspection after
sandblasting.
</td>
</tr>
<tr>
<td><span class="badge bg-danger">Oven Operator</span></td>
<td>
Loads parts into the curing oven, sets correct temperatures and cure times for the
powder being used, monitors the cure cycle, and unloads parts safely after cooling.
</td>
</tr>
<tr>
<td><span class="badge bg-dark">Supervisor</span></td>
<td>
Oversees day-to-day shop floor operations, assigns tasks to other workers, ensures
jobs are progressing on schedule, and handles escalations. May also handle customer
communication for production updates.
</td>
</tr>
<tr>
<td><span class="badge bg-secondary">Maintenance</span></td>
<td>
Responsible for keeping equipment running — performing scheduled preventive maintenance,
troubleshooting breakdowns, and coordinating with external service technicians when
needed.
</td>
</tr>
</tbody>
</table>
</div>
</section>
<section id="assigning-to-jobs" class="mb-5">
<h2 class="h4 fw-bold border-bottom pb-2 mb-3">
<i class="bi bi-briefcase text-primary me-2"></i>Assigning Workers to Jobs
</h2>
<p>
Each job can have one worker assigned to it as the primary responsible person. This is the
worker who owns the job from start to finish — typically a coater or supervisor.
</p>
<p>To assign a worker when creating or editing a job:</p>
<ol class="mb-3">
<li class="mb-1">Open the job's Create or Edit form.</li>
<li class="mb-1">Scroll down to the <strong>Assignment</strong> section.</li>
<li class="mb-1">Select a worker from the <strong>Assigned Worker</strong> dropdown. Only active workers are listed.</li>
<li class="mb-1">Save the job.</li>
</ol>
<p>
The assigned worker's name appears on the job list view, on the job detail page, and in any
reports filtered by worker.
</p>
<p>
Workers can also be assigned to <strong>maintenance tasks</strong> on equipment. See the
<a asp-controller="Help" asp-action="Equipment" class="text-decoration-none">Equipment &amp; Maintenance</a>
help page for details.
</p>
<div class="alert alert-permanent alert-info d-flex gap-2 mb-0" role="alert">
<i class="bi bi-lightbulb-fill flex-shrink-0 mt-1"></i>
<div>
If a worker you want to assign does not appear in the dropdown, check that their record is
marked as <strong>Active</strong>. Inactive workers are hidden from assignment lists.
</div>
</div>
</section>
<section id="deactivating-a-worker" class="mb-5">
<h2 class="h4 fw-bold border-bottom pb-2 mb-3">
<i class="bi bi-person-dash text-primary me-2"></i>Deactivating a Worker
</h2>
<p>
When a worker leaves the shop or is no longer available for assignment, deactivate their record
rather than deleting it. Deactivating preserves the history of all jobs they were assigned to,
while removing them from the active assignment dropdowns so they cannot be accidentally selected
for new work.
</p>
<p>To deactivate a worker:</p>
<ol class="mb-3">
<li class="mb-1">Open the worker's Details or Edit page.</li>
<li class="mb-1">Uncheck the <strong>Active</strong> checkbox.</li>
<li class="mb-1">Click <strong>Save</strong>.</li>
</ol>
<p>
Alternatively, use the <strong>Delete</strong> button on the Details page to perform a soft
delete, which has the same effect.
</p>
<div class="alert alert-permanent alert-secondary d-flex gap-2 mb-0" role="alert">
<i class="bi bi-info-circle flex-shrink-0 mt-1"></i>
<div>
If a worker currently has open jobs assigned to them, reassign those jobs first before
deactivating the worker — so the jobs remain clearly owned and nothing falls through the cracks.
</div>
</div>
</section>
</div>
<div class="col-lg-3 d-none d-lg-block">
@{ await Html.RenderPartialAsync("_HelpNav"); }
<div class="card border-0 shadow-sm sticky-top" style="top:80px">
<div class="card-header bg-transparent fw-semibold small text-muted text-uppercase" style="letter-spacing:.05em; font-size:.7rem;">On this page</div>
<div class="card-body p-0">
<nav class="nav flex-column">
<a class="nav-link py-1 px-3 small text-body" href="#overview">Overview</a>
<a class="nav-link py-1 px-3 small text-body" href="#adding-a-worker">Adding a Worker</a>
<a class="nav-link py-1 px-3 small text-body" href="#worker-roles">Worker Roles</a>
<a class="nav-link py-1 px-3 small text-body" href="#assigning-to-jobs">Assigning to Jobs</a>
<a class="nav-link py-1 px-3 small text-body" href="#deactivating-a-worker">Deactivating a Worker</a>
</nav>
</div>
</div>
</div>
</div>