pesapakawan/Controllers/SpjDriverController/SubmitController.cs

88 lines
3.2 KiB
C#

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");
}
}
}
}