Parcourir la source

Diverse Anpassungen vorgenommen!

Arne Diekmann il y a 8 ans
Parent
commit
cfaa803e10

+ 5 - 0
GreenTree.Nachtragsmanagement.Core/Domain/Appendix/State.cs

@@ -32,5 +32,10 @@ namespace GreenTree.Nachtragsmanagement.Core.Domain.Appendix
         /// Determines if this state is the final state
         /// </summary>
         public bool IsFinish { get; set; }
+
+        /// <summary>
+        /// Determines the initial percentage value 
+        /// </summary>
+        public decimal InitialPercentage { get; set; }
     }
 }

+ 1 - 0
GreenTree.Nachtragsmanagement.Web/Controllers/AppendixController.cs

@@ -784,6 +784,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                     state.IsZeroValue = stateModel.IsZeroValue;
                     state.IsDefault = stateModel.IsDefault;
                     state.IsFinish = stateModel.IsFinish;
+                    state.InitialPercentage = stateModel.InitialPercentage;
 
                     _appendixService.UpdateState(state);
 

+ 1 - 0
GreenTree.Nachtragsmanagement.Web/Controllers/DeviationController.cs

@@ -660,6 +660,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                     deviation.Description = deviationModel.Description;
                     deviation.ReceiptDate = deviationModel.ReceiptDate;
                     deviation.AppendixDate = deviationModel.AppendixDate;
+                    deviation.Percentage = deviationModel.Percentage;
                     deviation.Value = deviationModel.Value;
                     deviation.AppendixId = deviationModel.AppendixId;
                     deviation.StatusId = deviationModel.StatusId;

+ 43 - 0
GreenTree.Nachtragsmanagement.Web/Extensions/GridViewSettingsHelper.cs

@@ -1008,6 +1008,23 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.HeaderStyle.Wrap = DefaultBoolean.True;
             });
             s.Columns.Add(column =>
+            {
+                column.Caption = "Bewert.";
+                column.FieldName = "Percentage";
+                column.PropertiesEdit.DisplayFormatString = "p0";
+                column.MinWidth = 70;
+                column.Width = new Unit(60, UnitType.Pixel);
+            });
+            s.Columns.Add(column =>
+            {
+                column.Caption = "Angebot bew.";
+                column.FieldName = "PercentageValue";
+                column.PropertiesEdit.DisplayFormatString = "c2";
+                column.MinWidth = 100;
+                column.Width = new Unit(120, UnitType.Pixel);
+                column.HeaderStyle.Wrap = DefaultBoolean.True;
+            });
+            s.Columns.Add(column =>
             {
                 column.Caption = "Verhand. -Summe";
                 column.FieldName = "NegotiationValue";
@@ -1151,6 +1168,32 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 DisplayFormat = "Angeb.-∑ = {0:c2}"
             });
 
+            s.TotalSummary.Add(new ASPxSummaryItem
+            {
+                FieldName = "Percentage",
+                SummaryType = DevExpress.Data.SummaryItemType.Average,
+                DisplayFormat = "Bew. Ø<br/><i>{0:p0}</i>"
+            });
+            s.GroupSummary.Add(new ASPxSummaryItem
+            {
+                FieldName = "Percentage",
+                SummaryType = DevExpress.Data.SummaryItemType.Average,
+                DisplayFormat = "Bew. Ø = <i>{0:p0}</i>"
+            });
+
+            s.TotalSummary.Add(new ASPxSummaryItem
+            {
+                FieldName = "PercentageValue",
+                SummaryType = DevExpress.Data.SummaryItemType.Sum,
+                DisplayFormat = "Schätz. bew. ∑<br/><i>{0:c2}</i>"
+            });
+            s.GroupSummary.Add(new ASPxSummaryItem
+            {
+                FieldName = "PercentageValue",
+                SummaryType = DevExpress.Data.SummaryItemType.Sum,
+                DisplayFormat = "Schätz. bew. ∑ = <i>{0:c2}</i>"
+            });
+
             s.TotalSummary.Add(new ASPxSummaryItem
             {
                 SummaryType = DevExpress.Data.SummaryItemType.Sum,

+ 5 - 2
GreenTree.Nachtragsmanagement.Web/Models/Appendix/StateDataModel.cs

@@ -13,6 +13,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Appendix
         public bool IsZeroValue { get; set; }
         public bool IsDefault { get; set; }
         public bool IsFinish { get; set; }
+        public decimal InitialPercentage { get; set; }
 
         public static StateDataModel FromState(Core.Domain.Appendix.State stateEntity, bool newWhenIsNull)
         {
@@ -32,7 +33,8 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Appendix
                 HexColor = stateEntity.HexColor,
                 IsZeroValue = stateEntity.IsZeroValue,
                 IsDefault = stateEntity.IsDefault,
-                IsFinish = stateEntity.IsFinish
+                IsFinish = stateEntity.IsFinish,
+                InitialPercentage = stateEntity.InitialPercentage
             };
         }
 
@@ -45,7 +47,8 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Appendix
                 HexColor = this.HexColor,
                 IsZeroValue = this.IsZeroValue,
                 IsDefault = this.IsDefault,
-                IsFinish = this.IsFinish
+                IsFinish = this.IsFinish,
+                InitialPercentage = this.InitialPercentage
             };
         }
     }

