using DevExpress.Data;
using DevExpress.Utils;
using DevExpress.Web;
using DevExpress.Web.ASPxThemes;
using DevExpress.Web.Mvc;
using GreenTree.Nachtragsmanagement.Core.Authentication;
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace GreenTree.Nachtragsmanagement.Web.Extensions
{
public static class GridViewSettingsHelper
{
///
/// Current user context
///
public static UserContext _userContext = Core.CommonHelper.UserContext();
///
/// Creates GridViewSettings for the site gridView
///
/// Current HtmlHelper context.
public static GridViewSettings SiteGridViewSettings(this System.Web.Mvc.HtmlHelper html)
{
var s = new GridViewSettings();
s.Name = "devGridViewSite";
s.KeyFieldName = "Id";
s.CallbackRouteValues = new { Controller = "Site", Action = "PartialSites" };
s.Width = Unit.Percentage(100);
s.Settings.ShowFilterRow = true;
s.Settings.ShowFilterRowMenu = true;
s.Settings.ShowFooter = true;
s.Settings.ShowGroupPanel = true;
s.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
s.Settings.VerticalScrollBarMode = ScrollBarMode.Auto;
s.Settings.VerticalScrollableHeight =
(html.ViewData["ScrollHeight"] == null || (int)html.ViewData["ScrollHeight"] == -1)
? 400
: (int)html.ViewData["ScrollHeight"];
s.SettingsExport.Landscape = true;
s.SettingsExport.FileName = "Baustellenliste";
s.SettingsPopup.CustomizationWindow.Width = new Unit(250, UnitType.Pixel);
s.SettingsPopup.CustomizationWindow.Height = new Unit(350, UnitType.Pixel);
s.SettingsBehavior.EnableCustomizationWindow = true;
s.Toolbars.Add(t =>
{
var refreshItem = t.Items.Add(GridViewToolbarCommand.Refresh);
refreshItem.Text = "Aktualisieren";
var expandItem = t.Items.Add(GridViewToolbarCommand.FullExpand);
expandItem.Text = "Alle aufklappen";
var collapseItem = t.Items.Add(GridViewToolbarCommand.FullCollapse);
collapseItem.Text = "Alle einklappen";
var filterItem = t.Items.Add(GridViewToolbarCommand.ClearFilter);
filterItem.Text = "Filter entfernen";
t.Items.Add(i =>
{
i.Text = "Spalten anzeigen / ausblenden";
i.Name = "ToggleColumnChooser";
i.Image.IconID = IconID.OtherViewgridlines16x16gray;
i.BeginGroup = true;
});
t.Items.Add(i =>
{
i.Text = "Exportieren nach";
i.Image.IconID = IconID.ActionsDownload16x16office2013;
i.BeginGroup = true;
i.Items.Add(exportitem =>
{
exportitem.Name = "Pdf";
exportitem.Text = "PDF";
exportitem.Image.IconID = IconID.ExportExporttopdf16x16office2013;
});
i.Items.Add(exportitem =>
{
exportitem.Name = "Xlsx";
exportitem.Text = "XLSX";
exportitem.Image.IconID = IconID.ExportExporttoxlsx16x16office2013;
});
i.Items.Add(exportitem =>
{
exportitem.Name = "Xls";
exportitem.Text = "XLS";
exportitem.Image.IconID = IconID.ExportExporttoxls16x16office2013;
});
});
});
//if (_userContext == null)
// _userContext = Core.CommonHelper.UserContext();
if (_userContext.CurrentUser.HasFunction("Site-Sites-Edit"))
{
s.Columns.Add(column =>
{
column.Caption = "#";
column.SetDataItemTemplateContent(c =>
{
html.ViewContext.Writer.Write(
"Bearbeiten " +
"Löschen"
);
});
column.SetHeaderTemplateContent(c =>
{
html.ViewContext.Writer.Write(
"Neu ");
});
column.Settings.AllowDragDrop = DefaultBoolean.False;
column.Settings.AllowSort = DefaultBoolean.False;
column.Width = new Unit(150, UnitType.Pixel);
});
}
s.Columns.Add(column =>
{
column.Caption = "Kostenstelle";
column.FieldName = "CustomNumber";
column.MinWidth = 100;
column.Width = new Unit(10, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Bauvorhaben";
column.FieldName = "Description";
column.Width = new Unit(13, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Start";
column.FieldName = "Start";
column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy";
column.MinWidth = 110;
column.Width = new Unit(8, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Ende";
column.FieldName = "End";
column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy";
column.MinWidth = 110;
column.Width = new Unit(8, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "VA";
column.FieldName = "DeviationDescription";
column.MinWidth = 150;
column.Width = new Unit(12, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "VA-Summe";
column.FieldName = "DeviationValue";
column.PropertiesEdit.DisplayFormatString = "c2";
column.MinWidth = 120;
column.Width = new Unit(10, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Nachträge";
column.FieldName = "AppendixDescription";
column.Width = new Unit(10, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Mitarbeiter";
column.FieldName = "UserDescription";
column.MinWidth = 150;
column.Width = new Unit(20, UnitType.Percentage);
});
s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Sum, "DeviationValue");
s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Sum, "DeviationValue");
s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
s.ClientLayout = (sender, e) =>
{
if (e.LayoutMode == ClientLayoutMode.Loading)
{
if (System.Web.HttpContext.Current.Session["SiteGridState"] != null)
e.LayoutData = (string)System.Web.HttpContext.Current.Session["SiteGridState"];
}
else
System.Web.HttpContext.Current.Session["SiteGridState"] = e.LayoutData;
};
s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }";
s.ClientSideEvents.ToolbarItemClick = "function (s, e) { onToolbarItemClick(s, e); }";
s.Styles.AlternatingRow.BackColor = System.Drawing.Color.FromArgb(247, 247, 247);
return s;
}
///
/// Creates GridViewSettings for the deviation gridView
///
/// Current HtmlHelper context.
public static GridViewSettings DeviationGridViewSettings(this System.Web.Mvc.HtmlHelper html)
{
var s = new GridViewSettings();
s.Name = "devGridViewDeviation";
s.KeyFieldName = "Id";
s.CallbackRouteValues = new { Controller = "Deviation", Action = "PartialDeviations" };
s.Width = Unit.Percentage(100);
s.Settings.ShowFilterRow = true;
s.Settings.ShowFilterRowMenu = true;
s.Settings.ShowFooter = true;
s.Settings.ShowGroupPanel = true;
s.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
s.Settings.VerticalScrollBarMode = ScrollBarMode.Auto;
s.Settings.VerticalScrollableHeight =
(html.ViewData["ScrollHeight"] == null || (int)html.ViewData["ScrollHeight"] == -1)
? 400
: (int)html.ViewData["ScrollHeight"];
s.SettingsExport.Landscape = true;
s.SettingsExport.FileName = "Vertragsabweichungsliste";
s.SettingsBehavior.EnableCustomizationWindow = true;
s.SettingsPopup.CustomizationWindow.Width = new Unit(250, UnitType.Pixel);
s.SettingsPopup.CustomizationWindow.Height = new Unit(350, UnitType.Pixel);
s.Toolbars.Add(t =>
{
var refreshItem = t.Items.Add(GridViewToolbarCommand.Refresh);
refreshItem.Text = "Aktualisieren";
var expandItem = t.Items.Add(GridViewToolbarCommand.FullExpand);
expandItem.Text = "Alle aufklappen";
var collapseItem = t.Items.Add(GridViewToolbarCommand.FullCollapse);
collapseItem.Text = "Alle einklappen";
var filterItem = t.Items.Add(GridViewToolbarCommand.ClearFilter);
filterItem.Text = "Filter entfernen";
t.Items.Add(i =>
{
i.Text = "Spalten anzeigen / ausblenden";
i.Name = "ToggleColumnChooser";
i.Image.IconID = IconID.OtherViewgridlines16x16gray;
i.BeginGroup = true;
});
t.Items.Add(i =>
{
i.Text = "Exportieren nach";
i.Image.IconID = IconID.ActionsDownload16x16office2013;
i.BeginGroup = true;
i.Items.Add(exportitem =>
{
exportitem.Name = "Pdf";
exportitem.Text = "PDF";
exportitem.Image.IconID = IconID.ExportExporttopdf16x16office2013;
});
i.Items.Add(exportitem =>
{
exportitem.Name = "Xlsx";
exportitem.Text = "XLSX";
exportitem.Image.IconID = IconID.ExportExporttoxlsx16x16office2013;
});
i.Items.Add(exportitem =>
{
exportitem.Name = "Xls";
exportitem.Text = "XLS";
exportitem.Image.IconID = IconID.ExportExporttoxls16x16office2013;
});
});
});
s.Columns.Add(column =>
{
column.Caption = "Nummer";
column.FieldName = "CustomNumber";
column.MinWidth = 80;
column.Width = new Unit(8, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Bezeichnung";
column.FieldName = "Description";
column.MinWidth = 200;
column.Width = new Unit(14, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Baustelle";
column.FieldName = "SiteDescription";
column.MinWidth = 120;
column.Width = new Unit(10, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Nachtrag";
column.FieldName = "AppendixDescription";
column.MinWidth = 120;
column.Width = new Unit(10, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Einreichung";
column.FieldName = "ReceiptDate";
column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy";
column.MinWidth = 110;
column.Width = new Unit(8, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Tage VA - NT";
column.FieldName = "DaysReceiptToAppendixOffering";
column.MinWidth = 110;
column.Width = new Unit(8, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Schätzung bew.";
column.FieldName = "PercentageValue";
column.PropertiesEdit.DisplayFormatString = "c2";
column.MinWidth = 100;
column.Width = new Unit(9, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Status";
column.FieldName = "StatusDescription";
column.MinWidth = 160;
column.Width = new Unit(12, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "VA-Kategorien";
column.FieldName = "DisturbanceValuesDescription";
column.MinWidth = 200;
column.Width = new Unit(14, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Art";
column.FieldName = "KindDescription";
column.MinWidth = 140;
column.Width = new Unit(10, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Kommentar";
column.CellStyle.Wrap = DefaultBoolean.True;
column.SetDataItemTemplateContent(c =>
{
var id = Convert.ToInt32(DataBinder.Eval(c.DataItem, "Id"));
var comment = DataBinder.Eval(c.DataItem, "Comment");
var text = comment == null
? String.Empty
: comment.ToString();
if (text.ToString().Length > 40)
{
html.ViewContext.Writer.Write(text.Substring(0, 40) + " ...");
html.ViewContext.Writer.Write("
Anzeigen");
}
else
html.ViewContext.Writer.Write(text);
});
column.MinWidth = 120;
column.Width = new Unit(8, UnitType.Percentage);
column.Visible = false;
});
var totalDaysReceiptToAppendixOfferingSum = 0;
var totalDaysReceiptToAppendixOfferingCount = 0;
s.CustomSummaryCalculate = (sender, e) =>
{
if (e.SummaryProcess == CustomSummaryProcess.Start)
{
totalDaysReceiptToAppendixOfferingSum = 0;
totalDaysReceiptToAppendixOfferingCount = 0;
}
if (e.SummaryProcess == CustomSummaryProcess.Calculate)
{
var val = e.GetValue("DaysReceiptToAppendixOffering");
if (val != null)
{
totalDaysReceiptToAppendixOfferingCount++;
totalDaysReceiptToAppendixOfferingSum += Convert.ToInt32(val);
}
}
if (e.SummaryProcess == CustomSummaryProcess.Finalize)
e.TotalValue = totalDaysReceiptToAppendixOfferingSum / totalDaysReceiptToAppendixOfferingCount;
};
s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Sum, "PercentageValue");
s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Sum, "PercentageValue");
s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
s.TotalSummary.Add(new ASPxSummaryItem
{
FieldName = "DaysReceiptToAppendixOffering",
SummaryType = DevExpress.Data.SummaryItemType.Custom,
DisplayFormat = "Schnitt = {0:n0}",
});
s.GroupSummary.Add(new ASPxSummaryItem
{
FieldName = "DaysReceiptToAppendixOffering",
SummaryType = DevExpress.Data.SummaryItemType.Custom,
DisplayFormat = "Schnitt = {0:n0}"
});
s.ClientLayout = (sender, e) =>
{
if (e.LayoutMode == ClientLayoutMode.Loading)
{
if (System.Web.HttpContext.Current.Session["DeviationGridState"] != null)
e.LayoutData = (string)System.Web.HttpContext.Current.Session["DeviationGridState"];
}
else
System.Web.HttpContext.Current.Session["DeviationGridState"] = e.LayoutData;
};
s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }";
s.ClientSideEvents.ToolbarItemClick = "function (s, e) { onToolbarItemClick(s, e); }";
s.Styles.AlternatingRow.BackColor = System.Drawing.Color.FromArgb(247, 247, 247);
return s;
}
///
/// Creates GridViewSettings for the appendix gridView
///
/// Current HtmlHelper context.
public static GridViewSettings AppendixGridViewSettings(this System.Web.Mvc.HtmlHelper html)
{
var s = new GridViewSettings();
s.Name = "devGridViewAppendix";
s.KeyFieldName = "Id";
s.CallbackRouteValues = new { Controller = "Appendix", Action = "PartialAppendices" };
s.Width = Unit.Percentage(100);
s.Settings.ShowFilterRow = true;
s.Settings.ShowFilterRowMenu = true;
s.Settings.ShowFooter = true;
s.Settings.ShowGroupPanel = true;
s.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
s.Settings.VerticalScrollBarMode = ScrollBarMode.Auto;
s.Settings.VerticalScrollableHeight =
(html.ViewData["ScrollHeight"] == null || (int)html.ViewData["ScrollHeight"] == -1)
? 400
: (int)html.ViewData["ScrollHeight"];
s.SettingsExport.Landscape = true;
s.SettingsExport.FileName = "Nachtragsliste";
s.SettingsBehavior.EnableCustomizationWindow = true;
s.SettingsPopup.CustomizationWindow.Width = new Unit(250, UnitType.Pixel);
s.SettingsPopup.CustomizationWindow.Height = new Unit(350, UnitType.Pixel);
s.Toolbars.Add(t =>
{
var refreshItem = t.Items.Add(GridViewToolbarCommand.Refresh);
refreshItem.Text = "Aktualisieren";
var expandItem = t.Items.Add(GridViewToolbarCommand.FullExpand);
expandItem.Text = "Alle aufklappen";
var collapseItem = t.Items.Add(GridViewToolbarCommand.FullCollapse);
collapseItem.Text = "Alle einklappen";
var filterItem = t.Items.Add(GridViewToolbarCommand.ClearFilter);
filterItem.Text = "Filter entfernen";
t.Items.Add(i =>
{
i.Text = "Spalten anzeigen / ausblenden";
i.Name = "ToggleColumnChooser";
i.Image.IconID = IconID.OtherViewgridlines16x16gray;
i.BeginGroup = true;
});
t.Items.Add(i =>
{
i.Text = "Exportieren nach";
i.Image.IconID = IconID.ActionsDownload16x16office2013;
i.BeginGroup = true;
i.Items.Add(exportitem =>
{
exportitem.Name = "Pdf";
exportitem.Text = "PDF";
exportitem.Image.IconID = IconID.ExportExporttopdf16x16office2013;
});
i.Items.Add(exportitem =>
{
exportitem.Name = "Xlsx";
exportitem.Text = "XLSX";
exportitem.Image.IconID = IconID.ExportExporttoxlsx16x16office2013;
});
i.Items.Add(exportitem =>
{
exportitem.Name = "Xls";
exportitem.Text = "XLS";
exportitem.Image.IconID = IconID.ExportExporttoxls16x16office2013;
});
});
});
s.Columns.Add(column =>
{
column.Caption = "Nummer";
column.FieldName = "CustomNumber";
column.MinWidth = 80;
column.Width = new Unit(8, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Bezeichnung";
column.FieldName = "Description";
column.MinWidth = 200;
column.Width = new Unit(14, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Baustelle";
column.FieldName = "SiteDescription";
column.MinWidth = 120;
column.Width = new Unit(10, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Einreichung";
column.FieldName = "OfferingDate";
column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy";
column.MinWidth = 110;
column.Width = new Unit(8, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Angeb.-Sum.";
column.FieldName = "OfferingValue";
column.PropertiesEdit.DisplayFormatString = "c2";
column.MinWidth = 140;
column.Width = new Unit(8, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Verhand.-Sum.";
column.FieldName = "NegotiationValue";
column.PropertiesEdit.DisplayFormatString = "c2";
column.MinWidth = 140;
column.Width = new Unit(8, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Verh. Angeb./Verha.";
column.FieldName = "RelationOfferingToNegotiation";
column.PropertiesEdit.DisplayFormatString = "p2";
column.MinWidth = 140;
column.Width = new Unit(10, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "VA";
column.FieldName = "DeviationDescription";
column.MinWidth = 100;
column.Width = new Unit(6, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Verh. Angeb./VA.";
column.FieldName = "RelationOfferingToDeviations";
column.PropertiesEdit.DisplayFormatString = "n2";
column.MinWidth = 140;
column.Width = new Unit(10, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Status";
column.FieldName = "StateDescription";
column.MinWidth = 100;
column.Width = new Unit(6, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "NT-Kategorien";
column.FieldName = "CategoryValuesDescription";
column.MinWidth = 200;
column.Width = new Unit(12, UnitType.Percentage);
});
s.Columns.Add(column =>
{
column.Caption = "Kommentar";
column.CellStyle.Wrap = DefaultBoolean.True;
column.SetDataItemTemplateContent(c =>
{
var id = Convert.ToInt32(DataBinder.Eval(c.DataItem, "Id"));
var comment = DataBinder.Eval(c.DataItem, "Comment");
var text = comment == null
? String.Empty
: comment.ToString();
if (text.ToString().Length > 40)
{
html.ViewContext.Writer.Write(text.Substring(0, 40) + " ...");
html.ViewContext.Writer.Write("
Anzeigen");
}
else
html.ViewContext.Writer.Write(text);
});
column.MinWidth = 250;
column.Width = new Unit(14, UnitType.Percentage);
});
s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
s.TotalSummary.Add(new ASPxSummaryItem
{
SummaryType = DevExpress.Data.SummaryItemType.Sum,
FieldName = "OfferingValue",
DisplayFormat = "{0:c2}"
});
s.GroupSummary.Add(new ASPxSummaryItem
{
SummaryType = DevExpress.Data.SummaryItemType.Sum,
FieldName = "OfferingValue",
DisplayFormat = "{0:c2}"
});
s.TotalSummary.Add(new ASPxSummaryItem
{
SummaryType = DevExpress.Data.SummaryItemType.Sum,
FieldName = "NegotiationValue",
DisplayFormat = "{0:c2}"
});
s.GroupSummary.Add(new ASPxSummaryItem
{
SummaryType = DevExpress.Data.SummaryItemType.Sum,
FieldName = "NegotiationValue",
DisplayFormat = "{0:c2}"
});
s.ClientLayout = (sender, e) =>
{
if (e.LayoutMode == ClientLayoutMode.Loading)
{
if (System.Web.HttpContext.Current.Session["AppendixGridState"] != null)
e.LayoutData = (string)System.Web.HttpContext.Current.Session["AppendixGridState"];
}
else
System.Web.HttpContext.Current.Session["AppendixGridState"] = e.LayoutData;
};
s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }";
s.ClientSideEvents.ToolbarItemClick = "function (s, e) { onToolbarItemClick(s, e); }";
s.Styles.AlternatingRow.BackColor = System.Drawing.Color.FromArgb(247, 247, 247);
return s;
}
}
}