Claims.cshtml 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. @using GreenTree.Nachtragsmanagement.Web.Models.Global
  2. @{
  3. Layout = "~/Views/Shared/_FunctionLayout.cshtml";
  4. }
  5. <script>
  6. var deleteId;
  7. var deleteReplaceId;
  8. var deleteClaimType;
  9. var claimTypeTranslation = {
  10. status: "VA-Status",
  11. disturbance: "Kategorie",
  12. kind: "Art"
  13. };
  14. $(document).ready(function () {
  15. setListBoxHeights();
  16. $.ajaxSetup({
  17. cache: false
  18. });
  19. });
  20. $(window).resize(setListBoxHeights);
  21. function setListBoxHeights() {
  22. var windowHeight = $(window).height();
  23. devListBoxStatuses.SetHeight(windowHeight - 40);
  24. devListBoxDisturbances.SetHeight(windowHeight - 40);
  25. devListBoxKinds.SetHeight(windowHeight - 40);
  26. }
  27. function editClaim(claimType, id) {
  28. if (!id) return;
  29. $.ajax({
  30. url: '@Url.Action("EditClaim", "Deviation")',
  31. data: { claimType: claimType, Id: id },
  32. success: function (response) {
  33. setTimeout(function () {
  34. $(".claimEditContainer").remove();
  35. $("body").append(response);
  36. if (claimType == "status") {
  37. parent.addCustomEventListener('StatusDataCallbackEventReceiver', function () {
  38. devListBoxStatuses.PerformCallback();
  39. });
  40. } else if (claimType == "kind") {
  41. parent.addCustomEventListener('KindDataCallbackEventReceiver', function () {
  42. devListBoxKinds.PerformCallback();
  43. });
  44. } else if (claimType == "disturbance") {
  45. parent.addCustomEventListener('DisturbanceDataCallbackEventReceiver', function () {
  46. devListBoxDisturbances.PerformCallback();
  47. });
  48. }
  49. }, 200);
  50. },
  51. error: function () {
  52. alert("error occured");
  53. }
  54. });
  55. }
  56. function confirmDelete(claimType, id) {
  57. if (!id) return;
  58. deleteId = id;
  59. deleteClaimType = claimType;
  60. $.ajax({
  61. type: "GET",
  62. url: '@Url.Action("GetClaim", "Deviation")',
  63. data: { claimType: deleteClaimType, Id: id },
  64. success: function (response) {
  65. if (response == "notFound") return;
  66. var claim = JSON.parse(response);
  67. $(".deleteValidation").hide();
  68. var popupControl = MVCxClientPopupControl.Cast(devPopupControlDeleteClaim);
  69. popupControl.SetHeaderText(popupControl.GetHeaderText().replace("{claim}", claim.Description));
  70. $(".dialogText").text($(".dialogText").text().replace("{claim}", claim.Description));
  71. $(".dialogText").text($(".dialogText").text().replace("{claim}", claim.Description));
  72. $(".dialogText").text($(".dialogText").text().replace("{claimType}", claimTypeTranslation[claimType]));
  73. devRadioButtonDeleteReplaceClaim
  74. .SetText(devRadioButtonDeleteReplaceClaim.GetText().replace("{claimType}", claimTypeTranslation[claimType]));
  75. var comboBox = null;
  76. devComboBoxClaimDeleteReplaceStatus.SetVisible(false);
  77. devComboBoxClaimDeleteReplaceDisturbance.SetVisible(false);
  78. devComboBoxClaimDeleteReplaceKind.SetVisible(false);
  79. if (deleteClaimType == "status") {
  80. devComboBoxClaimDeleteReplaceStatus.SetVisible(true);
  81. comboBox = MVCxClientComboBox.Cast(devComboBoxClaimDeleteReplaceStatus);
  82. } else if (deleteClaimType == "kind") {
  83. devComboBoxClaimDeleteReplaceKind.SetVisible(true);
  84. comboBox = MVCxClientComboBox.Cast(devComboBoxClaimDeleteReplaceKind);
  85. } else if (deleteClaimType == "disturbance") {
  86. devComboBoxClaimDeleteReplaceDisturbance.SetVisible(true);
  87. comboBox = MVCxClientComboBox.Cast(devComboBoxClaimDeleteReplaceDisturbance);
  88. }
  89. comboBox.PerformCallback();
  90. popupControl.Show();
  91. }
  92. });
  93. }
  94. function deleteClaim() {
  95. if (deleteClaimType == "status") {
  96. deleteReplaceId = devComboBoxClaimDeleteReplaceStatus.GetValue();
  97. } else if (deleteClaimType == "kind") {
  98. deleteReplaceId = devComboBoxClaimDeleteReplaceKind.GetValue();
  99. } else if (deleteClaimType == "disturbance") {
  100. deleteReplaceId = devComboBoxClaimDeleteReplaceDisturbance.GetValue();
  101. }
  102. if (deleteReplaceId == 0) {
  103. $(".deleteValidation").text("Es muss ein Ersatz ausgewählt werden.");
  104. $(".deleteValidation").show();
  105. return;
  106. }
  107. if (deleteId == deleteReplaceId) {
  108. $(".deleteValidation").text("Der Ersatz darf nicht gleich dem zu löschenden Element sein.");
  109. $(".deleteValidation").show();
  110. return;
  111. }
  112. $.ajax({
  113. type: "POST",
  114. url: '@Url.Action("DeleteClaim", "Deviation")',
  115. data: { claimType: deleteClaimType, Id: deleteId, replaceId: deleteReplaceId },
  116. success: function (response) {
  117. var popupControl = MVCxClientPopupControl.Cast(devPopupControlDeleteClaim);
  118. popupControl.Hide();
  119. setTimeout(function () {
  120. if (deleteClaimType == "status") {
  121. devListBoxStatuses.PerformCallback();
  122. } else if (deleteClaimType == "disturbance") {
  123. devListBoxDisturbances.PerformCallback();
  124. } else if (deleteClaimType == "kind") {
  125. devListBoxKinds.PerformCallback();
  126. }
  127. }, 200);
  128. },
  129. error: function () {
  130. alert("error occured");
  131. }
  132. });
  133. }
  134. </script>
  135. <table style="width: 100%">
  136. <tbody>
  137. <tr>
  138. <td style="width: 33%; padding-right: 6px">
  139. <div class="listHeader">
  140. <span>VA-Stati</span>
  141. <img src='@Url.Content("~/Content/Images/add-24-contrast.png")' onclick='editClaim("status", -1)' title="Neuer VA-Status" />
  142. </div>
  143. @Html.Partial("~/Views/Deviations/_StatusListPartial.cshtml", ViewData["AllStatuses"])
  144. </td>
  145. <td style="width: 33%; padding: 0 6px">
  146. <div class="listHeader">
  147. <span>Arten</span>
  148. <img src='@Url.Content("~/Content/Images/add-24-contrast.png")' onclick='editClaim("kind", -1)' title="Neue Art" />
  149. </div>
  150. @Html.Partial("~/Views/Deviations/_KindListPartial.cshtml", ViewData["AllKinds"])
  151. </td>
  152. <td style="width: 33%; padding-left: 6px">
  153. <div class="listHeader">
  154. <span>VA-Kategorien</span>
  155. <img src='@Url.Content("~/Content/Images/add-24-contrast.png")' onclick='editClaim("disturbance", -1)' title="Neue VA-Kategorie" />
  156. </div>
  157. @Html.Partial("~/Views/Deviations/_DisturbanceListPartial.cshtml", ViewData["AllDisturbances"])
  158. </td>
  159. </tr>
  160. </tbody>
  161. </table>
  162. @Html.DevExpress().PopupControl(s =>
  163. {
  164. s.Name = "devPopupControlDeleteClaim";
  165. s.HeaderText = "\"{claim}\" löschen";
  166. s.Modal = false;
  167. s.Width = new Unit(350, UnitType.Pixel);
  168. s.CloseAction = CloseAction.CloseButton;
  169. s.PopupHorizontalAlign = PopupHorizontalAlign.WindowCenter;
  170. s.PopupVerticalAlign = PopupVerticalAlign.WindowCenter;
  171. s.AllowDragging = false;
  172. s.AllowResize = false;
  173. s.ShowFooter = false;
  174. s.SetContent(() =>
  175. {
  176. ViewContext.Writer.Write("<div class='dialogText' style='padding: 12px'>");
  177. ViewContext.Writer.Write("Falls Sie \"{claim}\" löschen möchten, was soll mit den Vertragsabweichungen geschehen, die bereits \"{claim}\" zugeordnet sind?");
  178. ViewContext.Writer.Write("</div>");
  179. ViewContext.Writer.Write("<div style='padding: 0 12px 12px 12px'>");
  180. Html.DevExpress().RadioButton(rb =>
  181. {
  182. rb.Name = "devRadioButtonDeleteReplaceClaim";
  183. rb.Text = "Eine neue(n) {claimType} zuweisen";
  184. rb.GroupName = "claimDelete";
  185. rb.Checked = true;
  186. }).Render();
  187. Session.Add("StatusesDeleteComboBoxSettings", new Action<ComboBoxSettings>(a =>
  188. {
  189. a.Name = "devComboBoxClaimDeleteReplaceStatus";
  190. a.Width = new Unit(100, UnitType.Percentage);
  191. a.Properties.ValueType = typeof(int);
  192. a.Properties.ValueField = "Id";
  193. a.Properties.TextField = "Description";
  194. a.Properties.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['excludedIds'] = [ deleteId ]; }";
  195. a.Properties.ClientSideEvents.EndCallback = "function (s, e) { s.SetSelectedIndex(0); }";
  196. a.SelectedIndex = 0;
  197. a.ClientVisible = false;
  198. a.CallbackRouteValues = new
  199. {
  200. Controller = "DataCallback",
  201. Action = "StatusesComboBoxExcluded",
  202. SettingsKey = "StatusesDeleteComboBoxSettings"
  203. };
  204. }));
  205. ViewData.Add("StatusesComboBoxSettings", "StatusesDeleteComboBoxSettings");
  206. Html.RenderPartial("~/Views/Shared/DataEditorTemplates/_StatusesComboBox.cshtml", null, ViewData);
  207. Session.Add("DisturbancesDeleteComboBoxSettings", new Action<ComboBoxSettings>(a =>
  208. {
  209. a.Name = "devComboBoxClaimDeleteReplaceDisturbance";
  210. a.Width = new Unit(100, UnitType.Percentage);
  211. a.Properties.ValueType = typeof(int);
  212. a.Properties.ValueField = "Id";
  213. a.Properties.TextField = "Description";
  214. a.Properties.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['excludedIds'] = [ deleteId ]; }";
  215. a.Properties.ClientSideEvents.EndCallback = "function (s, e) { s.SetSelectedIndex(0); }";
  216. a.SelectedIndex = 0;
  217. a.ClientVisible = false;
  218. a.CallbackRouteValues = new
  219. {
  220. Controller = "DataCallback",
  221. Action = "DisturbancesComboBoxExcluded",
  222. SettingsKey = "DisturbancesDeleteComboBoxSettings"
  223. };
  224. }));
  225. ViewData.Add("DisturbancesComboBoxSettings", "DisturbancesDeleteComboBoxSettings");
  226. Html.RenderPartial("~/Views/Shared/DataEditorTemplates/_DisturbancesComboBox.cshtml", null, ViewData);
  227. Session.Add("KindsDeleteComboBoxSettings", new Action<ComboBoxSettings>(a =>
  228. {
  229. a.Name = "devComboBoxClaimDeleteReplaceKind";
  230. a.Width = new Unit(100, UnitType.Percentage);
  231. a.Properties.ValueType = typeof(int);
  232. a.Properties.ValueField = "Id";
  233. a.Properties.TextField = "Description";
  234. a.Properties.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['excludedIds'] = [ deleteId ]; }";
  235. a.Properties.ClientSideEvents.EndCallback = "function (s, e) { s.SetSelectedIndex(0); }";
  236. a.SelectedIndex = 0;
  237. a.ClientVisible = false;
  238. a.CallbackRouteValues = new
  239. {
  240. Controller = "DataCallback",
  241. Action = "KindsComboBoxExcluded",
  242. SettingsKey = "KindsDeleteComboBoxSettings"
  243. };
  244. }));
  245. ViewData.Add("KindsComboBoxSettings", "KindsDeleteComboBoxSettings");
  246. Html.RenderPartial("~/Views/Shared/DataEditorTemplates/_KindsComboBox.cshtml", null, ViewData);
  247. ViewContext.Writer.Write("<div class=\"deleteValidation\" style=\"display: none\"></div>");
  248. ViewContext.Writer.Write("</div>");
  249. Html.RenderPartial(
  250. "~/Views/Shared/_PopupButtonPanelYesNo.cshtml",
  251. new YesNoDialogModel
  252. {
  253. PopupName = "devPopupControlDeleteClaim",
  254. YesFunction = "function (s, e) { deleteClaim(); }"
  255. }
  256. );
  257. });
  258. s.Styles.Content.Paddings.Padding = new Unit(0, UnitType.Pixel);
  259. }).GetHtml()