diff --git a/Disco.BI/BI/Extensions/JobActionExtensions.cs b/Disco.BI/BI/Extensions/JobActionExtensions.cs index cb6f471e..bd75644d 100644 --- a/Disco.BI/BI/Extensions/JobActionExtensions.cs +++ b/Disco.BI/BI/Extensions/JobActionExtensions.cs @@ -329,9 +329,8 @@ namespace Disco.BI.Extensions if (j.JobMetaNonWarranty.AccountingChargeRequiredDate.HasValue && (!j.JobMetaNonWarranty.AccountingChargePaidDate.HasValue || !j.JobMetaNonWarranty.AccountingChargeAddedDate.HasValue)) return false; // Accounting Charge Required, but not added or paid - // Removed Rule: 2012-05-31 - A Job can be closed if the decision has been made for the user not to pay... - //if (j.JobMetaNonWarranty.AccountingChargeAddedDate.HasValue && !j.JobMetaNonWarranty.AccountingChargePaidDate.HasValue) - // return false; // Accounting Charge Added, but not paid + if (j.JobMetaNonWarranty.AccountingChargeAddedDate.HasValue && !j.JobMetaNonWarranty.AccountingChargePaidDate.HasValue) + return false; // Accounting Charge Added, but not paid if (j.JobMetaNonWarranty.IsInsuranceClaim && !j.JobMetaInsurance.ClaimFormSentDate.HasValue) return false; // Is Insurance Claim, but claim form not sent @@ -350,6 +349,66 @@ namespace Disco.BI.Extensions } #endregion + #region Force Close + public static bool CanForceClose(this Job j) + { + var canCloseNormally = j.CanClose(); + + if (canCloseNormally) + return false; + + // Check for Override + if (j.ClosedDate.HasValue) + return false; // Job already Closed + + if (j.DeviceHeld.HasValue && !j.DeviceReturnedDate.HasValue) + return false; // Device not returned to User + + if (j.WaitingForUserAction.HasValue) + return false; // Job waiting on User Action + + switch (j.JobTypeId) + { + case JobType.JobTypeIds.HWar: + if (!string.IsNullOrEmpty(j.JobMetaWarranty.ExternalReference) && !j.JobMetaWarranty.ExternalCompletedDate.HasValue) + return true; // Job Logged (Warranty) but not completed + break; + case JobType.JobTypeIds.HNWar: + if (j.JobMetaNonWarranty.RepairerLoggedDate.HasValue && !j.JobMetaNonWarranty.RepairerCompletedDate.HasValue) + return true; // Job Logged (Repair) but not completed + if (j.JobMetaNonWarranty.AccountingChargeRequiredDate.HasValue && (!j.JobMetaNonWarranty.AccountingChargePaidDate.HasValue || !j.JobMetaNonWarranty.AccountingChargeAddedDate.HasValue)) + return true; // Accounting Charge Required, but not added or paid + + if (j.JobMetaNonWarranty.AccountingChargeAddedDate.HasValue && !j.JobMetaNonWarranty.AccountingChargePaidDate.HasValue) + return true; // Accounting Charge Added, but not paid + + if (j.JobMetaNonWarranty.IsInsuranceClaim && !j.JobMetaInsurance.ClaimFormSentDate.HasValue) + return true; // Is Insurance Claim, but claim form not sent + break; + } + + return false; + } + public static void OnForceClose(this Job j, DiscoDataContext dbContext, User Technician, string Reason) + { + if (!j.CanForceClose()) + throw new InvalidOperationException("Force Close was Denied"); + + // Write Log + JobLog jobLog = new JobLog() + { + JobId = j.Id, + TechUserId = Technician.Id, + Timestamp = DateTime.Now, + Comments = string.Format("Job Forcibly Closed{0}Reason: {1}", Environment.NewLine, Reason) + }; + dbContext.JobLogs.Add(jobLog); + + j.ClosedDate = DateTime.Now; + j.ClosedTechUserId = Technician.Id; + } + #endregion + #region Reopen public static bool CanReopen(this Job j) { diff --git a/Disco.BI/Properties/AssemblyInfo.cs b/Disco.BI/Properties/AssemblyInfo.cs index f75f11da..05ff58ca 100644 --- a/Disco.BI/Properties/AssemblyInfo.cs +++ b/Disco.BI/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0307.1501")] -[assembly: AssemblyFileVersion("1.2.0307.1501")] +[assembly: AssemblyVersion("1.2.0319.1534")] +[assembly: AssemblyFileVersion("1.2.0319.1534")] diff --git a/Disco.Client/Properties/AssemblyInfo.cs b/Disco.Client/Properties/AssemblyInfo.cs index 987fbaa9..07888c91 100644 --- a/Disco.Client/Properties/AssemblyInfo.cs +++ b/Disco.Client/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0307.1501")] -[assembly: AssemblyFileVersion("1.2.0307.1501")] +[assembly: AssemblyVersion("1.2.0319.1533")] +[assembly: AssemblyFileVersion("1.2.0319.1533")] diff --git a/Disco.ClientBootstrapper/Properties/AssemblyInfo.cs b/Disco.ClientBootstrapper/Properties/AssemblyInfo.cs index d38aa10b..966065b3 100644 --- a/Disco.ClientBootstrapper/Properties/AssemblyInfo.cs +++ b/Disco.ClientBootstrapper/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0307.1501")] -[assembly: AssemblyFileVersion("1.2.0307.1501")] +[assembly: AssemblyVersion("1.2.0319.1533")] +[assembly: AssemblyFileVersion("1.2.0319.1533")] diff --git a/Disco.Data/Properties/AssemblyInfo.cs b/Disco.Data/Properties/AssemblyInfo.cs index 911a0f4b..02d6ba82 100644 --- a/Disco.Data/Properties/AssemblyInfo.cs +++ b/Disco.Data/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0307.1501")] -[assembly: AssemblyFileVersion("1.2.0307.1501")] +[assembly: AssemblyVersion("1.2.0319.1534")] +[assembly: AssemblyFileVersion("1.2.0319.1534")] diff --git a/Disco.Models/Properties/AssemblyInfo.cs b/Disco.Models/Properties/AssemblyInfo.cs index 4840b225..5e1ab826 100644 --- a/Disco.Models/Properties/AssemblyInfo.cs +++ b/Disco.Models/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0307.1501")] -[assembly: AssemblyFileVersion("1.2.0307.1501")] +[assembly: AssemblyVersion("1.2.0319.1534")] +[assembly: AssemblyFileVersion("1.2.0319.1534")] diff --git a/Disco.Services/Properties/AssemblyInfo.cs b/Disco.Services/Properties/AssemblyInfo.cs index fed0a480..183c81cc 100644 --- a/Disco.Services/Properties/AssemblyInfo.cs +++ b/Disco.Services/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0307.1501")] -[assembly: AssemblyFileVersion("1.2.0307.1501")] +[assembly: AssemblyVersion("1.2.0319.1534")] +[assembly: AssemblyFileVersion("1.2.0319.1534")] diff --git a/Disco.Web.Extensions/Properties/AssemblyInfo.cs b/Disco.Web.Extensions/Properties/AssemblyInfo.cs index 57f9d979..c2cbfde2 100644 --- a/Disco.Web.Extensions/Properties/AssemblyInfo.cs +++ b/Disco.Web.Extensions/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0307.1501")] -[assembly: AssemblyFileVersion("1.2.0307.1501")] +[assembly: AssemblyVersion("1.2.0319.1534")] +[assembly: AssemblyFileVersion("1.2.0319.1534")] diff --git a/Disco.Web/Areas/API/Controllers/JobController.cs b/Disco.Web/Areas/API/Controllers/JobController.cs index 31f49d62..c7036330 100644 --- a/Disco.Web/Areas/API/Controllers/JobController.cs +++ b/Disco.Web/Areas/API/Controllers/JobController.cs @@ -1555,6 +1555,29 @@ namespace Disco.Web.Areas.API.Controllers } return Json("Invalid Job Number", JsonRequestBehavior.AllowGet); } + public virtual ActionResult ForceClose(int id, string Reason, Nullable redirect = null) + { + var j = dbContext.Jobs.Find(id); + dbContext.Configuration.LazyLoadingEnabled = true; + if (j != null) + { + if (j.CanForceClose()) + { + j.OnForceClose(dbContext, DiscoApplication.CurrentUser, Reason); + + dbContext.SaveChanges(); + if (redirect.HasValue && redirect.Value) + return RedirectToAction(MVC.Job.Show(id)); + else + return Json("OK", JsonRequestBehavior.AllowGet); + } + else + { + return Json("Job's state doesn't allow this action", JsonRequestBehavior.AllowGet); + } + } + return Json("Invalid Job Number", JsonRequestBehavior.AllowGet); + } public virtual ActionResult Close(int id, bool redirect) { var j = dbContext.Jobs.Find(id); diff --git a/Disco.Web/Properties/AssemblyInfo.cs b/Disco.Web/Properties/AssemblyInfo.cs index 98bea942..e7fa22de 100644 --- a/Disco.Web/Properties/AssemblyInfo.cs +++ b/Disco.Web/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("1.2.0307.1501")] -[assembly: AssemblyFileVersion("1.2.0307.1501")] +[assembly: AssemblyVersion("1.2.0319.1534")] +[assembly: AssemblyFileVersion("1.2.0319.1534")] diff --git a/Disco.Web/T4MVC.cs b/Disco.Web/T4MVC.cs index 493c3d9d..eb6d94dd 100644 --- a/Disco.Web/T4MVC.cs +++ b/Disco.Web/T4MVC.cs @@ -126,6 +126,20 @@ public class T4MVC_System_Web_Mvc_ActionResult : System.Web.Mvc.ActionResult, IT namespace Links { + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public static class scripts { + private const string URLPATH = "~/scripts"; + public static string Url() { return T4MVCHelpers.ProcessVirtualPath(URLPATH); } + public static string Url(string fileName) { return T4MVCHelpers.ProcessVirtualPath(URLPATH + "/" + fileName); } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public static class tinymce { + private const string URLPATH = "~/scripts/tinymce"; + public static string Url() { return T4MVCHelpers.ProcessVirtualPath(URLPATH); } + public static string Url(string fileName) { return T4MVCHelpers.ProcessVirtualPath(URLPATH + "/" + fileName); } + } + + } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public static class ClientSource { private const string URLPATH = "~/ClientSource"; @@ -145,9 +159,9 @@ namespace Links public static readonly string disco_unobtrusiveValidation_extensions_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(URLPATH + "/disco.unobtrusiveValidation.extensions.min.js") ? Url("disco.unobtrusiveValidation.extensions.min.js") : Url("disco.unobtrusiveValidation.extensions.js"); - public static readonly string jquery_1_8_3_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(URLPATH + "/jquery-1.8.3.min.js") ? Url("jquery-1.8.3.min.js") : Url("jquery-1.8.3.js"); + public static readonly string jquery_1_9_1_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(URLPATH + "/jquery-1.9.1.min.js") ? Url("jquery-1.9.1.min.js") : Url("jquery-1.9.1.js"); - public static readonly string jquery_ui_1_9_2_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(URLPATH + "/jquery-ui-1.9.2.min.js") ? Url("jquery-ui-1.9.2.min.js") : Url("jquery-ui-1.9.2.js"); + public static readonly string jquery_ui_1_10_0_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(URLPATH + "/jquery-ui-1.10.0.min.js") ? Url("jquery-ui-1.10.0.min.js") : Url("jquery-ui-1.10.0.js"); public static readonly string jquery_dataTables_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(URLPATH + "/jquery.dataTables.min.js") ? Url("jquery.dataTables.min.js") : Url("jquery.dataTables.js"); @@ -378,7 +392,7 @@ namespace Links private const string URLPATH = "~/ClientSource/Scripts/Modules/Knockout"; public static string Url() { return T4MVCHelpers.ProcessVirtualPath(URLPATH); } public static string Url(string fileName) { return T4MVCHelpers.ProcessVirtualPath(URLPATH + "/" + fileName); } - public static readonly string knockout_2_2_0_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(URLPATH + "/knockout-2.2.0.min.js") ? Url("knockout-2.2.0.min.js") : Url("knockout-2.2.0.js"); + public static readonly string knockout_2_2_1_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(URLPATH + "/knockout-2.2.1.min.js") ? Url("knockout-2.2.1.min.js") : Url("knockout-2.2.1.js"); } @@ -902,6 +916,7 @@ namespace Links private const string URLPATH = "~/ClientSource/Style/jQueryUI/images"; public static string Url() { return T4MVCHelpers.ProcessVirtualPath(URLPATH); } public static string Url(string fileName) { return T4MVCHelpers.ProcessVirtualPath(URLPATH + "/" + fileName); } + public static readonly string animated_overlay_gif = Url("animated-overlay.gif"); public static readonly string ui_bg_diagonals_thick_18_b81900_40x40_png = Url("ui-bg_diagonals-thick_18_b81900_40x40.png"); public static readonly string ui_bg_diagonals_thick_20_666666_40x40_png = Url("ui-bg_diagonals-thick_20_666666_40x40.png"); public static readonly string ui_bg_flat_10_000000_40x100_png = Url("ui-bg_flat_10_000000_40x100.png"); @@ -5596,6 +5611,12 @@ namespace Disco.Web.Areas.API.Controllers } [NonAction] [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public virtual System.Web.Mvc.ActionResult ForceClose() + { + return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.ForceClose); + } + [NonAction] + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public virtual System.Web.Mvc.ActionResult Close() { return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Close); @@ -5764,6 +5785,7 @@ namespace Disco.Web.Areas.API.Controllers public readonly string DeviceReadyForReturn = "DeviceReadyForReturn"; public readonly string DeviceHeld = "DeviceHeld"; public readonly string DeviceReturned = "DeviceReturned"; + public readonly string ForceClose = "ForceClose"; public readonly string Close = "Close"; public readonly string Reopen = "Reopen"; public readonly string Delete = "Delete"; @@ -5834,6 +5856,7 @@ namespace Disco.Web.Areas.API.Controllers public const string DeviceReadyForReturn = "DeviceReadyForReturn"; public const string DeviceHeld = "DeviceHeld"; public const string DeviceReturned = "DeviceReturned"; + public const string ForceClose = "ForceClose"; public const string Close = "Close"; public const string Reopen = "Reopen"; public const string Delete = "Delete"; @@ -6317,6 +6340,16 @@ namespace Disco.Web.Areas.API.Controllers public readonly string id = "id"; public readonly string redirect = "redirect"; } + static readonly ActionParamsClass_ForceClose s_params_ForceClose = new ActionParamsClass_ForceClose(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_ForceClose ForceCloseParams { get { return s_params_ForceClose; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_ForceClose + { + public readonly string id = "id"; + public readonly string Reason = "Reason"; + public readonly string redirect = "redirect"; + } static readonly ActionParamsClass_Close s_params_Close = new ActionParamsClass_Close(); [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public ActionParamsClass_Close CloseParams { get { return s_params_Close; } } @@ -7044,6 +7077,18 @@ namespace Disco.Web.Areas.API.Controllers return callInfo; } + partial void ForceCloseOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string Reason, bool? redirect); + + public override System.Web.Mvc.ActionResult ForceClose(int id, string Reason, bool? redirect) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.ForceClose); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "Reason", Reason); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); + ForceCloseOverride(callInfo, id, Reason, redirect); + return callInfo; + } + partial void CloseOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, bool redirect); public override System.Web.Mvc.ActionResult Close(int id, bool redirect) diff --git a/Disco.Web/Views/Job/JobParts/_Subject.cshtml b/Disco.Web/Views/Job/JobParts/_Subject.cshtml index 9e1b4181..b9ac5cae 100644 --- a/Disco.Web/Views/Job/JobParts/_Subject.cshtml +++ b/Disco.Web/Views/Job/JobParts/_Subject.cshtml @@ -337,6 +337,55 @@ + @if (Model.Job.CanForceClose()) + { + @Html.ActionLinkSmallButton("Forcibly Close Job", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_ForceClose_Button") +
+ @using (Html.BeginForm(MVC.API.Job.ForceClose(Model.Job.Id, null, true))) + { +

+ + Are you sure? +

+

Reason:

+

+ +

+ } +
+ + } + @if (Model.Job.CanClose()) { @Html.ActionLinkSmallButton("Close Job", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_Close_Button") diff --git a/Disco.Web/Views/Job/JobParts/_Subject.generated.cs b/Disco.Web/Views/Job/JobParts/_Subject.generated.cs index d1e9c1c6..5ff639d4 100644 --- a/Disco.Web/Views/Job/JobParts/_Subject.generated.cs +++ b/Disco.Web/Views/Job/JobParts/_Subject.generated.cs @@ -31,9 +31,9 @@ namespace Disco.Web.Views.Job.JobParts using Disco.Web; using Disco.Web.Extensions; - [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.4.0")] [System.Web.WebPages.PageVirtualPathAttribute("~/Views/Job/JobParts/_Subject.cshtml")] - public class Subject : System.Web.Mvc.WebViewPage + public partial class Subject : System.Web.Mvc.WebViewPage { public Subject() { @@ -1347,7 +1347,7 @@ WriteLiteral(">\r\n"); #line hidden #line 340 "..\..\Views\Job\JobParts\_Subject.cshtml" - if (Model.Job.CanClose()) + if (Model.Job.CanForceClose()) { @@ -1355,13 +1355,126 @@ WriteLiteral(">\r\n"); #line hidden #line 342 "..\..\Views\Job\JobParts\_Subject.cshtml" - Write(Html.ActionLinkSmallButton("Close Job", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_Close_Button")); + Write(Html.ActionLinkSmallButton("Forcibly Close Job", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_ForceClose_Button")); #line default #line hidden #line 342 "..\..\Views\Job\JobParts\_Subject.cshtml" + + + + #line default + #line hidden +WriteLiteral(" \r\n"); + + + #line 344 "..\..\Views\Job\JobParts\_Subject.cshtml" + + + #line default + #line hidden + + #line 344 "..\..\Views\Job\JobParts\_Subject.cshtml" + using (Html.BeginForm(MVC.API.Job.ForceClose(Model.Job.Id, null, true))) + { + + + #line default + #line hidden +WriteLiteral("

\r\n \r\n Are you sure?\r\n

" + +"\r\n"); + +WriteLiteral("

Reason:

\r\n"); + +WriteLiteral("

\r\n \r\n

\r\n"); + + + #line 354 "..\..\Views\Job\JobParts\_Subject.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n"); + +WriteLiteral(" \r\n $(function () {\r\n var button = $(\'#" + +"Job_Show_Job_Actions_ForceClose_Button\');\r\n var buttonDia" + +"log = null;\r\n\r\n button.click(function () {\r\n " + +" if (!buttonDialog) {\r\n buttonDialo" + +"g = $(\'#Job_Show_Job_Actions_ForceClose_Dialog\');\r\n " + +" buttonDialog.dialog({\r\n resizable: false,\r" + +"\n modal: true,\r\n " + +" autoOpen: false,\r\n buttons: {\r\n " + +" \"Forcibly Close Job\": function () {\r\n " + +" var $this = $(this);\r\n " + +" $this.dialog(\"disable\");\r\n " + +" $this.dialog(\"option\", \"buttons\", null);\r\n " + +" $this.find(\'form\').submit();\r\n " + +" },\r\n Cancel: function () {\r\n " + +" $(this).dialog(\"close\");\r\n " + +" }\r\n }\r\n " + +" });\r\n }\r\n\r\n " + +" buttonDialog.dialog(\'open\');\r\n return false;\r\n " + +" });\r\n });\r\n \r\n"); + + + #line 387 "..\..\Views\Job\JobParts\_Subject.cshtml" + } + + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 389 "..\..\Views\Job\JobParts\_Subject.cshtml" + + + #line default + #line hidden + + #line 389 "..\..\Views\Job\JobParts\_Subject.cshtml" + if (Model.Job.CanClose()) + { + + + #line default + #line hidden + + #line 391 "..\..\Views\Job\JobParts\_Subject.cshtml" + Write(Html.ActionLinkSmallButton("Close Job", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_Close_Button")); + + + #line default + #line hidden + + #line 391 "..\..\Views\Job\JobParts\_Subject.cshtml" @@ -1410,7 +1523,7 @@ WriteLiteral(">\r\n $(function () {\r\n " });\r\n });\r\n \r\n"); - #line 380 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 429 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1419,7 +1532,7 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral(" "); - #line 381 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 430 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanReopen()) { @@ -1427,14 +1540,14 @@ WriteLiteral(" "); #line default #line hidden - #line 383 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 432 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Reopen Job", MVC.API.Job.Reopen(Model.Job.Id, true), "Job_Show_Job_Actions_Reopen_Button")); #line default #line hidden - #line 383 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 432 "..\..\Views\Job\JobParts\_Subject.cshtml" @@ -1484,7 +1597,7 @@ WriteLiteral(">\r\n $(function () {\r\n " });\r\n \r\n"); - #line 422 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 471 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1493,7 +1606,7 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral(" "); - #line 423 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 472 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanDelete()) { @@ -1501,14 +1614,14 @@ WriteLiteral(" "); #line default #line hidden - #line 425 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 474 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Delete Job", MVC.API.Job.Delete(Model.Job.Id, true), "Job_Show_Job_Actions_Delete_Button")); #line default #line hidden - #line 425 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 474 "..\..\Views\Job\JobParts\_Subject.cshtml" @@ -1559,7 +1672,7 @@ WriteLiteral(">\r\n $(function () {\r\n " \r\n"); - #line 464 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 513 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1568,7 +1681,7 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral(" "); - #line 465 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 514 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanLogWarranty()) { @@ -1576,14 +1689,14 @@ WriteLiteral(" "); #line default #line hidden - #line 467 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 516 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Log Warranty", MVC.Job.LogWarranty(Model.Job.Id, null, null), "Job_Show_Job_Actions_LogWarranty_Button")); #line default #line hidden - #line 467 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 516 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1593,7 +1706,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 469 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 518 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanWarrantyCompleted()) { @@ -1601,14 +1714,14 @@ WriteLiteral(" "); #line default #line hidden - #line 471 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 520 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Warranty Complete", MVC.API.Job.UpdateWarrantyExternalCompletedDate(Model.Job.Id, "Now", true), "Job_Show_Job_Actions_WarrantyComplete_Button", "alert")); #line default #line hidden - #line 471 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 520 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1618,7 +1731,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 473 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 522 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanInsuranceClaimFormSent()) { @@ -1626,14 +1739,14 @@ WriteLiteral(" "); #line default #line hidden - #line 475 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 524 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Insurance Claim Form Sent", MVC.API.Job.UpdateInsuranceClaimFormSentDate(Model.Job.Id, "Now", true), "Job_Show_Job_Actions_InsuranceClaimFormSent_Button", "alert")); #line default #line hidden - #line 475 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 524 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1643,7 +1756,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 477 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 526 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanLogRepair()) { @@ -1651,14 +1764,14 @@ WriteLiteral(" "); #line default #line hidden - #line 479 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 528 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Repairs Logged", MVC.API.Job.LogRepair(Model.Job.Id, null, null, true), "Job_Show_Job_Actions_LogRepair_Button")); #line default #line hidden - #line 479 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 528 "..\..\Views\Job\JobParts\_Subject.cshtml" @@ -1675,13 +1788,13 @@ WriteLiteral(" title=\"Repairs Logged\""); WriteLiteral(">\r\n"); - #line 481 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 530 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 481 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 530 "..\..\Views\Job\JobParts\_Subject.cshtml" using (Html.BeginForm(MVC.API.Job.LogRepair(Model.Job.Id, null, null, true))) { @@ -1713,7 +1826,7 @@ WriteLiteral(" name=\"RepairerReference\""); WriteLiteral(" />\r\n

\r\n"); - #line 491 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 540 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1751,7 +1864,7 @@ WriteLiteral(">\r\n $(function () {\r\n " });\r\n });\r\n \r\n"); - #line 529 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 578 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1760,7 +1873,7 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral(" "); - #line 530 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 579 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanRepairComplete()) { @@ -1768,14 +1881,14 @@ WriteLiteral(" "); #line default #line hidden - #line 532 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 581 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Repairs Complete", MVC.API.Job.UpdateNonWarrantyRepairerCompletedDate(Model.Job.Id, "Now", true), "Job_Show_Job_Actions_RepairComplete_Button", "alert")); #line default #line hidden - #line 532 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 581 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1785,7 +1898,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 534 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 583 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanConvertHWarToHNWar()) { @@ -1793,14 +1906,14 @@ WriteLiteral(" "); #line default #line hidden - #line 536 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 585 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Convert to Non-Warranty", MVC.API.Job.ConvertHWarToHNWar(Model.Job.Id, true), "Job_Show_Job_Actions_ConvertToHNWar_Button")); #line default #line hidden - #line 536 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 585 "..\..\Views\Job\JobParts\_Subject.cshtml" @@ -1851,7 +1964,7 @@ WriteLiteral(">\r\n $(function () {\r\n " \r\n });\r\n \r\n"); - #line 577 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 626 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1860,13 +1973,13 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral(" \r\n"); - #line 579 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 628 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 579 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 628 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.Device != null) { @@ -1880,13 +1993,13 @@ WriteLiteral(" id=\"Job_Show_Device_Actions\""); WriteLiteral(">\r\n"); - #line 582 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 631 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 582 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 631 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanDeviceHeld()) { @@ -1894,14 +2007,14 @@ WriteLiteral(">\r\n"); #line default #line hidden - #line 584 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 633 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Held", MVC.API.Job.DeviceHeld(Model.Job.Id, true), "Job_Show_Device_Actions_Held_Button")); #line default #line hidden - #line 584 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 633 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1911,7 +2024,7 @@ WriteLiteral(">\r\n"); WriteLiteral(" "); - #line 586 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 635 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanDeviceReadyForReturn()) { @@ -1919,14 +2032,14 @@ WriteLiteral(" "); #line default #line hidden - #line 588 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 637 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Ready For Return", MVC.API.Job.DeviceReadyForReturn(Model.Job.Id, true), "Job_Show_Device_Actions_DeviceReadyForReturn_Button", "alert")); #line default #line hidden - #line 588 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 637 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1936,7 +2049,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 590 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 639 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanDeviceReturned()) { @@ -1944,14 +2057,14 @@ WriteLiteral(" "); #line default #line hidden - #line 592 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 641 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Returned", MVC.API.Job.DeviceReturned(Model.Job.Id, true), "Job_Show_Device_Actions_DeviceReturned_Button", Model.Job.CanDeviceReadyForReturn() ? null : "alert")); #line default #line hidden - #line 592 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 641 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1961,7 +2074,7 @@ WriteLiteral(" "); WriteLiteral(" \r\n"); - #line 595 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 644 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1970,7 +2083,7 @@ WriteLiteral(" \r\n"); WriteLiteral(" "); - #line 596 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 645 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.User != null) { @@ -1984,13 +2097,13 @@ WriteLiteral(" id=\"Job_Show_User_Actions\""); WriteLiteral(">\r\n\r\n\r\n"); - #line 601 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 650 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 601 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 650 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanWaitingForUserAction()) { @@ -2018,13 +2131,13 @@ WriteLiteral(" title=\"Waiting for User Action\""); WriteLiteral(">\r\n"); - #line 605 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 654 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 605 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 654 "..\..\Views\Job\JobParts\_Subject.cshtml" using (Html.BeginForm(MVC.API.Job.WaitingForUserAction(Model.Job.Id, null, true))) { @@ -2042,7 +2155,7 @@ WriteLiteral(" class=\"block\""); WriteLiteral(">\r\n

\r\n"); - #line 611 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 660 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2077,7 +2190,7 @@ WriteLiteral(">\r\n $(function () {\r\n " });\r\n \r\n"); - #line 644 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 693 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2086,7 +2199,7 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral(" "); - #line 645 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 694 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanNotWaitingForUserAction()) { @@ -2114,13 +2227,13 @@ WriteLiteral(" title=\"Not Waiting for User Action\""); WriteLiteral(">\r\n"); - #line 649 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 698 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 649 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 698 "..\..\Views\Job\JobParts\_Subject.cshtml" using (Html.BeginForm(MVC.API.Job.NotWaitingForUserAction(Model.Job.Id, null, true))) { @@ -2138,7 +2251,7 @@ WriteLiteral(" class=\"block\""); WriteLiteral(">\r\n

\r\n"); - #line 655 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 704 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2174,7 +2287,7 @@ WriteLiteral(">\r\n $(function () {\r\n " });\r\n \r\n"); - #line 689 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 738 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2183,7 +2296,7 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral("\r\n \r\n"); - #line 692 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 741 "..\..\Views\Job\JobParts\_Subject.cshtml" }