Edit.cshtml 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. @model GreenTree.Strohrmann.ERP.Web.Models.Business.CraftModel
  2. @{
  3. ViewData["Title"] = "Gewerk bearbeiten";
  4. }
  5. @section Scripts {
  6. @{
  7. await Html.RenderPartialAsync("_CraftScriptPartial");
  8. }
  9. }
  10. <h1>Gewerk bearbeiten</h1>
  11. <h4>@Model.Name</h4>
  12. <hr />
  13. <form asp-action="Edit">
  14. <div asp-validation-summary="ModelOnly" class="text-danger"></div>
  15. <div class="row">
  16. <div class="col-3 pr-1">
  17. <div class="card h-100 bg-light">
  18. <div class="card-header pb-1">
  19. <h6>Allgemein</h6>
  20. </div>
  21. <div class="card-body">
  22. <div class="form-group">
  23. <label asp-for="Name" class="control-label"></label>
  24. <input asp-for="Name" class="form-control" />
  25. <span asp-validation-for="Name" class="text-danger"></span>
  26. </div>
  27. <div class="form-group">
  28. <label asp-for="CreationDate" class="control-label"></label>
  29. <input asp-for="CreationDate" type="date" class="form-control" />
  30. <span asp-validation-for="CreationDate" class="text-danger"></span>
  31. </div>
  32. <div class="form-group">
  33. <label asp-for="CustomerId" class="control-label"></label>
  34. @await Html.PartialAsync("~/Views/Customer/_SearchCustomerPartial.cshtml")
  35. <span asp-validation-for="CustomerId" class="text-danger"></span>
  36. </div>
  37. <div class="form-group">
  38. <label asp-for="Comment" class="control-label"></label>
  39. <textarea asp-for="Comment" class="form-control"></textarea>
  40. <span asp-validation-for="Comment" class="text-danger"></span>
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. <div class="col-9">
  46. <div class="card bg-light">
  47. <div class="card-header pb-1">
  48. <h6 class="float-left">Arbeitsstunden</h6>
  49. <a class="float-right" href="#" onclick="addCraftEmployeePartial()">Hinzufügen</a>
  50. </div>
  51. <div id="craftemployeelist" class="card-body">
  52. @if (Model != null && Model.CraftEmployees != null)
  53. {
  54. @foreach (var item in Model.CraftEmployees)
  55. {
  56. @await Html.PartialAsync("_CraftEmployeePartial", item.Value)
  57. }
  58. }
  59. else
  60. {
  61. @await Html.PartialAsync("_CraftEmployeePartial")
  62. }
  63. </div>
  64. <div class="card-footer">
  65. <div class="row">
  66. <div class="col-4">
  67. <h5 class="mb-0">
  68. <span class="badge badge-info">
  69. <span class="fa fa-hashtag" aria-label="Anzahl"> </span>
  70. @if (Model != null && Model.CraftEmployees != null)
  71. {
  72. <span id="aggEmployeeCount">
  73. @Model.CraftEmployees.Values.Count
  74. </span>
  75. }
  76. else
  77. {
  78. <span id="aggEmployeeCount">1</span>
  79. }
  80. </span>
  81. </h5>
  82. </div>
  83. <div class="col-2">
  84. <h5 class="mb-0">
  85. <span class="badge badge-info">
  86. <img height="14" src="~/img/icon-average-48.png" alt="Durchschnitt" title="Durchschnitt" />
  87. @if (Model != null && Model.CraftEmployees != null)
  88. {
  89. <span id="aggEmployeeAmountAvg">
  90. @String.Format("{0:G29} Std.", Model.CraftEmployees.Values.Average(m => m.Amount))
  91. </span>
  92. }
  93. else
  94. {
  95. <span id="aggEmployeeAmountAvg"> -</span>
  96. }
  97. </span>
  98. </h5>
  99. </div>
  100. <div class="col-6">
  101. <h5 class="mb-0">
  102. <span class="badge badge-info">
  103. <img height="14" src="~/img/icon-sigma-48.png" alt="Summe" title="Summe" />
  104. @if (Model != null && Model.CraftEmployees != null)
  105. {
  106. <span id="aggEmployeeValueSum">
  107. @String.Format("{0} €", Model.CraftEmployees.Values.Sum(m => m.Value))
  108. </span>
  109. }
  110. else
  111. {
  112. <span id="aggEmployeeValueSum"> -</span>
  113. }
  114. </span>
  115. </h5>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. <div class="card bg-light mt-3">
  121. <div class="card bg-light">
  122. <div class="card-header pb-1">
  123. <h6 class="float-left">Materialien</h6>
  124. <a class="float-right" href="#" onclick="addCraftMaterialPartial()">Hinzufügen</a>
  125. </div>
  126. <div id="craftmateriallist" class="card-body">
  127. @if (Model != null && Model.CraftMaterials != null)
  128. {
  129. @foreach (var item in Model.CraftMaterials)
  130. {
  131. @await Html.PartialAsync("_CraftMaterialPartial", item.Value)
  132. }
  133. }
  134. else
  135. {
  136. @await Html.PartialAsync("_CraftMaterialPartial")
  137. }
  138. </div>
  139. <div class="card-footer">
  140. <div class="row">
  141. <div class="col-3">
  142. <h5 class="mb-0">
  143. <span class="badge badge-info">
  144. <span class="fa fa-hashtag" aria-label="Anzahl"> </span>
  145. @if (Model != null && Model.CraftMaterials != null)
  146. {
  147. <span id="aggMaterialCount">
  148. @Model.CraftMaterials.Values.Count
  149. </span>
  150. }
  151. else
  152. {
  153. <span id="aggMaterialCount">1</span>
  154. }
  155. </span>
  156. </h5>
  157. </div>
  158. <div class="col-2">
  159. </div>
  160. <div class="col-3">
  161. <h5 class="mb-0">
  162. <span class="badge badge-info">
  163. <img height="14" src="~/img/icon-average-48.png" alt="Durchschnitt" title="Durchschnitt" />
  164. @if (Model != null && Model.CraftMaterials != null)
  165. {
  166. <span id="aggMaterialCalculationFactorAvg">
  167. @String.Format("{0:G29} %", Model.CraftMaterials.Values.Average(m => m.CalculationFactor) * 100)
  168. </span>
  169. }
  170. else
  171. {
  172. <span id="aggMaterialCalculationFactorAvg"> -</span>
  173. }
  174. </span>
  175. </h5>
  176. </div>
  177. <div class="col-4">
  178. <h5 class="mb-0">
  179. <span class="badge badge-info">
  180. <img height="14" src="~/img/icon-sigma-48.png" alt="Summe" title="Summe" />
  181. @if (Model != null && Model.CraftMaterials != null)
  182. {
  183. <span id="aggMaterialValueSum">
  184. @String.Format("{0} €", Model.CraftMaterials.Values.Sum(m => m.Value))
  185. </span>
  186. }
  187. else
  188. {
  189. <span id="aggMaterialValueSum"> -</span>
  190. }
  191. </span>
  192. </h5>
  193. </div>
  194. </div>
  195. </div>
  196. </div>
  197. </div>
  198. </div>
  199. </div>
  200. <hr />
  201. <div class="form-group d-flex mt-3">
  202. <input type="submit" value="Speichern" class="btn btn-primary" />
  203. <div class="align-self-center ml-3">
  204. <a asp-action="Index">Zurück zur Liste</a>
  205. </div>
  206. </div>
  207. </form>