_AppendixEditPartial.cshtml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648
  1. @using GreenTree.Nachtragsmanagement.Web.Extensions
  2. @{
  3. var userContext = GreenTree.Nachtragsmanagement.Core.CommonHelper.UserContext();
  4. var categoryValues = Model.CategoryValueEntities.ToArray();
  5. var isReadOnly = ViewData["ReadOnly"] != null && Convert.ToBoolean(ViewData["ReadOnly"]);
  6. }
  7. @model GreenTree.Nachtragsmanagement.Web.Models.Appendix.AppendixDataModel
  8. <div class="appendixEditContainer">
  9. <script>
  10. var textSeparator = ", ";
  11. var zeroValueStates =
  12. [
  13. @foreach (var state in (IEnumerable<GreenTree.Nachtragsmanagement.Core.Domain.Appendix.State>)ViewData["AllStates"])
  14. {
  15. if (state.IsZeroValue)
  16. {
  17. ViewContext.Writer.Write(state.Id);
  18. }
  19. }
  20. ];
  21. var initialValueStates =
  22. [
  23. @foreach (var state in (IEnumerable<GreenTree.Nachtragsmanagement.Core.Domain.Appendix.State>)ViewData["AllStates"])
  24. {
  25. ViewContext.Writer.Write("{ Id: " + state.Id + ", Value: " + state.InitialPercentage.ToString().Replace(',','.') + " },");
  26. }
  27. ];
  28. function saveAppendix() {
  29. CategoryEntities.SelectAll();
  30. var form = $("#appendixEditForm");
  31. $(form).submit(function (e) {
  32. PercentageAppendix.SetValue(PercentageAppendix.GetValue() / 100);
  33. $.ajax({
  34. type: "POST",
  35. url: '@Url.Action("EditAppendix", "Appendix")',
  36. data: form.serialize(),
  37. success: function (response) {
  38. setTimeout(function () {
  39. $(".appendixEditContainer").remove();
  40. if (response == "success") {
  41. if (typeof onAppendixSaveSuccess === 'function') {
  42. onAppendixSaveSuccess();
  43. }
  44. } else {
  45. $("body").append(response);
  46. }
  47. }, 200);
  48. }
  49. });
  50. e.preventDefault();
  51. });
  52. form.submit();
  53. }
  54. function addState() {
  55. $.ajax({
  56. url: '@Url.Action("EditState", "Appendix")',
  57. data: { claimType: "status", Id: -1 },
  58. success: function (response) {
  59. setTimeout(function () {
  60. $(".stateEditContainer").remove();
  61. $("body").append(response);
  62. parent.addCustomEventListener('StateDataCallbackEventReceiver', function () {
  63. StateId.PerformCallback();
  64. });
  65. }, 200);
  66. },
  67. error: function () {
  68. alert("error occured");
  69. }
  70. });
  71. }
  72. function addCategory() {
  73. $.ajax({
  74. url: '@Url.Action("EditClaim", "Appendix")',
  75. data: { claimType: "disturbance", Id: -1 },
  76. success: function (response) {
  77. setTimeout(function () {
  78. $(".claimEditContainer").remove();
  79. $("body").append(response);
  80. parent.addCustomEventListener('CategoryDataCallbackEventReceiver', function () {
  81. CategoryId.PerformCallback();
  82. });
  83. }, 200);
  84. },
  85. error: function () {
  86. alert("error occured");
  87. }
  88. });
  89. }
  90. function editInvoice(id) {
  91. if (!id) return;
  92. $.ajax({
  93. url: '@Url.Action("EditInvoice", "Appendix")',
  94. data: { AppendixId: @Model.Id, Id: id },
  95. success: function (response) {
  96. setTimeout(function () {
  97. $(".invoiceEditContainer").remove();
  98. $("body").append(response);
  99. parent.addCustomEventListener('InvoiceDataCallbackEventReceiver', function () {
  100. devListBoxInvoices.PerformCallback();
  101. });
  102. }, 200);
  103. },
  104. error: function () {
  105. alert("error occured");
  106. }
  107. });
  108. }
  109. function deleteInvoice(id) {
  110. $.ajax({
  111. type: "POST",
  112. url: '@Url.Action("DeleteInvoice", "Appendix")',
  113. data: { Id: id },
  114. success: function (response) {
  115. setTimeout(function () {
  116. devListBoxInvoices.PerformCallback();
  117. }, 200);
  118. },
  119. error: function () {
  120. alert("error occured");
  121. }
  122. });
  123. }
  124. function setInitialValueState() {
  125. var selectedValue = StateId.GetSelectedItem().value;
  126. if (!selectedValue) return;
  127. var controls = ASPxClientControl.GetControlCollection();
  128. var percentage = controls.GetByName("Percentage");
  129. for (var i = 0; i < initialValueStates.length; i++) {
  130. if (initialValueStates[i].Id == selectedValue) {
  131. var per = parseFloat(initialValueStates[i].Value * 100).toFixed(2);
  132. percentage.SetValue(per);
  133. calculateValueAppendix();
  134. }
  135. }
  136. for (var i = 0; i < zeroValueStates.length; i++) {
  137. if (zeroValueStates[i] == selectedValue) {
  138. var offeringValue = controls.GetByName("OfferingValue");
  139. var percentageValue = controls.GetByName("PercentageValue");
  140. offeringValue.SetValue(0.00);
  141. percentage.SetValue(0.00);
  142. percentageValue.SetValue(0.00);
  143. break;
  144. }
  145. }
  146. }
  147. function setInvoiceDropDownTest() {
  148. var textArray = $(".invoiceText").map(function () {
  149. return $(this).text();
  150. }).get();
  151. devDropDownListInvoices.SetText(textArray.join(textSeparator));
  152. }
  153. function setDropDownText() {
  154. var allItems = CategoryEntities.GetItemCount();
  155. var text = "";
  156. for (var i = 0; i < allItems; i++) {
  157. if (i == allItems - 1) {
  158. text += JSON.parse(CategoryEntities.GetItem(i).value).Description;
  159. } else {
  160. text += JSON.parse(CategoryEntities.GetItem(i).value).Description + textSeparator;
  161. }
  162. }
  163. devDropDownListCategoryValues.SetText(text);
  164. }
  165. function addCategoryValue() {
  166. var distVal = {
  167. CategoryId: devListBoxAllCategories.GetValue(),
  168. Description: devListBoxAllCategories.GetSelectedItem().text + " - " + devSpinEditCategoryValue.GetText(),
  169. Value: devSpinEditCategoryValue.GetValue()
  170. };
  171. var distValJson = JSON.stringify(distVal);
  172. var listBox = MVCxClientListBox.Cast(CategoryEntities);
  173. listBox.AddItem(distVal.Description + "<a style=\"float: right\" href=\"#\" onclick='removeCategoryValue(\"" + distVal.Description + "\")'>Entfernen</a>", distValJson);
  174. devCategoryValuePopup.Hide();
  175. setDropDownText();
  176. }
  177. function removeCategoryValue(description) {
  178. var allItems = CategoryEntities.GetItemCount();
  179. for (var i = 0; i < allItems; i++) {
  180. var item = CategoryEntities.GetItem(i);
  181. if (item.text.indexOf(description) != -1) {
  182. CategoryEntities.RemoveItem(i);
  183. }
  184. }
  185. setDropDownText();
  186. }
  187. function calculateValueAppendix() {
  188. PercentageValueAppendix.SetValue((OfferingValueAppendix.GetValue() / 100) * PercentageAppendix.GetValue());
  189. }
  190. </script>
  191. <style>
  192. .devHyperLinkEditInvoice {
  193. margin: 0 4px;
  194. text-decoration: none;
  195. }
  196. .devHyperLinkEditInvoice:hover {
  197. text-decoration: underline;
  198. }
  199. </style>
  200. @Html.Partial("~/Views/Appendices/_CategoryValueEditPartial.cshtml")
  201. @Html.DevExpress().PopupControl(s =>
  202. {
  203. s.Name = "devPopupControlEditAppendix";
  204. if (Model.Id == -1)
  205. s.HeaderText = "Neuen Nachtrag erstellen";
  206. else
  207. s.HeaderText = "\"" + Model.CustomNumber + "\" bearbeiten";
  208. s.Modal = true;
  209. s.Width = new Unit(700, UnitType.Pixel);
  210. s.CloseAction = CloseAction.CloseButton;
  211. s.PopupHorizontalAlign = PopupHorizontalAlign.WindowCenter;
  212. s.PopupVerticalAlign = PopupVerticalAlign.TopSides;
  213. s.PopupVerticalOffset = 15;
  214. s.AllowDragging = true;
  215. s.AllowResize = false;
  216. s.ShowFooter = false;
  217. s.ShowOnPageLoad = true;
  218. s.SetContent(() =>
  219. {
  220. using (Html.BeginForm("EditAppendix", "Appendix", FormMethod.Post, new { id = "appendixEditForm" }))
  221. {
  222. ViewContext.Writer.Write("<div class='editFormWrapper'>");
  223. ViewContext.Writer.Write("<input type=\"hidden\" value=\"" + Model.Id + "\" id=\"Id\" name=\"Id\" />");
  224. ViewContext.Writer.Write("<input type=\"hidden\" value=\"" + Model.SiteId + "\" id=\"SiteId\" name=\"SiteId\" />");
  225. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m).ToHtmlString());
  226. ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
  227. {
  228. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 15%'>");
  229. {
  230. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.CustomNumber, "Nummer:"));
  231. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.CustomNumber).ToHtmlString());
  232. Html.DevExpress().TextBoxFor(m => m.CustomNumber, t =>
  233. {
  234. t.Width = new Unit(90, UnitType.Percentage);
  235. t.ReadOnly = isReadOnly;
  236. }).Render();
  237. }
  238. ViewContext.Writer.Write("</div>");
  239. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 55%'>");
  240. {
  241. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.Description, "Bezeichnung:"));
  242. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.Description).ToHtmlString());
  243. Html.DevExpress().TextBoxFor(m => m.Description, t =>
  244. {
  245. t.Width = new Unit(97, UnitType.Percentage);
  246. t.ReadOnly = isReadOnly;
  247. }).Render();
  248. }
  249. ViewContext.Writer.Write("</div>");
  250. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 30%'>");
  251. {
  252. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.OfferingDate, "Einreichdatum NT:"));
  253. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.OfferingDate).ToHtmlString());
  254. Html.DevExpress().DateEditFor(m => m.OfferingDate, t =>
  255. {
  256. t.Width = new Unit(100, UnitType.Percentage);
  257. t.ReadOnly = isReadOnly;
  258. }).Render();
  259. }
  260. ViewContext.Writer.Write("</div>");
  261. }
  262. ViewContext.Writer.Write("</div>");
  263. ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
  264. {
  265. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 40%'>");
  266. {
  267. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.CategoryEntities, "Kategorien:"));
  268. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.CategoryEntities).ToHtmlString());
  269. Html.DevExpress().DropDownEdit(t =>
  270. {
  271. t.Name = "devDropDownListCategoryValues";
  272. t.Width = new Unit(96, UnitType.Percentage);
  273. t.ReadOnly = isReadOnly;
  274. if (Model.CategoryValueEntities != null && Model.CategoryValueEntities.Any())
  275. t.Text = String.Join(", ",
  276. Model.CategoryValueEntities
  277. .Select(d => d.Description));
  278. t.SetDropDownWindowTemplateContent(l =>
  279. {
  280. Html.DevExpress().ListBoxFor(m => m.CategoryEntities, lb =>
  281. {
  282. lb.Width = new Unit(100, UnitType.Percentage);
  283. lb.Properties.TextField = "Description";
  284. lb.Properties.ValueField = "Json";
  285. lb.Properties.ValueType = typeof(string);
  286. lb.Properties.EnableClientSideAPI = true;
  287. lb.Properties.SelectionMode = ListEditSelectionMode.Multiple;
  288. lb.EncodeHtml = false;
  289. lb.SetItemTemplateContent(i =>
  290. {
  291. var description = DataBinder.Eval(i.DataItem, "Description").ToString();
  292. ViewContext.Writer.Write(description);
  293. ViewContext.Writer.Write(
  294. "<a class=\"disturbanceRemoveLink\" style=\"float: right\" href=\"#\" onclick='removeCategoryValue(\"" + description + "\")'>Entfernen</a>");
  295. });
  296. lb.ControlStyle.Border.BorderStyle = BorderStyle.None;
  297. }).BindList(Model.CategoryValueEntities).Render();
  298. });
  299. }).Render();
  300. if (!isReadOnly)
  301. {
  302. Html.DevExpress().HyperLink(t =>
  303. {
  304. t.Name = "devHyperLinkCategoryValueAdd";
  305. t.Properties.Text = "Hinzufügen";
  306. t.NavigateUrl = "#";
  307. t.Properties.ClientSideEvents.Click = "function (s, e) { devCategoryValuePopup.Show(); }";
  308. t.Style.Add("line-height", "24px");
  309. }).Render();
  310. }
  311. }
  312. ViewContext.Writer.Write("</div>");
  313. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 22%'>");
  314. {
  315. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.OfferingValue, "Angebotssumme:"));
  316. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.OfferingValue).ToHtmlString());
  317. Html.DevExpress().SpinEditFor(m => m.OfferingValue, t =>
  318. {
  319. t.Width = new Unit(94, UnitType.Percentage);
  320. t.ReadOnly = isReadOnly;
  321. t.Properties.ClientInstanceName = "OfferingValueAppendix";
  322. t.Properties.DecimalPlaces = 2;
  323. t.Properties.NumberType = SpinEditNumberType.Float;
  324. t.Properties.DisplayFormatString = "c2";
  325. t.Properties.ClientSideEvents.ValueChanged = "function (s, e) { calculateValueAppendix(); }";
  326. }).Render();
  327. }
  328. ViewContext.Writer.Write("</div>");
  329. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 16%'>");
  330. {
  331. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.Percentage, "Bewertung (%):"));
  332. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.Percentage).ToHtmlString());
  333. Html.DevExpress().SpinEditFor(m => m.Percentage, t =>
  334. {
  335. t.Width = new Unit(88, UnitType.Percentage);
  336. t.ReadOnly = isReadOnly;
  337. t.Properties.ClientInstanceName = "PercentageAppendix";
  338. t.Properties.MaxValue = 100;
  339. t.Properties.MinValue = 0;
  340. t.Properties.Increment = (decimal)1;
  341. t.Properties.NumberType = SpinEditNumberType.Float;
  342. t.Properties.NumberFormat = SpinEditNumberFormat.Custom;
  343. t.Properties.DisplayFormatString = "{0,00} %";
  344. t.Properties.DisplayFormatInEditMode = true;
  345. t.Properties.ClientSideEvents.ValueChanged = "function (s, e) { calculateValueAppendix(); }";
  346. t.Properties.ClientSideEvents.Init = "function (s, e) { calculateValueAppendix(); }";
  347. }).Bind(Model.Percentage * 100).Render();
  348. }
  349. ViewContext.Writer.Write("</div>");
  350. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 22%'>");
  351. {
  352. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.PercentageValue, "Wert:"));
  353. Html.DevExpress().SpinEditFor(m => m.PercentageValue, t =>
  354. {
  355. t.Width = new Unit(100, UnitType.Percentage);
  356. t.ReadOnly = isReadOnly;
  357. t.Properties.ClientInstanceName = "PercentageValueAppendix";
  358. t.Properties.DecimalPlaces = 2;
  359. t.Properties.NumberType = SpinEditNumberType.Float;
  360. t.Properties.DisplayFormatString = "c2";
  361. }).Render();
  362. }
  363. ViewContext.Writer.Write("</div>");
  364. }
  365. ViewContext.Writer.Write("</div>");
  366. ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
  367. {
  368. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 40%'>");
  369. {
  370. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.NegotiationValue, "Verhandlungssumme:"));
  371. Html.DevExpress().SpinEditFor(m => m.NegotiationValue, t =>
  372. {
  373. t.Width = new Unit(96, UnitType.Percentage);
  374. t.ReadOnly = isReadOnly;
  375. t.Properties.DecimalPlaces = 2;
  376. t.Properties.NumberType = SpinEditNumberType.Float;
  377. t.Properties.DisplayFormatString = "c2";
  378. }).Render();
  379. }
  380. ViewContext.Writer.Write("</div>");
  381. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 36.1%'>");
  382. {
  383. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.NegotiationDate, "Verhandlungstermin:"));
  384. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.NegotiationDate).ToHtmlString());
  385. Html.DevExpress().DateEditFor(m => m.NegotiationDate, t =>
  386. {
  387. t.Width = new Unit(100, UnitType.Percentage);
  388. t.ReadOnly = isReadOnly;
  389. }).Render();
  390. }
  391. ViewContext.Writer.Write("</div>");
  392. }
  393. ViewContext.Writer.Write("</div>");
  394. ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
  395. {
  396. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 40%'>");
  397. {
  398. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.OrderNumber, "Bestellschein-Nr.:"));
  399. Html.DevExpress().TextBoxFor(m => m.OrderNumber, t =>
  400. {
  401. t.Width = new Unit(96, UnitType.Percentage);
  402. t.ReadOnly = isReadOnly;
  403. }).Render();
  404. }
  405. ViewContext.Writer.Write("</div>");
  406. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 36.1%'>");
  407. {
  408. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.OrderDate, "Bestellscheindatum:"));
  409. Html.DevExpress().DateEditFor(m => m.OrderDate, t =>
  410. {
  411. t.Width = new Unit(100, UnitType.Percentage);
  412. t.ReadOnly = isReadOnly;
  413. }).Render();
  414. }
  415. ViewContext.Writer.Write("</div>");
  416. }
  417. ViewContext.Writer.Write("</div>");
  418. ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
  419. {
  420. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 40%'>");
  421. {
  422. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.StateId, "NT-Status:"));
  423. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.StateId).ToHtmlString());
  424. Session.Add("AppendixStatesComboBoxSettings", new Action<ComboBoxSettings>(t =>
  425. {
  426. t.Width = new Unit(96, UnitType.Percentage);
  427. t.ReadOnly = isReadOnly;
  428. t.Properties.ValueType = typeof(int);
  429. t.Properties.ValueField = "Id";
  430. t.Properties.TextField = "Description";
  431. var serializedModel = Newtonsoft.Json.JsonConvert.SerializeObject(Model);
  432. t.CallbackRouteValues = new
  433. {
  434. Controller = "DataCallback",
  435. Action = "StatesComboBox",
  436. SettingsKey = "AppendixStatesComboBoxSettings",
  437. Model = serializedModel,
  438. Type = Model.GetType().FullName
  439. };
  440. t.Properties.ClientSideEvents.SelectedIndexChanged = "function (s, e) { setInitialValueState(); }";
  441. }));
  442. ViewData.Add("StatesComboBoxSettings", "AppendixStatesComboBoxSettings");
  443. Html.RenderPartial("~/Views/Shared/DataEditorTemplates/_StatesComboBox.cshtml", Model, ViewData);
  444. if (userContext.CurrentUser.HasFunction("Appendix-Claims-Edit") && !isReadOnly)
  445. {
  446. Html.DevExpress().HyperLink(t =>
  447. {
  448. t.Name = "devHyperLinkStateEventReceiver";
  449. t.Properties.Text = "Hinzufügen";
  450. t.NavigateUrl = "#";
  451. t.Properties.ClientSideEvents.Click = "function (s, e) { addState(); }";
  452. t.Style.Add("line-height", "24px");
  453. }).Render();
  454. }
  455. }
  456. ViewContext.Writer.Write("</div>");
  457. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 60%'>");
  458. {
  459. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.Invoices, "Rechnungen:"));
  460. if (Model.Id == -1)
  461. {
  462. ViewContext.Writer.Write("<span style=\"margin-left: 8px; color: red\">Nachtrag muss erst gespeichert werden!</span>");
  463. }
  464. Html.DevExpress().DropDownEdit(t =>
  465. {
  466. t.Name = "devDropDownListInvoices";
  467. t.Width = new Unit(100, UnitType.Percentage);
  468. t.ClientEnabled = Model.Id != -1;
  469. if (Model.Invoices != null && Model.Invoices.Any())
  470. t.Text = String.Join(", ",
  471. Model.Invoices
  472. .Select(d => d.CustomNumber));
  473. t.SetDropDownWindowTemplateContent(l =>
  474. {
  475. Html.RenderPartial("~/Views/Appendices/_InvoiceListPartial.cshtml", Model);
  476. });
  477. }).Render();
  478. Html.DevExpress().HyperLink(t =>
  479. {
  480. t.Name = "devHyperLinkInvoiceAdd";
  481. t.Properties.Text = "Hinzufügen";
  482. t.NavigateUrl = "#";
  483. t.ClientEnabled = Model.Id != -1;
  484. t.Properties.ClientSideEvents.Click = "function (s, e) { editInvoice(-1); }";
  485. t.Style.Add("line-height", "24px");
  486. }).Render();
  487. }
  488. ViewContext.Writer.Write("</div>");
  489. }
  490. ViewContext.Writer.Write("</div>");
  491. ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
  492. {
  493. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 25%'>");
  494. {
  495. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.ProtocolExists, "Protokoll liegt vor:"));
  496. ViewContext.Writer.Write("<div style=\"overflow: hidden\">");
  497. {
  498. ViewContext.Writer.Write("<div style=\"float: left\">");
  499. {
  500. Html.DevExpress().RadioButtonFor(m => m.ProtocolExists, t =>
  501. {
  502. t.Text = "Ja";
  503. t.GroupName = "protocolExists";
  504. t.ReadOnly = isReadOnly;
  505. }).Render();
  506. }
  507. ViewContext.Writer.Write("</div>");
  508. ViewContext.Writer.Write("<div style=\"float: left; margin-left: 8px\">");
  509. {
  510. Html.DevExpress().RadioButton(t =>
  511. {
  512. t.Name = "protocolExistsFalse";
  513. t.Text = "Nein";
  514. t.GroupName = "protocolExists";
  515. t.Checked = !Model.ProtocolExists;
  516. t.ReadOnly = isReadOnly;
  517. }).Render();
  518. }
  519. ViewContext.Writer.Write("</div>");
  520. }
  521. ViewContext.Writer.Write("</div>");
  522. }
  523. ViewContext.Writer.Write("</div>");
  524. ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 25%'>");
  525. {
  526. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.OrderInvoiceCreated, "AR gestellt:"));
  527. ViewContext.Writer.Write("<div style=\"overflow: hidden\">");
  528. {
  529. ViewContext.Writer.Write("<div style=\"float: left\">");
  530. {
  531. Html.DevExpress().RadioButtonFor(m => m.OrderInvoiceCreated, t =>
  532. {
  533. t.Text = "Ja";
  534. t.GroupName = "orderInvoiceCreated";
  535. t.ReadOnly = isReadOnly;
  536. }).Render();
  537. }
  538. ViewContext.Writer.Write("</div>");
  539. ViewContext.Writer.Write("<div style=\"float: left; margin-left: 8px\">");
  540. {
  541. Html.DevExpress().RadioButton(t =>
  542. {
  543. t.Name = "orderInvoiceCreatedFalse";
  544. t.Text = "Nein";
  545. t.GroupName = "orderInvoiceCreated";
  546. t.Checked = !Model.OrderInvoiceCreated;
  547. t.ReadOnly = isReadOnly;
  548. }).Render();
  549. }
  550. ViewContext.Writer.Write("</div>");
  551. }
  552. ViewContext.Writer.Write("</div>");
  553. }
  554. ViewContext.Writer.Write("</div>");
  555. }
  556. ViewContext.Writer.Write("</div>");
  557. ViewContext.Writer.Write(Html.CustomLabelFor(m => m.Comment, "Kommentar:"));
  558. ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.Comment).ToHtmlString());
  559. Html.DevExpress().MemoFor(m => m.Comment, t =>
  560. {
  561. t.Width = new Unit(100, UnitType.Percentage);
  562. t.Height = new Unit(90, UnitType.Pixel);
  563. t.ReadOnly = isReadOnly;
  564. }).Render();
  565. ViewContext.Writer.Write("</div>");
  566. if (isReadOnly)
  567. {
  568. Html.RenderPartial(
  569. "~/Views/Shared/_PopupButtonPanel.cshtml",
  570. new GreenTree.Nachtragsmanagement.Web.Models.Global.PopupModel
  571. {
  572. PopupName = "devPopupControlEditAppendix",
  573. AcceptFunction = "function (s, e) { return false; }"
  574. }
  575. );
  576. }
  577. else
  578. {
  579. Html.RenderPartial(
  580. "~/Views/Shared/_PopupButtonPanel.cshtml",
  581. new GreenTree.Nachtragsmanagement.Web.Models.Global.PopupModel
  582. {
  583. PopupName = "devPopupControlEditAppendix",
  584. AcceptFunction = "function (s, e) { saveAppendix(); }"
  585. }
  586. );
  587. }
  588. }
  589. });
  590. s.Styles.Content.Paddings.Padding = new Unit(0);
  591. s.Styles.ModalBackground.Opacity = 0;
  592. }).GetHtml()
  593. </div>