Files
PowderCoatingLogix/src/PowderCoating.Web/Controllers/HelpController.cs
T
spouliot 6c2fe6e1c4 Add Employee Timeclock feature with kiosk, attendance report, and payroll CSV export
- New EmployeeClockEntry entity (facility-level attendance, separate from job time entries)
- KioskPin added to ApplicationUser; TimeclockKioskToken added to Company
- TimeclockController: clock in/out, who's in, 14-day history, manager edit/delete,
  tablet kiosk with device-cookie auth, PIN management via Users edit page
- Kiosk UI: employee tile grid + 4-digit PIN pad + auto-detect clock-in vs clock-out
- Attendance report at /Reports/Attendance with weekly subtotal rows
- Payroll CSV export at /Reports/AttendanceCsv (flat, one row per segment)
- AllowCustomFormulas wired through PlatformSubscriptionController + subscription views
- Fix soft-delete bug on CustomItemTemplate (missing HasQueryFilter in OnModelCreating)
- Help article (Help/Timeclock.cshtml) and AI knowledge base updated
- Migrations: AddEmployeeTimeclock, AddTimeclockKioskToken

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 19:53:13 -04:00

148 lines
4.7 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace PowderCoating.Web.Controllers
{
[Authorize]
public class HelpController : Controller
{
/// <summary>
/// Renders the Help Center landing page (article index). All help articles are static Razor views stored under Views/Help/ — no database queries are needed.
/// </summary>
public IActionResult Index()
{
return View();
}
/// <summary>
/// Serves the Getting Started help article covering initial onboarding steps and the Setup Wizard.
/// </summary>
public IActionResult GettingStarted()
{
return View();
}
/// <summary>
/// Serves the Customers help article explaining commercial vs non-commercial types, pricing tiers, and credit limits.
/// </summary>
public IActionResult Customers()
{
return View();
}
/// <summary>
/// Serves the Vendors help article covering supplier management and payment terms.
/// </summary>
public IActionResult Vendors()
{
return View();
}
/// <summary>
/// Serves the Equipment help article explaining the equipment status lifecycle and maintenance scheduling.
/// </summary>
public IActionResult Equipment()
{
return View();
}
/// <summary>
/// Serves the User Profile help article covering photo upload, appearance preferences, and password/email changes.
/// </summary>
public IActionResult UserProfile()
{
return View();
}
/// <summary>
/// Serves the Jobs help article explaining the 16-status job lifecycle, priorities, worker assignment, and time entries.
/// </summary>
public IActionResult Jobs()
{
return View();
}
/// <summary>
/// Serves the Quotes help article covering the multi-item wizard, AI Photo Quoting, and quote-to-job conversion.
/// </summary>
public IActionResult Quotes()
{
return View();
}
/// <summary>
/// Serves the Invoices help article covering invoice creation from a job, partial payments, voids, and PDF download.
/// </summary>
public IActionResult Invoices()
{
return View();
}
/// <summary>
/// Serves the Inventory help article explaining stock tracking, transaction types, and reorder alerts.
/// </summary>
public IActionResult Inventory()
{
return View();
}
/// <summary>
/// Serves the Purchase Orders help article covering PO creation, submission, receiving, and conversion to vendor bills.
/// </summary>
public IActionResult PurchaseOrders()
{
return View();
}
/// <summary>
/// Serves the Accounts Payable help article describing vendor bills, the AP ledger, and payment tracking.
/// </summary>
public IActionResult AccountsPayable()
{
return View();
}
/// <summary>
/// Serves the Reports help article summarising the 24 available report actions including P&amp;L, AR Aging, and PDF exports.
/// </summary>
public IActionResult Reports()
{
return View();
}
/// <summary>
/// Serves the Settings help article covering company settings, named ovens, pricing tiers, and platform configuration.
/// </summary>
public IActionResult Settings()
{
return View();
}
/// <summary>
/// Serves the Customer Intake Kiosk help article explaining the tablet kiosk setup, the staff-triggered intake flow, and the Intakes review page.
/// </summary>
public IActionResult CustomerIntakeKiosk()
{
return View();
}
/// <summary>
/// Serves the Custom Formula Item Templates help article explaining how to create NCalc formula
/// templates, use the AI generator, and add formula items to quotes and jobs.
/// </summary>
public IActionResult CustomFormulaTemplates()
{
return View();
}
/// <summary>
/// Serves the Timeclock help article explaining clock in/out, multi-segment days, the kiosk tablet
/// mode with PIN authentication, manager edit/delete tools, and the Attendance report.
/// </summary>
public IActionResult Timeclock()
{
return View();
}
}
}