88 lines
3.2 KiB
C#
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");
|
|
}
|
|
}
|
|
}
|
|
}
|