Explorar el Código

Änderungen vom 08.11. teilweise übernommen!

Arne Diekmann hace 8 años
padre
commit
caf6d2776d

+ 5 - 0
GreenTree.Nachtragsmanagement.Core/Domain/Deviation/Status.cs

@@ -17,5 +17,10 @@ namespace GreenTree.Nachtragsmanagement.Core.Domain.Deviation
         /// Determines if this state is defaultly selected
         /// </summary>
         public bool IsDefault { get; set; }
+
+        /// <summary>
+        /// Determines if this state sets the value of the deviation to zero
+        /// </summary>
+        public bool IsZeroValue { get; set; }
     }
 }

+ 1 - 0
GreenTree.Nachtragsmanagement.Data/Mapping/Deviation/StatusMap.cs

@@ -17,6 +17,7 @@ namespace GreenTree.Nachtragsmanagement.Data.Mapping.Deviation
 
             Property(f => f.Description);
             Property(f => f.IsDefault);
+            Property(f => f.IsZeroValue);
         }
     }
 }

+ 3 - 2
GreenTree.Nachtragsmanagement.Web/Controllers/AppendixController.cs

@@ -213,8 +213,8 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
 
             if (label.Tag.ToString() == "NegotiationValue")
             {
-                accumulatedCustomSummaryOfferingValue += e.CalculatedValues.OfType<decimal>().Sum();
-                e.Result = accumulatedCustomSummaryOfferingValue;
+                accumulatedCustomSummaryNegotiationValue += e.CalculatedValues.OfType<decimal>().Sum();
+                e.Result = accumulatedCustomSummaryNegotiationValue;
             }
 
             if (label.Tag.ToString() == "Description")
@@ -260,6 +260,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                 //if (column.FieldName == "SiteDescription") { column.ColumnWidth = 60; }
                 if (column.FieldName == "SiteDescription") { column.IsVisible = false; column.IsDetail = true; }
                 if (column.FieldName == "SiteCustomNumber") { column.IsVisible = false; column.IsDetail = true; }
+                if (column.FieldName == "UserDescription") { column.IsVisible = false; column.IsDetail = true; }
                 if (column.FieldName == "OfferingValue") { column.ColumnWidth = 80; }
                 if (column.FieldName == "NegotiationValue") { column.ColumnWidth = 80; }
                 if (column.FieldName == "DeviationDescription") { column.ColumnWidth = 40; }

+ 13 - 4
GreenTree.Nachtragsmanagement.Web/Controllers/DeviationController.cs

@@ -284,7 +284,9 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                     .Where(c => c.HasValue)
                     .Count();
                 e.Result = accumulatedCustomSummaryValueDaysReceiptToAppendixOffering / 
-                           accumulatedCustomSummaryValueDaysReceiptToAppendixOfferingCount;
+                           (accumulatedCustomSummaryValueDaysReceiptToAppendixOfferingCount == 0 
+                                ? 1 
+                                : accumulatedCustomSummaryValueDaysReceiptToAppendixOfferingCount);
             }
 
             if (label.Tag.ToString() == "DisturbanceValuesDescription")
@@ -321,7 +323,9 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                 accumulatedCustomSummaryPercentage += e.CalculatedValues.OfType<decimal>().Sum();
                 accumulatedCustomSummaryPercentageCount += e.CalculatedValues.Count;
                 e.Result = accumulatedCustomSummaryPercentage /
-                           accumulatedCustomSummaryPercentageCount;
+                           ((accumulatedCustomSummaryPercentageCount == 0
+                                ? 1
+                                : accumulatedCustomSummaryPercentage));
             }
 
             if (label.Tag.ToString() == "PercentageValue")
@@ -345,7 +349,9 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
             if (label.Tag.ToString() == "DaysReceiptToAppendixOffering")
             {
                 e.Result = Convert.ToInt32(totalCustomSummaryValueDaysReceiptToAppendixOffering /
-                                           totalCustomSummaryValueDaysReceiptToAppendixOfferingCount);
+                                           (totalCustomSummaryValueDaysReceiptToAppendixOfferingCount == 0
+                                                ? 1
+                                                : totalCustomSummaryValueDaysReceiptToAppendixOfferingCount));
                 e.Handled = true;
             }
 
