From 7b4626f84350719ca11d023bbcc7daea337b78cb Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 30 Sep 2016 12:09:31 +0200 Subject: [PATCH] iniziato ad inglobare la partial view di dettaglio/editing x articolo... --- StockManMVC/App_Start/MVCGridConfig.cs | 2 +- .../Controllers/ItemFluxesController.cs | 9 +- StockManMVC/Controllers/ItemsController.cs | 24 +++- StockManMVC/Models/Metadata.cs | 45 +++++--- StockManMVC/Models/PartialClasses.cs | 8 +- StockManMVC/StockManMVC.csproj | 1 + StockManMVC/Views/ItemFluxes/Edit.cshtml | 20 +--- .../ItemFluxes/_CreatePrecompiled.cshtml | 5 +- StockManMVC/Views/Items/Details.cshtml | 108 ++++-------------- StockManMVC/Views/Items/Edit.cshtml | 18 +-- StockManMVC/Views/Items/_ItemDetail.cshtml | 79 +++++++++++++ StockManMVC/bin/StockManMVC.dll | Bin 122880 -> 123392 bytes 12 files changed, 176 insertions(+), 143 deletions(-) create mode 100644 StockManMVC/Views/Items/_ItemDetail.cshtml diff --git a/StockManMVC/App_Start/MVCGridConfig.cs b/StockManMVC/App_Start/MVCGridConfig.cs index 783e0bf..6156bc3 100644 --- a/StockManMVC/App_Start/MVCGridConfig.cs +++ b/StockManMVC/App_Start/MVCGridConfig.cs @@ -208,7 +208,7 @@ namespace StockManMVC .WithHeaderText("Operatore") .WithValueExpression(i => i.Operator.LastName + ", " + i.Operator.FirstName); cols.Add("Note").WithColumnName("Note") - .WithVisibility(true, false) + .WithVisibility(false, true) .WithHeaderText("Note") .WithValueExpression(i => i.Note); cols.Add("EditLink").WithColumnName("EditLink") diff --git a/StockManMVC/Controllers/ItemFluxesController.cs b/StockManMVC/Controllers/ItemFluxesController.cs index 422979c..e0be3ed 100644 --- a/StockManMVC/Controllers/ItemFluxesController.cs +++ b/StockManMVC/Controllers/ItemFluxesController.cs @@ -270,8 +270,8 @@ namespace StockManMVC.Controllers ViewBag.ItemID = new SelectList(db.Item, "ID", "Descr", itemFlux.ItemID); ViewBag.OperatorID = new SelectList(db.Operator, "ID", "CodExt", itemFlux.OperatorID); ViewBag.ExtLocationID = new SelectList(db.Location, "ID", "Descr", itemFlux.ExtLocationID); - - return View(itemFlux); + + return PartialView("_CreatePrecompiled", itemFlux); } // GET: ItemFluxes/Edit/5 @@ -319,7 +319,7 @@ namespace StockManMVC.Controllers db.Entry(itemFlux).State = EntityState.Modified; db.SaveChanges(); - // rimando ad azione differente... + // rimando pag dettaglio... return RedirectToAction("Details", "Items", new { ID = itemFlux.ItemID, StockItemID = itemFlux.ItemID, FluxItemID = itemFlux.ItemID }); //return RedirectToAction("Index"); } @@ -329,7 +329,8 @@ namespace StockManMVC.Controllers ViewBag.OperatorID = new SelectList(db.Operator, "ID", "CodExt", itemFlux.OperatorID); ViewBag.ExtLocationID = new SelectList(db.Location, "ID", "Descr", itemFlux.ExtLocationID); - return View(itemFlux); + // rimando pag dettaglio... + return RedirectToAction("Details", "Items", new { ID = itemFlux.ItemID, StockItemID = itemFlux.ItemID, FluxItemID = itemFlux.ItemID }); } // GET: ItemFluxes/Delete/5 diff --git a/StockManMVC/Controllers/ItemsController.cs b/StockManMVC/Controllers/ItemsController.cs index 6e85fdf..77cb53d 100644 --- a/StockManMVC/Controllers/ItemsController.cs +++ b/StockManMVC/Controllers/ItemsController.cs @@ -216,14 +216,14 @@ namespace StockManMVC.Controllers ViewBag.ItemID = (int)id; return View(item.ToList()); } - + public ActionResult Grid() { var item = db.Item.Include(i => i.ItemFamily); return View(item.ToList()); } - + // GET: Items/Details/5 public ActionResult Details(int? id) { @@ -239,6 +239,24 @@ namespace StockManMVC.Controllers return View(item); } + + // GET: Items/Details/5 + public ActionResult CurrItemDetail(int? id) + { + if (id == null) + { + return new HttpStatusCodeResult(HttpStatusCode.BadRequest); + } + Item item = db.Item.Find(id); + if (item == null) + { + return HttpNotFound(); + } + return PartialView("_ItemDetail", item); + } + + + // GET: Items/Create public ActionResult Create() { @@ -312,7 +330,7 @@ namespace StockManMVC.Controllers { db.Entry(item).State = EntityState.Modified; db.SaveChanges(); - return RedirectToAction("Index"); + return RedirectToAction("Details", "Items", new { ID = item.ID, StockItemID = item.ID, FluxItemID = item.ID }); } ViewBag.ItemFamilyID = new SelectList(db.ItemFamily, "ID", "Descr", item.ItemFamilyID); return View(item); diff --git a/StockManMVC/Models/Metadata.cs b/StockManMVC/Models/Metadata.cs index 224c247..eb9c9d2 100644 --- a/StockManMVC/Models/Metadata.cs +++ b/StockManMVC/Models/Metadata.cs @@ -53,29 +53,38 @@ namespace StockManMVC.Models public Nullable dtExport; } - //public class ItemsMetadata - //{ - // [StringLength(250)] - // [Display(Name = "Descrizione Articolo")] - // public string Descr; + public class ItemMetadata + { + [StringLength(250)] + [Display(Name = "Descr. Articolo")] + public string Descr; - // [StringLength(50)] - // [Display(Name = "Famiglia Articolo")] - // public string Family; + [StringLength(50)] + [Display(Name = "Fam. Articolo")] + public string ItemFamily; - // [StringLength(250)] - // [Display(Name = "Descrizione Articolo Ext")] - // public string DescrExt; + [StringLength(250)] + [Display(Name = "Descr. Articolo Ext")] + public string DescrExt; - // [StringLength(250)] - // [Display(Name = "Cod Articolo Ext")] - // public string CodExt; + [StringLength(250)] + [Display(Name = "Cod. Ext")] + public string CodExt; - // [StringLength(50)] - // [Display(Name = "Cod Articolo Int")] - // public string CodInt; + [StringLength(50)] + [Display(Name = "Cod. Int")] + public string CodInt; - //} + [Display(Name = "Giacenza Minima")] + public string QtaMin; + + [Display(Name = "Lotto acquisto")] + public string QtaBatch; + + [Display(Name = "Valore unit.")] + public string CurrValue; + + } public class ItemStocksMetadata { diff --git a/StockManMVC/Models/PartialClasses.cs b/StockManMVC/Models/PartialClasses.cs index d1831ec..b2ceea2 100644 --- a/StockManMVC/Models/PartialClasses.cs +++ b/StockManMVC/Models/PartialClasses.cs @@ -30,10 +30,10 @@ namespace StockManMVC.Models { } - //[MetadataType(typeof(ItemsMetadata))] - //public partial class Items - //{ - //} + [MetadataType(typeof(ItemMetadata))] + public partial class Item + { + } //[MetadataType(typeof(EnrollmentMetadata))] //public partial class Enrollment diff --git a/StockManMVC/StockManMVC.csproj b/StockManMVC/StockManMVC.csproj index d2bb64d..1d2fc02 100644 --- a/StockManMVC/StockManMVC.csproj +++ b/StockManMVC/StockManMVC.csproj @@ -449,6 +449,7 @@ + diff --git a/StockManMVC/Views/ItemFluxes/Edit.cshtml b/StockManMVC/Views/ItemFluxes/Edit.cshtml index 582ab21..b9ea8a5 100644 --- a/StockManMVC/Views/ItemFluxes/Edit.cshtml +++ b/StockManMVC/Views/ItemFluxes/Edit.cshtml @@ -89,14 +89,6 @@ - @*
- @Html.LabelFor(model => model.dtExport, htmlAttributes: new { @class = "control-label col-md-2" }) -
- @Html.TextBoxFor(model => model.dtExport, new { @Value = Convert.ToDateTime(Model.dtExport).ToString("yyyy-MM-dd"), @class = "form-control date-picker", type = "date" }) - @Html.ValidationMessageFor(model => model.dtExport, "", new { @class = "text-danger" }) -
-
*@ -
@Html.LabelFor(model => model.OperatorID, "OperatorID", htmlAttributes: new { @class = "control-label col-md-2" })
@@ -105,26 +97,18 @@
- @*
-
- -
-
*@ -
- +
+ } -@*
- @Html.ActionLink("Torna ad elenco", "Details", "Items", new { id = Model.ItemID, StockItemID = Model.ItemID, FluxItemID = Model.ItemID }, null) -
*@ @section Scripts { @Scripts.Render("~/bundles/jqueryval") diff --git a/StockManMVC/Views/ItemFluxes/_CreatePrecompiled.cshtml b/StockManMVC/Views/ItemFluxes/_CreatePrecompiled.cshtml index f6b69d6..143fb3f 100644 --- a/StockManMVC/Views/ItemFluxes/_CreatePrecompiled.cshtml +++ b/StockManMVC/Views/ItemFluxes/_CreatePrecompiled.cshtml @@ -75,11 +75,10 @@
- +
- @*@Html.ActionLink("Torna ad elenco", "Details", "Items", new { id = itemID, StockItemID = itemID, FluxItemID = itemID }, null)*@ - Annulla + Annulla
diff --git a/StockManMVC/Views/Items/Details.cshtml b/StockManMVC/Views/Items/Details.cshtml index 5511b42..02e9b35 100644 --- a/StockManMVC/Views/Items/Details.cshtml +++ b/StockManMVC/Views/Items/Details.cshtml @@ -13,82 +13,16 @@ Dettaglio Articolo
-
-
-
- @Html.DisplayNameFor(model => model.Descr) -
- -
- @Html.DisplayFor(model => model.Descr) -
- -
- @Html.DisplayNameFor(model => model.CodInt) -
- -
- @Html.DisplayFor(model => model.CodInt) -
- -
- @Html.DisplayNameFor(model => model.CodExt) -
- -
- @Html.DisplayFor(model => model.CodExt) -
- -
- @Html.DisplayNameFor(model => model.DescrExt) -
- -
- @Html.DisplayFor(model => model.DescrExt) -
- -
- @Html.DisplayNameFor(model => model.QtaMin) -
- -
- @Html.DisplayFor(model => model.QtaMin) -
- -
- @Html.DisplayNameFor(model => model.QtaBatch) -
- -
- @Html.DisplayFor(model => model.QtaBatch) -
- -
- @Html.DisplayNameFor(model => model.CurrValue) -
- -
- @Html.DisplayFor(model => model.CurrValue) -
- -
- @Html.DisplayNameFor(model => model.ItemFamily.Descr) -
- -
- @Html.DisplayFor(model => model.ItemFamily.Descr) -
- -
+ @Html.Partial("_ItemDetail") +
+ @*qui carico dinamicamente le view dell'ITEM*@
-

- @Html.ActionLink("Edit", "Edit", new { id = Model.ID }) | - @Html.ActionLink("Back to List", "Index") -

+ +
-
+
Stock Giacenze @@ -98,13 +32,13 @@
- + Elim. duplicati @@ -116,7 +50,7 @@
- +
@@ -128,20 +62,20 @@
-
+
Movimenti (data indica movimenti confermati o da registrare)
@Html.Partial("_MVCGridToolbar", new StockManMVC.Models.MVCGridToolbarModel() - { - MVCGridName = "FluxItemsGrid", - PageSize = true, - ColumnVisibility = true, - Export = false, - GlobalSearch = true - }) + { + MVCGridName = "FluxItemsGrid", + PageSize = true, + ColumnVisibility = true, + Export = false, + GlobalSearch = true + }) @Html.MVCGrid("FluxItemsGrid")
@@ -152,4 +86,12 @@ function CreateNewMov(ItemID, MovTypeID) { $("#divCreateMov").load('@(Url.Action("CreatePrecompiled", "ItemFluxes", null, Request.Url.Scheme))?ItemID=' + ItemID + '&MovTypeID=' + MovTypeID); } + + function LoadItemDetail(ItemID) { + $("#itemPartialView").load('@(Url.Action("CurrItemDetail", "Items", null, Request.Url.Scheme))?ID=' + ItemID); + } + + function LoadItemEdit(ItemID) { + $("#itemPartialView").load('@(Url.Action("Edit", "Items", null, Request.Url.Scheme))?ID=' + ItemID); + } \ No newline at end of file diff --git a/StockManMVC/Views/Items/Edit.cshtml b/StockManMVC/Views/Items/Edit.cshtml index a15aa30..570bbad 100644 --- a/StockManMVC/Views/Items/Edit.cshtml +++ b/StockManMVC/Views/Items/Edit.cshtml @@ -4,7 +4,7 @@ ViewBag.Title = "Edit"; } -

Edit

+

Modifica Articolo

@using (Html.BeginForm()) @@ -12,7 +12,6 @@ @Html.AntiForgeryToken()
-

Item


@Html.ValidationSummary(true, "", new { @class = "text-danger" }) @Html.HiddenFor(model => model.ID) @@ -81,18 +80,19 @@
-
-
- + +
+
+ +
+
+
} -
- @Html.ActionLink("Back to List", "Index") -
- @section Scripts { @Scripts.Render("~/bundles/jqueryval") } diff --git a/StockManMVC/Views/Items/_ItemDetail.cshtml b/StockManMVC/Views/Items/_ItemDetail.cshtml new file mode 100644 index 0000000..01d4981 --- /dev/null +++ b/StockManMVC/Views/Items/_ItemDetail.cshtml @@ -0,0 +1,79 @@ +@model StockManMVC.Models.Item + +
+
+
+ @Html.DisplayNameFor(model => model.Descr) +
+ +
+ @Html.DisplayFor(model => model.Descr) +
+ +
+ @Html.DisplayNameFor(model => model.CodInt) +
+ +
+ @Html.DisplayFor(model => model.CodInt) +
+ +
+ @Html.DisplayNameFor(model => model.CodExt) +
+ +
+ @Html.DisplayFor(model => model.CodExt) +
+ +
+ @Html.DisplayNameFor(model => model.DescrExt) +
+ +
+ @Html.DisplayFor(model => model.DescrExt) +
+ +
+ @Html.DisplayNameFor(model => model.QtaMin) +
+ +
+ @Html.DisplayFor(model => model.QtaMin) +
+ +
+ @Html.DisplayNameFor(model => model.QtaBatch) +
+ +
+ @Html.DisplayFor(model => model.QtaBatch) +
+ +
+ @Html.DisplayNameFor(model => model.CurrValue) +
+ +
+ @Html.DisplayFor(model => model.CurrValue) +
+ +
+ @Html.DisplayNameFor(model => model.ItemFamily.Descr) +
+ +
+ @Html.DisplayFor(model => model.ItemFamily.Descr) +
+ +
+
+ + diff --git a/StockManMVC/bin/StockManMVC.dll b/StockManMVC/bin/StockManMVC.dll index 2c1bf3afb86b0b3adffb9200c6ffe0875af4bc69..581dc25f595f77990b23826bc45c7a75ce8bc013 100644 GIT binary patch delta 29008 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 Io(l8-2h9Vb0RR91 delta 28516 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 Y++g1?{)_)5lJ*;%E#kOXUSawF0EC+{VE_OC