| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274 |
- @model GreenTree.Strohrmann.ERP.Web.Models.Business.CraftModel
- @{
- ViewData["Title"] = "Gewerk bearbeiten";
- }
- <script type="text/javascript">
- function calculateEmployeeAggregation() {
- var count = $("input[data-aggregation='employeeAmount']").length;
- var avgAmount = $("input[data-aggregation='employeeAmount']").map(function () {
- return parseFloat($(this).val());
- }).get().avg();
- var sumValues = $("input[data-aggregation='employeeValue']").map(function () {
- return parseFloat($(this).val());
- }).get().sum();
- $("#aggEmployeeCount").text(count);
- $("#aggEmployeeAmountAvg").text(isNaN(avgAmount) ? " -" : avgAmount + " Std.");
- $("#aggEmployeeValueSum").text(isNaN(sumValues) ? " -" : sumValues + " €");
- }
- function calculateMaterialAggregation() {
- var count = $("input[data-aggregation='materialCalculationFactor']").length;
- var avgCalculationFactor = $("input[data-aggregation='materialCalculationFactor']").map(function () {
- return parseFloat($(this).val());
- }).get().avg();
- var sumValues = $("input[data-aggregation='materialValue']").map(function () {
- return parseFloat($(this).val());
- }).get().sum();
- $("#aggMaterialCount").text(count);
- $("#aggMaterialCalculationFactorAvg").text(isNaN(avgCalculationFactor) ? " -" : avgCalculationFactor + " %");
- $("#aggMaterialValueSum").text(isNaN(sumValues) ? " -" : sumValues + " €");
- }
- function addCraftEmployeePartial() {
- $.ajax({
- type: "GET",
- url: '@Url.Action("AddCraftEmployeePartial")',
- data: {
- Index: $("#craftemployeelist").children(".row").length
- },
- success: function (data) {
- $("#craftemployeelist").append(data);
- calculateEmployeeAggregation();
- },
- error: function (errorData) { console.error(errorData); }
- });
- }
- function addCraftMaterialPartial() {
- $.ajax({
- type: "GET",
- url: '@Url.Action("AddCraftMaterialPartial")',
- data: {
- Index: $("#craftmateriallist").children(".row").length
- },
- success: function (data) {
- $("#craftmateriallist").append(data);
- },
- error: function (errorData) { console.error(errorData); }
- });
- }
- </script>
- <h1>Gewerk bearbeiten</h1>
- <h4>@Model.Name</h4>
- <hr />
- <form asp-action="Edit">
- <div asp-validation-summary="ModelOnly" class="text-danger"></div>
- <div class="row">
- <div class="col-3 pr-1">
- <div class="card h-100 bg-light">
- <div class="card-header pb-1">
- <h6>Allgemein</h6>
- </div>
- <div class="card-body">
- <div class="form-group">
- <label asp-for="Name" class="control-label"></label>
- <input asp-for="Name" class="form-control" />
- <span asp-validation-for="Name" class="text-danger"></span>
- </div>
- <div class="form-group">
- <label asp-for="CreationDate" class="control-label"></label>
- <input asp-for="CreationDate" type="date" class="form-control" />
- <span asp-validation-for="CreationDate" class="text-danger"></span>
- </div>
- <div class="form-group">
- <label asp-for="CustomerId" class="control-label"></label>
- @await Html.PartialAsync("~/Views/Customer/_SearchCustomerPartial.cshtml")
- <span asp-validation-for="CustomerId" class="text-danger"></span>
- </div>
- <div class="form-group">
- <label asp-for="Comment" class="control-label"></label>
- <textarea asp-for="Comment" class="form-control"></textarea>
- <span asp-validation-for="Comment" class="text-danger"></span>
- </div>
- </div>
- </div>
- </div>
- <div class="col-9">
- <div class="card bg-light">
- <div class="card-header pb-1">
- <h6 class="float-left">Arbeitsstunden</h6>
- <a class="float-right" href="#" onclick="addCraftEmployeePartial()">Hinzufügen</a>
- </div>
- <div id="craftemployeelist" class="card-body">
- @if (Model != null && Model.CraftEmployees != null)
- {
- @foreach (var item in Model.CraftEmployees)
- {
- @await Html.PartialAsync("_CraftEmployeePartial", item.Value)
- }
- }
- else
- {
- @await Html.PartialAsync("_CraftEmployeePartial")
- }
- </div>
- <div class="card-footer">
- <div class="row">
- <div class="col-4">
- <h5 class="mb-0">
- <span class="badge badge-info">
- <span class="fa fa-hashtag" aria-label="Anzahl"> </span>
- @if (Model != null && Model.CraftEmployees != null)
- {
- <span id="aggEmployeeCount">
- @Model.CraftEmployees.Values.Count
- </span>
- }
- else
- {
- <span id="aggEmployeeCount">1</span>
- }
- </span>
- </h5>
- </div>
- <div class="col-2">
- <h5 class="mb-0">
- <span class="badge badge-info">
- <img height="14" src="~/img/icon-average-48.png" alt="Durchschnitt" title="Durchschnitt" />
- @if (Model != null && Model.CraftEmployees != null)
- {
- <span id="aggEmployeeAmountAvg">
- @String.Format("{0:G29} Std.", Model.CraftEmployees.Values.Average(m => m.Amount))
- </span>
- }
- else
- {
- <span id="aggEmployeeAmountAvg"> -</span>
- }
- </span>
- </h5>
- </div>
- <div class="col-6">
- <h5 class="mb-0">
- <span class="badge badge-info">
- <img height="14" src="~/img/icon-sigma-48.png" alt="Summe" title="Summe" />
- @if (Model != null && Model.CraftEmployees != null)
- {
- <span id="aggEmployeeValueSum">
- @String.Format("{0} €", Model.CraftEmployees.Values.Sum(m => m.Value))
- </span>
- }
- else
- {
- <span id="aggEmployeeValueSum"> -</span>
- }
- </span>
- </h5>
- </div>
- </div>
- </div>
- </div>
- <div class="card bg-light mt-3">
- <div class="card bg-light">
- <div class="card-header pb-1">
- <h6 class="float-left">Materialien</h6>
- <a class="float-right" href="#" onclick="addCraftMaterialPartial()">Hinzufügen</a>
- </div>
- <div id="craftmateriallist" class="card-body">
- @if (Model != null && Model.CraftMaterials != null)
- {
- @foreach (var item in Model.CraftMaterials)
- {
- @await Html.PartialAsync("_CraftMaterialPartial", item.Value)
- }
- }
- else
- {
- @await Html.PartialAsync("_CraftMaterialPartial")
- }
- </div>
- <div class="card-footer">
- <div class="row">
- <div class="col-3">
- <h5 class="mb-0">
- <span class="badge badge-info">
- <span class="fa fa-hashtag" aria-label="Anzahl"> </span>
- @if (Model != null && Model.CraftMaterials != null)
- {
- <span id="aggMaterialCount">
- @Model.CraftMaterials.Values.Count
- </span>
- }
- else
- {
- <span id="aggMaterialCount">1</span>
- }
- </span>
- </h5>
- </div>
- <div class="col-2">
- </div>
- <div class="col-3">
- <h5 class="mb-0">
- <span class="badge badge-info">
- <img height="14" src="~/img/icon-average-48.png" alt="Durchschnitt" title="Durchschnitt" />
- @if (Model != null && Model.CraftMaterials != null)
- {
- <span id="aggMaterialCalculationFactorAvg">
- @String.Format("{0:G29} %", Model.CraftMaterials.Values.Average(m => m.CalculationFactor) * 100)
- </span>
- }
- else
- {
- <span id="aggMaterialCalculationFactorAvg"> -</span>
- }
- </span>
- </h5>
- </div>
- <div class="col-4">
- <h5 class="mb-0">
- <span class="badge badge-info">
- <img height="14" src="~/img/icon-sigma-48.png" alt="Summe" title="Summe" />
- @if (Model != null && Model.CraftMaterials != null)
- {
- <span id="aggMaterialValueSum">
- @String.Format("{0} €", Model.CraftMaterials.Values.Sum(m => m.Value))
- </span>
- }
- else
- {
- <span id="aggMaterialValueSum"> -</span>
- }
- </span>
- </h5>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <hr />
- <div class="form-group d-flex mt-3">
- <input type="submit" value="Speichern" class="btn btn-primary" />
- <div class="align-self-center ml-3">
- <a asp-action="Index">Zurück zur Liste</a>
- </div>
- </div>
- </form>
|