using System.Web.Mvc; using Neo.Legitimate.OperatingLicences.Models; using Neo.Legitimate.Data.Models; using Pilotfish.Afx.Mvc; using Neo.Legitimate.Common; using System.Linq; using Neo.Legitimate.Common.Helpers; using System; namespace Neo.Legitimate.OperatingLicences.Controllers { public partial class OperatingLicencesController : Neo.Legitimate.Common.ControllerBase { const int DEFAULT_REGION_ID = 4; //UMGUNGUNDLOVU #region IssuingExpiries public ActionResult IssuingExpiries() { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Common.Securable.OperatingLicencesModule_Issuing)) { return RedirectToAction("Default", "Applications"); } var database = new LegitimateDatabase(); var model = new IssuingExpiriesModel(); int regionID; model.Regions = database.GetAdjudicationRegions(); if (Request.QueryString["regionid"] != null) { if (int.TryParse(Request.QueryString["regionid"], out regionID)) { model.CurrentRegionID = regionID; } else { model.CurrentRegionID = DEFAULT_REGION_ID; } } else { model.CurrentRegionID = DEFAULT_REGION_ID; } if (SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Common.Securable.OperatingLicencesModule_Issuing_IssuingExpiries)) { var licencesAwaitingIssuing = database.SearchLicenceIssueTracking((long)Defaults.SystemUserID, model.CurrentRegionID); model.Toggle30DaysWaitingSendingCount = licencesAwaitingIssuing.Where(a => (DateTime.Now > a.IssuingExpiryDate_30Days) && a.IssuingExpiryDate_30DaysIsLetterSent == false).Count(); model.Toggle30DaysSentCount = licencesAwaitingIssuing.Where(a => (DateTime.Now > a.IssuingExpiryDate_30Days) && (DateTime.Now < a.IssuingExpiryDate_60Days) && a.IssuingExpiryDate_30DaysIsLetterSent == true && a.IssuingExpiryDateIsExtended == false).Count(); model.Toggle60DaysWaitingSendingCount = licencesAwaitingIssuing.Where(a => (DateTime.Now > a.IssuingExpiryDate_60Days) && a.IssuingExpiryDate_30DaysIsLetterSent == true && a.IssuingExpiryDate_60DaysIsLetterSent == false && a.IssuingExpiryDateIsExtended == false).Count(); model.Toggle90DaysWaitingSendingCount = licencesAwaitingIssuing.Where(a => (DateTime.Now > a.IssuingExpiryDate_90Days) && a.IssuingExpiryDate_30DaysIsLetterSent == true && a.IssuingExpiryDate_90DaysIsLetterSent == false && a.IssuingExpiryDateIsExtended == true).Count(); } else { model.Toggle30DaysWaitingSendingCount = 0; model.Toggle30DaysSentCount = 0; model.Toggle60DaysWaitingSendingCount = 0; model.Toggle90DaysWaitingSendingCount = 0; } WebHelper.SetLastPageVisited(HttpContext, "OperatingLicences/IssuingExpiries"); ViewBag.Controller = "Operating Licences"; ViewBag.Page = "Issuing Expiries"; return View("IssuingExpiries", model); } #endregion #region Get30DaysAwaitingSending [HttpPost] public JsonResult Get30DaysAwaitingSending(long regionID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Common.Securable.OperatingLicencesModule_Issuing_IssuingExpiries)) { throw new Exception("Security error"); } var database = new LegitimateDatabase(); var results = new { Records = database.SearchLicenceIssueTracking((long)Defaults.SystemUserID, regionID).Where(a => (DateTime.Now > a.IssuingExpiryDate_30Days) && a.IssuingExpiryDate_30DaysIsLetterSent == false).ToList(), Success = true }; return Json(results, JsonSerializerOptions.None); } #endregion #region Get30DaysSent [HttpPost] public JsonResult Get30DaysSent(long regionID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Common.Securable.OperatingLicencesModule_Issuing_IssuingExpiries)) { throw new Exception("Security error"); } var database = new LegitimateDatabase(); var results = new { Records = database.SearchLicenceIssueTracking((long)Defaults.SystemUserID, regionID).Where(a => (DateTime.Now > a.IssuingExpiryDate_30Days) && (DateTime.Now < a.IssuingExpiryDate_60Days) && a.IssuingExpiryDate_30DaysIsLetterSent == true && a.IssuingExpiryDateIsExtended == false).ToList(), Success = true }; return Json(results, JsonSerializerOptions.None); } #endregion #region Get60DaysAwaitingSending [HttpPost] public JsonResult Get60DaysAwaitingSending(long regionID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Common.Securable.OperatingLicencesModule_Issuing_IssuingExpiries)) { throw new Exception("Security error"); } var database = new LegitimateDatabase(); var results = new { Records = database.SearchLicenceIssueTracking((long)Defaults.SystemUserID, regionID).Where(a => (DateTime.Now > a.IssuingExpiryDate_60Days) && a.IssuingExpiryDate_30DaysIsLetterSent == true && a.IssuingExpiryDate_60DaysIsLetterSent == false && a.IssuingExpiryDateIsExtended == false).ToList(), Success = true }; return Json(results, JsonSerializerOptions.None); } #endregion #region Get90DaysAwaitingSending [HttpPost] public JsonResult Get90DaysAwaitingSending(long regionID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Common.Securable.OperatingLicencesModule_Issuing_IssuingExpiries)) { throw new Exception("Security error"); } var database = new LegitimateDatabase(); var results = new { Records = database.SearchLicenceIssueTracking((long)Defaults.SystemUserID, regionID).Where(a => (DateTime.Now > a.IssuingExpiryDate_90Days) && a.IssuingExpiryDate_30DaysIsLetterSent == true && a.IssuingExpiryDate_90DaysIsLetterSent == false && a.IssuingExpiryDateIsExtended == true).ToList(), Success = true }; return Json(results, JsonSerializerOptions.None); } #endregion #region FlagLicences [HttpPost] public JsonResult FlagLicences(string licencesToBeFlaggedAsSent, string DaysLetter) { var database = new LegitimateDatabase(); var errorMessage = ""; var ThirtyLetterSent = 0; var SixtyDaysLetterSent = 0; var NinetyLetterSent = 0; if (DaysLetter == "30Days") { ThirtyLetterSent = 1; SixtyDaysLetterSent = 0; NinetyLetterSent = 0; } else if (DaysLetter == "60Days") { ThirtyLetterSent = 0; SixtyDaysLetterSent = 1; NinetyLetterSent = 0; } else if (DaysLetter == "90Days") { ThirtyLetterSent = 0; SixtyDaysLetterSent = 0; NinetyLetterSent = 1; } var success = database.LicenceIssueTrackingFlag(licencesToBeFlaggedAsSent, ThirtyLetterSent, SixtyDaysLetterSent, NinetyLetterSent, Profile.UserID, out errorMessage); var results = new { Success = success, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion #region ExtendLicence [HttpPost] public JsonResult ExtendLicence(long LicenceID) { var database = new LegitimateDatabase(); var errorMessage = ""; var success = database.LicenceExtendLetter(LicenceID, Profile.UserID); var results = new { Success = success, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion } }