Files
Samuele E. Locatelli 487828a697 aggiunto num ordini forn in movimenti aperti
refresh su IIS01/IIS02
2016-10-24 10:33:04 +02:00

240 lines
14 KiB
C#

[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<Models.Item>(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("<a href='{Value}' title='Vedi Dettagli' class='btn btn-xs btn-info'><i class='glyphicon glyphicon-search' aria-hidden='true'></i></a>");
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("<a href='{Value}' title='Duplica Articolo' class='btn btn-xs btn-warning'><i class='glyphicon glyphicon-duplicate' aria-hidden='true'></i></a>");
//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("<a href='{Value}' data-toggle=\"tooltip\" title=\"Modifica\" class='btn btn-xs btn-primary'><i class=\"glyphicon glyphicon-edit\"></i></a>");
})
.WithRetrieveDataMethod((context) =>
{
var options = context.QueryOptions;
string SearchVal = options.GetAdditionalQueryOptionString("search");
if (String.IsNullOrEmpty(SearchVal)) SearchVal = "";
return new QueryResult<Models.Item>()
{
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<Models.ItemStock>(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<Models.ItemStock>()
{
Items = ItemStocksController.Select(ItemID).ToList(),
TotalRecords = ItemStocksController.SelectCount(ItemID)
};
})
);
MVCGridDefinitionTable.Add("ItemsFlux2SaveGrid", new MVCGridBuilder<Models.vItemFlux2Save>(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("<a href='{Value}' class='btn btn-xs btn-warning' title='Registra Movimenti' onClick=\"return confirm('Sicuro di voler procedere?')\"><i class='glyphicon glyphicon-save' aria-hidden='true'></i></a>");
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("<a href='/Items' class='btn btn-xs btn-default' title='reset'><i class='glyphicon glyphicon-refresh' aria-hidden='true'></i></a>")
.WithHtmlEncoding(false)
.WithValueExpression((i, c) => c.UrlHelper.Action("Details", "Items", new { id = i.ItemID, StockItemID = i.ItemID }))
.WithValueTemplate("<a href='{Value}' class='btn btn-xs btn-info' title='Vedi Dettagli'><i class='glyphicon glyphicon-search' aria-hidden='true'></i></a>");
})
.WithRetrieveDataMethod((context) =>
{
return new QueryResult<Models.vItemFlux2Save>()
{
Items = vItemFlux2SaveController.Select().ToList(),
TotalRecords = vItemFlux2SaveController.SelectCount()
};
})
);
}
}
}