using Microsoft.AspNetCore.Mvc; namespace pesapakawan.Controllers.SpjDriverController { [Route("submit")] public class SubmitController : Controller { [HttpGet("")] public IActionResult Index() { return View("~/Views/Admin/Transport/SpjDriver/Submit/Index.cshtml"); } [HttpGet("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 { // Validate required inputs if (string.IsNullOrEmpty(NomorStruk) || BeratNett <= 0) { TempData["Error"] = "Nomor struk dan berat nett harus diisi."; return RedirectToAction("Struk"); } // Validate receipt number format (numbers only, 7+ digits) 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"); } // Validate weight range if (BeratNett < 100 || BeratNett > 50000) { TempData["Error"] = "Berat nett harus antara 100 kg - 50,000 kg."; return RedirectToAction("Struk"); } // Validate optional weights 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"); } // Here you would normally save to database // For now, just simulate success with all data 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"); } } } }