Create.cshtml 9.8 KB

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