+ 1 - 1
GreenTree.Nachtragsmanagement.Web/Models/Deviation/DeviationDataModel.cs

@@ -166,7 +166,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Deviation
                 KindId = deviationEntity.KindId.Value,
                 KindDescription = deviationEntity.Kind == null
                     ? null
-                    : deviationEntity.Kind.Description,
+                    : deviationEntity.Kind.Shortance,
                 Comment = deviationEntity.Comment,
                 DaysReceiptToAppendixOffering = deviationEntity.Appendix == null
                     ? null

+ 9 - 1
GreenTree.Nachtragsmanagement.Web/Models/Site/SiteTreeDataModel.cs

@@ -93,7 +93,15 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Site
                 });
             }
 
-            foreach (var appendix in siteEntity.Appendices)
+            var orderedAppendices = siteEntity
+                .Appendices
+                .OrderBy(a =>
+                    a.CustomNumber.Any(c => Char.IsLetter(c))
+                        ? 0
+                        : Convert.ToInt32(a.CustomNumber));
+                
+
+            foreach (var appendix in orderedAppendices)
             {
                 var parentAppendix = new SiteTreeDataModel
                 {

+ 29 - 12
GreenTree.Nachtragsmanagement.Web/Views/Appendices/_AppendixEditPartial.cshtml

@@ -17,16 +17,25 @@
 			@foreach (var state in (IEnumerable<GreenTree.Nachtragsmanagement.Core.Domain.Appendix.State>)ViewData["AllStates"])
 			{
 				if (state.IsZeroValue)
-				{ 
+				{
 					ViewContext.Writer.Write(state.Id);
 				}
 			}
 		];
 
+		var initialValueStates =
+		[
+			@foreach (var state in (IEnumerable<GreenTree.Nachtragsmanagement.Core.Domain.Appendix.State>)ViewData["AllStates"])
+			{
+				ViewContext.Writer.Write("{ Id: " + state.Id + ", Value: " + state.InitialPercentage.ToString().Replace(',','.') + " },");
+			}
+		];
+
 		function saveAppendix() {
 			CategoryEntities.SelectAll();
 			var form = $("#appendixEditForm");
 			$(form).submit(function (e) {
+				PercentageAppendix.SetValue(PercentageAppendix.GetValue() / 100);
 				$.ajax({
 					type: "POST",
 					url: '@Url.Action("EditAppendix", "Appendix")',
@@ -123,14 +132,21 @@
 			});
 		}
 
-		function isZeroValueState() {
+		function setInitialValueState() {
 			var selectedValue = StateId.GetSelectedItem().value;
 			if (!selectedValue) return;
+			var controls = ASPxClientControl.GetControlCollection();
+			var percentage = controls.GetByName("Percentage");
+			for (var i = 0; i < initialValueStates.length; i++) {
+				if (initialValueStates[i].Id == selectedValue) {
+					var per = parseFloat(initialValueStates[i].Value * 100).toFixed(2);
+					percentage.SetValue(per);
+					calculateValueAppendix();
+				}
+			}
 			for (var i = 0; i < zeroValueStates.length; i++) {
-				if (zeroValueStates == selectedValue) {
-					var controls = ASPxClientControl.GetControlCollection();
+				if (zeroValueStates[i] == selectedValue) {
 					var offeringValue = controls.GetByName("OfferingValue");
-					var percentage = controls.GetByName("Percentage");
 					var percentageValue = controls.GetByName("PercentageValue");
 					offeringValue.SetValue(0.00);
 					percentage.SetValue(0.00);
@@ -185,7 +201,7 @@
 		}
 
 		function calculateValueAppendix() {
-			PercentageValueAppendix.SetValue(OfferingValueAppendix.GetValue() * PercentageAppendix.GetValue());
+			PercentageValueAppendix.SetValue((OfferingValueAppendix.GetValue() / 100) * PercentageAppendix.GetValue());
 		}
 	</script>
 
@@ -351,15 +367,16 @@
 						t.Width = new Unit(88, UnitType.Percentage);
 						t.ReadOnly = isReadOnly;
 						t.Properties.ClientInstanceName = "PercentageAppendix";
-						t.Properties.MaxValue = 1;
+						t.Properties.MaxValue = 100;
 						t.Properties.MinValue = 0;
-						t.Properties.Increment = (decimal)0.1;
+						t.Properties.Increment = (decimal)1;
 						t.Properties.NumberType = SpinEditNumberType.Float;
-						t.Properties.NumberFormat = SpinEditNumberFormat.Percent;
-						t.Properties.DisplayFormatString = "p0";
+						t.Properties.NumberFormat = SpinEditNumberFormat.Custom;
+						t.Properties.DisplayFormatString = "{0,00} %";
 						t.Properties.DisplayFormatInEditMode = true;
 						t.Properties.ClientSideEvents.ValueChanged = "function (s, e) { calculateValueAppendix(); }";
-					}).Render();
+						t.Properties.ClientSideEvents.Init = "function (s, e) { calculateValueAppendix(); }";
+					}).Bind(Model.Percentage * 100).Render();
 				}
 				ViewContext.Writer.Write("</div>");
 				ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 22%'>");
@@ -461,7 +478,7 @@
 							Type = Model.GetType().FullName
 						};
 
-						t.Properties.ClientSideEvents.SelectedIndexChanged = "function (s, e) { isZeroValueState(); }";
+						t.Properties.ClientSideEvents.SelectedIndexChanged = "function (s, e) { setInitialValueState(); }";
 					}));
 					ViewData.Add("StatesComboBoxSettings", "AppendixStatesComboBoxSettings");
 					Html.RenderPartial("~/Views/Shared/DataEditorTemplates/_StatesComboBox.cshtml", Model, ViewData);