@@ -402,7 +408,9 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
             {
                 if (column.FieldName == "CustomNumber") { column.ColumnWidth = 30; }
                 if (column.FieldName == "Description") { column.IsVisible = false; column.IsDetail = true; }
-                if (column.FieldName == "SiteDescription") { column.ColumnWidth = 60; }
+                if (column.FieldName == "SiteCustomNumber") { column.IsVisible = false; column.IsDetail = true; }
+                if (column.FieldName == "SiteDescription") { column.IsVisible = false; column.IsDetail = true; }
+                if (column.FieldName == "UserDescription") { column.IsVisible = false; column.IsDetail = true; }
                 if (column.FieldName == "AppendixDescription") { column.ColumnWidth = 50; }
                 if (column.FieldName == "StatusDescription") { column.ColumnWidth = 60; }
             }
@@ -849,6 +857,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
 
                     claim.Description = statusModel.Description;
                     claim.IsDefault = statusModel.IsDefault;
+                    claim.IsZeroValue = statusModel.IsZeroValue;
 
                     _deviationService.UpdateStatus(claim);
 

+ 56 - 1
GreenTree.Nachtragsmanagement.Web/Extensions/GridViewSettingsHelper.cs

@@ -407,6 +407,34 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
+            {
+                column.Caption = "Mitarbeiter";
+                column.FieldName = "UserDescription";
+                column.MinWidth = 150;
+                column.Width = new Unit(15, UnitType.Percentage);
+                column.SetDataItemTemplateContent(c =>
+                {
+                    var userDescriptions = DataBinder.Eval(c.DataItem, "UserDescriptions") as List<string>;
+
+                    if (userDescriptions != null)
+                    {
+                        foreach (var description in userDescriptions)
+                        {
+                            var split = description.Split('|');
+
+                            if (split.Length > 1)
+                                html.ViewContext.Writer.Write(
+                                    "<span style=\"float: left\">" + split[0] + "</span>" +
+                                    "<span style=\"float: right\">" + split[1] + "</span><br />");
+                            else
+                                html.ViewContext.Writer.Write(
+                                    "<span>" + split[0] + "</span><br />");
+                        }
+
+                    }
+                });
+            });
+            s.Columns.Add(column =>
             {
                 column.Caption = "Nachtrag";
                 column.FieldName = "AppendixDescription";
@@ -528,7 +556,6 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 });
                 column.MinWidth = 120;
                 column.Width = new Unit(8, UnitType.Percentage);
-                column.Visible = false;
             });
 
             //s.SetDataRowTemplateContent(t =>
