using System.Diagnostics; using Microsoft.AspNetCore.Mvc; using pesapakawan.Models; namespace pesapakawan.Controllers.SpjDriverController; [Route("transport/spj-driver")] public class SpjDriverController : Controller { [HttpGet("")] public IActionResult Index() { return View("~/Views/Admin/Transport/SpjDriver/Home/Index.cshtml"); } [HttpGet("kosong")] public IActionResult Kosong() { return View("~/Views/Admin/Transport/SpjDriver/Home/Kosong.cshtml"); } [HttpGet("detail-penjemputan")] public IActionResult DetailPenjemputan() { return View("~/Views/Admin/Transport/SpjDriver/DetailPenjemputan/Index.cshtml"); } [HttpGet("detail-penjemputan/batal")] public IActionResult BatalJemput() { return View("~/Views/Admin/Transport/SpjDriver/DetailPenjemputan/Batal.cshtml"); } [HttpGet("history")] public IActionResult History() { return View("~/Views/Admin/Transport/SpjDriver/History/Index.cshtml"); } [HttpGet("history/details/{id}")] public IActionResult HistoryDetails(int id) { ViewData["Id"] = id; return View("~/Views/Admin/Transport/SpjDriver/History/Details.cshtml"); } [HttpGet("submit")] public IActionResult Submit() { return View("~/Views/Admin/Transport/SpjDriver/Submit/Index.cshtml"); } [HttpGet("submit/struk")] public IActionResult Struk() { return View("~/Views/Admin/Transport/SpjDriver/Submit/Struk.cshtml"); } [HttpPost("struk")] public IActionResult ProcessStruk(string NomorStruk, string NomorPolisi, string Penugasan, string WaktuMasuk, string WaktuKeluar, int? BeratMasuk, int? BeratKeluar, int BeratNett) { try { if (string.IsNullOrEmpty(NomorStruk) || BeratNett <= 0) { TempData["Error"] = "Nomor struk dan berat nett harus diisi."; return RedirectToAction("Struk"); } if (!System.Text.RegularExpressions.Regex.IsMatch(NomorStruk, @"^\d{7,}$")) { TempData["Error"] = "Format nomor struk tidak valid. Harus berupa angka minimal 7 digit."; return RedirectToAction("Struk"); } if (BeratNett < 100 || BeratNett > 50000) { TempData["Error"] = "Berat nett harus antara 100 kg - 50,000 kg."; return RedirectToAction("Struk"); } if (BeratMasuk.HasValue && (BeratMasuk < 0 || BeratMasuk > 100000)) { TempData["Error"] = "Berat masuk tidak valid."; return RedirectToAction("Struk"); } if (BeratKeluar.HasValue && (BeratKeluar < 0 || BeratKeluar > 100000)) { TempData["Error"] = "Berat keluar tidak valid."; return RedirectToAction("Struk"); } var submitData = new { NomorStruk, NomorPolisi = NomorPolisi ?? "N/A", Penugasan = Penugasan ?? "N/A", WaktuMasuk = WaktuMasuk ?? "N/A", WaktuKeluar = WaktuKeluar ?? "N/A", BeratMasuk = BeratMasuk?.ToString() ?? "N/A", BeratKeluar = BeratKeluar?.ToString() ?? "N/A", BeratNett }; TempData["Success"] = $"Struk berhasil disubmit! No: {NomorStruk}, Nett: {BeratNett} kg"; return RedirectToAction("Index", "Home"); } catch (Exception) { TempData["Error"] = "Terjadi kesalahan saat memproses struk. Silakan coba lagi."; return RedirectToAction("Struk"); } } }