[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(StockManMVC.MVCGridConfig), "RegisterGrids")] namespace StockManMVC { using System; using System.Web; using System.Web.Mvc; using System.Linq; using System.Collections.Generic; using MVCGrid.Models; using MVCGrid.Web; using Models; using Controllers; public static class MVCGridConfig { private static StockManEntities db = new StockManEntities(); public static void RegisterGrids() { GridDefaults gridDefaults = new GridDefaults() { //Auth AuthorizationType = AuthorizationType.AllowAnonymous, //Paginazione Paging = true, ItemsPerPage = 10, AllowChangingPageSize = true, MaxItemsPerPage = 100, //Sorting Sorting = true, DefaultSortDirection = SortDirection.Asc, //Altro NoResultsMessage = "Spiacenti, nessun risultato disponibile." }; ColumnDefaults colDefaults = new ColumnDefaults() { EnableSorting = true, AllowChangeVisibility = true, Visible = true, EnableFiltering = true }; MVCGridDefinitionTable.Add("ItemsGrid", new MVCGridBuilder(gridDefaults, colDefaults) // aggiungo valori di default... .WithSorting(sorting: true, defaultSortColumn: "Descr") //, defaultSortDirection: SortDirection.Dsc .WithAdditionalQueryOptionNames("search") //.WithRowCssClassExpression(p => p.QtaCurr == 0 ? "warning" : "") // commentata x ora, poi potrebbe servire... .WithQueryStringPrefix("ItemsGrd") .AddColumns(cols => { //Add your columns here cols.Add("ViewLink").WithColumnName("ViewLink") .WithHeaderText("") .WithSorting(false) .WithVisibility(true, false) .WithAllowChangeVisibility(false) .WithHtmlEncoding(false) .WithValueExpression((i, c) => c.UrlHelper.Action("Details", "Items", new { id = i.ID, StockItemID = i.ID })) .WithValueTemplate(""); cols.Add("Family").WithColumnName("Family") .WithVisibility(true, false) .WithAllowChangeVisibility(false) .WithHeaderText("Famiglia") .WithValueExpression(i => i.ItemFamily.Descr); cols.Add("CodInt").WithColumnName("CodInt") .WithVisibility(true, false) .WithHeaderText("Cod. Articolo") .WithValueExpression(i => i.CodInt); cols.Add("Descr").WithColumnName("Descr") .WithVisibility(true, false) .WithHeaderText("Articolo") .WithValueExpression(i => i.Descr); // qui legare il valore... cols.Add("CodExt").WithColumnName("CodExt") .WithHeaderText("Cod. Fornitore") .WithValueExpression(i => i.CodExt); cols.Add("DescrExt").WithColumnName("DescrExt") .WithVisibility(false, true) .WithHeaderText("Descr. Fornitore") .WithValueExpression(i => i.DescrExt); cols.Add("QtaMin").WithColumnName("QtaMin") .WithVisibility(false, true) .WithHeaderText("Qta Minima") .WithValueExpression(i => i.QtaMin.ToString()); cols.Add("QtaBatch").WithColumnName("QtaBatch") .WithVisibility(false, true) .WithHeaderText("Lotto") .WithValueExpression(i => i.QtaBatch.ToString()); cols.Add("QtaPend").WithColumnName("QtaPend") .WithHeaderText("Stock") .WithCellCssClassExpression(p => p.QtaPend >= p.QtaMin ? "success text-right" : "danger text-right") .WithSortColumnData("QtaPend") .WithValueExpression(i => i.QtaPend.ToString()); cols.Add("CurrValue").WithColumnName("CurrValue") .WithHeaderText("€/pz") .WithValueExpression(i => i.CurrValue.ToString("C2")); cols.Add("TotVal").WithColumnName("TotVal") .WithHeaderText("Valore") .WithValueExpression(i => Convert.ToDecimal(i.CurrValue * i.QtaCurr).ToString("C2")); cols.Add("Clona").WithColumnName("Clona") .WithSorting(false) .WithVisibility(true, false) .WithAllowChangeVisibility(false) .WithHeaderText("") .WithHtmlEncoding(false) .WithValueExpression((i, c) => c.UrlHelper.Action("Duplicate", "Items", new { id = i.ID })) .WithValueTemplate(""); //cols.Add("EditLink").WithColumnName("EditLink") // .WithSorting(false) // .WithVisibility(true, false) // .WithHeaderText("") // .WithHtmlEncoding(false) // .WithValueExpression((i, c) => c.UrlHelper.Action("Edit", "Items", new { id = i.ID, mode = "full" })) // .WithValueTemplate(""); }) .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; string SearchVal = options.GetAdditionalQueryOptionString("search"); if (String.IsNullOrEmpty(SearchVal)) SearchVal = ""; return new QueryResult() { Items = ItemsController.SelectPage(SearchVal, options.SortColumnName.ToLower(), options.SortDirection.ToString().ToLower(), (int)options.PageIndex, (int)options.ItemsPerPage).ToList(), TotalRecords = ItemsController.SelectCount(SearchVal) }; }) ); MVCGridDefinitionTable.Add("StockItemsGrid", new MVCGridBuilder(gridDefaults, colDefaults) // aggiungo valori di default... .WithSorting(sorting: true, defaultSortColumn: "LocationID") //, defaultSortDirection: SortDirection.Dsc .WithAdditionalQueryOptionNames("ItemID") //.WithRowCssClassExpression(p => p.QtaCurr == 0 ? "warning" : "") // commentata x ora, poi potrebbe servire... .WithQueryStringPrefix("Stock") .WithPaging(false) .AddColumns(cols => { cols.Add("LocationID").WithColumnName("LocationID") .WithVisibility(true, false) .WithHeaderText("Posizione") .WithValueExpression(i => i.Location.Descr); cols.Add("QtyConf").WithColumnName("QtyConf") .WithVisibility(true, false) .WithHeaderText("Giacenza") .WithValueExpression(i => i.QtyConf.ToString()); }) .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; string sItemID = options.GetAdditionalQueryOptionString("ItemID"); if (String.IsNullOrEmpty(sItemID)) sItemID = "0"; int ItemID = Convert.ToInt32(sItemID); return new QueryResult() { Items = ItemStocksController.Select(ItemID).ToList(), TotalRecords = ItemStocksController.SelectCount(ItemID) }; }) ); MVCGridDefinitionTable.Add("ItemsFlux2SaveGrid", new MVCGridBuilder(gridDefaults, colDefaults) // aggiungo valori di default... .WithSorting(sorting: true, defaultSortColumn: "dtMov") //, defaultSortDirection: SortDirection.Dsc .WithQueryStringPrefix("IF2S") .WithPaging(true) .WithAdditionalQueryOptionNames("search") .AddColumns(cols => { //Add your columns here cols.Add("ProcItemFlux").WithColumnName("ProcItemFlux") .WithSorting(false) .WithVisibility(true, false) .WithAllowChangeVisibility(false) .WithHeaderText("") .WithHtmlEncoding(false) .WithValueExpression((i, c) => c.UrlHelper.Action("Consolidate", "Items", new { id = i.ItemID, caller = "vIF2S" })) .WithValueTemplate(""); cols.Add("FamilyID").WithColumnName("FamilyID") .WithVisibility(true, false) .WithHeaderText("Famiglia") .WithValueExpression(i => i.Item.ItemFamily.Descr); cols.Add("CodInt").WithColumnName("CodInt") .WithVisibility(true, false) .WithHeaderText("Cod Int") .WithValueExpression(i => i.Item.CodInt); cols.Add("Descr").WithColumnName("Descr") .WithVisibility(true, false) .WithHeaderText("Articolo") .WithValueExpression(i => i.Item.Descr); cols.Add("NumMov").WithColumnName("NumMov") .WithVisibility(true, false) .WithHeaderText("Num Mov") .WithCellCssClassExpression(p => p.TotQtaCar > 0 ? "success text-right" : "danger text-right") .WithValueExpression(i => i.NumMov.ToString()); cols.Add("TotQta").WithColumnName("TotQta") .WithVisibility(true, false) .WithHeaderText("Variazione netta") .WithCellCssClassExpression(p => p.TotQtaCar > 0 ? "success text-right" : "danger text-right") .WithValueExpression(i => i.TotQta.ToString()); cols.Add("TotQtaOrd").WithColumnName("TotQtaOrd") .WithVisibility(true, false) .WithHeaderText("Tot Ordini") .WithCellCssClassExpression(p => p.TotQtaOrd > 0 ? "success text-right" : "info text-right") .WithValueExpression(i => i.TotQtaOrd.ToString()); cols.Add("TotQtaCar").WithColumnName("TotQtaCar") .WithVisibility(true, false) .WithHeaderText("Tot Carichi") .WithCellCssClassExpression(p => p.TotQtaCar > 0 ? "success text-right" : "info text-right") .WithValueExpression(i => i.TotQtaCar.ToString()); cols.Add("TotValCar").WithColumnName("TotValCar") .WithVisibility(true, false) .WithHeaderText("Tot Valore Carichi") .WithValueExpression(i => Convert.ToDecimal(i.TotValCar).ToString("C2")); cols.Add("ViewLink").WithColumnName("ViewLink") .WithSorting(false) .WithVisibility(true, false) .WithAllowChangeVisibility(false) //.WithHeaderText("") .WithHtmlEncoding(false) .WithValueExpression((i, c) => c.UrlHelper.Action("Details", "Items", new { id = i.ItemID, StockItemID = i.ItemID })) .WithValueTemplate(""); }) .WithRetrieveDataMethod((context) => { return new QueryResult() { Items = vItemFlux2SaveController.Select().ToList(), TotalRecords = vItemFlux2SaveController.SelectCount() }; }) ); } } }