@@ -823,6 +850,34 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
+            {
+                column.Caption = "Mitarbeiter";
+                column.FieldName = "UserDescription";
+                column.MinWidth = 150;
+                column.Width = new Unit(15, UnitType.Percentage);
+                column.SetDataItemTemplateContent(c =>
+                {
+                    var userDescriptions = DataBinder.Eval(c.DataItem, "UserDescriptions") as List<string>;
+
+                    if (userDescriptions != null)
+                    {
+                        foreach (var description in userDescriptions)
+                        {
+                            var split = description.Split('|');
+
+                            if (split.Length > 1)
+                                html.ViewContext.Writer.Write(
+                                    "<span style=\"float: left\">" + split[0] + "</span>" +
+                                    "<span style=\"float: right\">" + split[1] + "</span><br />");
+                            else
+                                html.ViewContext.Writer.Write(
+                                    "<span>" + split[0] + "</span><br />");
+                        }
+
+                    }
+                });
+            });
+            s.Columns.Add(column =>
             {
                 column.Caption = "Einreichung";
                 column.FieldName = "OfferingDate";

+ 24 - 1
GreenTree.Nachtragsmanagement.Web/Models/Appendix/AppendixDataModel.cs

@@ -30,9 +30,11 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Appendix
         public int? StateId { get; set; }
         public StateDataModel State { get; set; }
         public string StateDescription { get; set; }
-        public int? SiteId { get; set; }
         public string SiteDescription { get; set; }
         public string SiteCustomNumber { get; set; }
+        public int? SiteId { get; set; }
+        public ICollection<string> UserDescriptions { get; set; }
+        public string UserDescription { get; set; }
         public ICollection<int> DeviationValues { get; set; }
         public ICollection<string> DeviationDescriptions { get; set; }
         public string DeviationDescription { get; set; }
@@ -126,6 +128,27 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Appendix
                 SiteCustomNumber = appendixEntity.Site == null
                     ? null
                     : appendixEntity.Site.CustomNumber,
+                UserDescriptions = appendixEntity.Site == null
+                    ? null
+                    : appendixEntity.Site.Users
+                        .Select(r => new
+                        {
+                            LastName = r.Lastname,
+                            Roles = String.Join(", ", r.Roles.Select(u => u.Description))
+                        })
+                        .OrderBy(r => r.Roles)
+                        .Select(r => String.Format("{0}|({1})", r.LastName, r.Roles))
+                        .ToList(),
+                UserDescription = appendixEntity.Site == null
+                    ? String.Empty
+                    : String.Join(", ",
+                          appendixEntity.Site.Users
+                              .Select(r => new
+                              {
+                                  LastName = r.Lastname,
+                                  Roles = String.Join(", ", r.Roles.Select(u => u.Description))
+                              })
+                              .Select(u => String.Format("{0} ({1})", u.LastName, u.Roles))),
                 CategoryValueEntities =
                     appendixEntity.CategoryValues
                         .Select(r =>

+ 47 - 3
GreenTree.Nachtragsmanagement.Web/Models/Deviation/DeviationDataModel.cs

@@ -29,6 +29,8 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Deviation
         public string SiteDescription { get; set; }
         public string SiteCustomNumber { get; set; }
         public int? SiteId { get; set; }
+        public ICollection<string> UserDescriptions { get; set; }
+        public string UserDescription { get; set; }
         public string AppendixDescription { get; set; }
         public int? AppendixId { get; set; }
         public int? DaysReceiptToAppendixOffering { get; set; }
@@ -89,9 +91,11 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Deviation
                 Percentage = deviationEntity.Percentage.HasValue
                     ? deviationEntity.Percentage.Value
                     : (decimal)1.0,
-                PercentageValue = deviationEntity.Value.HasValue && deviationEntity.Percentage.HasValue
-                    ? deviationEntity.Value.Value * deviationEntity.Percentage.Value
-                    : 0,
+                PercentageValue = deviationEntity.Status != null && deviationEntity.Status.IsZeroValue
+                    ? 0
+                    : (deviationEntity.Value.HasValue && deviationEntity.Percentage.HasValue
+                            ? deviationEntity.Value.Value * deviationEntity.Percentage.Value
+                            : 0),
                 SiteId = deviationEntity.SiteId,
                 SiteDescription = deviationEntity.Site == null
                     ? deviationEntity.Appendix == null
@@ -107,6 +111,46 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Deviation
                             ? String.Empty
                             : deviationEntity.Appendix.Site.CustomNumber
                     : deviationEntity.Site.CustomNumber,
+                UserDescriptions = deviationEntity.Site == null
+                    ? deviationEntity.Appendix == null || (deviationEntity.Appendix != null && deviationEntity.Appendix.Site == null)
+                        ? null
+                        : deviationEntity.Appendix.Site.Users
+                            .Select(r => new
+                            {
+                                LastName = r.Lastname,
+                                Roles = String.Join(", ", r.Roles.Select(u => u.Description))
+                            })
+                            .OrderBy(r => r.Roles)
+                            .Select(r => String.Format("{0}|({1})", r.LastName, r.Roles))
+                            .ToList()
+                    : deviationEntity.Site.Users
+                        .Select(r => new
+                        {
+                            LastName = r.Lastname,
+                            Roles = String.Join(", ", r.Roles.Select(u => u.Description))
+                        })
+                        .OrderBy(r => r.Roles)
+                        .Select(r => String.Format("{0}|({1})", r.LastName, r.Roles))
+                        .ToList(),
+                UserDescription = deviationEntity.Site == null
+                    ? deviationEntity.Appendix == null || (deviationEntity.Appendix != null && deviationEntity.Appendix.Site == null)
+                        ? String.Empty
+                        : String.Join(", ",
+                              deviationEntity.Appendix.Site.Users
+                                  .Select(r => new
+                                  {
+                                      LastName = r.Lastname,
+                                      Roles = String.Join(", ", r.Roles.Select(u => u.Description))
+                                  })
+                                  .Select(u => String.Format("{0} ({1})", u.LastName, u.Roles)))
+                    : String.Join(", ",
+                        deviationEntity.Site.Users
+                            .Select(r => new
+                            {
+                                LastName = r.Lastname,
+                                Roles = String.Join(", ", r.Roles.Select(u => u.Description))
+                            })
+                            .Select(u => String.Format("{0} ({1})", u.LastName, u.Roles))),
                 AppendixId = deviationEntity.AppendixId,
                 AppendixDescription = deviationEntity.Appendix == null
                     ? "Offen"

+ 5 - 2
GreenTree.Nachtragsmanagement.Web/Models/Deviation/StatusDataModel.cs

@@ -10,6 +10,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Deviation
         public int Id { get; set; }
         public string Description { get; set; }
         public bool IsDefault { get; set; }
+        public bool IsZeroValue { get; set; }
 
         public static StatusDataModel FromStatus(Core.Domain.Deviation.Status statusEntity, bool newWhenIsNull)
         {
@@ -26,7 +27,8 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Deviation
             {
                 Id = statusEntity.Id,
                 Description = statusEntity.Description,
-                IsDefault = statusEntity.IsDefault
+                IsDefault = statusEntity.IsDefault,
+                IsZeroValue = statusEntity.IsZeroValue
             };
         }
 
@@ -36,7 +38,8 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Deviation
             {
                 Id = this.Id,
                 Description = this.Description,
-                IsDefault = this.IsDefault
+                IsDefault = this.IsDefault,
+                IsZeroValue = this.IsZeroValue
             };
         }
     }

+ 6 - 0
GreenTree.Nachtragsmanagement.Web/Views/Admin/Roles/_RoleGridPartial.cshtml

@@ -18,6 +18,12 @@
 			? 400
 			: (int)ViewData["ScrollHeight"];
 	s.SettingsPager.AlwaysShowPager = true;
+	s.SettingsPager.Position = PagerPosition.Bottom;
+	s.SettingsPager.PageSize = 20;
+	s.SettingsPager.PageSizeItemSettings.Visible = true;
+	s.SettingsPager.FirstPageButton.Visible = true;
+	s.SettingsPager.LastPageButton.Visible = true;
+	s.SettingsPager.NumericButtonCount = 5;
 
 	if (userContext.CurrentUser.HasFunction("Administration-Roles-Edit"))
 	{

+ 6 - 0
GreenTree.Nachtragsmanagement.Web/Views/Admin/Users/_UserGridPartial.cshtml

@@ -18,6 +18,12 @@
 			? 400
 			: (int)ViewData["ScrollHeight"];
 	s.SettingsPager.AlwaysShowPager = true;
+	s.SettingsPager.Position = PagerPosition.Bottom;
+	s.SettingsPager.PageSize = 20;
+	s.SettingsPager.PageSizeItemSettings.Visible = true;
+	s.SettingsPager.FirstPageButton.Visible = true;
+	s.SettingsPager.LastPageButton.Visible = true;
+	s.SettingsPager.NumericButtonCount = 5;
 
 	if (userContext.CurrentUser.HasFunction("Administration-Users-Edit"))
 	{

+ 35 - 0
GreenTree.Nachtragsmanagement.Web/Views/Deviations/_StatusEditPartial.cshtml

@@ -97,6 +97,41 @@
 			}
 			ViewContext.Writer.Write("</div>");
 
+			ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
+			{
+				ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 100%'>");
+				{
+					ViewContext.Writer.Write(Html.CustomLabelFor(m => m.IsZeroValue, "Ist ein \"0 Wert\"-Status:"));
+					ViewContext.Writer.Write("<div style=\"overflow: hidden\">");
+					{
+						ViewContext.Writer.Write("<div style=\"float: left\">");
+						{
+							Html.DevExpress().RadioButtonFor(m => m.IsZeroValue, t =>
+							{
+								t.Text = "Ja";
+								t.GroupName = "isZeroValue";
+							}).Render();
+						}
+						ViewContext.Writer.Write("</div>");
+
+						ViewContext.Writer.Write("<div style=\"float: left; margin-left: 8px\">");
+						{
+							Html.DevExpress().RadioButton(t =>
+							{
+								t.Name = "IsZeroValueFalse";
+								t.Text = "Nein";
+								t.GroupName = "isZeroValue";
+								t.Checked = !Model.IsZeroValue;
+							}).Render();
+						}
+						ViewContext.Writer.Write("</div>");
+					}
+					ViewContext.Writer.Write("</div>");
+				}
+				ViewContext.Writer.Write("</div>");
+			}
+			ViewContext.Writer.Write("</div>");
+
 			ViewContext.Writer.Write("</div>");
 
 			Html.RenderPartial(