_AppendixEditPartial.cshtml 21 KB

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