+ 23 - 8
GreenTree.Nachtragsmanagement.Web/Views/Appendices/_StateEditPartial.cshtml

@@ -8,6 +8,7 @@
 		function saveState() {
 			var form = $("#statusEditForm");
 			$(form).submit(function (e) {
+				InitialPercentage.SetValue(InitialPercentage.GetValue() / 100);
 				$.ajax({
 					type: "POST",
 					url: '@Url.Action("EditState", "Appendix")',
@@ -39,7 +40,7 @@
 		s.HeaderText = "\"" + Model.Description + "\" bearbeiten";
 
 	s.Modal = true;
-	s.Width = new Unit(250, UnitType.Pixel);
+	s.Width = new Unit(350, UnitType.Pixel);
 	s.CloseAction = CloseAction.CloseButton;
 	s.PopupHorizontalAlign = PopupHorizontalAlign.WindowCenter;
 	s.PopupVerticalAlign = PopupVerticalAlign.WindowCenter;
@@ -71,7 +72,7 @@
 
 			ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
 			{
-				ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 100%'>");
+				ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 50%'>");
 				{
 					ViewContext.Writer.Write(Html.CustomLabelFor(m => m.IsDefault, "Ist Standard:"));
 					ViewContext.Writer.Write("<div style=\"overflow: hidden\">");
@@ -101,12 +102,8 @@
 					ViewContext.Writer.Write("</div>");
 				}
 				ViewContext.Writer.Write("</div>");
-			}
-			ViewContext.Writer.Write("</div>");
 
-			ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
-			{
-				ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 100%'>");
+				ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 50%'>");
 				{
 					ViewContext.Writer.Write(Html.CustomLabelFor(m => m.IsFinish, "Ist Abschluss:"));
 					ViewContext.Writer.Write("<div style=\"overflow: hidden\">");
@@ -141,7 +138,7 @@
 
 			ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
 			{
-				ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 100%'>");
+				ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 50%'>");
 				{
 					ViewContext.Writer.Write(Html.CustomLabelFor(m => m.IsZeroValue, "Ist ein \"0 Wert\"-Status:"));
 					ViewContext.Writer.Write("<div style=\"overflow: hidden\">");
@@ -171,6 +168,24 @@
 					ViewContext.Writer.Write("</div>");
 				}
 				ViewContext.Writer.Write("</div>");
+
+				ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 50%'>");
+				{
+					ViewContext.Writer.Write(Html.CustomLabelFor(m => m.InitialPercentage, "Standard (%):"));
+					ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.InitialPercentage).ToHtmlString());
+					Html.DevExpress().SpinEditFor(m => m.InitialPercentage, t =>
+					{
+						t.Width = new Unit(88, UnitType.Percentage);
+						t.Properties.MaxValue = 100;
+						t.Properties.MinValue = 0;
+						t.Properties.Increment = (decimal)1;
+						t.Properties.NumberType = SpinEditNumberType.Float;
+						t.Properties.NumberFormat = SpinEditNumberFormat.Custom;
+						t.Properties.DisplayFormatString = "{0,00} %";
+						t.Properties.DisplayFormatInEditMode = true;
+					}).Bind(Model.InitialPercentage * 100).Render();
+				}
+				ViewContext.Writer.Write("</div>");
 			}
 			ViewContext.Writer.Write("</div>");
 

+ 8 - 6
GreenTree.Nachtragsmanagement.Web/Views/Deviations/_DeviationEditPartial.cshtml

@@ -16,6 +16,7 @@
 			DisturbanceEntities.SelectAll();
 			var form = $("#deviationEditForm");
 			$(form).submit(function (e) {
+				PercentageDeviation.SetValue(PercentageDeviation.GetValue() / 100);
 				$.ajax({
 					type: "POST",
 					url: '@Url.Action("EditDeviation", "Deviation")',
@@ -133,7 +134,7 @@
 		}
 
 		function calculateValueDeviation() {
-			PercentageValueDeviation.SetValue(ValueDeviation.GetValue() * PercentageDeviation.GetValue());
+			PercentageValueDeviation.SetValue((ValueDeviation.GetValue() / 100) * PercentageDeviation.GetValue());
 		}
 	</script>
 
@@ -280,15 +281,16 @@
 					{
 						t.Width = new Unit(88, UnitType.Percentage);
 						t.Properties.ClientInstanceName = "PercentageDeviation";
-						t.Properties.MaxValue = 1;
+						t.Properties.MaxValue = 100;
 						t.Properties.MinValue = 0;
-						t.Properties.Increment = (decimal)0.1;
+						t.Properties.Increment = (decimal)1;
 						t.Properties.NumberType = SpinEditNumberType.Float;
-						t.Properties.NumberFormat = SpinEditNumberFormat.Percent;
-						t.Properties.DisplayFormatString = "p0";
+						t.Properties.NumberFormat = SpinEditNumberFormat.Custom;
+						t.Properties.DisplayFormatString = "{0,00} %";
 						t.Properties.DisplayFormatInEditMode = true;
 						t.Properties.ClientSideEvents.ValueChanged = "function (s, e) { calculateValueDeviation(); }";
-					}).Render();
+						t.Properties.ClientSideEvents.Init = "function (s, e) { calculateValueDeviation(); }";
+					}).Bind(Model.Percentage * 100).Render();
 				}
 				ViewContext.Writer.Write("</div>");
 				ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 22%'>");