_DeviationEditPartial.cshtml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. @using GreenTree.Nachtragsmanagement.Web.Extensions
  2. @{
  3. var userContext = GreenTree.Nachtragsmanagement.Core.CommonHelper.UserContext();
  4. }
  5. @model GreenTree.Nachtragsmanagement.Web.Models.Deviation.DeviationDataModel
  6. <div class="deviationEditContainer">
  7. <script>
  8. function addStatus() {
  9. $.ajax({
  10. url: '@Url.Action("EditClaim", "Deviation")',
  11. data: { claimType: "status", Id: -1 },
  12. success: function (response) {
  13. setTimeout(function () {
  14. $(".claimEditContainer").remove();
  15. $("body").append(response);
  16. parent.addCustomEventListener('StatusDataCallbackEventReceiver', function () {
  17. StatusId.PerformCallback();
  18. });
  19. }, 200);
  20. },
  21. error: function () {
  22. alert("error occured");
  23. }
  24. });
  25. }
  26. function addDisturbance() {
  27. $.ajax({
  28. url: '@Url.Action("EditClaim", "Deviation")',
  29. data: { claimType: "disturbance", Id: -1 },
  30. success: function (response) {
  31. setTimeout(function () {
  32. $(".claimEditContainer").remove();
  33. $("body").append(response);
  34. parent.addCustomEventListener('DisturbanceDataCallbackEventReceiver', function () {
  35. DisturbanceId.PerformCallback();
  36. });
  37. }, 200);
  38. },
  39. error: function () {
  40. alert("error occured");
  41. }
  42. });
  43. }
  44. function addKind() {
  45. $.ajax({
  46. url: '@Url.Action("EditClaim", "Deviation")',
  47. data: { claimType: "kind", Id: -1 },
  48. success: function (response) {
  49. setTimeout(function () {
  50. $(".claimEditContainer").remove();
  51. $("body").append(response);
  52. parent.addCustomEventListener('KindDataCallbackEventReceiver', function () {
  53. KindId.PerformCallback();
  54. });
  55. }, 200);
  56. },
  57. error: function () {
  58. alert("error occured");
  59. }
  60. });
  61. }
  62. </script>
  63. @Html.DevExpress().PopupControl(s =>
  64. {
  65. s.Name = "devPopupControlEditDeviation";
  66. if (Model.Id == -1)
  67. s.HeaderText = "Neue Vertragsabweichung erstellen";
  68. else
  69. s.HeaderText = "\"" + Model.CustomNumber + "\" bearbeiten";
  70. s.Modal = true;
  71. s.Width = new Unit(500, UnitType.Pixel);
  72. s.CloseAction = CloseAction.CloseButton;
  73. s.PopupHorizontalAlign = PopupHorizontalAlign.WindowCenter;
  74. s.PopupVerticalAlign = PopupVerticalAlign.TopSides;
  75. s.PopupVerticalOffset = 10;
  76. s.AllowDragging = false;
  77. s.AllowResize = false;
  78. s.ShowFooter = false;
  79. s.ShowOnPageLoad = true;
  80. s.SetContent(() =>
  81. {
  82. using (Html.BeginForm("EditDeviation", "Deviation", FormMethod.Post, new { id = "deviationEditForm" }))
  83. {
  84. ViewContext.Writer.Write("<div class='editFormWrapper'>");
  85. ViewContext.Writer.Write("<input type=\"hidden\" value=\"" + Model.Id + "\" id=\"Id\" name=\"Id\" />");
  86. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.CustomNumber, "Eigene ID:"));
  87. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.CustomNumber).ToHtmlString());
  88. Html.DevExpress().TextBoxFor(m => m.CustomNumber, t =>
  89. {
  90. t.Width = new Unit(47.5, UnitType.Percentage);
  91. }).Render();
  92. ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
  93. {
  94. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 50%'>");
  95. {
  96. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.Value, "Wert:"));
  97. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.Value).ToHtmlString());
  98. Html.DevExpress().SpinEditFor(m => m.Value, t =>
  99. {
  100. t.Width = new Unit(95, UnitType.Percentage);
  101. t.Properties.DecimalPlaces = 2;
  102. t.Properties.NumberType = SpinEditNumberType.Float;
  103. t.Properties.DisplayFormatString = "c2";
  104. }).Render();
  105. }
  106. ViewContext.Writer.Write("</div>");
  107. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 50%'>");
  108. {
  109. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.ReceiptDate, "Eingangsdatum:"));
  110. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.ReceiptDate).ToHtmlString());
  111. Html.DevExpress().DateEditFor(m => m.ReceiptDate, t =>
  112. {
  113. t.Width = new Unit(100, UnitType.Percentage);
  114. }).Render();
  115. }
  116. ViewContext.Writer.Write("</div>");
  117. }
  118. ViewContext.Writer.Write("</div>");
  119. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.AppendixId, "Nachtrag:"));
  120. Session.Add("DeviationAppendicesComboBoxSettings", new Action<ComboBoxSettings>(a =>
  121. {
  122. a.Width = new Unit(47.5, UnitType.Percentage);
  123. a.Properties.ValueType = typeof(int);
  124. a.Properties.ValueField = "Id";
  125. a.Properties.TextField = "Description";
  126. var serializedModel = Newtonsoft.Json.JsonConvert.SerializeObject(Model);
  127. a.CallbackRouteValues = new
  128. {
  129. Controller = "DataCallback",
  130. Action = "AppendicesComboBox",
  131. SettingsKey = "DeviationAppendicesComboBoxSettings",
  132. Model = serializedModel,
  133. Type = Model.GetType().FullName
  134. };
  135. }));
  136. ViewData.Add("AppendicesComboBoxSettings", "DeviationAppendicesComboBoxSettings");
  137. Html.RenderPartial("~/Views/Shared/DataEditorTemplates/_AppendicesComboBox.cshtml", Model, ViewData);
  138. ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
  139. {
  140. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 33%'>");
  141. {
  142. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.StatusId, "Status:"));
  143. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.StatusId).ToHtmlString());
  144. Session.Add("DeviationStatusesComboBoxSettings", new Action<ComboBoxSettings>(a =>
  145. {
  146. a.Width = new Unit(95, UnitType.Percentage);
  147. a.Properties.ValueType = typeof(int);
  148. a.Properties.ValueField = "Id";
  149. a.Properties.TextField = "Description";
  150. var serializedModel = Newtonsoft.Json.JsonConvert.SerializeObject(Model);
  151. a.CallbackRouteValues = new
  152. {
  153. Controller = "DataCallback",
  154. Action = "StatusesComboBox",
  155. SettingsKey = "DeviationStatusesComboBoxSettings",
  156. Model = serializedModel,
  157. Type = Model.GetType().FullName
  158. };
  159. }));
  160. ViewData.Add("StatusesComboBoxSettings", "DeviationStatusesComboBoxSettings");
  161. Html.RenderPartial("~/Views/Shared/DataEditorTemplates/_StatusesComboBox.cshtml", Model, ViewData);
  162. if (userContext.CurrentUser.HasFunction("Deviation-Claims-Edit"))
  163. {
  164. Html.DevExpress().HyperLink(t =>
  165. {
  166. t.Name = "devHyperLinkStatusEventReceiver";
  167. t.Properties.Text = "Hinzufügen";
  168. t.NavigateUrl = "#";
  169. t.Properties.ClientSideEvents.Click = "function (s, e) { addStatus(); }";
  170. t.Style.Add("line-height", "24px");
  171. }).Render();
  172. }
  173. }
  174. ViewContext.Writer.Write("</div>");
  175. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 33%'>");
  176. {
  177. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.DisturbanceId, "Verzögerung:"));
  178. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.DisturbanceId).ToHtmlString());
  179. Session.Add("DeviationDisturbancesComboBoxSettings", new Action<ComboBoxSettings>(a =>
  180. {
  181. a.Width = new Unit(95, UnitType.Percentage);
  182. a.Properties.ValueType = typeof(int);
  183. a.Properties.ValueField = "Id";
  184. a.Properties.TextField = "Description";
  185. var serializedModel = Newtonsoft.Json.JsonConvert.SerializeObject(Model);
  186. a.CallbackRouteValues = new
  187. {
  188. Controller = "DataCallback",
  189. Action = "DisturbancesComboBox",
  190. SettingsKey = "DeviationDisturbancesComboBoxSettings",
  191. Model = serializedModel,
  192. Type = Model.GetType().FullName
  193. };
  194. }));
  195. ViewData.Add("DisturbancesComboBoxSettings", "DeviationDisturbancesComboBoxSettings");
  196. Html.RenderPartial("~/Views/Shared/DataEditorTemplates/_DisturbancesComboBox.cshtml", Model, ViewData);
  197. if (userContext.CurrentUser.HasFunction("Deviation-Claims-Edit"))
  198. {
  199. Html.DevExpress().HyperLink(t =>
  200. {
  201. t.Name = "devHyperLinkDisturbanceEventReceiver";
  202. t.Properties.Text = "Hinzufügen";
  203. t.NavigateUrl = "#";
  204. t.Properties.ClientSideEvents.Click = "function (s, e) { addDisturbance(); }";
  205. t.Style.Add("line-height", "24px");
  206. }).Render();
  207. }
  208. }
  209. ViewContext.Writer.Write("</div>");
  210. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 34%'>");
  211. {
  212. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.KindId, "Art:"));
  213. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.KindId).ToHtmlString());
  214. Session.Add("DeviationKindsComboBoxSettings", new Action<ComboBoxSettings>(a =>
  215. {
  216. a.Width = new Unit(95, UnitType.Percentage);
  217. a.Properties.ValueType = typeof(int);
  218. a.Properties.ValueField = "Id";
  219. a.Properties.TextField = "Description";
  220. var serializedModel = Newtonsoft.Json.JsonConvert.SerializeObject(Model);
  221. a.CallbackRouteValues = new
  222. {
  223. Controller = "DataCallback",
  224. Action = "KindsComboBox",
  225. SettingsKey = "DeviationKindsComboBoxSettings",
  226. Model = serializedModel,
  227. Type = Model.GetType().FullName
  228. };
  229. }));
  230. ViewData.Add("KindsComboBoxSettings", "DeviationKindsComboBoxSettings");
  231. Html.RenderPartial("~/Views/Shared/DataEditorTemplates/_KindsComboBox.cshtml", Model, ViewData);
  232. if (userContext.CurrentUser.HasFunction("Deviation-Claims-Edit"))
  233. {
  234. Html.DevExpress().HyperLink(t =>
  235. {
  236. t.Name = "devHyperLinkKindEventReceiver";
  237. t.Properties.Text = "Hinzufügen";
  238. t.NavigateUrl = "#";
  239. t.Properties.ClientSideEvents.Click = "function (s, e) { addKind(); }";
  240. t.Style.Add("line-height", "24px");
  241. }).Render();
  242. }
  243. }
  244. ViewContext.Writer.Write("</div>");
  245. }
  246. ViewContext.Writer.Write("</div>");
  247. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.Comment, "Kommentar:"));
  248. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.Comment).ToHtmlString());
  249. Html.DevExpress().MemoFor(m => m.Comment, t =>
  250. {
  251. t.Width = new Unit(100, UnitType.Percentage);
  252. t.Height = new Unit(90, UnitType.Pixel);
  253. }).Render();
  254. ViewContext.Writer.Write("</div>");
  255. Html.RenderPartial(
  256. "~/Views/Shared/_PopupButtonPanel.cshtml",
  257. new GreenTree.Nachtragsmanagement.Web.Models.Global.PopupModel
  258. {
  259. PopupName = "devPopupControlEditDeviation",
  260. AcceptFunction = "function (s, e) { saveDeviation(); }"
  261. }
  262. );
  263. }
  264. });
  265. s.Styles.Content.Paddings.Padding = new Unit(0);
  266. s.Styles.ModalBackground.Opacity = 0;
  267. }).GetHtml()
  268. </div>