pesapakawan/Controllers/SpjDriverController/SpjDriverController.cs

119 lines
3.7 KiB
C#

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